diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index c25ff685035..cfe2549ba7e 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -2519,15 +2519,12 @@ type ( Expr Expr } - // JSONPathParam is used to store the path used as arguments in different JSON functions - JSONPathParam Expr - // JSONContainsExpr represents the function and arguments for JSON_CONTAINS() // For more information, see https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html#function_json-contains JSONContainsExpr struct { Target Expr Candidate Expr - PathList []JSONPathParam + PathList []Expr } // JSONContainsPathExpr represents the function and arguments for JSON_CONTAINS_PATH() @@ -2535,7 +2532,7 @@ type ( JSONContainsPathExpr struct { JSONDoc Expr OneOrAll Expr - PathList []JSONPathParam + PathList []Expr } // JSONContainsPathType is an enum to get types of Trim @@ -2545,14 +2542,14 @@ type ( // For more information, see https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html#function_json-extract JSONExtractExpr struct { JSONDoc Expr - PathList []JSONPathParam + PathList []Expr } // JSONKeysExpr represents the function and arguments for JSON_KEYS() // For more information, see https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html#function_json-keys JSONKeysExpr struct { - JSONDoc Expr - PathList []JSONPathParam + JSONDoc Expr + Path Expr } // JSONOverlapsExpr represents the function and arguments for JSON_OVERLAPS() @@ -2569,14 +2566,14 @@ type ( OneOrAll Expr SearchStr Expr EscapeChar Expr - PathList []JSONPathParam + PathList []Expr } // JSONValueExpr represents the function and arguments for JSON_VALUE() // For more information, see https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html#function_json-value JSONValueExpr struct { JSONDoc Expr - Path JSONPathParam + Path Expr ReturningType *ConvertType EmptyOnResponse *JtOnResponse ErrorOnResponse *JtOnResponse @@ -2608,7 +2605,7 @@ type ( JSONAttributesExpr struct { Type JSONAttributeType JSONDoc Expr - Path JSONPathParam + Path Expr } // JSONAttributeType is an enum to get types of TrimFunc. diff --git a/go/vt/sqlparser/ast_clone.go b/go/vt/sqlparser/ast_clone.go index 61ccc5bd1b3..22e91dd5fb9 100644 --- a/go/vt/sqlparser/ast_clone.go +++ b/go/vt/sqlparser/ast_clone.go @@ -1346,7 +1346,7 @@ func CloneRefOfJSONAttributesExpr(n *JSONAttributesExpr) *JSONAttributesExpr { } out := *n out.JSONDoc = CloneExpr(n.JSONDoc) - out.Path = CloneJSONPathParam(n.Path) + out.Path = CloneExpr(n.Path) return &out } @@ -1358,7 +1358,7 @@ func CloneRefOfJSONContainsExpr(n *JSONContainsExpr) *JSONContainsExpr { out := *n out.Target = CloneExpr(n.Target) out.Candidate = CloneExpr(n.Candidate) - out.PathList = CloneSliceOfJSONPathParam(n.PathList) + out.PathList = CloneSliceOfExpr(n.PathList) return &out } @@ -1370,7 +1370,7 @@ func CloneRefOfJSONContainsPathExpr(n *JSONContainsPathExpr) *JSONContainsPathEx out := *n out.JSONDoc = CloneExpr(n.JSONDoc) out.OneOrAll = CloneExpr(n.OneOrAll) - out.PathList = CloneSliceOfJSONPathParam(n.PathList) + out.PathList = CloneSliceOfExpr(n.PathList) return &out } @@ -1381,7 +1381,7 @@ func CloneRefOfJSONExtractExpr(n *JSONExtractExpr) *JSONExtractExpr { } out := *n out.JSONDoc = CloneExpr(n.JSONDoc) - out.PathList = CloneSliceOfJSONPathParam(n.PathList) + out.PathList = CloneSliceOfExpr(n.PathList) return &out } @@ -1392,7 +1392,7 @@ func CloneRefOfJSONKeysExpr(n *JSONKeysExpr) *JSONKeysExpr { } out := *n out.JSONDoc = CloneExpr(n.JSONDoc) - out.PathList = CloneSliceOfJSONPathParam(n.PathList) + out.Path = CloneExpr(n.Path) return &out } @@ -1485,7 +1485,7 @@ func CloneRefOfJSONSearchExpr(n *JSONSearchExpr) *JSONSearchExpr { out.OneOrAll = CloneExpr(n.OneOrAll) out.SearchStr = CloneExpr(n.SearchStr) out.EscapeChar = CloneExpr(n.EscapeChar) - out.PathList = CloneSliceOfJSONPathParam(n.PathList) + out.PathList = CloneSliceOfExpr(n.PathList) return &out } @@ -1539,7 +1539,7 @@ func CloneRefOfJSONValueExpr(n *JSONValueExpr) *JSONValueExpr { } out := *n out.JSONDoc = CloneExpr(n.JSONDoc) - out.Path = CloneJSONPathParam(n.Path) + out.Path = CloneExpr(n.Path) out.ReturningType = CloneRefOfConvertType(n.ReturningType) out.EmptyOnResponse = CloneRefOfJtOnResponse(n.EmptyOnResponse) out.ErrorOnResponse = CloneRefOfJtOnResponse(n.ErrorOnResponse) @@ -3239,162 +3239,6 @@ func CloneInsertRows(in InsertRows) InsertRows { } } -// CloneJSONPathParam creates a deep clone of the input. -func CloneJSONPathParam(in JSONPathParam) JSONPathParam { - if in == nil { - return nil - } - switch in := in.(type) { - case *AndExpr: - return CloneRefOfAndExpr(in) - case Argument: - return in - case *ArgumentLessWindowExpr: - return CloneRefOfArgumentLessWindowExpr(in) - case *BetweenExpr: - return CloneRefOfBetweenExpr(in) - case *BinaryExpr: - return CloneRefOfBinaryExpr(in) - case BoolVal: - return in - case *CaseExpr: - return CloneRefOfCaseExpr(in) - case *CastExpr: - return CloneRefOfCastExpr(in) - case *ColName: - return CloneRefOfColName(in) - case *CollateExpr: - return CloneRefOfCollateExpr(in) - case *ComparisonExpr: - return CloneRefOfComparisonExpr(in) - case *ConvertExpr: - return CloneRefOfConvertExpr(in) - case *ConvertUsingExpr: - return CloneRefOfConvertUsingExpr(in) - case *CurTimeFuncExpr: - return CloneRefOfCurTimeFuncExpr(in) - case *Default: - return CloneRefOfDefault(in) - case *ExistsExpr: - return CloneRefOfExistsExpr(in) - case *ExtractFuncExpr: - return CloneRefOfExtractFuncExpr(in) - case *ExtractValueExpr: - return CloneRefOfExtractValueExpr(in) - case *ExtractedSubquery: - return CloneRefOfExtractedSubquery(in) - case *FirstOrLastValueExpr: - return CloneRefOfFirstOrLastValueExpr(in) - case *FuncExpr: - return CloneRefOfFuncExpr(in) - case *GroupConcatExpr: - return CloneRefOfGroupConcatExpr(in) - case *IntervalExpr: - return CloneRefOfIntervalExpr(in) - case *IntroducerExpr: - return CloneRefOfIntroducerExpr(in) - case *IsExpr: - return CloneRefOfIsExpr(in) - case *JSONArrayExpr: - return CloneRefOfJSONArrayExpr(in) - case *JSONAttributesExpr: - return CloneRefOfJSONAttributesExpr(in) - case *JSONContainsExpr: - return CloneRefOfJSONContainsExpr(in) - case *JSONContainsPathExpr: - return CloneRefOfJSONContainsPathExpr(in) - case *JSONExtractExpr: - return CloneRefOfJSONExtractExpr(in) - case *JSONKeysExpr: - return CloneRefOfJSONKeysExpr(in) - case *JSONObjectExpr: - return CloneRefOfJSONObjectExpr(in) - case *JSONOverlapsExpr: - return CloneRefOfJSONOverlapsExpr(in) - case *JSONPrettyExpr: - return CloneRefOfJSONPrettyExpr(in) - case *JSONQuoteExpr: - return CloneRefOfJSONQuoteExpr(in) - case *JSONRemoveExpr: - return CloneRefOfJSONRemoveExpr(in) - case *JSONSchemaValidFuncExpr: - return CloneRefOfJSONSchemaValidFuncExpr(in) - case *JSONSchemaValidationReportFuncExpr: - return CloneRefOfJSONSchemaValidationReportFuncExpr(in) - case *JSONSearchExpr: - return CloneRefOfJSONSearchExpr(in) - case *JSONStorageFreeExpr: - return CloneRefOfJSONStorageFreeExpr(in) - case *JSONStorageSizeExpr: - return CloneRefOfJSONStorageSizeExpr(in) - case *JSONUnquoteExpr: - return CloneRefOfJSONUnquoteExpr(in) - case *JSONValueExpr: - return CloneRefOfJSONValueExpr(in) - case *JSONValueMergeExpr: - return CloneRefOfJSONValueMergeExpr(in) - case *JSONValueModifierExpr: - return CloneRefOfJSONValueModifierExpr(in) - case *LagLeadExpr: - return CloneRefOfLagLeadExpr(in) - case ListArg: - return in - case *Literal: - return CloneRefOfLiteral(in) - case *LockingFunc: - return CloneRefOfLockingFunc(in) - case *MatchExpr: - return CloneRefOfMatchExpr(in) - case *MemberOfExpr: - return CloneRefOfMemberOfExpr(in) - case *NTHValueExpr: - return CloneRefOfNTHValueExpr(in) - case *NamedWindow: - return CloneRefOfNamedWindow(in) - case *NotExpr: - return CloneRefOfNotExpr(in) - case *NtileExpr: - return CloneRefOfNtileExpr(in) - case *NullVal: - return CloneRefOfNullVal(in) - case *Offset: - return CloneRefOfOffset(in) - case *OrExpr: - return CloneRefOfOrExpr(in) - case *RegexpInstrExpr: - return CloneRefOfRegexpInstrExpr(in) - case *RegexpLikeExpr: - return CloneRefOfRegexpLikeExpr(in) - case *RegexpReplaceExpr: - return CloneRefOfRegexpReplaceExpr(in) - case *RegexpSubstrExpr: - return CloneRefOfRegexpSubstrExpr(in) - case *Subquery: - return CloneRefOfSubquery(in) - case *SubstrExpr: - return CloneRefOfSubstrExpr(in) - case *TimestampFuncExpr: - return CloneRefOfTimestampFuncExpr(in) - case *TrimFuncExpr: - return CloneRefOfTrimFuncExpr(in) - case *UnaryExpr: - return CloneRefOfUnaryExpr(in) - case *UpdateXMLExpr: - return CloneRefOfUpdateXMLExpr(in) - case ValTuple: - return CloneValTuple(in) - case *ValuesFuncExpr: - return CloneRefOfValuesFuncExpr(in) - case *WeightStringFuncExpr: - return CloneRefOfWeightStringFuncExpr(in) - case *XorExpr: - return CloneRefOfXorExpr(in) - default: - // this should never happen - return nil - } -} - // CloneSelectExpr creates a deep clone of the input. func CloneSelectExpr(in SelectExpr) SelectExpr { if in == nil { @@ -3726,14 +3570,14 @@ func CloneSliceOfRefOfIndexOption(n []*IndexOption) []*IndexOption { return res } -// CloneSliceOfJSONPathParam creates a deep clone of the input. -func CloneSliceOfJSONPathParam(n []JSONPathParam) []JSONPathParam { +// CloneSliceOfExpr creates a deep clone of the input. +func CloneSliceOfExpr(n []Expr) []Expr { if n == nil { return nil } - res := make([]JSONPathParam, len(n)) + res := make([]Expr, len(n)) for i, x := range n { - res[i] = CloneJSONPathParam(x) + res[i] = CloneExpr(x) } return res } diff --git a/go/vt/sqlparser/ast_equals.go b/go/vt/sqlparser/ast_equals.go index 71745560c10..1930bc5b6a5 100644 --- a/go/vt/sqlparser/ast_equals.go +++ b/go/vt/sqlparser/ast_equals.go @@ -2399,7 +2399,7 @@ func EqualsRefOfJSONAttributesExpr(a, b *JSONAttributesExpr) bool { } return a.Type == b.Type && EqualsExpr(a.JSONDoc, b.JSONDoc) && - EqualsJSONPathParam(a.Path, b.Path) + EqualsExpr(a.Path, b.Path) } // EqualsRefOfJSONContainsExpr does deep equals between the two objects. @@ -2412,7 +2412,7 @@ func EqualsRefOfJSONContainsExpr(a, b *JSONContainsExpr) bool { } return EqualsExpr(a.Target, b.Target) && EqualsExpr(a.Candidate, b.Candidate) && - EqualsSliceOfJSONPathParam(a.PathList, b.PathList) + EqualsSliceOfExpr(a.PathList, b.PathList) } // EqualsRefOfJSONContainsPathExpr does deep equals between the two objects. @@ -2425,7 +2425,7 @@ func EqualsRefOfJSONContainsPathExpr(a, b *JSONContainsPathExpr) bool { } return EqualsExpr(a.JSONDoc, b.JSONDoc) && EqualsExpr(a.OneOrAll, b.OneOrAll) && - EqualsSliceOfJSONPathParam(a.PathList, b.PathList) + EqualsSliceOfExpr(a.PathList, b.PathList) } // EqualsRefOfJSONExtractExpr does deep equals between the two objects. @@ -2437,7 +2437,7 @@ func EqualsRefOfJSONExtractExpr(a, b *JSONExtractExpr) bool { return false } return EqualsExpr(a.JSONDoc, b.JSONDoc) && - EqualsSliceOfJSONPathParam(a.PathList, b.PathList) + EqualsSliceOfExpr(a.PathList, b.PathList) } // EqualsRefOfJSONKeysExpr does deep equals between the two objects. @@ -2449,7 +2449,7 @@ func EqualsRefOfJSONKeysExpr(a, b *JSONKeysExpr) bool { return false } return EqualsExpr(a.JSONDoc, b.JSONDoc) && - EqualsSliceOfJSONPathParam(a.PathList, b.PathList) + EqualsExpr(a.Path, b.Path) } // EqualsRefOfJSONObjectExpr does deep equals between the two objects. @@ -2551,7 +2551,7 @@ func EqualsRefOfJSONSearchExpr(a, b *JSONSearchExpr) bool { EqualsExpr(a.OneOrAll, b.OneOrAll) && EqualsExpr(a.SearchStr, b.SearchStr) && EqualsExpr(a.EscapeChar, b.EscapeChar) && - EqualsSliceOfJSONPathParam(a.PathList, b.PathList) + EqualsSliceOfExpr(a.PathList, b.PathList) } // EqualsRefOfJSONStorageFreeExpr does deep equals between the two objects. @@ -2610,7 +2610,7 @@ func EqualsRefOfJSONValueExpr(a, b *JSONValueExpr) bool { return false } return EqualsExpr(a.JSONDoc, b.JSONDoc) && - EqualsJSONPathParam(a.Path, b.Path) && + EqualsExpr(a.Path, b.Path) && EqualsRefOfConvertType(a.ReturningType, b.ReturningType) && EqualsRefOfJtOnResponse(a.EmptyOnResponse, b.EmptyOnResponse) && EqualsRefOfJtOnResponse(a.ErrorOnResponse, b.ErrorOnResponse) @@ -5168,453 +5168,6 @@ func EqualsInsertRows(inA, inB InsertRows) bool { } } -// EqualsJSONPathParam does deep equals between the two objects. -func EqualsJSONPathParam(inA, inB JSONPathParam) bool { - if inA == nil && inB == nil { - return true - } - if inA == nil || inB == nil { - return false - } - switch a := inA.(type) { - case *AndExpr: - b, ok := inB.(*AndExpr) - if !ok { - return false - } - return EqualsRefOfAndExpr(a, b) - case Argument: - b, ok := inB.(Argument) - if !ok { - return false - } - return a == b - case *ArgumentLessWindowExpr: - b, ok := inB.(*ArgumentLessWindowExpr) - if !ok { - return false - } - return EqualsRefOfArgumentLessWindowExpr(a, b) - case *BetweenExpr: - b, ok := inB.(*BetweenExpr) - if !ok { - return false - } - return EqualsRefOfBetweenExpr(a, b) - case *BinaryExpr: - b, ok := inB.(*BinaryExpr) - if !ok { - return false - } - return EqualsRefOfBinaryExpr(a, b) - case BoolVal: - b, ok := inB.(BoolVal) - if !ok { - return false - } - return a == b - case *CaseExpr: - b, ok := inB.(*CaseExpr) - if !ok { - return false - } - return EqualsRefOfCaseExpr(a, b) - case *CastExpr: - b, ok := inB.(*CastExpr) - if !ok { - return false - } - return EqualsRefOfCastExpr(a, b) - case *ColName: - b, ok := inB.(*ColName) - if !ok { - return false - } - return EqualsRefOfColName(a, b) - case *CollateExpr: - b, ok := inB.(*CollateExpr) - if !ok { - return false - } - return EqualsRefOfCollateExpr(a, b) - case *ComparisonExpr: - b, ok := inB.(*ComparisonExpr) - if !ok { - return false - } - return EqualsRefOfComparisonExpr(a, b) - case *ConvertExpr: - b, ok := inB.(*ConvertExpr) - if !ok { - return false - } - return EqualsRefOfConvertExpr(a, b) - case *ConvertUsingExpr: - b, ok := inB.(*ConvertUsingExpr) - if !ok { - return false - } - return EqualsRefOfConvertUsingExpr(a, b) - case *CurTimeFuncExpr: - b, ok := inB.(*CurTimeFuncExpr) - if !ok { - return false - } - return EqualsRefOfCurTimeFuncExpr(a, b) - case *Default: - b, ok := inB.(*Default) - if !ok { - return false - } - return EqualsRefOfDefault(a, b) - case *ExistsExpr: - b, ok := inB.(*ExistsExpr) - if !ok { - return false - } - return EqualsRefOfExistsExpr(a, b) - case *ExtractFuncExpr: - b, ok := inB.(*ExtractFuncExpr) - if !ok { - return false - } - return EqualsRefOfExtractFuncExpr(a, b) - case *ExtractValueExpr: - b, ok := inB.(*ExtractValueExpr) - if !ok { - return false - } - return EqualsRefOfExtractValueExpr(a, b) - case *ExtractedSubquery: - b, ok := inB.(*ExtractedSubquery) - if !ok { - return false - } - return EqualsRefOfExtractedSubquery(a, b) - case *FirstOrLastValueExpr: - b, ok := inB.(*FirstOrLastValueExpr) - if !ok { - return false - } - return EqualsRefOfFirstOrLastValueExpr(a, b) - case *FuncExpr: - b, ok := inB.(*FuncExpr) - if !ok { - return false - } - return EqualsRefOfFuncExpr(a, b) - case *GroupConcatExpr: - b, ok := inB.(*GroupConcatExpr) - if !ok { - return false - } - return EqualsRefOfGroupConcatExpr(a, b) - case *IntervalExpr: - b, ok := inB.(*IntervalExpr) - if !ok { - return false - } - return EqualsRefOfIntervalExpr(a, b) - case *IntroducerExpr: - b, ok := inB.(*IntroducerExpr) - if !ok { - return false - } - return EqualsRefOfIntroducerExpr(a, b) - case *IsExpr: - b, ok := inB.(*IsExpr) - if !ok { - return false - } - return EqualsRefOfIsExpr(a, b) - case *JSONArrayExpr: - b, ok := inB.(*JSONArrayExpr) - if !ok { - return false - } - return EqualsRefOfJSONArrayExpr(a, b) - case *JSONAttributesExpr: - b, ok := inB.(*JSONAttributesExpr) - if !ok { - return false - } - return EqualsRefOfJSONAttributesExpr(a, b) - case *JSONContainsExpr: - b, ok := inB.(*JSONContainsExpr) - if !ok { - return false - } - return EqualsRefOfJSONContainsExpr(a, b) - case *JSONContainsPathExpr: - b, ok := inB.(*JSONContainsPathExpr) - if !ok { - return false - } - return EqualsRefOfJSONContainsPathExpr(a, b) - case *JSONExtractExpr: - b, ok := inB.(*JSONExtractExpr) - if !ok { - return false - } - return EqualsRefOfJSONExtractExpr(a, b) - case *JSONKeysExpr: - b, ok := inB.(*JSONKeysExpr) - if !ok { - return false - } - return EqualsRefOfJSONKeysExpr(a, b) - case *JSONObjectExpr: - b, ok := inB.(*JSONObjectExpr) - if !ok { - return false - } - return EqualsRefOfJSONObjectExpr(a, b) - case *JSONOverlapsExpr: - b, ok := inB.(*JSONOverlapsExpr) - if !ok { - return false - } - return EqualsRefOfJSONOverlapsExpr(a, b) - case *JSONPrettyExpr: - b, ok := inB.(*JSONPrettyExpr) - if !ok { - return false - } - return EqualsRefOfJSONPrettyExpr(a, b) - case *JSONQuoteExpr: - b, ok := inB.(*JSONQuoteExpr) - if !ok { - return false - } - return EqualsRefOfJSONQuoteExpr(a, b) - case *JSONRemoveExpr: - b, ok := inB.(*JSONRemoveExpr) - if !ok { - return false - } - return EqualsRefOfJSONRemoveExpr(a, b) - case *JSONSchemaValidFuncExpr: - b, ok := inB.(*JSONSchemaValidFuncExpr) - if !ok { - return false - } - return EqualsRefOfJSONSchemaValidFuncExpr(a, b) - case *JSONSchemaValidationReportFuncExpr: - b, ok := inB.(*JSONSchemaValidationReportFuncExpr) - if !ok { - return false - } - return EqualsRefOfJSONSchemaValidationReportFuncExpr(a, b) - case *JSONSearchExpr: - b, ok := inB.(*JSONSearchExpr) - if !ok { - return false - } - return EqualsRefOfJSONSearchExpr(a, b) - case *JSONStorageFreeExpr: - b, ok := inB.(*JSONStorageFreeExpr) - if !ok { - return false - } - return EqualsRefOfJSONStorageFreeExpr(a, b) - case *JSONStorageSizeExpr: - b, ok := inB.(*JSONStorageSizeExpr) - if !ok { - return false - } - return EqualsRefOfJSONStorageSizeExpr(a, b) - case *JSONUnquoteExpr: - b, ok := inB.(*JSONUnquoteExpr) - if !ok { - return false - } - return EqualsRefOfJSONUnquoteExpr(a, b) - case *JSONValueExpr: - b, ok := inB.(*JSONValueExpr) - if !ok { - return false - } - return EqualsRefOfJSONValueExpr(a, b) - case *JSONValueMergeExpr: - b, ok := inB.(*JSONValueMergeExpr) - if !ok { - return false - } - return EqualsRefOfJSONValueMergeExpr(a, b) - case *JSONValueModifierExpr: - b, ok := inB.(*JSONValueModifierExpr) - if !ok { - return false - } - return EqualsRefOfJSONValueModifierExpr(a, b) - case *LagLeadExpr: - b, ok := inB.(*LagLeadExpr) - if !ok { - return false - } - return EqualsRefOfLagLeadExpr(a, b) - case ListArg: - b, ok := inB.(ListArg) - if !ok { - return false - } - return a == b - case *Literal: - b, ok := inB.(*Literal) - if !ok { - return false - } - return EqualsRefOfLiteral(a, b) - case *LockingFunc: - b, ok := inB.(*LockingFunc) - if !ok { - return false - } - return EqualsRefOfLockingFunc(a, b) - case *MatchExpr: - b, ok := inB.(*MatchExpr) - if !ok { - return false - } - return EqualsRefOfMatchExpr(a, b) - case *MemberOfExpr: - b, ok := inB.(*MemberOfExpr) - if !ok { - return false - } - return EqualsRefOfMemberOfExpr(a, b) - case *NTHValueExpr: - b, ok := inB.(*NTHValueExpr) - if !ok { - return false - } - return EqualsRefOfNTHValueExpr(a, b) - case *NamedWindow: - b, ok := inB.(*NamedWindow) - if !ok { - return false - } - return EqualsRefOfNamedWindow(a, b) - case *NotExpr: - b, ok := inB.(*NotExpr) - if !ok { - return false - } - return EqualsRefOfNotExpr(a, b) - case *NtileExpr: - b, ok := inB.(*NtileExpr) - if !ok { - return false - } - return EqualsRefOfNtileExpr(a, b) - case *NullVal: - b, ok := inB.(*NullVal) - if !ok { - return false - } - return EqualsRefOfNullVal(a, b) - case *Offset: - b, ok := inB.(*Offset) - if !ok { - return false - } - return EqualsRefOfOffset(a, b) - case *OrExpr: - b, ok := inB.(*OrExpr) - if !ok { - return false - } - return EqualsRefOfOrExpr(a, b) - case *RegexpInstrExpr: - b, ok := inB.(*RegexpInstrExpr) - if !ok { - return false - } - return EqualsRefOfRegexpInstrExpr(a, b) - case *RegexpLikeExpr: - b, ok := inB.(*RegexpLikeExpr) - if !ok { - return false - } - return EqualsRefOfRegexpLikeExpr(a, b) - case *RegexpReplaceExpr: - b, ok := inB.(*RegexpReplaceExpr) - if !ok { - return false - } - return EqualsRefOfRegexpReplaceExpr(a, b) - case *RegexpSubstrExpr: - b, ok := inB.(*RegexpSubstrExpr) - if !ok { - return false - } - return EqualsRefOfRegexpSubstrExpr(a, b) - case *Subquery: - b, ok := inB.(*Subquery) - if !ok { - return false - } - return EqualsRefOfSubquery(a, b) - case *SubstrExpr: - b, ok := inB.(*SubstrExpr) - if !ok { - return false - } - return EqualsRefOfSubstrExpr(a, b) - case *TimestampFuncExpr: - b, ok := inB.(*TimestampFuncExpr) - if !ok { - return false - } - return EqualsRefOfTimestampFuncExpr(a, b) - case *TrimFuncExpr: - b, ok := inB.(*TrimFuncExpr) - if !ok { - return false - } - return EqualsRefOfTrimFuncExpr(a, b) - case *UnaryExpr: - b, ok := inB.(*UnaryExpr) - if !ok { - return false - } - return EqualsRefOfUnaryExpr(a, b) - case *UpdateXMLExpr: - b, ok := inB.(*UpdateXMLExpr) - if !ok { - return false - } - return EqualsRefOfUpdateXMLExpr(a, b) - case ValTuple: - b, ok := inB.(ValTuple) - if !ok { - return false - } - return EqualsValTuple(a, b) - case *ValuesFuncExpr: - b, ok := inB.(*ValuesFuncExpr) - if !ok { - return false - } - return EqualsRefOfValuesFuncExpr(a, b) - case *WeightStringFuncExpr: - b, ok := inB.(*WeightStringFuncExpr) - if !ok { - return false - } - return EqualsRefOfWeightStringFuncExpr(a, b) - case *XorExpr: - b, ok := inB.(*XorExpr) - if !ok { - return false - } - return EqualsRefOfXorExpr(a, b) - default: - // this should never happen - return false - } -} - // EqualsSelectExpr does deep equals between the two objects. func EqualsSelectExpr(inA, inB SelectExpr) bool { if inA == nil && inB == nil { @@ -6230,13 +5783,13 @@ func EqualsSliceOfRefOfIndexOption(a, b []*IndexOption) bool { return true } -// EqualsSliceOfJSONPathParam does deep equals between the two objects. -func EqualsSliceOfJSONPathParam(a, b []JSONPathParam) bool { +// EqualsSliceOfExpr does deep equals between the two objects. +func EqualsSliceOfExpr(a, b []Expr) bool { if len(a) != len(b) { return false } for i := 0; i < len(a); i++ { - if !EqualsJSONPathParam(a[i], b[i]) { + if !EqualsExpr(a[i], b[i]) { return false } } diff --git a/go/vt/sqlparser/ast_format.go b/go/vt/sqlparser/ast_format.go index 6dcac4543bb..8914c827606 100644 --- a/go/vt/sqlparser/ast_format.go +++ b/go/vt/sqlparser/ast_format.go @@ -2472,13 +2472,9 @@ func (node *JSONExtractExpr) Format(buf *TrackedBuffer) { // Format formats the node func (node *JSONKeysExpr) Format(buf *TrackedBuffer) { buf.astPrintf(node, "json_keys(%v", node.JSONDoc) - if len(node.PathList) > 0 { - buf.literal(", ") - } - var prefix string - for _, n := range node.PathList { - buf.astPrintf(node, "%s%v", prefix, n) - prefix = ", " + if node.Path != nil { + buf.astPrintf(node, ", %v)", node.Path) + return } buf.WriteByte(')') } diff --git a/go/vt/sqlparser/ast_format_fast.go b/go/vt/sqlparser/ast_format_fast.go index ae736effd80..1723d1907b2 100644 --- a/go/vt/sqlparser/ast_format_fast.go +++ b/go/vt/sqlparser/ast_format_fast.go @@ -3224,14 +3224,11 @@ func (node *JSONExtractExpr) formatFast(buf *TrackedBuffer) { func (node *JSONKeysExpr) formatFast(buf *TrackedBuffer) { buf.WriteString("json_keys(") buf.printExpr(node, node.JSONDoc, true) - if len(node.PathList) > 0 { + if node.Path != nil { buf.WriteString(", ") - } - var prefix string - for _, n := range node.PathList { - buf.WriteString(prefix) - buf.printExpr(node, n, true) - prefix = ", " + buf.printExpr(node, node.Path, true) + buf.WriteByte(')') + return } buf.WriteByte(')') } diff --git a/go/vt/sqlparser/ast_rewrite.go b/go/vt/sqlparser/ast_rewrite.go index 523b796c221..b06f9dd35cc 100644 --- a/go/vt/sqlparser/ast_rewrite.go +++ b/go/vt/sqlparser/ast_rewrite.go @@ -3045,8 +3045,8 @@ func (a *application) rewriteRefOfJSONAttributesExpr(parent SQLNode, node *JSONA }) { return false } - if !a.rewriteJSONPathParam(node, node.Path, func(newNode, parent SQLNode) { - parent.(*JSONAttributesExpr).Path = newNode.(JSONPathParam) + if !a.rewriteExpr(node, node.Path, func(newNode, parent SQLNode) { + parent.(*JSONAttributesExpr).Path = newNode.(Expr) }) { return false } @@ -3083,9 +3083,9 @@ func (a *application) rewriteRefOfJSONContainsExpr(parent SQLNode, node *JSONCon return false } for x, el := range node.PathList { - if !a.rewriteJSONPathParam(node, el, func(idx int) replacerFunc { + if !a.rewriteExpr(node, el, func(idx int) replacerFunc { return func(newNode, parent SQLNode) { - parent.(*JSONContainsExpr).PathList[idx] = newNode.(JSONPathParam) + parent.(*JSONContainsExpr).PathList[idx] = newNode.(Expr) } }(x)) { return false @@ -3124,9 +3124,9 @@ func (a *application) rewriteRefOfJSONContainsPathExpr(parent SQLNode, node *JSO return false } for x, el := range node.PathList { - if !a.rewriteJSONPathParam(node, el, func(idx int) replacerFunc { + if !a.rewriteExpr(node, el, func(idx int) replacerFunc { return func(newNode, parent SQLNode) { - parent.(*JSONContainsPathExpr).PathList[idx] = newNode.(JSONPathParam) + parent.(*JSONContainsPathExpr).PathList[idx] = newNode.(Expr) } }(x)) { return false @@ -3160,9 +3160,9 @@ func (a *application) rewriteRefOfJSONExtractExpr(parent SQLNode, node *JSONExtr return false } for x, el := range node.PathList { - if !a.rewriteJSONPathParam(node, el, func(idx int) replacerFunc { + if !a.rewriteExpr(node, el, func(idx int) replacerFunc { return func(newNode, parent SQLNode) { - parent.(*JSONExtractExpr).PathList[idx] = newNode.(JSONPathParam) + parent.(*JSONExtractExpr).PathList[idx] = newNode.(Expr) } }(x)) { return false @@ -3195,14 +3195,10 @@ func (a *application) rewriteRefOfJSONKeysExpr(parent SQLNode, node *JSONKeysExp }) { return false } - for x, el := range node.PathList { - if !a.rewriteJSONPathParam(node, el, func(idx int) replacerFunc { - return func(newNode, parent SQLNode) { - parent.(*JSONKeysExpr).PathList[idx] = newNode.(JSONPathParam) - } - }(x)) { - return false - } + if !a.rewriteExpr(node, node.Path, func(newNode, parent SQLNode) { + parent.(*JSONKeysExpr).Path = newNode.(Expr) + }) { + return false } if a.post != nil { a.cur.replacer = replacer @@ -3489,9 +3485,9 @@ func (a *application) rewriteRefOfJSONSearchExpr(parent SQLNode, node *JSONSearc return false } for x, el := range node.PathList { - if !a.rewriteJSONPathParam(node, el, func(idx int) replacerFunc { + if !a.rewriteExpr(node, el, func(idx int) replacerFunc { return func(newNode, parent SQLNode) { - parent.(*JSONSearchExpr).PathList[idx] = newNode.(JSONPathParam) + parent.(*JSONSearchExpr).PathList[idx] = newNode.(Expr) } }(x)) { return false @@ -3651,8 +3647,8 @@ func (a *application) rewriteRefOfJSONValueExpr(parent SQLNode, node *JSONValueE }) { return false } - if !a.rewriteJSONPathParam(node, node.Path, func(newNode, parent SQLNode) { - parent.(*JSONValueExpr).Path = newNode.(JSONPathParam) + if !a.rewriteExpr(node, node.Path, func(newNode, parent SQLNode) { + parent.(*JSONValueExpr).Path = newNode.(Expr) }) { return false } @@ -7851,160 +7847,6 @@ func (a *application) rewriteInsertRows(parent SQLNode, node InsertRows, replace return true } } -func (a *application) rewriteJSONPathParam(parent SQLNode, node JSONPathParam, replacer replacerFunc) bool { - if node == nil { - return true - } - switch node := node.(type) { - case *AndExpr: - return a.rewriteRefOfAndExpr(parent, node, replacer) - case Argument: - return a.rewriteArgument(parent, node, replacer) - case *ArgumentLessWindowExpr: - return a.rewriteRefOfArgumentLessWindowExpr(parent, node, replacer) - case *BetweenExpr: - return a.rewriteRefOfBetweenExpr(parent, node, replacer) - case *BinaryExpr: - return a.rewriteRefOfBinaryExpr(parent, node, replacer) - case BoolVal: - return a.rewriteBoolVal(parent, node, replacer) - case *CaseExpr: - return a.rewriteRefOfCaseExpr(parent, node, replacer) - case *CastExpr: - return a.rewriteRefOfCastExpr(parent, node, replacer) - case *ColName: - return a.rewriteRefOfColName(parent, node, replacer) - case *CollateExpr: - return a.rewriteRefOfCollateExpr(parent, node, replacer) - case *ComparisonExpr: - return a.rewriteRefOfComparisonExpr(parent, node, replacer) - case *ConvertExpr: - return a.rewriteRefOfConvertExpr(parent, node, replacer) - case *ConvertUsingExpr: - return a.rewriteRefOfConvertUsingExpr(parent, node, replacer) - case *CurTimeFuncExpr: - return a.rewriteRefOfCurTimeFuncExpr(parent, node, replacer) - case *Default: - return a.rewriteRefOfDefault(parent, node, replacer) - case *ExistsExpr: - return a.rewriteRefOfExistsExpr(parent, node, replacer) - case *ExtractFuncExpr: - return a.rewriteRefOfExtractFuncExpr(parent, node, replacer) - case *ExtractValueExpr: - return a.rewriteRefOfExtractValueExpr(parent, node, replacer) - case *ExtractedSubquery: - return a.rewriteRefOfExtractedSubquery(parent, node, replacer) - case *FirstOrLastValueExpr: - return a.rewriteRefOfFirstOrLastValueExpr(parent, node, replacer) - case *FuncExpr: - return a.rewriteRefOfFuncExpr(parent, node, replacer) - case *GroupConcatExpr: - return a.rewriteRefOfGroupConcatExpr(parent, node, replacer) - case *IntervalExpr: - return a.rewriteRefOfIntervalExpr(parent, node, replacer) - case *IntroducerExpr: - return a.rewriteRefOfIntroducerExpr(parent, node, replacer) - case *IsExpr: - return a.rewriteRefOfIsExpr(parent, node, replacer) - case *JSONArrayExpr: - return a.rewriteRefOfJSONArrayExpr(parent, node, replacer) - case *JSONAttributesExpr: - return a.rewriteRefOfJSONAttributesExpr(parent, node, replacer) - case *JSONContainsExpr: - return a.rewriteRefOfJSONContainsExpr(parent, node, replacer) - case *JSONContainsPathExpr: - return a.rewriteRefOfJSONContainsPathExpr(parent, node, replacer) - case *JSONExtractExpr: - return a.rewriteRefOfJSONExtractExpr(parent, node, replacer) - case *JSONKeysExpr: - return a.rewriteRefOfJSONKeysExpr(parent, node, replacer) - case *JSONObjectExpr: - return a.rewriteRefOfJSONObjectExpr(parent, node, replacer) - case *JSONOverlapsExpr: - return a.rewriteRefOfJSONOverlapsExpr(parent, node, replacer) - case *JSONPrettyExpr: - return a.rewriteRefOfJSONPrettyExpr(parent, node, replacer) - case *JSONQuoteExpr: - return a.rewriteRefOfJSONQuoteExpr(parent, node, replacer) - case *JSONRemoveExpr: - return a.rewriteRefOfJSONRemoveExpr(parent, node, replacer) - case *JSONSchemaValidFuncExpr: - return a.rewriteRefOfJSONSchemaValidFuncExpr(parent, node, replacer) - case *JSONSchemaValidationReportFuncExpr: - return a.rewriteRefOfJSONSchemaValidationReportFuncExpr(parent, node, replacer) - case *JSONSearchExpr: - return a.rewriteRefOfJSONSearchExpr(parent, node, replacer) - case *JSONStorageFreeExpr: - return a.rewriteRefOfJSONStorageFreeExpr(parent, node, replacer) - case *JSONStorageSizeExpr: - return a.rewriteRefOfJSONStorageSizeExpr(parent, node, replacer) - case *JSONUnquoteExpr: - return a.rewriteRefOfJSONUnquoteExpr(parent, node, replacer) - case *JSONValueExpr: - return a.rewriteRefOfJSONValueExpr(parent, node, replacer) - case *JSONValueMergeExpr: - return a.rewriteRefOfJSONValueMergeExpr(parent, node, replacer) - case *JSONValueModifierExpr: - return a.rewriteRefOfJSONValueModifierExpr(parent, node, replacer) - case *LagLeadExpr: - return a.rewriteRefOfLagLeadExpr(parent, node, replacer) - case ListArg: - return a.rewriteListArg(parent, node, replacer) - case *Literal: - return a.rewriteRefOfLiteral(parent, node, replacer) - case *LockingFunc: - return a.rewriteRefOfLockingFunc(parent, node, replacer) - case *MatchExpr: - return a.rewriteRefOfMatchExpr(parent, node, replacer) - case *MemberOfExpr: - return a.rewriteRefOfMemberOfExpr(parent, node, replacer) - case *NTHValueExpr: - return a.rewriteRefOfNTHValueExpr(parent, node, replacer) - case *NamedWindow: - return a.rewriteRefOfNamedWindow(parent, node, replacer) - case *NotExpr: - return a.rewriteRefOfNotExpr(parent, node, replacer) - case *NtileExpr: - return a.rewriteRefOfNtileExpr(parent, node, replacer) - case *NullVal: - return a.rewriteRefOfNullVal(parent, node, replacer) - case *Offset: - return a.rewriteRefOfOffset(parent, node, replacer) - case *OrExpr: - return a.rewriteRefOfOrExpr(parent, node, replacer) - case *RegexpInstrExpr: - return a.rewriteRefOfRegexpInstrExpr(parent, node, replacer) - case *RegexpLikeExpr: - return a.rewriteRefOfRegexpLikeExpr(parent, node, replacer) - case *RegexpReplaceExpr: - return a.rewriteRefOfRegexpReplaceExpr(parent, node, replacer) - case *RegexpSubstrExpr: - return a.rewriteRefOfRegexpSubstrExpr(parent, node, replacer) - case *Subquery: - return a.rewriteRefOfSubquery(parent, node, replacer) - case *SubstrExpr: - return a.rewriteRefOfSubstrExpr(parent, node, replacer) - case *TimestampFuncExpr: - return a.rewriteRefOfTimestampFuncExpr(parent, node, replacer) - case *TrimFuncExpr: - return a.rewriteRefOfTrimFuncExpr(parent, node, replacer) - case *UnaryExpr: - return a.rewriteRefOfUnaryExpr(parent, node, replacer) - case *UpdateXMLExpr: - return a.rewriteRefOfUpdateXMLExpr(parent, node, replacer) - case ValTuple: - return a.rewriteValTuple(parent, node, replacer) - case *ValuesFuncExpr: - return a.rewriteRefOfValuesFuncExpr(parent, node, replacer) - case *WeightStringFuncExpr: - return a.rewriteRefOfWeightStringFuncExpr(parent, node, replacer) - case *XorExpr: - return a.rewriteRefOfXorExpr(parent, node, replacer) - default: - // this should never happen - return true - } -} func (a *application) rewriteSelectExpr(parent SQLNode, node SelectExpr, 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 603dc723217..3e7c704dd7d 100644 --- a/go/vt/sqlparser/ast_visit.go +++ b/go/vt/sqlparser/ast_visit.go @@ -1653,7 +1653,7 @@ func VisitRefOfJSONAttributesExpr(in *JSONAttributesExpr, f Visit) error { if err := VisitExpr(in.JSONDoc, f); err != nil { return err } - if err := VisitJSONPathParam(in.Path, f); err != nil { + if err := VisitExpr(in.Path, f); err != nil { return err } return nil @@ -1672,7 +1672,7 @@ func VisitRefOfJSONContainsExpr(in *JSONContainsExpr, f Visit) error { return err } for _, el := range in.PathList { - if err := VisitJSONPathParam(el, f); err != nil { + if err := VisitExpr(el, f); err != nil { return err } } @@ -1692,7 +1692,7 @@ func VisitRefOfJSONContainsPathExpr(in *JSONContainsPathExpr, f Visit) error { return err } for _, el := range in.PathList { - if err := VisitJSONPathParam(el, f); err != nil { + if err := VisitExpr(el, f); err != nil { return err } } @@ -1709,7 +1709,7 @@ func VisitRefOfJSONExtractExpr(in *JSONExtractExpr, f Visit) error { return err } for _, el := range in.PathList { - if err := VisitJSONPathParam(el, f); err != nil { + if err := VisitExpr(el, f); err != nil { return err } } @@ -1725,10 +1725,8 @@ func VisitRefOfJSONKeysExpr(in *JSONKeysExpr, f Visit) error { if err := VisitExpr(in.JSONDoc, f); err != nil { return err } - for _, el := range in.PathList { - if err := VisitJSONPathParam(el, f); err != nil { - return err - } + if err := VisitExpr(in.Path, f); err != nil { + return err } return nil } @@ -1862,7 +1860,7 @@ func VisitRefOfJSONSearchExpr(in *JSONSearchExpr, f Visit) error { return err } for _, el := range in.PathList { - if err := VisitJSONPathParam(el, f); err != nil { + if err := VisitExpr(el, f); err != nil { return err } } @@ -1937,7 +1935,7 @@ func VisitRefOfJSONValueExpr(in *JSONValueExpr, f Visit) error { if err := VisitExpr(in.JSONDoc, f); err != nil { return err } - if err := VisitJSONPathParam(in.Path, f); err != nil { + if err := VisitExpr(in.Path, f); err != nil { return err } if err := VisitRefOfConvertType(in.ReturningType, f); err != nil { @@ -4046,160 +4044,6 @@ func VisitInsertRows(in InsertRows, f Visit) error { return nil } } -func VisitJSONPathParam(in JSONPathParam, f Visit) error { - if in == nil { - return nil - } - switch in := in.(type) { - case *AndExpr: - return VisitRefOfAndExpr(in, f) - case Argument: - return VisitArgument(in, f) - case *ArgumentLessWindowExpr: - return VisitRefOfArgumentLessWindowExpr(in, f) - case *BetweenExpr: - return VisitRefOfBetweenExpr(in, f) - case *BinaryExpr: - return VisitRefOfBinaryExpr(in, f) - case BoolVal: - return VisitBoolVal(in, f) - case *CaseExpr: - return VisitRefOfCaseExpr(in, f) - case *CastExpr: - return VisitRefOfCastExpr(in, f) - case *ColName: - return VisitRefOfColName(in, f) - case *CollateExpr: - return VisitRefOfCollateExpr(in, f) - case *ComparisonExpr: - return VisitRefOfComparisonExpr(in, f) - case *ConvertExpr: - return VisitRefOfConvertExpr(in, f) - case *ConvertUsingExpr: - return VisitRefOfConvertUsingExpr(in, f) - case *CurTimeFuncExpr: - return VisitRefOfCurTimeFuncExpr(in, f) - case *Default: - return VisitRefOfDefault(in, f) - case *ExistsExpr: - return VisitRefOfExistsExpr(in, f) - case *ExtractFuncExpr: - return VisitRefOfExtractFuncExpr(in, f) - case *ExtractValueExpr: - return VisitRefOfExtractValueExpr(in, f) - case *ExtractedSubquery: - return VisitRefOfExtractedSubquery(in, f) - case *FirstOrLastValueExpr: - return VisitRefOfFirstOrLastValueExpr(in, f) - case *FuncExpr: - return VisitRefOfFuncExpr(in, f) - case *GroupConcatExpr: - return VisitRefOfGroupConcatExpr(in, f) - case *IntervalExpr: - return VisitRefOfIntervalExpr(in, f) - case *IntroducerExpr: - return VisitRefOfIntroducerExpr(in, f) - case *IsExpr: - return VisitRefOfIsExpr(in, f) - case *JSONArrayExpr: - return VisitRefOfJSONArrayExpr(in, f) - case *JSONAttributesExpr: - return VisitRefOfJSONAttributesExpr(in, f) - case *JSONContainsExpr: - return VisitRefOfJSONContainsExpr(in, f) - case *JSONContainsPathExpr: - return VisitRefOfJSONContainsPathExpr(in, f) - case *JSONExtractExpr: - return VisitRefOfJSONExtractExpr(in, f) - case *JSONKeysExpr: - return VisitRefOfJSONKeysExpr(in, f) - case *JSONObjectExpr: - return VisitRefOfJSONObjectExpr(in, f) - case *JSONOverlapsExpr: - return VisitRefOfJSONOverlapsExpr(in, f) - case *JSONPrettyExpr: - return VisitRefOfJSONPrettyExpr(in, f) - case *JSONQuoteExpr: - return VisitRefOfJSONQuoteExpr(in, f) - case *JSONRemoveExpr: - return VisitRefOfJSONRemoveExpr(in, f) - case *JSONSchemaValidFuncExpr: - return VisitRefOfJSONSchemaValidFuncExpr(in, f) - case *JSONSchemaValidationReportFuncExpr: - return VisitRefOfJSONSchemaValidationReportFuncExpr(in, f) - case *JSONSearchExpr: - return VisitRefOfJSONSearchExpr(in, f) - case *JSONStorageFreeExpr: - return VisitRefOfJSONStorageFreeExpr(in, f) - case *JSONStorageSizeExpr: - return VisitRefOfJSONStorageSizeExpr(in, f) - case *JSONUnquoteExpr: - return VisitRefOfJSONUnquoteExpr(in, f) - case *JSONValueExpr: - return VisitRefOfJSONValueExpr(in, f) - case *JSONValueMergeExpr: - return VisitRefOfJSONValueMergeExpr(in, f) - case *JSONValueModifierExpr: - return VisitRefOfJSONValueModifierExpr(in, f) - case *LagLeadExpr: - return VisitRefOfLagLeadExpr(in, f) - case ListArg: - return VisitListArg(in, f) - case *Literal: - return VisitRefOfLiteral(in, f) - case *LockingFunc: - return VisitRefOfLockingFunc(in, f) - case *MatchExpr: - return VisitRefOfMatchExpr(in, f) - case *MemberOfExpr: - return VisitRefOfMemberOfExpr(in, f) - case *NTHValueExpr: - return VisitRefOfNTHValueExpr(in, f) - case *NamedWindow: - return VisitRefOfNamedWindow(in, f) - case *NotExpr: - return VisitRefOfNotExpr(in, f) - case *NtileExpr: - return VisitRefOfNtileExpr(in, f) - case *NullVal: - return VisitRefOfNullVal(in, f) - case *Offset: - return VisitRefOfOffset(in, f) - case *OrExpr: - return VisitRefOfOrExpr(in, f) - case *RegexpInstrExpr: - return VisitRefOfRegexpInstrExpr(in, f) - case *RegexpLikeExpr: - return VisitRefOfRegexpLikeExpr(in, f) - case *RegexpReplaceExpr: - return VisitRefOfRegexpReplaceExpr(in, f) - case *RegexpSubstrExpr: - return VisitRefOfRegexpSubstrExpr(in, f) - case *Subquery: - return VisitRefOfSubquery(in, f) - case *SubstrExpr: - return VisitRefOfSubstrExpr(in, f) - case *TimestampFuncExpr: - return VisitRefOfTimestampFuncExpr(in, f) - case *TrimFuncExpr: - return VisitRefOfTrimFuncExpr(in, f) - case *UnaryExpr: - return VisitRefOfUnaryExpr(in, f) - case *UpdateXMLExpr: - return VisitRefOfUpdateXMLExpr(in, f) - case ValTuple: - return VisitValTuple(in, f) - case *ValuesFuncExpr: - return VisitRefOfValuesFuncExpr(in, f) - case *WeightStringFuncExpr: - return VisitRefOfWeightStringFuncExpr(in, f) - case *XorExpr: - return VisitRefOfXorExpr(in, f) - default: - // this should never happen - return nil - } -} func VisitSelectExpr(in SelectExpr, 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 341c986bd56..ae2ed70e1a6 100644 --- a/go/vt/sqlparser/cached_size.go +++ b/go/vt/sqlparser/cached_size.go @@ -1514,7 +1514,7 @@ func (cached *JSONAttributesExpr) CachedSize(alloc bool) int64 { if cc, ok := cached.JSONDoc.(cachedObject); ok { size += cc.CachedSize(true) } - // field Path vitess.io/vitess/go/vt/sqlparser.JSONPathParam + // field Path vitess.io/vitess/go/vt/sqlparser.Expr if cc, ok := cached.Path.(cachedObject); ok { size += cc.CachedSize(true) } @@ -1536,7 +1536,7 @@ func (cached *JSONContainsExpr) CachedSize(alloc bool) int64 { if cc, ok := cached.Candidate.(cachedObject); ok { size += cc.CachedSize(true) } - // field PathList []vitess.io/vitess/go/vt/sqlparser.JSONPathParam + // field PathList []vitess.io/vitess/go/vt/sqlparser.Expr { size += hack.RuntimeAllocSize(int64(cap(cached.PathList)) * int64(16)) for _, elem := range cached.PathList { @@ -1563,7 +1563,7 @@ func (cached *JSONContainsPathExpr) CachedSize(alloc bool) int64 { if cc, ok := cached.OneOrAll.(cachedObject); ok { size += cc.CachedSize(true) } - // field PathList []vitess.io/vitess/go/vt/sqlparser.JSONPathParam + // field PathList []vitess.io/vitess/go/vt/sqlparser.Expr { size += hack.RuntimeAllocSize(int64(cap(cached.PathList)) * int64(16)) for _, elem := range cached.PathList { @@ -1586,7 +1586,7 @@ func (cached *JSONExtractExpr) CachedSize(alloc bool) int64 { if cc, ok := cached.JSONDoc.(cachedObject); ok { size += cc.CachedSize(true) } - // field PathList []vitess.io/vitess/go/vt/sqlparser.JSONPathParam + // field PathList []vitess.io/vitess/go/vt/sqlparser.Expr { size += hack.RuntimeAllocSize(int64(cap(cached.PathList)) * int64(16)) for _, elem := range cached.PathList { @@ -1603,20 +1603,15 @@ func (cached *JSONKeysExpr) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(48) + size += int64(32) } // field JSONDoc vitess.io/vitess/go/vt/sqlparser.Expr if cc, ok := cached.JSONDoc.(cachedObject); ok { size += cc.CachedSize(true) } - // field PathList []vitess.io/vitess/go/vt/sqlparser.JSONPathParam - { - size += hack.RuntimeAllocSize(int64(cap(cached.PathList)) * int64(16)) - for _, elem := range cached.PathList { - if cc, ok := elem.(cachedObject); ok { - size += cc.CachedSize(true) - } - } + // field Path vitess.io/vitess/go/vt/sqlparser.Expr + if cc, ok := cached.Path.(cachedObject); ok { + size += cc.CachedSize(true) } return size } @@ -1784,7 +1779,7 @@ func (cached *JSONSearchExpr) CachedSize(alloc bool) int64 { if cc, ok := cached.EscapeChar.(cachedObject); ok { size += cc.CachedSize(true) } - // field PathList []vitess.io/vitess/go/vt/sqlparser.JSONPathParam + // field PathList []vitess.io/vitess/go/vt/sqlparser.Expr { size += hack.RuntimeAllocSize(int64(cap(cached.PathList)) * int64(16)) for _, elem := range cached.PathList { @@ -1876,7 +1871,7 @@ func (cached *JSONValueExpr) CachedSize(alloc bool) int64 { if cc, ok := cached.JSONDoc.(cachedObject); ok { size += cc.CachedSize(true) } - // field Path vitess.io/vitess/go/vt/sqlparser.JSONPathParam + // field Path vitess.io/vitess/go/vt/sqlparser.Expr if cc, ok := cached.Path.(cachedObject); ok { size += cc.CachedSize(true) } diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index 5d930fa0ae2..4454e40a671 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -2651,6 +2651,9 @@ var ( }, { input: `SELECT JSON_EXTRACT('{"a": 1, "b": 2, "c": {"d": 4}}', '$.a', @j)`, output: `select json_extract('{\"a\": 1, \"b\": 2, \"c\": {\"d\": 4}}', '$.a', @j) from dual`, + }, { + input: "SELECT JSON_EXTRACT(@k, TRIM('abc'))", + output: `select json_extract(@k, trim('abc')) from dual`, }, { input: `SELECT JSON_KEYS('{\"a\": 1, \"b\": 2, \"c\": {\"d\": 4}}', '$.a')`, output: `select json_keys('{\"a\": 1, \"b\": 2, \"c\": {\"d\": 4}}', '$.a') from dual`, @@ -2810,6 +2813,9 @@ var ( }, { input: "SELECT JSON_INSERT(@i,@j,@k)", output: "select json_insert(@i, @j, @k) from dual", + }, { + input: "select JSON_EXTRACT(seg_value, JSON_UNQUOTE(JSON_SEARCH(seg_key, 'val1', 'val2'))) from event limit 1 ", + output: "select json_extract(seg_value, json_unquote(json_search(seg_key, 'val1', 'val2'))) from `event` limit 1", }, { input: "SELECT JSON_INSERT(@j, '$.a', 10, '$.c', '[true, false]')", output: "select json_insert(@j, '$.a', 10, '$.c', '[true, false]') from dual", @@ -3210,9 +3216,6 @@ func TestInvalid(t *testing.T) { }, { input: "SELECT JSON_CONTAINS_PATH(@j, @j2)", err: "syntax error at position 35", - }, { - input: "SELECT JSON_EXTRACT(@k, TRIM('abc'))", - err: "syntax error at position 30", }, { input: "SELECT JSON_EXTRACT(@k)", err: "syntax error at position 24", @@ -3285,13 +3288,11 @@ func TestInvalid(t *testing.T) { }} for _, tcase := range invalidSQL { - _, err := Parse(tcase.input) - if err == nil { - t.Errorf("Parse invalid query(%q), got: nil, want: %s...", tcase.input, tcase.err) - } - if err != nil && !strings.Contains(err.Error(), tcase.err) { - t.Errorf("Parse invalid query(%q), got: %v, want: %s...", tcase.input, err, tcase.err) - } + t.Run(tcase.input, func(t *testing.T) { + _, err := Parse(tcase.input) + require.Error(t, err) + require.Contains(t, err.Error(), tcase.err) + }) } } @@ -5509,7 +5510,7 @@ func testFile(t *testing.T, filename, tempDir string) { fail := false expected := strings.Builder{} for tcase := range iterateExecFile(filename) { - t.Run(fmt.Sprintf("%d : %s", tcase.lineno, tcase.comments), func(t *testing.T) { + t.Run(fmt.Sprintf("%d : %s", tcase.lineno, tcase.input), func(t *testing.T) { if tcase.output == "" && tcase.errStr == "" { tcase.output = tcase.input } @@ -5529,7 +5530,7 @@ func testFile(t *testing.T, filename, tempDir string) { if err != nil { expected.WriteString(fmt.Sprintf("ERROR\n%s\nEND\n", escapeNewLines(err.Error()))) fail = true - t.Errorf("File: %s, Line: %d\nDiff:\n%s\n[%s] \n[%s]", filename, tcase.lineno, cmp.Diff(tcase.errStr, err.Error()), tcase.errStr, err.Error()) + t.Errorf("File: %s:%d\nDiff:\n%s\n[%s] \n[%s]", filename, tcase.lineno, cmp.Diff(tcase.errStr, err.Error()), tcase.errStr, err.Error()) } else { out := String(tree) expected.WriteString(fmt.Sprintf("OUTPUT\n%s\nEND\n", escapeNewLines(out))) diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index 80025dccb49..3cf226c636f 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -1317,7 +1317,7 @@ var yyExca = [...]int{ 237, 766, -2, 764, -1, 114, - 234, 1380, + 234, 1375, -2, 119, -1, 116, 1, 146, @@ -1333,26 +1333,26 @@ var yyExca = [...]int{ 335, 153, -2, 507, -1, 736, - 218, 1401, - -2, 1397, + 218, 1396, + -2, 1392, -1, 737, - 218, 1402, - -2, 1398, + 218, 1397, + -2, 1393, -1, 813, 59, 834, -2, 849, -1, 850, - 148, 1823, + 148, 1818, -2, 112, -1, 851, - 148, 1656, + 148, 1651, -2, 113, -1, 857, - 148, 1742, - -2, 1374, + 148, 1737, + -2, 1369, -1, 1007, - 148, 1581, - -2, 1371, + 148, 1576, + -2, 1366, -1, 1048, 245, 41, 250, 41, @@ -1381,8 +1381,8 @@ var yyExca = [...]int{ 250, 42, -2, 396, -1, 1852, - 218, 1406, - -2, 1400, + 218, 1401, + -2, 1395, -1, 1944, 132, 153, 173, 153, @@ -1401,969 +1401,974 @@ var yyExca = [...]int{ -1, 2343, 602, 666, -2, 640, - -1, 2500, - 49, 1341, - -2, 1335, - -1, 2743, + -1, 2496, + 49, 1336, + -2, 1330, + -1, 2739, 87, 39, -2, 892, - -1, 2781, + -1, 2777, 7, 53, 18, 53, 20, 53, 88, 53, -2, 883, - -1, 3105, + -1, 3099, 602, 666, -2, 654, - -1, 3195, - 22, 1744, - 32, 1744, - 174, 1744, - 257, 1744, - 315, 1744, - 316, 1744, - 317, 1744, - 318, 1744, - 319, 1744, - 320, 1744, - 321, 1744, - 323, 1744, - 324, 1744, - 325, 1744, - 326, 1744, - 327, 1744, - 328, 1744, - 329, 1744, - 330, 1744, - 331, 1744, - 332, 1744, - 333, 1744, - 334, 1744, - 336, 1744, - 338, 1744, - 339, 1744, - 340, 1744, - 341, 1744, - 342, 1744, - 343, 1744, - 344, 1744, - 345, 1744, - 346, 1744, - 349, 1744, - 350, 1744, - 351, 1744, - 352, 1744, - 353, 1744, - 354, 1744, - 355, 1744, - 356, 1744, - 357, 1744, - 481, 1744, + -1, 3189, + 22, 1739, + 32, 1739, + 174, 1739, + 257, 1739, + 315, 1739, + 316, 1739, + 317, 1739, + 318, 1739, + 319, 1739, + 320, 1739, + 321, 1739, + 323, 1739, + 324, 1739, + 325, 1739, + 326, 1739, + 327, 1739, + 328, 1739, + 329, 1739, + 330, 1739, + 331, 1739, + 332, 1739, + 333, 1739, + 334, 1739, + 336, 1739, + 338, 1739, + 339, 1739, + 340, 1739, + 341, 1739, + 342, 1739, + 343, 1739, + 344, 1739, + 345, 1739, + 346, 1739, + 349, 1739, + 350, 1739, + 351, 1739, + 352, 1739, + 353, 1739, + 354, 1739, + 355, 1739, + 356, 1739, + 357, 1739, + 481, 1739, -2, 598, } const yyPrivate = 57344 -const yyLast = 45805 +const yyLast = 45352 var yyAct = [...]int{ - 736, 2442, 3279, 745, 2885, 2886, 3267, 738, 2884, 3086, - 643, 3173, 3236, 3193, 3237, 1445, 739, 2718, 1941, 3138, - 2858, 3161, 3070, 1894, 2649, 2555, 2562, 1874, 2158, 2612, - 3021, 3, 3068, 2603, 2617, 2614, 2613, 2611, 713, 37, - 2513, 1195, 2616, 1366, 2178, 2615, 2845, 2913, 1876, 2516, - 806, 186, 2632, 2461, 186, 3058, 591, 186, 714, 2206, - 2570, 1403, 606, 828, 186, 2918, 626, 2011, 2517, 2746, - 2631, 2514, 186, 2752, 2440, 630, 2403, 2441, 712, 711, - 652, 2772, 1898, 2634, 1914, 2501, 2233, 186, 2246, 2511, - 2738, 624, 1499, 622, 2308, 2269, 2386, 2654, 2340, 1974, - 1999, 1979, 2309, 2042, 2310, 1930, 1919, 155, 829, 606, - 808, 618, 606, 186, 606, 855, 810, 2258, 814, 1918, - 1144, 36, 1010, 2225, 38, 1546, 1390, 1846, 1812, 2208, - 2239, 1056, 623, 1813, 1739, 1839, 831, 1749, 1906, 1697, - 2378, 2058, 1981, 2302, 1038, 141, 95, 2020, 96, 1998, - 852, 1043, 1434, 1412, 635, 2277, 91, 1921, 1528, 1281, - 1760, 1370, 1646, 1216, 1716, 1535, 1017, 1642, 1046, 1014, - 1996, 1626, 1049, 1018, 1044, 1045, 1970, 1173, 1431, 1899, - 1417, 820, 1187, 1433, 1809, 1248, 1651, 1849, 119, 117, - 118, 124, 1494, 125, 98, 1520, 1128, 842, 818, 76, - 613, 815, 1080, 159, 816, 97, 1866, 1284, 3095, 1288, - 2333, 85, 89, 3268, 2622, 2846, 2600, 102, 2013, 2014, - 2015, 2622, 1193, 3123, 2013, 2362, 2361, 2619, 2331, 2056, - 8, 1611, 2838, 817, 77, 562, 2801, 595, 7, 87, - 836, 6, 841, 90, 126, 87, 87, 822, 3220, 3124, - 2394, 120, 2395, 1719, 1085, 3119, 87, 1704, 104, 105, - 1060, 108, 1703, 1011, 114, 3118, 614, 183, 2889, 2889, - 557, 1702, 2620, 188, 189, 190, 1701, 809, 1036, 2620, - 1217, 1700, 807, 1871, 1872, 1699, 1095, 849, 856, 1682, - 802, 803, 804, 805, 2626, 1691, 813, 1059, 823, 3214, - 1035, 2626, 1217, 2204, 2707, 1034, 1033, 1032, 616, 830, - 617, 2497, 3240, 2046, 1027, 1022, 1086, 1089, 1090, 2353, - 120, 2235, 3290, 2465, 844, 845, 1397, 3235, 751, 752, - 753, 3258, 3224, 2723, 2722, 2356, 3222, 2044, 3071, 1101, - 2179, 1709, 2671, 3017, 3016, 1084, 1082, 595, 751, 752, - 753, 1083, 2851, 2888, 2888, 2852, 3119, 2045, 3223, 1098, - 1099, 1100, 3221, 1103, 1104, 1105, 1106, 2100, 3287, 1109, - 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, - 1120, 1121, 1122, 1123, 1124, 1125, 3171, 1227, 120, 1902, - 3271, 78, 3114, 3249, 2859, 3174, 3162, 2039, 182, 3170, - 2402, 3198, 2688, 1509, 2205, 2623, 3203, 3113, 2551, 1227, - 2370, 1435, 2623, 1436, 2369, 2393, 2558, 2097, 78, 78, - 3201, 1935, 121, 1163, 143, 2552, 2553, 1190, 3100, 3207, - 3208, 1131, 2098, 2286, 1990, 164, 2285, 2572, 2573, 2287, - 596, 800, 2249, 799, 3202, 78, 1936, 1937, 80, 1151, - 715, 1249, 2334, 1164, 1152, 3087, 1168, 1169, 2298, 1984, - 1157, 2559, 1954, 1953, 1873, 595, 153, 2250, 2931, 87, - 715, 2749, 142, 3026, 1250, 1251, 1252, 1253, 1254, 1255, - 1256, 1258, 1257, 1259, 1260, 3241, 1223, 2561, 1026, 1215, - 1180, 1028, 1182, 161, 1151, 162, 87, 87, 1127, 1152, - 2651, 2556, 1031, 2429, 1137, 1138, 3242, 1150, 1223, 1149, - 2679, 130, 131, 152, 151, 181, 2242, 2243, 2572, 2573, - 604, 2677, 1690, 87, 595, 2557, 595, 1692, 1693, 1694, - 1179, 1181, 608, 1189, 602, 2655, 1140, 2379, 1165, 3047, - 1374, 3048, 2341, 1601, 2571, 1158, 2021, 2064, 2365, 2059, - 596, 1170, 3270, 1627, 1184, 1632, 2574, 186, 2563, 186, - 1029, 1171, 186, 2644, 1166, 1167, 1902, 1102, 2076, 1133, - 2077, 2645, 2078, 1900, 1901, 2070, 2067, 2069, 2068, 2071, - 2072, 1172, 2381, 1031, 1126, 2652, 2840, 1602, 1031, 1603, - 1023, 2653, 606, 1197, 606, 606, 3215, 1025, 1024, 2061, - 2839, 1983, 2065, 2079, 1108, 1107, 2024, 1069, 3001, 606, - 606, 1067, 2893, 1915, 147, 128, 154, 135, 127, 2836, - 148, 149, 2063, 1040, 1039, 2571, 165, 1177, 1040, 1078, - 1077, 1178, 1076, 1075, 1074, 171, 136, 2574, 1073, 1072, - 1071, 1183, 1209, 2464, 1066, 1377, 1029, 1513, 1130, 37, - 139, 137, 132, 133, 134, 138, 2574, 1263, 1079, 3291, - 3247, 2430, 129, 2098, 2062, 1176, 3283, 1015, 596, 1058, - 2385, 140, 1052, 1015, 1051, 1015, 1534, 1263, 1030, 1013, - 1643, 1161, 1997, 843, 1147, 2382, 1153, 1154, 1155, 1156, - 1222, 1219, 1220, 1221, 1226, 1228, 1225, 2593, 1224, 2364, - 3094, 1088, 2332, 1507, 2050, 2300, 1037, 1051, 1218, 1191, - 1192, 1087, 1222, 1219, 1220, 1221, 1226, 1228, 1225, 2043, - 1224, 1506, 1639, 1266, 1267, 1268, 1269, 596, 1203, 596, - 1218, 1091, 2835, 1274, 2335, 1505, 2367, 1058, 2209, 2211, - 2351, 1640, 2398, 1503, 1129, 561, 2560, 556, 748, 1097, - 1900, 1901, 156, 1070, 748, 748, 3083, 1068, 2750, 1030, - 1185, 1633, 2112, 116, 1030, 1634, 1635, 2788, 1198, 2377, - 1057, 2041, 2376, 2768, 2624, 2625, 1051, 1054, 1055, 2282, - 1015, 2624, 2625, 1533, 1048, 1052, 1364, 2628, 1631, 2245, - 1058, 2189, 1270, 1865, 2628, 2404, 2240, 3027, 1264, 1265, - 186, 1942, 1058, 1421, 606, 606, 3176, 1344, 1613, 1612, - 1614, 1615, 1616, 2799, 2800, 3112, 1199, 1200, 1338, 2355, - 186, 1359, 2887, 2887, 2388, 1142, 3176, 3175, 2099, 2387, - 150, 2388, 1263, 1260, 2550, 3206, 2387, 825, 1057, 606, - 1987, 1212, 1174, 186, 77, 1146, 1380, 3175, 606, 1210, - 1384, 1188, 1211, 3108, 606, 1652, 810, 1081, 1058, 1286, - 1381, 1287, 2831, 2354, 2762, 1290, 86, 1058, 2060, 1365, - 1378, 111, 1139, 1136, 144, 81, 1636, 145, 2406, 3205, - 1988, 1160, 3281, 1437, 1213, 3282, 1148, 3280, 1986, 852, - 2422, 1057, 1162, 86, 86, 1761, 1061, 1051, 1761, 2324, - 2126, 1063, 2210, 1057, 2564, 1064, 1062, 157, 2568, 1051, - 1054, 1055, 3250, 1015, 169, 1232, 2567, 1048, 1052, 1382, - 86, 1383, 1989, 95, 1233, 96, 1345, 1346, 1347, 1348, - 1349, 2927, 1985, 1365, 1628, 2806, 1629, 2805, 1047, 1630, - 2028, 112, 1231, 1232, 2416, 2415, 2414, 2408, 1132, 2412, - 2569, 2407, 1543, 2405, 1542, 2565, 177, 1371, 2410, 1057, - 2566, 1096, 2038, 2040, 2033, 1532, 2036, 2409, 1057, 1069, - 1067, 98, 3243, 1061, 1051, 2033, 2789, 3140, 1063, 1422, - 3076, 3285, 1064, 1062, 2411, 2413, 1145, 1175, 158, 163, - 160, 166, 167, 168, 170, 172, 173, 174, 175, 1368, - 1653, 2037, 1233, 1065, 176, 178, 179, 180, 1249, 2865, - 186, 2866, 2035, 3009, 1495, 807, 3008, 809, 1402, 1379, - 3141, 2999, 1399, 3077, 1504, 1907, 1908, 856, 2877, 1233, - 1385, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1258, 1257, - 1259, 1260, 1427, 1428, 1711, 1713, 1714, 606, 3292, 1530, - 1255, 1256, 1258, 1257, 1259, 1260, 1230, 1539, 1231, 1232, - 2876, 1541, 1432, 2813, 1544, 1545, 606, 606, 1712, 606, - 2812, 606, 606, 2802, 606, 606, 606, 606, 606, 606, + 736, 2878, 2880, 3260, 3272, 2879, 3080, 739, 643, 3167, + 3230, 1941, 3187, 745, 1743, 2854, 2714, 738, 3229, 1445, + 3132, 3155, 1894, 2645, 2551, 1874, 2558, 3064, 3015, 2608, + 3, 1195, 2599, 2509, 3062, 1366, 2613, 2610, 2609, 2607, + 2178, 2841, 2512, 2612, 2611, 713, 37, 3052, 2628, 1876, + 806, 186, 2907, 2457, 186, 2206, 591, 186, 714, 2566, + 2011, 626, 606, 1403, 186, 828, 2627, 2510, 2748, 2513, + 630, 623, 186, 2912, 711, 2403, 2246, 2742, 712, 652, + 1914, 2630, 2768, 2497, 1144, 2233, 2507, 186, 1898, 2734, + 1974, 624, 2308, 2340, 2386, 2650, 2269, 1999, 1979, 2309, + 2042, 2310, 1930, 618, 622, 2258, 829, 155, 36, 606, + 1919, 1390, 606, 186, 606, 1010, 2225, 855, 808, 2239, + 1918, 2208, 38, 810, 1846, 814, 1813, 1739, 1749, 2020, + 2378, 1697, 1056, 1546, 1812, 1173, 1528, 1906, 1499, 2058, + 852, 1981, 141, 831, 95, 1998, 2302, 1038, 1839, 2277, + 1434, 1412, 91, 635, 1080, 1281, 96, 1921, 1370, 1043, + 1760, 1716, 1216, 1535, 1642, 1017, 1014, 1996, 1626, 1049, + 1044, 1018, 1970, 1045, 1431, 820, 1248, 1646, 1193, 1417, + 1433, 1809, 1899, 1187, 159, 1494, 1651, 1520, 815, 124, + 98, 1046, 1128, 125, 842, 818, 85, 613, 1284, 76, + 102, 97, 816, 1866, 3089, 1288, 2333, 89, 3261, 2618, + 2013, 2014, 2015, 3117, 188, 189, 190, 2842, 2596, 2013, + 2362, 2361, 2615, 2331, 2056, 2797, 119, 117, 118, 817, + 77, 836, 120, 841, 1611, 8, 126, 2834, 562, 3118, + 90, 104, 105, 822, 108, 87, 87, 114, 1217, 3213, + 183, 87, 595, 557, 1085, 87, 7, 595, 2394, 6, + 1719, 1060, 1849, 614, 2395, 3112, 3113, 2616, 1704, 1217, + 1703, 1011, 2883, 802, 803, 804, 805, 809, 807, 813, + 751, 752, 753, 849, 1871, 1872, 1702, 1095, 1701, 2622, + 1700, 856, 1699, 1036, 830, 823, 1682, 2883, 1082, 592, + 616, 120, 617, 1035, 1691, 2618, 3208, 844, 845, 2204, + 1233, 1098, 1099, 1100, 2493, 1103, 1104, 1105, 1106, 2235, + 1059, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, + 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 3233, 1086, + 1089, 1090, 1101, 1034, 1033, 1032, 1027, 578, 2046, 2461, + 751, 752, 753, 182, 1397, 1227, 3113, 2882, 2353, 576, + 188, 189, 190, 2616, 2336, 3217, 3283, 3215, 3228, 120, + 1022, 3251, 2719, 2718, 2044, 2356, 1227, 121, 3065, 143, + 2179, 1709, 2882, 2667, 3011, 2622, 3010, 1084, 1990, 1083, + 164, 3216, 2045, 3214, 3280, 2847, 3165, 3168, 2848, 573, + 2619, 3197, 715, 3264, 595, 78, 78, 3108, 587, 80, + 78, 3242, 78, 1984, 2100, 3195, 2855, 3156, 2039, 3164, + 2402, 153, 3192, 583, 3201, 3202, 2684, 142, 3094, 3107, + 1509, 2370, 2568, 2569, 2249, 2369, 2548, 2549, 2205, 3196, + 1026, 2547, 1230, 1028, 1231, 1232, 1902, 1435, 161, 1436, + 162, 1936, 1937, 2393, 1223, 596, 2097, 1215, 1935, 2250, + 596, 2925, 1163, 800, 799, 1873, 1522, 1523, 152, 151, + 181, 1131, 715, 1190, 2286, 1223, 1151, 2285, 3081, 2098, + 2287, 1152, 1151, 87, 87, 2334, 2298, 1152, 87, 1150, + 87, 1149, 563, 1164, 565, 579, 2619, 598, 1157, 597, + 569, 2647, 567, 571, 580, 572, 595, 566, 2745, 577, + 595, 3234, 568, 581, 582, 585, 588, 589, 590, 586, + 584, 2675, 575, 599, 1031, 595, 1137, 1138, 2242, 2243, + 1127, 2429, 3235, 1168, 1169, 2673, 1692, 1693, 1694, 2567, + 1031, 604, 1023, 1954, 1953, 1690, 602, 1102, 608, 1025, + 1024, 2570, 1902, 2651, 2379, 1983, 1601, 186, 1140, 186, + 1374, 2341, 186, 2021, 1180, 1632, 1182, 2365, 2059, 147, + 1524, 154, 3041, 1521, 3042, 148, 149, 2640, 1165, 1189, + 3263, 165, 1029, 1158, 2064, 2641, 2648, 1627, 1133, 1249, + 171, 1172, 606, 1197, 606, 606, 1184, 2076, 1029, 2077, + 1602, 2078, 1603, 3209, 1179, 1181, 2836, 596, 2381, 606, + 606, 3020, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1258, + 1257, 1259, 1260, 1031, 1126, 1166, 1167, 2835, 1170, 2079, + 1900, 1901, 2070, 2067, 2069, 2068, 2071, 2072, 1171, 2065, + 1108, 1209, 1107, 2649, 2063, 2061, 2995, 2832, 1147, 2024, + 1153, 1154, 1155, 1156, 2887, 1069, 37, 1915, 1222, 1219, + 1220, 1221, 1226, 1228, 1225, 1040, 1224, 1263, 1377, 2460, + 1078, 1067, 2098, 1191, 1192, 1077, 1218, 1076, 1075, 1222, + 1219, 1220, 1221, 1226, 1228, 1225, 2062, 1224, 1130, 2430, + 1039, 1074, 1073, 1072, 1040, 1071, 3088, 1218, 2332, 1066, + 1030, 1177, 1513, 1079, 3240, 1178, 600, 156, 2570, 596, + 1015, 1263, 1015, 596, 1013, 1183, 1030, 1052, 1185, 1161, + 3276, 1037, 3284, 1266, 1267, 1268, 1269, 593, 596, 2385, + 1015, 1051, 1643, 1274, 1088, 1997, 1900, 1901, 1534, 1176, + 1051, 843, 594, 2382, 1087, 2050, 2209, 2211, 1639, 1203, + 1091, 2589, 2398, 2364, 748, 748, 2043, 2367, 3170, 1507, + 2831, 1506, 2300, 1058, 748, 1505, 2351, 2335, 1640, 2620, + 2621, 1633, 1199, 1200, 1503, 1634, 1635, 561, 556, 3169, + 1264, 1265, 2624, 1097, 1129, 150, 2377, 3077, 2784, 2376, + 2764, 1270, 2282, 1364, 1987, 2746, 2112, 2245, 1058, 1030, + 186, 1070, 2795, 2796, 606, 606, 2189, 1344, 2041, 1865, + 1421, 1613, 1612, 1614, 1615, 1616, 1359, 1068, 1631, 1338, + 186, 1142, 2240, 116, 1942, 1263, 2881, 1260, 3170, 144, + 3200, 2546, 145, 2388, 1988, 825, 81, 3106, 2387, 606, + 77, 1188, 1986, 186, 3102, 1533, 1212, 1081, 606, 3169, + 1286, 2881, 1287, 1380, 606, 1198, 1365, 1384, 2355, 2827, + 1381, 1290, 157, 810, 1057, 2620, 2621, 1210, 1146, 169, + 1211, 2758, 1378, 1174, 3199, 2099, 1989, 1652, 2624, 852, + 86, 86, 2703, 1790, 1148, 86, 1985, 86, 111, 2060, + 2388, 1058, 1058, 1636, 1437, 2387, 1213, 2422, 1761, 1057, + 2126, 2324, 2354, 1761, 1139, 1051, 1054, 1055, 3243, 1015, + 2210, 177, 1232, 1048, 1052, 1231, 1232, 1382, 2921, 1160, + 1365, 95, 1345, 1346, 1347, 1348, 1349, 1058, 1136, 1383, + 1162, 2802, 2801, 96, 1047, 3021, 3274, 2028, 1543, 3275, + 1542, 3273, 1532, 158, 163, 160, 166, 167, 168, 170, + 172, 173, 174, 175, 2038, 2036, 1069, 1371, 112, 176, + 178, 179, 180, 1067, 1628, 2404, 1629, 98, 2033, 1630, + 3236, 1782, 1771, 1772, 1773, 1774, 1784, 1775, 1776, 1777, + 1789, 1785, 1778, 1779, 1786, 1787, 1788, 1780, 1781, 1783, + 3134, 1058, 1057, 1057, 2033, 1096, 1368, 1061, 1051, 1233, + 2040, 1422, 1063, 2785, 1379, 2037, 1064, 1062, 1132, 1145, + 186, 807, 3237, 1385, 1495, 1402, 3070, 809, 1175, 1399, + 1432, 2861, 1653, 2862, 1504, 3278, 3003, 1065, 1057, 1621, + 856, 2035, 3002, 3135, 1051, 1054, 1055, 3285, 1015, 1427, + 1428, 2993, 1048, 1052, 1711, 1713, 1714, 606, 2406, 1530, + 1255, 1256, 1258, 1257, 1259, 1260, 1619, 1539, 2873, 3071, + 1608, 1541, 2872, 2809, 1544, 1545, 606, 606, 1712, 606, + 2808, 606, 606, 2798, 606, 606, 606, 606, 606, 606, 1253, 1254, 1255, 1256, 1258, 1257, 1259, 1260, 1576, 1577, - 1249, 606, 2397, 3244, 1721, 186, 1582, 1250, 1251, 1252, - 1253, 1254, 1255, 1256, 1258, 1257, 1259, 1260, 1722, 1261, - 1262, 1720, 186, 1250, 1251, 1252, 1253, 1254, 1255, 1256, - 1258, 1257, 1259, 1260, 1249, 606, 2111, 186, 2104, 2105, - 2106, 2601, 2589, 3293, 1230, 1540, 1231, 1232, 1641, 2306, - 2305, 606, 1993, 186, 751, 752, 753, 1250, 1251, 1252, - 1253, 1254, 1255, 1256, 1258, 1257, 1259, 1260, 1622, 186, - 1596, 1230, 1575, 1231, 1232, 1578, 186, 1233, 1621, 1526, - 2424, 847, 1619, 1606, 1605, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 606, 1604, 1536, 1536, 1519, 188, - 189, 190, 1548, 2796, 1549, 1608, 1551, 1553, 606, 606, - 1557, 1559, 1561, 1563, 1565, 1237, 1238, 1239, 1240, 1241, - 1242, 1243, 1235, 1579, 1594, 1538, 186, 1588, 1502, 1585, - 1584, 1537, 1251, 1252, 1253, 1254, 1255, 1256, 1258, 1257, - 1259, 1260, 1620, 1517, 1233, 1515, 1618, 1516, 1510, 1511, - 1512, 1529, 1233, 1583, 1555, 1508, 3103, 188, 189, 190, - 3254, 1397, 3102, 1841, 1397, 3080, 1397, 1843, 1648, 1607, - 3079, 1765, 3078, 1233, 606, 1766, 1743, 1747, 1746, 1746, - 1406, 1580, 1744, 1744, 746, 1233, 3004, 1752, 1656, 2989, - 2988, 2685, 188, 189, 190, 1660, 2289, 1662, 1663, 1664, - 1665, 2926, 606, 606, 1669, 2924, 188, 189, 190, 1230, - 2009, 1231, 1232, 1717, 1586, 1587, 1681, 1644, 2873, 2810, - 1592, 1593, 188, 189, 190, 2795, 2007, 3252, 1397, 2656, - 1407, 1034, 1033, 1032, 2592, 3185, 1397, 1654, 1655, 2591, - 1715, 188, 189, 190, 2315, 1842, 120, 2303, 1361, 1725, - 2054, 1659, 2053, 1897, 1879, 606, 1658, 1397, 1666, 1667, - 1668, 1683, 1810, 188, 189, 190, 1649, 2005, 2159, 1762, - 1617, 1609, 1599, 1595, 2648, 1591, 1230, 1680, 1231, 1232, - 1233, 1590, 1589, 186, 1230, 1408, 1231, 1232, 606, 1724, - 1850, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, - 1735, 1736, 1737, 1738, 1186, 1230, 1202, 1231, 1232, 1718, - 3034, 92, 186, 2231, 3269, 606, 1679, 1230, 94, 1231, - 1232, 1868, 93, 1840, 3033, 186, 2993, 1810, 2992, 606, - 1687, 1688, 3231, 1397, 186, 1233, 186, 2857, 186, 186, - 606, 1723, 2342, 606, 2320, 2143, 2545, 1233, 3232, 2231, - 3168, 2231, 3148, 2117, 606, 1884, 2098, 1885, 1466, 1950, - 92, 2231, 3144, 2116, 1852, 3131, 1397, 1249, 2761, 1748, - 1245, 93, 1246, 1850, 1951, 1753, 1754, 1397, 1854, 1855, - 1233, 852, 1229, 95, 852, 96, 1247, 1261, 1262, 1244, - 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1258, 1257, 1259, - 1260, 2231, 3096, 95, 1233, 96, 2849, 3093, 2247, 606, - 2763, 1851, 1230, 2227, 1231, 1232, 2000, 2001, 2002, 1397, - 2247, 2004, 2006, 2008, 2703, 1397, 1397, 1890, 94, 1396, - 3183, 1397, 3136, 1917, 3012, 1397, 606, 1853, 2231, 3000, - 1856, 1857, 606, 1539, 2849, 1397, 1539, 1852, 1539, 1960, - 1961, 1962, 1963, 1955, 2032, 1956, 1957, 1958, 1959, 737, - 1945, 94, 1233, 3181, 1397, 100, 822, 1230, 1878, 1231, - 1232, 1966, 1967, 1968, 1969, 2254, 1946, 3107, 1928, 1230, - 2255, 1231, 1232, 2231, 1233, 1889, 2113, 3056, 1397, 606, - 2022, 606, 2761, 1892, 1912, 1233, 2255, 606, 606, 2727, - 1454, 1410, 2703, 1976, 2580, 1949, 2231, 2847, 1982, 1910, - 187, 2485, 1230, 187, 1231, 1232, 187, 2034, 1932, 856, - 1397, 607, 856, 187, 1933, 2033, 1397, 1934, 1948, 1947, - 2255, 187, 2766, 1397, 2113, 186, 1230, 2113, 1231, 1232, - 2512, 101, 186, 1229, 1397, 2783, 187, 2152, 1992, 186, - 186, 2761, 100, 186, 99, 186, 2152, 1397, 2019, 2582, - 2581, 2132, 186, 94, 2578, 2579, 1060, 1409, 607, 186, - 2131, 607, 187, 607, 1977, 2033, 1536, 1972, 1973, 1397, - 1233, 2033, 1991, 1467, 1995, 2578, 2577, 2255, 1397, 2003, - 2122, 2113, 1397, 2016, 1230, 186, 1231, 1232, 2098, 2363, - 606, 2027, 1905, 1059, 2030, 1401, 2031, 1869, 2026, 1977, - 2029, 2047, 2025, 1233, 1498, 2345, 1230, 1233, 1231, 1232, - 1695, 1233, 1397, 2338, 2339, 2049, 1233, 1230, 1638, 1231, - 1232, 2051, 2052, 1233, 2231, 2230, 1429, 2048, 1790, 1233, - 1042, 1480, 1483, 1484, 1485, 1486, 1487, 1488, 1041, 1489, - 1490, 1491, 1492, 1493, 1468, 1469, 1470, 1471, 1452, 1453, - 1481, 87, 1455, 2121, 1456, 1457, 1458, 1459, 1460, 1461, - 1462, 1463, 1464, 3211, 2057, 1465, 1472, 1473, 1474, 1475, - 1476, 1477, 1478, 1479, 3151, 2089, 2090, 3023, 1233, 1717, - 2092, 1404, 1233, 1498, 1497, 2604, 3054, 1397, 2990, 2093, - 3051, 1397, 1443, 1442, 3037, 1397, 812, 1233, 101, 2735, - 1397, 2938, 1230, 1233, 1231, 1232, 2732, 1397, 2082, 100, - 2830, 99, 2730, 1397, 2109, 1233, 1782, 1771, 1772, 1773, - 1774, 1784, 1775, 1776, 1777, 1789, 1785, 1778, 1779, 1786, - 1787, 1788, 1780, 1781, 1783, 1230, 1233, 1231, 1232, 1230, - 1233, 1231, 1232, 1230, 1233, 1231, 1232, 2827, 1230, 2808, - 1231, 1232, 1233, 2694, 2108, 1230, 2110, 1231, 1232, 2096, - 2311, 1230, 3245, 1231, 1232, 2683, 1397, 1233, 2693, 1500, - 186, 1233, 1975, 2646, 87, 1718, 1233, 2312, 186, 1397, - 2184, 1397, 2215, 606, 1746, 2107, 2167, 1397, 1744, 606, - 2606, 2602, 2278, 2278, 2346, 1971, 1965, 1482, 1964, 3091, - 606, 1624, 1531, 1527, 1496, 113, 2219, 2201, 2312, 1131, - 1230, 2650, 1231, 1232, 1230, 1233, 1231, 1232, 3024, 2737, - 2125, 1233, 1990, 2733, 186, 3264, 2213, 2705, 186, 1230, - 1882, 1231, 1232, 2773, 2774, 1230, 2997, 1231, 1232, 1233, - 3262, 2818, 2135, 2288, 2123, 1685, 2251, 1230, 3217, 1231, - 1232, 2832, 3238, 37, 2701, 2279, 2279, 2141, 3117, 2691, - 1233, 3042, 2271, 2776, 2598, 2281, 2098, 2597, 1230, 2596, - 1231, 1232, 1230, 2512, 1231, 1232, 1230, 2325, 1231, 1232, - 2232, 1852, 2083, 2908, 1230, 2907, 1231, 1232, 2819, 2820, - 2821, 606, 1233, 2779, 2778, 2534, 1233, 186, 2690, 1230, - 2535, 1231, 1232, 1230, 186, 1231, 1232, 1686, 1230, 2531, - 1231, 1232, 2530, 3169, 1233, 2532, 1896, 2228, 606, 1405, - 2533, 1233, 1888, 2307, 3075, 606, 2767, 1371, 1851, 1539, - 1539, 2203, 2241, 2906, 606, 2186, 2187, 2490, 2489, 2299, - 2301, 2337, 2917, 2200, 2757, 2270, 2224, 1230, 2229, 1231, - 1232, 2360, 2292, 1230, 1567, 1231, 1232, 2919, 2499, 2244, - 1637, 2814, 186, 186, 186, 186, 186, 2276, 2359, 1571, - 826, 1230, 2754, 1231, 1232, 2199, 798, 1233, 827, 2198, - 2753, 1982, 2576, 186, 186, 2280, 2296, 2283, 2290, 1233, - 2316, 1757, 1230, 1093, 1231, 1232, 1092, 2197, 2293, 186, - 1201, 1568, 1569, 1570, 2196, 1758, 187, 2664, 187, 2304, - 2311, 187, 2815, 2816, 2817, 1233, 2502, 2504, 606, 2391, - 1572, 1573, 1574, 2313, 1230, 2505, 1231, 1232, 1230, 92, - 1231, 1232, 2536, 2321, 2264, 2265, 94, 2322, 94, 2352, - 93, 607, 2759, 607, 607, 121, 1230, 2358, 1231, 1232, - 2326, 2327, 2328, 1230, 3277, 1231, 1232, 92, 607, 607, - 2195, 1746, 1519, 1746, 2594, 1744, 1746, 1744, 93, 2086, - 1744, 1746, 2182, 3190, 2421, 1744, 1907, 1908, 3092, 3019, - 606, 2575, 2268, 1842, 1893, 1842, 2314, 2347, 2348, 2075, - 606, 2317, 2318, 2417, 2488, 2357, 2074, 1233, 2176, 834, - 835, 2073, 2487, 2739, 2400, 2399, 2102, 99, 3063, 1230, - 3062, 1231, 1232, 606, 3045, 2380, 101, 2455, 2456, 2457, - 2458, 1230, 2383, 1231, 1232, 1233, 2466, 100, 186, 99, - 2925, 2473, 606, 2443, 2445, 2443, 2923, 2468, 2443, 2922, - 2448, 2915, 2828, 2443, 2758, 2449, 606, 1230, 2756, 1231, - 1232, 2401, 2418, 606, 606, 2607, 186, 186, 186, 186, - 186, 1840, 2017, 1840, 1514, 833, 2389, 100, 186, 2390, - 2914, 2747, 2247, 186, 101, 1233, 186, 2897, 186, 2227, - 2175, 186, 186, 186, 2431, 100, 2436, 2473, 1233, 3266, - 3265, 814, 2133, 1880, 1423, 2524, 1414, 2450, 2451, 2452, - 2453, 2454, 1233, 2544, 106, 107, 1233, 3265, 2174, 2518, - 2509, 1384, 2271, 3266, 2492, 3081, 2472, 2590, 2467, 1233, - 2469, 2794, 824, 2493, 103, 2515, 186, 88, 1, 1230, - 2515, 1231, 1232, 2798, 3200, 1398, 1400, 2480, 2484, 606, - 574, 2481, 2482, 2483, 1870, 1369, 3239, 606, 2491, 187, - 3196, 3197, 186, 607, 607, 2494, 1610, 1230, 2173, 1231, - 1232, 1233, 1600, 2526, 2527, 186, 2529, 2506, 2507, 187, - 2630, 2172, 2860, 2546, 815, 2525, 2547, 816, 2528, 2523, - 95, 1811, 96, 186, 2537, 2171, 186, 2548, 607, 2170, - 1233, 3020, 187, 2610, 2541, 2542, 2665, 607, 1648, 2554, - 1233, 2023, 2169, 607, 2826, 1233, 1980, 1230, 1050, 1231, - 1232, 2584, 146, 2586, 2585, 1943, 1233, 2609, 1944, 3164, - 1230, 1233, 1231, 1232, 110, 1008, 1233, 109, 1053, 1159, - 2018, 1233, 2637, 2638, 1230, 1233, 1231, 1232, 1230, 2850, - 1231, 1232, 2297, 1952, 2168, 1449, 1982, 2629, 1447, 1448, - 1233, 1230, 2115, 1231, 1232, 1233, 2641, 1446, 1451, 1450, - 606, 2608, 2670, 2134, 2706, 1689, 603, 2700, 2260, 2263, - 2264, 2265, 2261, 2162, 2262, 2266, 2267, 184, 2657, 2660, - 2659, 1438, 1415, 2161, 2719, 1094, 606, 186, 2160, 564, - 2668, 2667, 2583, 1230, 2055, 1231, 1232, 2672, 2673, 2157, - 2674, 1395, 1391, 2676, 2156, 2678, 2721, 2680, 2675, 2155, - 2662, 2663, 570, 2725, 2587, 2588, 1392, 1275, 2153, 1684, - 2486, 2284, 1230, 853, 1231, 1232, 846, 1881, 2217, 2520, - 2751, 1233, 1230, 2149, 1231, 1232, 2498, 1230, 2148, 1231, - 1232, 1886, 1887, 1394, 2500, 1393, 186, 2234, 1230, 2503, - 1231, 1232, 2496, 1230, 3074, 1231, 1232, 2916, 1230, 187, - 1231, 1232, 3149, 1230, 2797, 1231, 1232, 1230, 2294, 1231, - 1232, 1411, 2726, 2740, 2741, 186, 2124, 1759, 1922, 2892, - 2745, 1710, 1230, 2748, 1231, 1232, 2755, 1230, 628, 1231, - 1232, 627, 625, 2220, 186, 2248, 607, 186, 186, 186, - 2780, 1236, 740, 2760, 2207, 1424, 2259, 606, 606, 2257, - 2777, 2256, 2084, 2770, 2144, 607, 607, 1929, 607, 2775, - 607, 607, 2771, 607, 607, 607, 607, 607, 607, 2784, - 2833, 2834, 3192, 1924, 1920, 2786, 2787, 2637, 2638, 2792, - 607, 2785, 2793, 2226, 187, 636, 629, 621, 703, 702, - 2791, 606, 606, 606, 606, 2636, 2854, 2855, 1395, 1391, - 2809, 187, 2811, 1230, 3177, 1231, 1232, 2366, 2647, 2368, - 2295, 2643, 1214, 1392, 607, 1387, 187, 2260, 2263, 2264, - 2265, 2261, 615, 2262, 2266, 1021, 1756, 2773, 2774, 3025, - 607, 3098, 187, 2101, 2687, 1386, 1769, 1770, 1388, 1389, - 1394, 101, 1393, 3105, 2856, 1746, 2618, 1746, 187, 1744, - 2844, 1744, 100, 2599, 99, 187, 2343, 2010, 63, 41, - 3069, 3137, 701, 94, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 607, 698, 2894, 2895, 2896, 2462, 2463, - 3120, 3121, 697, 186, 3122, 1797, 610, 607, 607, 3213, - 1205, 2872, 840, 32, 31, 30, 2869, 29, 28, 23, - 22, 21, 20, 19, 25, 187, 18, 606, 17, 606, - 2911, 2803, 2804, 16, 2621, 3234, 2880, 2443, 3276, 2443, - 115, 2881, 50, 47, 2890, 2940, 45, 1746, 123, 122, - 48, 1744, 44, 1134, 42, 27, 26, 2932, 15, 14, - 13, 12, 2867, 11, 37, 1763, 10, 9, 5, 1764, - 4, 35, 34, 607, 33, 2912, 2920, 2934, 1208, 24, - 2, 2936, 2518, 2837, 1805, 2921, 2518, 2841, 2842, 2843, - 2330, 606, 2930, 2928, 2012, 0, 0, 2515, 0, 0, - 0, 607, 607, 0, 186, 0, 0, 606, 0, 0, - 0, 0, 1837, 0, 2998, 0, 0, 0, 0, 0, - 606, 2944, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2941, 2942, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2994, 1398, 1867, 0, 0, 3039, - 3040, 3043, 3010, 1746, 607, 3002, 2996, 1744, 2995, 0, - 0, 3022, 3015, 0, 0, 0, 606, 0, 3014, 0, - 606, 606, 0, 0, 0, 0, 0, 0, 0, 1891, - 0, 0, 187, 0, 0, 0, 0, 607, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, - 0, 0, 0, 3044, 0, 0, 0, 0, 3046, 0, - 0, 187, 3049, 0, 607, 0, 0, 0, 0, 3073, - 3067, 0, 3085, 0, 187, 3064, 3065, 0, 607, 0, - 0, 3066, 0, 187, 0, 187, 0, 187, 187, 607, - 0, 3082, 607, 0, 0, 0, 0, 0, 0, 0, - 2518, 606, 3088, 607, 0, 0, 0, 0, 0, 0, - 3084, 0, 0, 0, 0, 0, 186, 0, 0, 0, - 0, 0, 0, 0, 3090, 0, 0, 0, 0, 0, - 0, 1994, 0, 0, 606, 186, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3005, 3006, 3007, 0, 0, 0, 3109, 607, 0, - 0, 3106, 0, 0, 3101, 0, 0, 0, 37, 3104, - 3097, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 606, 0, 0, 607, 0, 0, 0, 0, - 0, 607, 0, 0, 606, 0, 0, 0, 0, 3125, - 0, 3126, 0, 0, 3127, 0, 0, 0, 0, 0, - 3135, 0, 0, 0, 0, 0, 0, 0, 606, 606, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3142, 0, 3150, 0, 0, 0, 607, 3152, - 607, 37, 606, 3179, 0, 3155, 607, 607, 3163, 3178, - 3160, 3157, 3156, 3154, 3172, 0, 186, 606, 3159, 3022, - 3165, 3158, 3147, 0, 0, 0, 0, 2515, 0, 3188, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3209, 3191, 187, 3199, 3204, 0, 0, 0, - 0, 187, 0, 0, 0, 3179, 3219, 0, 187, 187, - 606, 3178, 187, 3216, 187, 1466, 0, 838, 0, 0, - 0, 187, 0, 0, 0, 0, 0, 0, 187, 3228, - 3233, 0, 606, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 606, 0, 606, 0, 187, 3246, 3260, 3248, 1746, 607, - 0, 0, 1744, 0, 0, 3257, 0, 3256, 0, 0, - 3263, 3261, 3259, 0, 0, 0, 0, 0, 0, 0, - 0, 3179, 3272, 0, 0, 619, 0, 3178, 2114, 3284, - 3278, 0, 2118, 2119, 2120, 0, 3286, 0, 0, 0, - 0, 0, 2128, 0, 0, 2129, 2130, 0, 0, 0, - 0, 0, 3294, 0, 1746, 0, 0, 832, 1744, 3296, - 3297, 3040, 0, 3295, 0, 0, 0, 0, 0, 0, - 0, 0, 2136, 2137, 2138, 2139, 2140, 0, 2142, 0, - 0, 0, 0, 2145, 2146, 0, 2147, 0, 0, 2150, - 0, 2151, 0, 0, 0, 2154, 0, 1454, 0, 0, - 0, 0, 0, 2163, 2164, 2165, 2166, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2177, 0, 2180, 2181, - 0, 0, 0, 0, 0, 2183, 2185, 0, 0, 0, - 0, 0, 0, 2190, 2191, 2192, 2193, 2194, 0, 0, - 0, 0, 0, 0, 0, 0, 1891, 0, 2202, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2214, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, - 1467, 0, 0, 0, 0, 0, 0, 187, 0, 0, - 0, 0, 607, 0, 0, 0, 0, 0, 607, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 607, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 187, 0, 0, 0, 187, 1480, 1483, - 1484, 1485, 1486, 1487, 1488, 0, 1489, 1490, 1491, 1492, - 1493, 1468, 1469, 1470, 1471, 1452, 1453, 1481, 0, 1455, - 0, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, - 182, 0, 1465, 1472, 1473, 1474, 1475, 1476, 1477, 1478, - 1479, 2336, 0, 0, 0, 1372, 0, 0, 0, 0, - 0, 0, 0, 0, 121, 0, 143, 0, 0, 0, - 607, 0, 0, 0, 0, 0, 187, 164, 0, 0, - 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 607, 0, 0, - 0, 0, 0, 0, 607, 0, 0, 0, 153, 559, - 0, 0, 0, 607, 142, 0, 0, 0, 0, 609, - 0, 0, 0, 0, 0, 0, 0, 801, 0, 0, - 0, 0, 0, 0, 0, 161, 0, 162, 0, 0, - 0, 187, 187, 187, 187, 187, 0, 0, 0, 0, - 0, 0, 0, 1522, 1523, 152, 151, 181, 0, 0, - 0, 0, 187, 187, 0, 0, 0, 0, 1016, 0, - 0, 0, 0, 0, 1482, 0, 0, 0, 187, 0, - 0, 0, 0, 0, 2428, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 607, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2444, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2470, 2471, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 147, 1524, 154, 607, - 1521, 0, 148, 149, 0, 0, 0, 0, 165, 607, - 0, 0, 0, 0, 0, 0, 0, 171, 0, 0, + 1233, 606, 1057, 1620, 1721, 186, 1582, 1061, 1051, 751, + 752, 753, 1063, 2104, 2105, 2106, 1064, 1062, 1722, 1261, + 1262, 1720, 186, 1233, 2416, 2415, 2414, 2408, 2597, 2412, + 1618, 2407, 3286, 2405, 1607, 606, 2585, 186, 2410, 847, + 1540, 1230, 2306, 1231, 1232, 2305, 1993, 2409, 1641, 1622, + 2424, 606, 1606, 186, 1251, 1252, 1253, 1254, 1255, 1256, + 1258, 1257, 1259, 1260, 2411, 2413, 1233, 1575, 1605, 186, + 1578, 1596, 1526, 1233, 1604, 1594, 186, 1237, 1238, 1239, + 1240, 1241, 1242, 1243, 1235, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 606, 1519, 1588, 1536, 1536, 1585, + 1510, 1511, 1512, 1538, 1584, 1583, 3247, 1397, 606, 606, + 1548, 1555, 1549, 3097, 1551, 1553, 1579, 3096, 1557, 1559, + 1561, 1563, 1565, 3074, 1502, 3073, 186, 1233, 1406, 1537, + 3072, 2998, 1230, 2983, 1231, 1232, 1397, 2982, 1508, 1516, + 2920, 1517, 2918, 1765, 1529, 1515, 2117, 1766, 2869, 3245, + 1397, 2806, 1656, 2791, 2652, 1230, 2116, 1231, 1232, 1660, + 2588, 1662, 1663, 1664, 1665, 2587, 1586, 1587, 1669, 2315, + 1648, 2303, 1592, 1593, 606, 188, 189, 190, 1407, 2792, + 1681, 1361, 1233, 2054, 1580, 2053, 1897, 1752, 1746, 1746, + 1747, 1879, 1744, 1744, 1683, 1654, 1655, 1649, 1230, 1617, + 1231, 1232, 606, 606, 1609, 1230, 1599, 1231, 1232, 1659, + 3179, 1397, 1595, 1717, 1644, 1591, 1666, 1667, 1668, 188, + 189, 190, 188, 189, 190, 1841, 1233, 120, 1724, 1843, + 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, + 1736, 1737, 1738, 1590, 1589, 1842, 746, 1408, 1233, 1725, + 1186, 1715, 1233, 2644, 1810, 606, 1658, 1202, 2122, 1230, + 1397, 1231, 1232, 1233, 1762, 3177, 1397, 3028, 1233, 1034, + 1033, 1032, 1679, 1233, 1249, 1907, 1908, 1245, 1680, 1246, + 1850, 2231, 3262, 186, 3224, 1397, 1687, 1688, 606, 3027, + 1410, 1229, 1397, 1247, 1261, 1262, 1244, 1250, 1251, 1252, + 1253, 1254, 1255, 1256, 1258, 1257, 1259, 1260, 1718, 3175, + 1397, 2987, 186, 1868, 1230, 606, 1231, 1232, 94, 1810, + 188, 189, 190, 1840, 2289, 186, 188, 189, 190, 606, + 2009, 2121, 1723, 92, 186, 2986, 186, 2853, 186, 186, + 606, 1233, 2508, 606, 93, 2541, 3050, 1397, 2231, 3162, + 100, 3048, 1397, 2757, 606, 2098, 1409, 1884, 1230, 1885, + 1231, 1232, 2342, 1850, 2231, 3142, 1852, 1951, 188, 189, + 190, 852, 2007, 2247, 852, 1854, 1855, 1397, 101, 2320, + 1230, 95, 1231, 1232, 1230, 2254, 1231, 1232, 1950, 100, + 1396, 99, 2757, 96, 1229, 1230, 1233, 1231, 1232, 1397, + 1230, 95, 1231, 1232, 2759, 1230, 3130, 1231, 1232, 606, + 3101, 1233, 1890, 96, 2231, 3138, 2000, 2001, 2002, 2113, + 737, 2004, 2006, 2008, 3045, 1397, 1851, 3125, 1397, 2681, + 2034, 1233, 2231, 3090, 1917, 87, 606, 188, 189, 190, + 2255, 2005, 606, 1539, 1748, 2255, 1539, 2231, 1539, 1852, + 1753, 1754, 2135, 1233, 2032, 1960, 1961, 1962, 1963, 1397, + 1945, 2255, 822, 2723, 1233, 1878, 2845, 3087, 2227, 1946, + 1928, 187, 2576, 1230, 187, 1231, 1232, 187, 1233, 3031, + 1397, 2278, 607, 94, 187, 2481, 2022, 1892, 2033, 606, + 1934, 606, 187, 2113, 1976, 1397, 2152, 606, 606, 1955, + 2247, 1956, 1957, 1958, 1959, 1982, 2132, 187, 1910, 1912, + 3006, 1397, 1853, 1949, 1932, 1856, 1857, 1966, 1967, 1968, + 1969, 1933, 856, 2131, 1948, 856, 2033, 1947, 1230, 607, + 1231, 1232, 607, 187, 607, 186, 2731, 1397, 1233, 2231, + 2994, 2113, 186, 1230, 2279, 1231, 1232, 1992, 1397, 186, + 186, 2019, 2016, 186, 2281, 186, 1905, 92, 2845, 1397, + 1889, 2779, 186, 1230, 94, 1231, 1232, 1060, 93, 186, + 1401, 1977, 2757, 1972, 1973, 1233, 1869, 1536, 1695, 2027, + 1991, 1995, 2030, 1638, 2031, 1230, 2003, 1231, 1232, 2231, + 2843, 2554, 1429, 1233, 1042, 186, 1230, 1041, 1231, 1232, + 606, 2033, 1397, 2143, 2047, 3205, 1977, 2026, 2029, 2025, + 1230, 3145, 1231, 1232, 1249, 3017, 2397, 1404, 2049, 2048, + 812, 2728, 1397, 1397, 2051, 2052, 1059, 2762, 1397, 1233, + 2152, 1397, 2578, 2577, 2984, 1233, 2555, 1250, 1251, 1252, + 1253, 1254, 1255, 1256, 1258, 1257, 1259, 1260, 2932, 2089, + 2090, 2574, 2575, 2826, 2092, 1249, 2823, 2111, 2726, 1397, + 2574, 2573, 2557, 2093, 2255, 1397, 2057, 2113, 1397, 2804, + 1230, 2600, 1231, 1232, 2098, 2363, 2552, 1397, 1250, 1251, + 1252, 1253, 1254, 1255, 1256, 1258, 1257, 1259, 1260, 1717, + 1233, 1498, 2345, 2568, 2569, 2338, 2339, 1233, 87, 2278, + 2553, 1233, 2690, 2108, 2689, 2110, 2810, 1230, 1233, 1231, + 1232, 1249, 2679, 1397, 1233, 2082, 2231, 2230, 2184, 1397, + 1498, 1497, 1233, 1500, 2109, 1230, 1233, 1231, 1232, 1975, + 1233, 1443, 1442, 2559, 1250, 1251, 1252, 1253, 1254, 1255, + 1256, 1258, 1257, 1259, 1260, 1250, 1251, 1252, 1253, 1254, + 1255, 1256, 1258, 1257, 1259, 1260, 1233, 2811, 2812, 2813, + 1233, 1230, 2279, 1231, 1232, 1233, 1571, 1230, 2096, 1231, + 1232, 2312, 2098, 2167, 1397, 2642, 1233, 2602, 2598, 2814, + 186, 3238, 2346, 1233, 1718, 3085, 2115, 1971, 186, 1965, + 1233, 2733, 2107, 606, 1964, 1624, 2646, 2159, 1397, 606, + 2567, 1531, 1527, 1496, 1746, 2215, 2991, 2201, 1744, 2729, + 606, 113, 2570, 1131, 2828, 2219, 3018, 1572, 1573, 1574, + 1990, 2311, 1230, 1882, 1231, 1232, 2815, 2816, 2817, 1230, + 2125, 1231, 1232, 1230, 186, 1231, 1232, 2213, 186, 2701, + 1230, 1685, 1231, 1232, 2307, 3257, 1230, 3255, 1231, 1232, + 3231, 1233, 3111, 2288, 1230, 2251, 1231, 1232, 1230, 2697, + 1231, 1232, 1230, 2141, 1231, 1232, 2687, 101, 1233, 2312, + 37, 2769, 2770, 2686, 3036, 2772, 1233, 2594, 100, 2271, + 99, 2593, 2592, 2508, 2325, 2083, 2775, 2774, 1230, 94, + 1231, 1232, 1230, 1852, 1231, 1232, 2232, 1230, 1567, 1231, + 1232, 606, 2527, 1686, 1233, 2526, 3211, 186, 1230, 1233, + 1231, 1232, 2228, 3163, 186, 1230, 1896, 1231, 1232, 1405, + 2763, 2556, 1230, 2486, 1231, 1232, 2485, 2530, 606, 2123, + 1233, 2241, 2531, 1888, 2200, 606, 1233, 1371, 2203, 1539, + 1539, 2902, 2270, 2901, 606, 1568, 1569, 1570, 1397, 3069, + 2337, 2199, 2224, 1851, 1233, 2299, 2301, 2229, 2528, 2198, + 2750, 2360, 2292, 2529, 1233, 2911, 2913, 2244, 2749, 2276, + 2753, 2359, 186, 186, 186, 186, 186, 187, 1233, 187, + 2495, 1637, 187, 1230, 798, 1231, 1232, 2197, 1982, 2280, + 2572, 2900, 2196, 186, 186, 2283, 2532, 826, 2264, 2265, + 1230, 2290, 1231, 1232, 2296, 827, 2316, 1093, 1230, 186, + 1231, 1232, 607, 2195, 607, 607, 2293, 2498, 2500, 2182, + 2186, 2187, 2304, 1092, 2660, 1233, 2501, 2311, 606, 607, + 607, 2391, 2313, 1201, 2352, 1757, 1230, 2176, 1231, 1232, + 92, 1230, 2321, 1231, 1232, 2322, 121, 2175, 2314, 1758, + 1233, 93, 2358, 2317, 2318, 2755, 2326, 2327, 2328, 1907, + 1908, 2174, 1230, 94, 1231, 1232, 92, 1233, 1230, 1519, + 1231, 1232, 3184, 94, 3270, 2347, 2348, 93, 2590, 2560, + 2086, 3086, 3013, 2564, 2421, 2571, 1230, 2357, 1231, 1232, + 606, 2563, 2268, 1842, 101, 1842, 1230, 1893, 1231, 1232, + 606, 2438, 2417, 2440, 2075, 100, 2074, 99, 2173, 2073, + 1230, 2735, 1231, 1232, 2400, 2380, 94, 834, 835, 2451, + 2452, 2453, 2454, 606, 2383, 2565, 2399, 2102, 2484, 99, + 2561, 2469, 2462, 2172, 2389, 2562, 2483, 2390, 186, 3057, + 101, 3056, 606, 3039, 2919, 2917, 2916, 2464, 2909, 2824, + 2171, 100, 2401, 99, 2754, 2418, 606, 1230, 2752, 1231, + 1232, 2603, 2017, 606, 606, 1514, 186, 186, 186, 186, + 186, 1840, 833, 1840, 100, 2908, 2743, 2247, 186, 101, + 2891, 1233, 1230, 186, 1231, 1232, 186, 2469, 186, 2436, + 100, 186, 186, 186, 3259, 3258, 3259, 2227, 2520, 1230, + 1233, 1231, 1232, 2431, 2133, 1880, 1398, 1400, 814, 1423, + 3258, 2540, 2488, 2446, 2447, 2448, 2449, 2450, 1414, 2514, + 187, 3075, 2505, 2468, 607, 607, 2790, 2586, 1384, 2271, + 2511, 106, 107, 824, 2489, 2511, 186, 103, 88, 2476, + 187, 2463, 1, 2465, 2794, 3194, 1233, 574, 1870, 606, + 2490, 2487, 2477, 2478, 2479, 1369, 2480, 606, 3232, 607, + 3190, 3191, 186, 187, 2170, 1610, 2502, 2503, 607, 1233, + 1600, 815, 2856, 1811, 607, 186, 3014, 2522, 2523, 2626, + 2525, 2606, 2533, 2169, 2542, 816, 2521, 2543, 95, 2524, + 1233, 2537, 2538, 186, 2544, 2023, 186, 2519, 2822, 1233, + 96, 1980, 1050, 146, 1943, 1944, 2661, 1233, 3158, 2550, + 1648, 1233, 110, 1230, 1008, 1231, 1232, 109, 2580, 1053, + 2582, 2581, 2605, 1233, 1159, 2018, 2846, 2297, 1952, 2168, + 1233, 1449, 1230, 1447, 1231, 1232, 1448, 1233, 2634, 1446, + 1451, 1450, 2633, 2260, 2263, 2264, 2265, 2261, 2666, 2262, + 2266, 2134, 2162, 1982, 2625, 1395, 1391, 2702, 1689, 603, + 2267, 2637, 184, 1438, 2604, 1415, 606, 2715, 1094, 564, + 1392, 2579, 2055, 2161, 570, 1275, 2583, 2584, 1230, 1684, + 1231, 1232, 2160, 2482, 2658, 2659, 2653, 2656, 2655, 2284, + 2157, 853, 606, 186, 2156, 1886, 1887, 1394, 846, 1393, + 2664, 1230, 1881, 1231, 1232, 2217, 2155, 2516, 2717, 2671, + 2747, 2494, 2663, 2153, 2496, 2721, 2234, 2499, 2492, 3068, + 2149, 2910, 1230, 3143, 1231, 1232, 2294, 1411, 2722, 2124, + 187, 1230, 1759, 1231, 1232, 1233, 1922, 2886, 1710, 1230, + 628, 1231, 1232, 1230, 627, 1231, 1232, 625, 2220, 2248, + 1233, 1236, 186, 2668, 2669, 1230, 2670, 1231, 1232, 2672, + 740, 2674, 1230, 2676, 1231, 1232, 2207, 607, 1424, 1230, + 2793, 1231, 1232, 2259, 2741, 2257, 2256, 2084, 2736, 2737, + 1929, 186, 2771, 2767, 3186, 1924, 607, 607, 2744, 607, + 2751, 607, 607, 1920, 607, 607, 607, 607, 607, 607, + 186, 2226, 636, 186, 186, 186, 2756, 2766, 2776, 629, + 621, 607, 703, 606, 606, 187, 702, 2773, 2148, 2787, + 2632, 3171, 2366, 2643, 2368, 2295, 2639, 1214, 1387, 2782, + 2783, 2780, 187, 2144, 615, 2829, 2830, 1021, 1756, 2634, + 3019, 3092, 2101, 2633, 2788, 607, 2789, 187, 2781, 1395, + 1391, 2683, 1386, 2850, 2851, 1769, 1770, 606, 606, 606, + 606, 607, 3099, 187, 1392, 2614, 2840, 1230, 2595, 1231, + 1232, 2343, 2805, 2010, 2807, 63, 41, 3063, 3131, 187, + 701, 698, 1230, 2888, 1231, 1232, 187, 2889, 2890, 1388, + 1389, 1394, 2458, 1393, 2459, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 607, 3114, 3115, 697, 3116, 1797, + 610, 3207, 2852, 1205, 840, 32, 31, 30, 607, 607, + 29, 2260, 2263, 2264, 2265, 2261, 28, 2262, 2266, 2799, + 2800, 2769, 2770, 23, 22, 21, 187, 20, 19, 25, + 18, 17, 16, 2875, 2617, 3227, 3269, 2863, 115, 186, + 50, 47, 45, 123, 122, 48, 44, 1134, 42, 2868, + 27, 26, 15, 14, 13, 12, 11, 10, 2865, 9, + 5, 4, 35, 606, 2905, 606, 1763, 34, 33, 1208, + 1764, 2833, 24, 2, 607, 2837, 2838, 2839, 2330, 2884, + 2012, 0, 0, 0, 0, 1805, 0, 0, 0, 0, + 0, 0, 2926, 1746, 2934, 0, 0, 1744, 0, 0, + 0, 0, 607, 607, 0, 0, 2928, 37, 0, 0, + 0, 0, 0, 1837, 0, 0, 2915, 2930, 2514, 2906, + 2914, 0, 2514, 0, 0, 2922, 0, 606, 2511, 2924, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 186, 0, 0, 606, 0, 0, 1398, 1867, 0, 2992, + 0, 0, 2938, 0, 0, 607, 606, 2935, 2936, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1891, 3034, 2988, 187, 3033, 2990, 0, 3016, 607, 3004, + 2989, 2996, 0, 0, 3009, 0, 0, 1746, 3037, 0, + 606, 1744, 0, 3008, 606, 606, 0, 0, 0, 0, + 0, 0, 187, 0, 0, 607, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 187, 0, 0, 0, 607, + 0, 0, 0, 606, 187, 0, 187, 3038, 187, 187, + 607, 0, 3040, 607, 0, 3067, 3043, 0, 0, 0, + 0, 3058, 3059, 0, 607, 3079, 0, 0, 0, 3061, + 0, 3060, 0, 0, 0, 0, 0, 0, 3076, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1994, 0, 2514, 606, 3082, 0, 0, 2999, + 3000, 3001, 0, 0, 0, 0, 3078, 0, 0, 0, + 186, 0, 0, 0, 0, 0, 0, 3084, 0, 607, + 0, 0, 0, 0, 0, 0, 0, 0, 606, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 607, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2521, 0, 0, 0, 0, 187, 0, 0, - 0, 607, 0, 0, 0, 0, 0, 0, 0, 2539, - 2540, 0, 0, 0, 0, 607, 0, 0, 0, 0, - 0, 0, 607, 607, 0, 187, 187, 187, 187, 187, - 0, 0, 0, 0, 0, 0, 0, 187, 1234, 0, - 0, 0, 187, 0, 0, 187, 0, 187, 0, 0, - 187, 187, 187, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1282, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 607, 0, 0, 0, 0, 0, 0, 0, 607, 0, 0, 0, - 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 187, 0, 2666, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 0, 187, 0, 2681, 2682, 2684, - 2686, 0, 150, 0, 0, 619, 0, 2692, 0, 0, - 0, 0, 2696, 2697, 2698, 2699, 0, 0, 0, 0, - 2702, 0, 0, 0, 0, 0, 2704, 0, 0, 2708, - 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 0, - 0, 0, 0, 0, 0, 0, 144, 2724, 0, 145, - 0, 0, 2728, 0, 2729, 2731, 0, 2734, 2736, 0, - 0, 0, 0, 0, 2742, 0, 0, 0, 0, 607, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, - 0, 0, 0, 0, 0, 0, 169, 0, 0, 0, - 0, 1413, 0, 0, 0, 607, 187, 0, 0, 2764, - 2765, 0, 0, 2769, 0, 0, 0, 188, 189, 190, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2781, 2782, 0, 0, 0, 0, 0, 177, 0, + 3103, 0, 607, 0, 3100, 0, 0, 0, 3098, 3095, + 0, 0, 0, 0, 3091, 0, 0, 0, 0, 37, + 0, 0, 0, 0, 0, 0, 606, 3109, 0, 0, + 0, 0, 0, 0, 0, 3119, 0, 0, 606, 0, + 0, 3120, 0, 0, 3121, 0, 0, 0, 0, 607, + 0, 607, 0, 0, 0, 0, 3129, 607, 607, 0, + 0, 0, 606, 606, 0, 0, 0, 0, 0, 3136, + 0, 0, 0, 0, 0, 0, 0, 3144, 0, 0, + 0, 0, 3146, 0, 3172, 3173, 606, 0, 0, 3149, + 3157, 0, 37, 3016, 3159, 187, 3154, 3151, 3150, 3148, + 186, 606, 187, 3153, 3152, 0, 2511, 0, 3141, 187, + 187, 0, 0, 187, 0, 187, 0, 0, 3182, 0, + 0, 0, 187, 0, 0, 3185, 3203, 0, 3193, 187, + 3198, 0, 0, 0, 0, 0, 3172, 3173, 3212, 0, + 0, 0, 0, 0, 606, 0, 3210, 0, 0, 0, + 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, + 607, 0, 0, 0, 3221, 0, 606, 0, 3226, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 606, 0, 606, 3241, 0, 3239, 2114, + 0, 0, 0, 2118, 2119, 2120, 0, 3250, 3252, 3249, + 3254, 1746, 3253, 2128, 0, 1744, 2129, 2130, 0, 3256, + 0, 3172, 3173, 3265, 0, 0, 0, 0, 0, 0, + 3271, 0, 0, 0, 3277, 0, 3279, 0, 0, 0, + 0, 0, 0, 2136, 2137, 2138, 2139, 2140, 0, 2142, + 0, 0, 0, 0, 2145, 2146, 0, 2147, 0, 3288, + 2150, 3034, 2151, 3289, 3290, 0, 2154, 1746, 3287, 0, + 2158, 1744, 0, 0, 2163, 2164, 2165, 2166, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2177, 0, 2180, + 2181, 0, 0, 0, 0, 0, 2183, 2185, 0, 0, + 0, 0, 0, 0, 2190, 2191, 2192, 2193, 2194, 0, + 0, 0, 0, 0, 0, 0, 0, 1891, 0, 2202, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2214, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 187, 0, 0, 0, 0, 0, 0, 0, 187, 0, + 0, 0, 0, 607, 0, 0, 0, 0, 0, 607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1135, 0, 1141, 0, 0, 1143, 0, 0, - 595, 0, 0, 0, 0, 187, 0, 0, 0, 0, - 158, 163, 160, 166, 167, 168, 170, 172, 173, 174, - 175, 0, 0, 0, 0, 0, 176, 178, 179, 180, - 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, - 0, 0, 592, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 187, 0, 0, 187, 187, 187, 0, - 0, 2848, 0, 0, 0, 0, 607, 607, 0, 0, - 0, 0, 0, 0, 747, 79, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2868, 0, 576, 0, 0, 0, 0, 0, 0, 0, - 607, 607, 607, 607, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2878, 0, 0, 1501, 0, - 2879, 0, 0, 0, 0, 0, 2883, 0, 0, 0, - 0, 0, 573, 0, 0, 0, 0, 0, 2891, 0, - 0, 587, 811, 0, 79, 0, 2898, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 583, 0, 0, 0, - 0, 0, 811, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1020, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 596, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 607, 0, 607, 0, - 0, 0, 0, 0, 0, 563, 0, 565, 579, 0, - 598, 0, 597, 569, 0, 567, 571, 580, 572, 0, - 566, 0, 577, 0, 1650, 568, 581, 582, 585, 588, - 589, 590, 586, 584, 0, 575, 599, 0, 0, 0, - 0, 0, 0, 0, 3011, 0, 0, 0, 1426, 0, - 0, 0, 0, 3018, 0, 0, 0, 0, 0, 0, 607, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3028, 3029, 3030, 187, 3031, 3032, 607, 0, 0, 0, - 3035, 0, 3036, 0, 3038, 3041, 0, 0, 0, 607, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3050, 3052, 3053, 3055, 3057, 3059, 0, 1705, 1706, 1707, - 1708, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 607, 0, 0, 0, 607, - 607, 0, 0, 3089, 0, 121, 0, 0, 0, 0, - 1750, 1751, 0, 0, 0, 0, 0, 1755, 164, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 607, 0, - 0, 0, 1791, 1792, 1793, 1794, 1795, 1796, 1798, 1802, - 1803, 1804, 0, 1806, 1807, 1808, 619, 1814, 1815, 1816, - 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, - 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, - 0, 1838, 0, 1844, 1845, 1444, 161, 0, 162, 600, - 607, 0, 0, 0, 0, 3111, 0, 0, 1859, 1860, - 1861, 1862, 1863, 1864, 0, 187, 0, 0, 181, 3116, - 593, 0, 0, 0, 0, 619, 0, 0, 0, 0, - 0, 619, 0, 607, 187, 594, 0, 0, 3132, 0, - 0, 0, 0, 0, 3133, 3134, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3145, 1903, 1904, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1581, 607, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 607, 0, 1940, 0, 0, 0, 0, - 182, 0, 0, 0, 0, 0, 0, 0, 3180, 3182, - 3184, 0, 1625, 0, 0, 0, 0, 607, 607, 0, - 0, 0, 0, 0, 121, 0, 0, 0, 0, 165, - 0, 0, 0, 3212, 0, 0, 0, 164, 171, 0, - 0, 607, 0, 0, 1657, 0, 0, 0, 0, 0, - 0, 1661, 3218, 0, 1978, 187, 607, 0, 0, 0, - 0, 0, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 0, - 0, 0, 3230, 0, 0, 0, 0, 0, 0, 0, - 2291, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 161, 0, 162, 0, 607, - 0, 1698, 0, 0, 0, 3251, 3253, 3255, 0, 0, - 0, 0, 0, 0, 0, 0, 1194, 181, 1194, 1194, - 0, 607, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 79, 3275, 0, 0, 607, - 0, 607, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3288, 3289, 156, 0, 0, 0, 0, - 0, 0, 811, 1271, 1272, 1273, 0, 1276, 0, 1277, - 1278, 1279, 1280, 0, 1283, 1285, 1285, 0, 1285, 1289, - 1289, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, - 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, - 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, - 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, - 1330, 1331, 1332, 1333, 1334, 1335, 1336, 0, 165, 1337, - 0, 1339, 1340, 1341, 1342, 1343, 0, 171, 0, 0, - 0, 1289, 1289, 1289, 1289, 1289, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1350, 1351, 1352, 1353, 1354, - 1355, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 182, 0, 1367, 0, 0, 0, 0, 0, 0, - 0, 0, 1518, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 121, 0, 143, 0, 0, - 1909, 0, 0, 0, 0, 0, 0, 0, 164, 1913, - 157, 1916, 0, 0, 1698, 0, 0, 169, 0, 2127, - 0, 0, 0, 0, 0, 0, 1373, 0, 0, 0, - 0, 0, 811, 0, 0, 0, 811, 0, 0, 153, - 0, 0, 811, 0, 0, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 156, 1282, 0, 0, 0, 177, - 0, 0, 0, 0, 0, 0, 161, 0, 162, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1522, 1523, 152, 151, 181, 0, - 0, 158, 163, 160, 166, 167, 168, 170, 172, 173, - 174, 175, 0, 0, 0, 0, 0, 176, 178, 179, - 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 704, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1413, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 605, 0, 0, 0, 147, 1524, 154, - 0, 1521, 0, 148, 149, 0, 0, 0, 0, 165, - 0, 0, 0, 0, 0, 0, 0, 0, 171, 157, - 1698, 0, 0, 0, 0, 0, 169, 2066, 0, 0, - 0, 0, 0, 0, 2080, 2081, 0, 0, 2085, 0, - 854, 0, 0, 1012, 0, 1019, 0, 2088, 0, 0, - 0, 0, 0, 0, 2091, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2094, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 158, 163, 160, 166, 167, 168, 170, 172, 173, 174, - 175, 0, 0, 0, 0, 0, 176, 178, 179, 180, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 182, 0, 0, 0, 0, 0, 619, 0, 1372, + 0, 0, 1518, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 121, 0, 143, 0, 0, + 0, 607, 0, 0, 0, 0, 0, 187, 164, 0, + 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 607, 0, + 0, 0, 0, 559, 0, 607, 0, 0, 0, 153, + 0, 0, 0, 609, 607, 142, 0, 0, 0, 0, + 0, 801, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 161, 0, 162, 0, + 0, 0, 187, 187, 187, 187, 187, 832, 0, 0, + 838, 0, 838, 0, 1522, 1523, 152, 151, 181, 0, + 0, 0, 1016, 187, 187, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 0, 0, 0, 0, 2428, 0, 0, 182, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2396, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2419, - 2420, 0, 0, 0, 2423, 0, 0, 0, 0, 2425, - 2426, 2427, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2432, 2433, 150, 0, 0, 2434, 2435, 1194, 0, - 1814, 2437, 0, 2438, 2439, 0, 0, 0, 2446, 2447, - 0, 0, 1194, 1194, 0, 0, 1814, 1814, 1814, 1814, - 1814, 619, 619, 619, 619, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 144, 0, 0, - 145, 0, 0, 2474, 2475, 2476, 2477, 2478, 2479, 2946, - 2948, 2947, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 658, + 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 164, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2466, 2467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 147, 1524, 154, + 607, 1521, 0, 148, 149, 0, 0, 0, 2291, 165, + 607, 0, 0, 0, 0, 0, 0, 0, 171, 0, + 0, 0, 0, 161, 0, 162, 0, 0, 0, 0, + 0, 0, 0, 607, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2517, 0, 181, 0, 0, 187, 0, + 0, 0, 607, 0, 0, 0, 0, 0, 0, 0, + 2535, 2536, 0, 0, 0, 0, 607, 0, 0, 0, + 0, 0, 0, 607, 607, 0, 187, 187, 187, 187, + 187, 0, 0, 0, 0, 0, 0, 0, 187, 0, + 0, 0, 0, 187, 0, 0, 187, 0, 187, 0, + 0, 187, 187, 187, 0, 0, 0, 0, 0, 0, + 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 121, 156, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 187, 164, 0, 0, + 0, 0, 0, 0, 0, 0, 165, 0, 0, 607, + 0, 0, 0, 0, 0, 171, 0, 607, 0, 0, + 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 187, 0, 2662, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 187, 0, 161, 187, 162, 2677, 2678, + 2680, 2682, 0, 150, 0, 0, 0, 0, 2688, 0, + 0, 0, 0, 2692, 2693, 2694, 2695, 181, 0, 2696, + 0, 2698, 2699, 2700, 0, 0, 2704, 2705, 2706, 2707, + 2708, 2709, 2710, 2711, 2712, 2713, 0, 0, 0, 0, + 0, 0, 0, 0, 2720, 0, 0, 144, 0, 2724, + 145, 2725, 2727, 0, 2730, 2732, 0, 0, 0, 0, + 0, 2738, 0, 0, 0, 0, 607, 0, 0, 0, + 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2510, 0, 0, 0, 0, - 0, 87, 0, 2275, 0, 0, 0, 741, 749, 750, - 751, 752, 753, 742, 744, 0, 0, 0, 743, 177, - 0, 0, 2543, 0, 0, 0, 0, 0, 0, 0, - 0, 746, 754, 755, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 607, 187, 0, 0, 2760, 2761, 0, 0, + 2765, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2777, 2778, + 0, 0, 0, 0, 0, 0, 0, 0, 165, 177, + 0, 0, 0, 0, 0, 0, 1135, 171, 1141, 0, + 0, 1143, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 158, 163, 160, 166, 167, 168, 170, 172, 173, 174, 175, 0, 0, 0, 0, 0, 176, 178, 179, - 180, 0, 2323, 0, 0, 0, 0, 0, 2639, 2640, - 0, 0, 2605, 0, 0, 0, 0, 0, 0, 0, - 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, - 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, - 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, - 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, - 796, 797, 0, 0, 0, 0, 0, 2371, 2372, 2373, - 2374, 2375, 1923, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1698, 2384, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2689, 0, 2392, 0, 0, 0, 0, 2695, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2957, 2958, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 854, 0, 854, 854, 0, 0, 0, - 0, 0, 0, 1020, 0, 0, 0, 0, 0, 0, - 1204, 1206, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1020, 0, 0, 0, - 0, 0, 716, 0, 653, 720, 655, 717, 718, 0, - 651, 654, 719, 0, 0, 0, 0, 619, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 656, - 657, 2945, 2949, 2950, 2951, 2959, 2960, 2961, 2969, 2971, - 686, 2970, 2972, 2973, 2974, 2977, 2978, 2979, 2980, 2975, - 2976, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2952, 2956, - 2955, 2953, 2954, 716, 0, 0, 720, 0, 717, 718, - 0, 0, 0, 719, 0, 721, 0, 722, 0, 0, - 726, 0, 0, 0, 728, 727, 0, 729, 700, 699, - 2829, 0, 723, 724, 0, 725, 0, 1362, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 180, 187, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1234, 0, + 187, 0, 0, 187, 187, 187, 0, 0, 2844, 0, + 0, 0, 0, 607, 607, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1282, 157, 0, 0, + 0, 0, 0, 0, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2864, 0, 0, + 0, 0, 0, 0, 156, 0, 0, 607, 607, 607, + 607, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2874, 0, 0, 0, 177, 0, 0, 0, + 0, 0, 0, 2877, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2885, 0, 0, 0, 0, + 0, 0, 0, 2892, 0, 0, 0, 0, 158, 163, + 160, 166, 167, 168, 170, 172, 173, 174, 175, 0, + 0, 0, 0, 0, 176, 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2853, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2595, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1375, 1376, 0, 0, 0, - 0, 0, 0, 0, 2103, 0, 0, 2633, 0, 0, - 0, 2870, 0, 2871, 0, 0, 0, 0, 2874, 2875, - 2642, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1419, 0, 0, 2882, 0, 0, 0, 0, 2658, 854, - 0, 2661, 0, 0, 0, 1439, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2899, 0, 0, 2900, 0, - 2901, 2902, 0, 2903, 0, 2904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 607, 0, 607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2929, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2937, 0, 0, 2939, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2943, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2991, 0, 0, 0, - 0, 0, 2744, 0, 0, 2188, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, + 0, 1413, 0, 0, 0, 0, 169, 0, 0, 0, + 0, 3005, 1426, 0, 0, 0, 0, 0, 0, 0, + 3012, 0, 0, 0, 0, 0, 0, 607, 0, 747, + 79, 0, 0, 0, 0, 0, 0, 3022, 3023, 3024, + 187, 3025, 3026, 607, 0, 0, 3029, 3030, 177, 3032, + 3035, 0, 0, 0, 0, 0, 607, 0, 0, 0, + 0, 0, 0, 0, 0, 3044, 3046, 3047, 3049, 3051, + 3053, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 158, 163, 160, 166, 167, 168, 170, 172, 173, 174, + 175, 0, 0, 0, 0, 0, 176, 178, 179, 180, + 607, 0, 0, 0, 607, 607, 0, 811, 3083, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 811, 0, 0, + 0, 0, 0, 607, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2212, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2252, - 2253, 0, 0, 0, 0, 0, 0, 0, 2272, 0, - 2273, 2274, 0, 0, 0, 0, 0, 0, 0, 0, - 2807, 0, 0, 0, 0, 0, 0, 0, 1012, 0, - 0, 0, 3072, 619, 0, 0, 0, 0, 0, 2822, - 0, 1362, 2823, 2824, 2825, 0, 0, 1547, 1547, 0, - 1547, 0, 1547, 1547, 0, 1556, 1547, 1547, 1547, 1547, - 1547, 0, 0, 0, 0, 0, 0, 0, 1362, 0, - 0, 1362, 1012, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1444, + 0, 0, 0, 0, 0, 607, 0, 0, 1501, 0, + 3105, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 187, 0, 0, 0, 3110, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 607, 187, + 0, 0, 0, 3126, 0, 0, 0, 0, 0, 3127, + 3128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3139, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1581, 0, 607, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 607, 0, + 3166, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3174, 3176, 3178, 1625, 0, 0, 0, + 0, 0, 607, 607, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1650, 0, 0, 0, 3206, 0, + 0, 0, 0, 0, 0, 0, 607, 0, 1657, 0, + 0, 0, 0, 0, 0, 1661, 0, 0, 0, 0, + 187, 607, 0, 0, 0, 0, 1672, 1673, 1674, 1675, + 1676, 1677, 1678, 0, 0, 0, 0, 3223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1623, 0, 0, 0, - 0, 0, 0, 705, 0, 0, 0, 0, 0, 2350, - 0, 619, 1645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 607, 1698, 0, 0, 0, 3244, + 3246, 3248, 0, 0, 0, 0, 0, 1705, 1706, 1707, + 1708, 0, 0, 0, 0, 0, 607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3115, 0, 0, 0, 0, - 0, 0, 0, 619, 185, 854, 0, 560, 0, 3128, - 601, 0, 3129, 0, 3130, 0, 0, 560, 0, 854, - 854, 0, 0, 0, 0, 560, 0, 0, 0, 0, + 3268, 0, 0, 607, 0, 607, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3281, 3282, 838, + 1750, 1751, 0, 0, 0, 838, 838, 1755, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 821, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 839, 619, 839, 0, - 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, - 78, 39, 40, 80, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1740, 0, 0, 0, 0, - 84, 0, 0, 0, 43, 69, 70, 0, 67, 71, - 0, 0, 0, 0, 2459, 1362, 0, 68, 0, 3210, - 0, 0, 0, 1767, 1768, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 56, 0, 0, 3225, - 0, 3226, 0, 3227, 0, 0, 0, 0, 87, 0, - 0, 0, 1923, 0, 0, 0, 0, 0, 0, 0, - 854, 0, 0, 0, 0, 0, 1858, 0, 0, 0, - 0, 0, 0, 0, 0, 2519, 0, 79, 0, 0, - 1923, 1923, 1923, 1923, 1923, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2272, 811, 1883, - 0, 0, 1923, 0, 0, 1923, 0, 0, 0, 0, - 3273, 0, 3274, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1895, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1419, 0, 0, 854, 0, 0, 0, 0, 0, 0, - 0, 854, 0, 0, 854, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1012, 0, 0, 2627, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2635, 0, - 0, 0, 0, 0, 46, 49, 52, 51, 54, 0, - 66, 0, 0, 75, 72, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3110, 0, 0, 0, 0, 0, 55, 83, 82, 0, - 1019, 64, 65, 53, 0, 0, 87, 2669, 0, 73, - 74, 0, 741, 749, 750, 751, 752, 753, 742, 744, - 0, 0, 0, 743, 0, 0, 0, 1012, 0, 0, - 0, 0, 0, 1019, 0, 0, 746, 754, 755, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, - 58, 0, 59, 60, 61, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1012, 0, 1740, 2639, 2640, 0, 0, 0, 1740, 1740, - 0, 0, 0, 0, 0, 756, 757, 758, 759, 760, - 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, - 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, - 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, - 791, 792, 793, 794, 795, 796, 797, 0, 0, 0, - 0, 0, 2216, 0, 0, 749, 750, 0, 0, 0, - 1923, 1745, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2790, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 81, 0, 0, 0, 0, 0, 0, 749, 750, 0, - 560, 2095, 560, 1745, 0, 560, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 756, 757, 758, - 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, - 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, - 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, - 789, 790, 791, 792, 793, 794, 795, 796, 797, 756, + 0, 0, 1791, 1792, 1793, 1794, 1795, 1796, 1798, 1802, + 1803, 1804, 0, 1806, 1807, 1808, 0, 1814, 1815, 1816, + 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, + 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, + 0, 1838, 0, 1844, 1845, 838, 0, 838, 838, 838, + 838, 838, 0, 0, 0, 0, 0, 0, 1859, 1860, + 1861, 1862, 1863, 1864, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 838, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1903, 1904, 0, + 0, 0, 0, 0, 1909, 0, 0, 0, 0, 0, + 0, 0, 0, 1913, 0, 1916, 0, 0, 1698, 0, + 0, 0, 0, 0, 0, 1940, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1194, 0, 1194, 1194, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1978, 0, 0, 811, 1271, 1272, + 1273, 0, 1276, 0, 1277, 1278, 1279, 1280, 0, 1283, + 1285, 1285, 0, 1285, 1289, 1289, 1291, 1292, 1293, 1294, + 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, + 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, + 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, + 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, + 1335, 1336, 0, 0, 1337, 0, 1339, 1340, 1341, 1342, + 1343, 0, 0, 0, 0, 0, 1289, 1289, 1289, 1289, + 1289, 0, 0, 0, 0, 0, 0, 1466, 0, 0, + 1350, 1351, 1352, 1353, 1354, 1355, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1367, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1698, 0, 0, 0, 0, 0, + 0, 2066, 0, 0, 0, 0, 0, 0, 2080, 2081, + 0, 0, 2085, 0, 0, 0, 0, 0, 0, 0, + 0, 2088, 0, 0, 0, 0, 0, 0, 2091, 0, + 0, 1373, 0, 0, 0, 0, 0, 811, 0, 0, + 0, 811, 0, 0, 0, 0, 0, 811, 0, 0, + 0, 0, 0, 0, 2094, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3225, 0, 0, 0, + 0, 0, 182, 0, 0, 0, 1466, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 121, 0, 143, 1454, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 704, 0, 838, 0, 0, 0, 0, 2127, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 153, 0, 0, 0, 0, 0, 142, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1282, 0, 161, 0, 162, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1467, 0, 605, 130, 131, 152, 151, 181, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 838, 838, 0, 1454, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 854, 0, 0, 1012, 0, 1019, 0, 0, 0, + 1480, 1483, 1484, 1485, 1486, 1487, 1488, 0, 1489, 1490, + 1491, 1492, 1493, 1468, 1469, 1470, 1471, 1452, 1453, 1481, + 0, 1455, 0, 1456, 1457, 1458, 1459, 1460, 1461, 1462, + 1463, 1464, 0, 1413, 1465, 1472, 1473, 1474, 1475, 1476, + 1477, 1478, 1479, 0, 0, 0, 0, 0, 147, 128, + 154, 135, 127, 0, 148, 149, 0, 2275, 0, 0, + 165, 1467, 0, 0, 0, 0, 0, 0, 0, 171, + 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 139, 137, 132, 133, 134, 138, + 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, + 0, 0, 0, 0, 0, 140, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1480, + 1483, 1484, 1485, 1486, 1487, 1488, 2323, 1489, 1490, 1491, + 1492, 1493, 1468, 1469, 1470, 1471, 1452, 1453, 1481, 0, + 1455, 0, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, + 1464, 0, 0, 1465, 1472, 1473, 1474, 1475, 1476, 1477, + 1478, 1479, 0, 0, 0, 0, 1482, 0, 0, 0, + 0, 0, 0, 1194, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 156, 1194, 1194, 0, + 0, 2371, 2372, 2373, 2374, 2375, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1698, 2384, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2392, 0, + 0, 2396, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 838, 0, 0, 0, 0, 0, 0, 0, 2419, + 2420, 0, 0, 0, 2423, 0, 0, 0, 0, 2425, + 2426, 2427, 0, 0, 150, 0, 0, 0, 0, 0, + 0, 2432, 2433, 0, 0, 0, 2434, 2435, 0, 0, + 1814, 2437, 0, 0, 2439, 1482, 0, 2441, 2442, 2443, + 2444, 0, 0, 0, 0, 2445, 1814, 1814, 1814, 1814, + 1814, 0, 0, 0, 0, 0, 0, 0, 144, 0, + 0, 145, 0, 0, 0, 0, 838, 0, 78, 39, + 40, 80, 0, 2470, 2471, 2472, 2473, 2474, 2475, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, + 0, 157, 43, 69, 70, 0, 67, 71, 169, 0, + 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2506, 0, 0, 0, 0, + 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, + 177, 0, 0, 0, 0, 0, 87, 0, 0, 0, + 0, 0, 2539, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1923, 0, 0, + 0, 0, 158, 163, 160, 166, 167, 168, 170, 172, + 173, 174, 175, 0, 0, 0, 0, 0, 176, 178, + 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2591, 0, 0, 0, 0, + 0, 0, 2601, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 854, 0, 854, 854, 0, 0, + 0, 2629, 0, 0, 0, 0, 0, 0, 1020, 0, + 0, 1204, 1206, 0, 2638, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2654, 0, 0, 2657, 0, 0, 0, 0, + 0, 1020, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 46, 49, 52, 51, 54, 0, 66, 0, + 0, 75, 72, 0, 2216, 0, 0, 749, 750, 0, + 0, 0, 2685, 1745, 0, 0, 0, 0, 0, 2691, + 0, 0, 0, 0, 55, 83, 82, 0, 0, 64, + 65, 53, 0, 0, 0, 0, 0, 73, 74, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2740, 0, 0, 0, 0, 57, 58, 0, + 59, 60, 61, 62, 0, 0, 0, 0, 1362, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1375, 1376, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2103, + 2803, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2818, + 0, 1419, 2819, 2820, 2821, 0, 2825, 0, 0, 0, + 854, 0, 0, 0, 0, 0, 1439, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2849, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2866, 0, 2867, + 0, 0, 0, 0, 2870, 2871, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2876, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2188, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2893, 0, 0, 2894, 0, 2895, 2896, 0, 2897, + 0, 2898, 0, 0, 0, 2212, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 811, 0, 0, 2923, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2931, 0, 0, + 2933, 0, 0, 0, 2252, 2253, 0, 0, 0, 0, + 0, 0, 0, 2272, 2937, 2273, 2274, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1012, + 0, 0, 2985, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1362, 0, 0, 0, 0, 0, 1547, 1547, + 0, 1547, 0, 1547, 1547, 0, 1556, 1547, 1547, 1547, + 1547, 1547, 0, 0, 0, 0, 0, 0, 0, 1362, + 0, 0, 1362, 1012, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1623, 0, 0, + 0, 0, 0, 0, 705, 0, 0, 0, 0, 0, + 0, 0, 0, 1645, 2350, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3066, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 185, 854, 0, 560, 0, + 0, 601, 0, 0, 0, 0, 0, 0, 560, 0, + 854, 854, 0, 0, 0, 0, 560, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 821, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 839, 0, 839, + 0, 0, 0, 0, 0, 0, 0, 560, 0, 0, + 0, 0, 0, 0, 2940, 2942, 2941, 2956, 2957, 2958, + 2959, 2960, 2961, 2962, 658, 0, 1740, 0, 3104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1362, 0, 0, 2455, + 0, 0, 0, 3122, 1767, 1768, 3123, 0, 3124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2905, 0, 2909, 2910, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 854, 2519, 0, - 79, 0, 2519, 0, 0, 0, 0, 0, 0, 1363, - 0, 0, 0, 0, 1895, 0, 0, 0, 0, 0, - 2221, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, - 0, 3003, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 821, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1923, 0, 0, + 0, 854, 0, 0, 0, 0, 0, 1858, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, + 2515, 0, 79, 0, 0, 1923, 1923, 1923, 1923, 1923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2319, 0, 0, 0, 0, 0, 0, 0, + 1883, 0, 2272, 811, 0, 0, 0, 1923, 0, 0, + 1923, 0, 0, 3204, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1895, - 0, 0, 0, 0, 0, 0, 2344, 0, 0, 0, - 0, 0, 0, 0, 0, 2349, 2519, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, - 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, - 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1322, 1323, 1324, - 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1350, 1351, 1352, - 1353, 1354, 1355, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3099, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1740, - 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, + 0, 1419, 0, 3218, 854, 3219, 0, 3220, 0, 0, + 0, 0, 854, 0, 0, 854, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1012, 0, 0, 0, + 0, 0, 0, 2623, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1362, - 0, 1362, 0, 0, 1362, 0, 0, 0, 0, 1362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2460, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 854, 3146, 1363, 0, 0, 0, 79, 0, 0, + 0, 0, 0, 3266, 0, 3267, 2951, 2952, 0, 0, + 0, 1019, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2665, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1012, 0, + 0, 0, 0, 0, 1019, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1547, 0, 0, 0, 0, 0, - 1363, 0, 0, 1363, 0, 0, 0, 0, 560, 0, - 0, 0, 0, 2495, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1597, 0, 854, 0, 0, - 0, 1362, 0, 0, 2522, 1547, 1362, 0, 0, 0, - 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1647, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 716, 0, 653, + 720, 655, 717, 718, 0, 651, 654, 719, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 560, 0, 0, 3229, 0, 0, 0, 560, - 0, 0, 0, 0, 0, 0, 0, 0, 1670, 1671, - 560, 560, 560, 560, 560, 560, 560, 0, 0, 0, + 0, 1012, 0, 1740, 0, 0, 0, 0, 0, 1740, + 1740, 0, 0, 0, 656, 657, 2939, 2943, 2944, 2945, + 2953, 2954, 2955, 2963, 2965, 686, 2964, 2966, 2967, 2968, + 2971, 2972, 2973, 2974, 2969, 2970, 2975, 2976, 2977, 2978, + 2979, 2980, 2981, 2946, 2950, 2949, 2947, 2948, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 721, 0, 722, 0, 0, 726, 0, 0, 0, 728, + 727, 1923, 729, 700, 699, 0, 0, 723, 724, 0, + 725, 0, 0, 0, 2786, 0, 0, 87, 0, 0, + 0, 0, 0, 741, 749, 750, 751, 752, 753, 742, + 744, 0, 0, 0, 743, 0, 0, 0, 0, 0, + 0, 560, 2095, 560, 0, 0, 560, 746, 754, 755, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1012, 0, 0, 1362, 0, 0, 0, 0, 1895, 560, + 0, 0, 0, 0, 0, 0, 749, 750, 0, 0, + 0, 0, 1745, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2635, 2636, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 756, 757, 758, 759, + 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, + 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, + 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, + 790, 791, 792, 793, 794, 795, 796, 797, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, + 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, + 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, + 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, + 0, 0, 0, 0, 2899, 0, 2903, 2904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 854, 2515, + 0, 79, 0, 2515, 0, 0, 0, 0, 0, 0, + 1363, 0, 0, 0, 0, 1895, 0, 0, 0, 0, + 0, 2221, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 560, 0, 0, 0, 0, 0, + 0, 0, 2997, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 839, 0, 0, 0, 0, - 0, 839, 839, 0, 0, 0, 0, 1363, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 560, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 716, + 0, 0, 720, 2319, 717, 718, 0, 0, 0, 719, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1895, 0, 0, 0, 0, 0, 0, 2344, 0, 0, + 0, 0, 0, 0, 0, 2515, 2349, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1294, + 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, + 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, + 1315, 1316, 1317, 1318, 1319, 1320, 1322, 1323, 1324, 1325, + 1326, 1327, 1328, 1329, 1330, 1331, 1350, 1351, 1352, 1353, + 1354, 1355, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1740, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2720, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 839, 1647, 839, 839, 839, 839, 839, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2495, 0, 0, + 0, 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 839, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 821, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, - 0, 0, 0, 0, 0, 1647, 0, 560, 0, 560, - 0, 560, 1931, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2456, 0, 0, 0, 0, 0, 0, 0, + 0, 3140, 854, 0, 1363, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1547, 0, 0, 0, 0, + 0, 1363, 0, 0, 1363, 0, 0, 0, 0, 560, + 0, 0, 0, 0, 2491, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1597, 0, 854, 0, + 0, 0, 1362, 0, 0, 2518, 1547, 1362, 0, 0, + 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 0, 0, 1647, 0, 0, + 741, 749, 750, 751, 752, 753, 742, 744, 0, 0, + 0, 743, 0, 560, 3222, 0, 0, 0, 0, 0, + 560, 0, 0, 0, 746, 754, 755, 0, 0, 1670, + 1671, 560, 560, 560, 560, 560, 560, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1895, 1895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1012, 0, 0, 1362, 0, 0, 0, 0, 1895, + 560, 2635, 2636, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 756, 757, 758, 759, 760, 761, 762, + 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, + 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, + 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, + 793, 794, 795, 796, 797, 0, 839, 0, 0, 0, + 0, 0, 839, 839, 0, 0, 0, 0, 1363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2861, 2862, 2863, 2864, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 839, 1647, 839, 839, 839, 839, 839, 0, + 0, 0, 0, 0, 2491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 839, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 821, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 560, + 0, 0, 0, 0, 0, 0, 1647, 0, 560, 0, + 560, 0, 560, 1931, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1362, 0, 1362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1895, 1895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, - 0, 0, 0, 1362, 0, 560, 0, 0, 2933, 0, - 2935, 0, 560, 560, 0, 0, 560, 0, 2087, 0, - 0, 0, 0, 0, 0, 560, 0, 0, 0, 0, - 0, 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2857, + 2858, 2859, 2860, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1895, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 839, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3060, 0, 0, - 0, 3060, 3060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 839, 839, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1895, 0, 0, 0, 0, 0, 0, 1647, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 560, + 1362, 0, 0, 0, 0, 2927, 560, 2929, 0, 0, + 0, 0, 0, 560, 560, 0, 0, 560, 0, 2087, + 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, - 0, 1597, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 560, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1895, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3007, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 560, 0, 0, - 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3139, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1362, 0, 3143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 854, - 854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 560, 0, 0, 3186, 0, 0, 0, 2329, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3194, 0, + 0, 839, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3054, 0, 0, 0, 3054, 3054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3139, 0, 0, 0, 560, 560, 560, 560, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1895, 0, 0, 560, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2720, 560, 3194, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 839, 0, 0, + 0, 0, 839, 839, 0, 0, 0, 1895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1647, 0, 0, 0, 560, 0, 0, 0, 0, 0, + 0, 0, 1597, 0, 0, 0, 0, 0, 0, 0, + 1895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, + 0, 0, 560, 0, 0, 0, 0, 0, 3133, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1362, 0, + 3137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1363, 0, 1363, 0, 0, 1363, 0, 0, 0, - 0, 1363, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 854, 854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 839, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3180, 0, + 0, 560, 0, 0, 0, 0, 0, 0, 2329, 0, + 0, 0, 0, 3188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3133, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 560, 560, 560, 560, + 560, 0, 0, 0, 0, 0, 0, 0, 1895, 0, + 0, 0, 0, 0, 0, 0, 0, 560, 560, 0, + 0, 0, 0, 0, 0, 2716, 0, 3188, 0, 0, + 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1363, 0, 0, 0, 0, 1363, 560, - 560, 560, 560, 560, 0, 0, 0, 0, 0, 0, - 0, 2538, 0, 0, 0, 0, 560, 0, 0, 1597, - 0, 560, 0, 0, 560, 2549, 1647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1363, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 560, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 560, 0, 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1363, 0, 0, 0, 0, 1363, + 560, 560, 560, 560, 560, 0, 0, 0, 0, 0, + 0, 0, 2534, 0, 0, 0, 0, 560, 0, 0, + 1597, 0, 560, 0, 0, 560, 2545, 1647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1363, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 560, 0, 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, 0, - 560, 560, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 560, 0, 0, 560, 560, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1363, 0, 1363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2371,10 +2376,11 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2382,341 +2388,40 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1363, 0, 0, 368, 0, - 0, 990, 975, 476, 0, 918, 993, 887, 906, 1003, - 909, 912, 954, 866, 932, 386, 903, 859, 891, 861, - 898, 862, 889, 920, 253, 886, 977, 936, 992, 341, - 250, 868, 892, 400, 908, 197, 956, 450, 237, 351, - 348, 483, 265, 256, 252, 235, 294, 358, 398, 470, - 392, 999, 345, 942, 0, 460, 371, 0, 0, 1597, - 922, 981, 930, 968, 917, 955, 876, 941, 994, 904, - 951, 995, 300, 234, 302, 196, 383, 461, 269, 0, - 0, 0, 0, 188, 189, 190, 0, 3166, 0, 3167, - 0, 0, 0, 0, 0, 0, 225, 0, 232, 326, - 335, 334, 315, 316, 318, 320, 325, 332, 338, 900, - 948, 989, 901, 950, 248, 298, 255, 247, 480, 1000, - 980, 865, 929, 988, 0, 0, 216, 991, 924, 0, - 953, 0, 1006, 860, 944, 0, 863, 867, 1002, 984, - 895, 258, 0, 0, 0, 0, 0, 0, 0, 921, - 931, 965, 969, 915, 0, 0, 0, 0, 0, 0, - 0, 893, 0, 940, 0, 0, 0, 872, 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 919, 0, 0, 0, 0, 875, 0, 894, 966, - 0, 858, 280, 869, 372, 240, 0, 973, 983, 916, - 517, 987, 914, 913, 960, 873, 979, 907, 340, 871, - 307, 192, 212, 0, 905, 382, 425, 437, 978, 890, - 899, 238, 897, 435, 396, 499, 220, 267, 422, 402, - 433, 409, 270, 939, 958, 434, 346, 485, 416, 496, - 518, 519, 246, 376, 508, 474, 514, 532, 213, 243, - 390, 467, 502, 457, 369, 481, 482, 306, 456, 278, - 195, 344, 524, 211, 443, 229, 218, 487, 505, 272, - 420, 203, 469, 494, 226, 447, 0, 0, 534, 205, - 492, 466, 365, 303, 304, 204, 0, 421, 251, 276, - 241, 385, 489, 490, 239, 535, 215, 513, 207, 1196, - 512, 378, 484, 493, 366, 356, 206, 491, 364, 355, - 311, 330, 331, 263, 287, 414, 349, 415, 288, 374, - 373, 375, 199, 503, 0, 200, 0, 462, 504, 536, - 221, 222, 224, 885, 262, 266, 274, 277, 283, 284, - 292, 342, 389, 413, 411, 417, 974, 479, 497, 509, - 516, 522, 523, 525, 526, 527, 528, 529, 531, 530, - 377, 291, 458, 310, 347, 963, 1005, 395, 436, 227, - 501, 459, 880, 884, 878, 945, 879, 934, 935, 881, - 996, 997, 998, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 0, 967, 874, 0, 882, 883, 0, 976, 985, - 986, 555, 357, 449, 498, 312, 324, 327, 317, 336, - 0, 337, 313, 314, 319, 321, 322, 323, 328, 329, - 333, 339, 426, 427, 428, 429, 275, 507, 289, 432, - 431, 308, 309, 938, 191, 208, 343, 1001, 418, 271, - 533, 511, 506, 198, 210, 877, 245, 888, 896, 0, - 902, 910, 911, 923, 925, 926, 927, 928, 946, 947, - 949, 957, 959, 962, 964, 971, 982, 1004, 193, 194, - 201, 209, 219, 223, 230, 244, 259, 261, 268, 281, - 286, 290, 295, 296, 299, 305, 353, 359, 360, 361, - 362, 379, 380, 381, 384, 387, 388, 391, 393, 394, - 397, 401, 405, 406, 407, 408, 410, 412, 419, 424, - 438, 439, 440, 441, 442, 445, 446, 451, 452, 453, - 454, 455, 463, 464, 468, 486, 488, 500, 515, 520, - 444, 282, 495, 521, 0, 352, 937, 943, 354, 264, - 285, 297, 952, 510, 465, 214, 430, 273, 236, 970, - 972, 202, 233, 217, 242, 257, 260, 301, 363, 370, - 399, 404, 279, 254, 231, 423, 228, 448, 471, 472, - 473, 475, 367, 249, 403, 933, 961, 350, 477, 478, - 293, 368, 0, 0, 990, 975, 476, 0, 918, 993, - 887, 906, 1003, 909, 912, 954, 866, 932, 386, 903, - 859, 891, 861, 898, 862, 889, 920, 253, 886, 977, - 936, 992, 341, 250, 868, 892, 400, 908, 197, 956, - 450, 237, 351, 348, 483, 265, 256, 252, 235, 294, - 358, 398, 470, 392, 999, 345, 942, 0, 460, 371, - 0, 0, 0, 922, 981, 930, 968, 917, 955, 876, - 941, 994, 904, 951, 995, 300, 234, 302, 196, 383, - 461, 269, 0, 0, 0, 0, 188, 189, 190, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, - 0, 232, 326, 335, 334, 315, 316, 318, 320, 325, - 332, 338, 900, 948, 989, 901, 950, 248, 298, 255, - 247, 480, 1000, 980, 865, 929, 988, 0, 0, 216, - 991, 924, 0, 953, 0, 1006, 860, 944, 0, 863, - 867, 1002, 984, 895, 258, 0, 0, 0, 0, 0, - 0, 0, 921, 931, 965, 969, 915, 0, 0, 0, - 0, 0, 2550, 0, 893, 0, 940, 0, 0, 0, - 872, 864, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 919, 0, 0, 0, 0, 875, - 0, 894, 966, 0, 858, 280, 869, 372, 240, 0, - 973, 983, 916, 517, 987, 914, 913, 960, 873, 979, - 907, 340, 871, 307, 192, 212, 0, 905, 382, 425, - 437, 978, 890, 899, 238, 897, 435, 396, 499, 220, - 267, 422, 402, 433, 409, 270, 939, 958, 434, 346, - 485, 416, 496, 518, 519, 246, 376, 508, 474, 514, - 532, 213, 243, 390, 467, 502, 457, 369, 481, 482, - 306, 456, 278, 195, 344, 524, 211, 443, 229, 218, - 487, 505, 272, 420, 203, 469, 494, 226, 447, 0, - 0, 534, 205, 492, 466, 365, 303, 304, 204, 0, - 421, 251, 276, 241, 385, 489, 490, 239, 535, 215, - 513, 207, 1196, 512, 378, 484, 493, 366, 356, 206, - 491, 364, 355, 311, 330, 331, 263, 287, 414, 349, - 415, 288, 374, 373, 375, 199, 503, 0, 200, 0, - 462, 504, 536, 221, 222, 224, 885, 262, 266, 274, - 277, 283, 284, 292, 342, 389, 413, 411, 417, 974, - 479, 497, 509, 516, 522, 523, 525, 526, 527, 528, - 529, 531, 530, 377, 291, 458, 310, 347, 963, 1005, - 395, 436, 227, 501, 459, 880, 884, 878, 945, 879, - 934, 935, 881, 996, 997, 998, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 0, 967, 874, 0, 882, 883, - 0, 976, 985, 986, 555, 357, 449, 498, 312, 324, - 327, 317, 336, 0, 337, 313, 314, 319, 321, 322, - 323, 328, 329, 333, 339, 426, 427, 428, 429, 275, - 507, 289, 432, 431, 308, 309, 938, 191, 208, 343, - 1001, 418, 271, 533, 511, 506, 198, 210, 877, 245, - 888, 896, 0, 902, 910, 911, 923, 925, 926, 927, - 928, 946, 947, 949, 957, 959, 962, 964, 971, 982, - 1004, 193, 194, 201, 209, 219, 223, 230, 244, 259, - 261, 268, 281, 286, 290, 295, 296, 299, 305, 353, - 359, 360, 361, 362, 379, 380, 381, 384, 387, 388, - 391, 393, 394, 397, 401, 405, 406, 407, 408, 410, - 412, 419, 424, 438, 439, 440, 441, 442, 445, 446, - 451, 452, 453, 454, 455, 463, 464, 468, 486, 488, - 500, 515, 520, 444, 282, 495, 521, 0, 352, 937, - 943, 354, 264, 285, 297, 952, 510, 465, 214, 430, - 273, 236, 970, 972, 202, 233, 217, 242, 257, 260, - 301, 363, 370, 399, 404, 279, 254, 231, 423, 228, - 448, 471, 472, 473, 475, 367, 249, 403, 933, 961, - 350, 477, 478, 293, 368, 0, 0, 990, 975, 476, - 0, 918, 993, 887, 906, 1003, 909, 912, 954, 866, - 932, 386, 903, 859, 891, 861, 898, 862, 889, 920, - 253, 886, 977, 936, 992, 341, 250, 868, 892, 400, - 908, 197, 956, 450, 237, 351, 348, 483, 265, 256, - 252, 235, 294, 358, 398, 470, 392, 999, 345, 942, - 0, 460, 371, 0, 0, 0, 922, 981, 930, 968, - 917, 955, 876, 941, 994, 904, 951, 995, 300, 234, - 302, 196, 383, 461, 269, 0, 0, 0, 0, 188, - 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 225, 0, 232, 326, 335, 334, 315, 316, - 318, 320, 325, 332, 338, 900, 948, 989, 901, 950, - 248, 298, 255, 247, 480, 1000, 980, 865, 929, 988, - 0, 0, 216, 991, 924, 0, 953, 0, 1006, 860, - 944, 0, 863, 867, 1002, 984, 895, 258, 0, 0, - 0, 0, 0, 0, 0, 921, 931, 965, 969, 915, - 0, 0, 0, 0, 0, 2508, 0, 893, 0, 940, - 0, 0, 0, 872, 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 919, 0, 0, - 0, 0, 875, 0, 894, 966, 0, 858, 280, 869, - 372, 240, 0, 973, 983, 916, 517, 987, 914, 913, - 960, 873, 979, 907, 340, 871, 307, 192, 212, 0, - 905, 382, 425, 437, 978, 890, 899, 238, 897, 435, - 396, 499, 220, 267, 422, 402, 433, 409, 270, 939, - 958, 434, 346, 485, 416, 496, 518, 519, 246, 376, - 508, 474, 514, 532, 213, 243, 390, 467, 502, 457, - 369, 481, 482, 306, 456, 278, 195, 344, 524, 211, - 443, 229, 218, 487, 505, 272, 420, 203, 469, 494, - 226, 447, 0, 0, 534, 205, 492, 466, 365, 303, - 304, 204, 0, 421, 251, 276, 241, 385, 489, 490, - 239, 535, 215, 513, 207, 1196, 512, 378, 484, 493, - 366, 356, 206, 491, 364, 355, 311, 330, 331, 263, - 287, 414, 349, 415, 288, 374, 373, 375, 199, 503, - 0, 200, 0, 462, 504, 536, 221, 222, 224, 885, - 262, 266, 274, 277, 283, 284, 292, 342, 389, 413, - 411, 417, 974, 479, 497, 509, 516, 522, 523, 525, - 526, 527, 528, 529, 531, 530, 377, 291, 458, 310, - 347, 963, 1005, 395, 436, 227, 501, 459, 880, 884, - 878, 945, 879, 934, 935, 881, 996, 997, 998, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 0, 967, 874, - 0, 882, 883, 0, 976, 985, 986, 555, 357, 449, - 498, 312, 324, 327, 317, 336, 0, 337, 313, 314, - 319, 321, 322, 323, 328, 329, 333, 339, 426, 427, - 428, 429, 275, 507, 289, 432, 431, 308, 309, 938, - 191, 208, 343, 1001, 418, 271, 533, 511, 506, 198, - 210, 877, 245, 888, 896, 0, 902, 910, 911, 923, - 925, 926, 927, 928, 946, 947, 949, 957, 959, 962, - 964, 971, 982, 1004, 193, 194, 201, 209, 219, 223, - 230, 244, 259, 261, 268, 281, 286, 290, 295, 296, - 299, 305, 353, 359, 360, 361, 362, 379, 380, 381, - 384, 387, 388, 391, 393, 394, 397, 401, 405, 406, - 407, 408, 410, 412, 419, 424, 438, 439, 440, 441, - 442, 445, 446, 451, 452, 453, 454, 455, 463, 464, - 468, 486, 488, 500, 515, 520, 444, 282, 495, 521, - 0, 352, 937, 943, 354, 264, 285, 297, 952, 510, - 465, 214, 430, 273, 236, 970, 972, 202, 233, 217, - 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, - 231, 423, 228, 448, 471, 472, 473, 475, 367, 249, - 403, 933, 961, 350, 477, 478, 293, 368, 0, 0, - 990, 975, 476, 0, 918, 993, 887, 906, 1003, 909, - 912, 954, 866, 932, 386, 903, 859, 891, 861, 898, - 862, 889, 920, 253, 886, 977, 936, 992, 341, 250, - 868, 892, 400, 908, 197, 956, 450, 237, 351, 348, - 483, 265, 256, 252, 235, 294, 358, 398, 470, 392, - 999, 345, 942, 0, 460, 371, 0, 0, 0, 922, - 981, 930, 968, 917, 955, 876, 941, 994, 904, 951, - 995, 300, 234, 302, 196, 383, 461, 269, 0, 0, - 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 225, 0, 232, 326, 335, - 334, 315, 316, 318, 320, 325, 332, 338, 900, 948, - 989, 901, 950, 248, 298, 255, 247, 480, 1000, 980, - 865, 929, 988, 0, 0, 216, 991, 924, 0, 953, - 0, 1006, 860, 944, 0, 863, 867, 1002, 984, 895, - 258, 0, 0, 0, 0, 0, 0, 0, 921, 931, - 965, 969, 915, 0, 0, 0, 0, 0, 1911, 0, - 893, 0, 940, 0, 0, 0, 872, 864, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 919, 0, 0, 0, 0, 875, 0, 894, 966, 0, - 858, 280, 869, 372, 240, 0, 973, 983, 916, 517, - 987, 914, 913, 960, 873, 979, 907, 340, 871, 307, - 192, 212, 0, 905, 382, 425, 437, 978, 890, 899, - 238, 897, 435, 396, 499, 220, 267, 422, 402, 433, - 409, 270, 939, 958, 434, 346, 485, 416, 496, 518, - 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, - 467, 502, 457, 369, 481, 482, 306, 456, 278, 195, - 344, 524, 211, 443, 229, 218, 487, 505, 272, 420, - 203, 469, 494, 226, 447, 0, 0, 534, 205, 492, - 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, - 385, 489, 490, 239, 535, 215, 513, 207, 1196, 512, - 378, 484, 493, 366, 356, 206, 491, 364, 355, 311, - 330, 331, 263, 287, 414, 349, 415, 288, 374, 373, - 375, 199, 503, 0, 200, 0, 462, 504, 536, 221, - 222, 224, 885, 262, 266, 274, 277, 283, 284, 292, - 342, 389, 413, 411, 417, 974, 479, 497, 509, 516, - 522, 523, 525, 526, 527, 528, 529, 531, 530, 377, - 291, 458, 310, 347, 963, 1005, 395, 436, 227, 501, - 459, 880, 884, 878, 945, 879, 934, 935, 881, 996, - 997, 998, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 0, 967, 874, 0, 882, 883, 0, 976, 985, 986, - 555, 357, 449, 498, 312, 324, 327, 317, 336, 0, - 337, 313, 314, 319, 321, 322, 323, 328, 329, 333, - 339, 426, 427, 428, 429, 275, 507, 289, 432, 431, - 308, 309, 938, 191, 208, 343, 1001, 418, 271, 533, - 511, 506, 198, 210, 877, 245, 888, 896, 0, 902, - 910, 911, 923, 925, 926, 927, 928, 946, 947, 949, - 957, 959, 962, 964, 971, 982, 1004, 193, 194, 201, - 209, 219, 223, 230, 244, 259, 261, 268, 281, 286, - 290, 295, 296, 299, 305, 353, 359, 360, 361, 362, - 379, 380, 381, 384, 387, 388, 391, 393, 394, 397, - 401, 405, 406, 407, 408, 410, 412, 419, 424, 438, - 439, 440, 441, 442, 445, 446, 451, 452, 453, 454, - 455, 463, 464, 468, 486, 488, 500, 515, 520, 444, - 282, 495, 521, 0, 352, 937, 943, 354, 264, 285, - 297, 952, 510, 465, 214, 430, 273, 236, 970, 972, - 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, - 404, 279, 254, 231, 423, 228, 448, 471, 472, 473, - 475, 367, 249, 403, 933, 961, 350, 477, 478, 293, - 368, 0, 0, 990, 975, 476, 0, 918, 993, 887, - 906, 1003, 909, 912, 954, 866, 932, 386, 903, 859, - 891, 861, 898, 862, 889, 920, 253, 886, 977, 936, - 992, 341, 250, 868, 892, 400, 908, 197, 956, 450, - 237, 351, 348, 483, 265, 256, 252, 235, 294, 358, - 398, 470, 392, 999, 345, 942, 0, 460, 371, 0, - 0, 0, 922, 981, 930, 968, 917, 955, 876, 941, - 994, 904, 951, 995, 300, 234, 302, 196, 383, 461, - 269, 0, 87, 0, 0, 188, 189, 190, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, - 232, 326, 335, 334, 315, 316, 318, 320, 325, 332, - 338, 900, 948, 989, 901, 950, 248, 298, 255, 247, - 480, 1000, 980, 865, 929, 988, 0, 0, 216, 991, - 924, 0, 953, 0, 1006, 860, 944, 0, 863, 867, - 1002, 984, 895, 258, 0, 0, 0, 0, 0, 0, - 0, 921, 931, 965, 969, 915, 0, 0, 0, 0, - 0, 0, 0, 893, 0, 940, 0, 0, 0, 872, - 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 919, 0, 0, 0, 0, 875, 0, - 894, 966, 0, 858, 280, 869, 372, 240, 0, 973, - 983, 916, 517, 987, 914, 913, 960, 873, 979, 907, - 340, 871, 307, 192, 212, 0, 905, 382, 425, 437, - 978, 890, 899, 238, 897, 435, 396, 499, 220, 267, - 422, 402, 433, 409, 270, 939, 958, 434, 346, 485, - 416, 496, 518, 519, 246, 376, 508, 474, 514, 532, - 213, 243, 390, 467, 502, 457, 369, 481, 482, 306, - 456, 278, 195, 344, 524, 211, 443, 229, 218, 487, - 505, 272, 420, 203, 469, 494, 226, 447, 0, 0, - 534, 205, 492, 466, 365, 303, 304, 204, 0, 421, - 251, 276, 241, 385, 489, 490, 239, 535, 215, 513, - 207, 1196, 512, 378, 484, 493, 366, 356, 206, 491, - 364, 355, 311, 330, 331, 263, 287, 414, 349, 415, - 288, 374, 373, 375, 199, 503, 0, 200, 0, 462, - 504, 536, 221, 222, 224, 885, 262, 266, 274, 277, - 283, 284, 292, 342, 389, 413, 411, 417, 974, 479, - 497, 509, 516, 522, 523, 525, 526, 527, 528, 529, - 531, 530, 377, 291, 458, 310, 347, 963, 1005, 395, - 436, 227, 501, 459, 880, 884, 878, 945, 879, 934, - 935, 881, 996, 997, 998, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 0, 967, 874, 0, 882, 883, 0, - 976, 985, 986, 555, 357, 449, 498, 312, 324, 327, - 317, 336, 0, 337, 313, 314, 319, 321, 322, 323, - 328, 329, 333, 339, 426, 427, 428, 429, 275, 507, - 289, 432, 431, 308, 309, 938, 191, 208, 343, 1001, - 418, 271, 533, 511, 506, 198, 210, 877, 245, 888, - 896, 0, 902, 910, 911, 923, 925, 926, 927, 928, - 946, 947, 949, 957, 959, 962, 964, 971, 982, 1004, - 193, 194, 201, 209, 219, 223, 230, 244, 259, 261, - 268, 281, 286, 290, 295, 296, 299, 305, 353, 359, - 360, 361, 362, 379, 380, 381, 384, 387, 388, 391, - 393, 394, 397, 401, 405, 406, 407, 408, 410, 412, - 419, 424, 438, 439, 440, 441, 442, 445, 446, 451, - 452, 453, 454, 455, 463, 464, 468, 486, 488, 500, - 515, 520, 444, 282, 495, 521, 0, 352, 937, 943, - 354, 264, 285, 297, 952, 510, 465, 214, 430, 273, - 236, 970, 972, 202, 233, 217, 242, 257, 260, 301, - 363, 370, 399, 404, 279, 254, 231, 423, 228, 448, - 471, 472, 473, 475, 367, 249, 403, 933, 961, 350, - 477, 478, 293, 368, 0, 0, 990, 975, 476, 0, + 1363, 0, 0, 368, 0, 0, 990, 975, 476, 0, 918, 993, 887, 906, 1003, 909, 912, 954, 866, 932, 386, 903, 859, 891, 861, 898, 862, 889, 920, 253, 886, 977, 936, 992, 341, 250, 868, 892, 400, 908, 197, 956, 450, 237, 351, 348, 483, 265, 256, 252, 235, 294, 358, 398, 470, 392, 999, 345, 942, 0, - 460, 371, 0, 0, 0, 922, 981, 930, 968, 917, + 460, 371, 0, 0, 1597, 922, 981, 930, 968, 917, 955, 876, 941, 994, 904, 951, 995, 300, 234, 302, 196, 383, 461, 269, 0, 0, 0, 0, 188, 189, - 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 190, 0, 3160, 0, 3161, 0, 0, 0, 0, 0, 0, 225, 0, 232, 326, 335, 334, 315, 316, 318, 320, 325, 332, 338, 900, 948, 989, 901, 950, 248, 298, 255, 247, 480, 1000, 980, 865, 929, 988, 0, @@ -2782,10 +2487,10 @@ var yyAct = [...]int{ 0, 0, 0, 0, 225, 0, 232, 326, 335, 334, 315, 316, 318, 320, 325, 332, 338, 900, 948, 989, 901, 950, 248, 298, 255, 247, 480, 1000, 980, 865, - 929, 988, 0, 0, 1007, 991, 924, 0, 953, 0, + 929, 988, 0, 0, 216, 991, 924, 0, 953, 0, 1006, 860, 944, 0, 863, 867, 1002, 984, 895, 258, 0, 0, 0, 0, 0, 0, 0, 921, 931, 965, - 969, 915, 0, 0, 0, 0, 0, 0, 0, 893, + 969, 915, 0, 0, 0, 0, 0, 2546, 0, 893, 0, 940, 0, 0, 0, 872, 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2802,14 +2507,14 @@ var yyAct = [...]int{ 524, 211, 443, 229, 218, 487, 505, 272, 420, 203, 469, 494, 226, 447, 0, 0, 534, 205, 492, 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, 385, - 489, 490, 239, 535, 215, 513, 207, 870, 512, 378, + 489, 490, 239, 535, 215, 513, 207, 1196, 512, 378, 484, 493, 366, 356, 206, 491, 364, 355, 311, 330, 331, 263, 287, 414, 349, 415, 288, 374, 373, 375, 199, 503, 0, 200, 0, 462, 504, 536, 221, 222, 224, 885, 262, 266, 274, 277, 283, 284, 292, 342, 389, 413, 411, 417, 974, 479, 497, 509, 516, 522, - 523, 525, 526, 527, 528, 529, 531, 530, 857, 851, - 850, 310, 347, 963, 1005, 395, 436, 227, 501, 459, + 523, 525, 526, 527, 528, 529, 531, 530, 377, 291, + 458, 310, 347, 963, 1005, 395, 436, 227, 501, 459, 880, 884, 878, 945, 879, 934, 935, 881, 996, 997, 998, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 0, @@ -2844,11 +2549,11 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 225, 0, 232, 326, 335, 334, 315, 316, 318, 320, 325, 332, 338, 900, 948, 989, 901, 950, 248, 298, 255, 247, 480, - 1000, 980, 865, 929, 988, 0, 0, 1007, 991, 924, + 1000, 980, 865, 929, 988, 0, 0, 216, 991, 924, 0, 953, 0, 1006, 860, 944, 0, 863, 867, 1002, 984, 895, 258, 0, 0, 0, 0, 0, 0, 0, 921, 931, 965, 969, 915, 0, 0, 0, 0, 0, - 0, 0, 893, 0, 940, 0, 0, 0, 872, 864, + 2504, 0, 893, 0, 940, 0, 0, 0, 872, 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2862,16 +2567,16 @@ var yyAct = [...]int{ 496, 518, 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, 467, 502, 457, 369, 481, 482, 306, 456, 278, 195, 344, 524, 211, 443, 229, 218, 487, 505, - 272, 420, 203, 469, 1430, 226, 447, 0, 0, 534, + 272, 420, 203, 469, 494, 226, 447, 0, 0, 534, 205, 492, 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, 385, 489, 490, 239, 535, 215, 513, 207, - 870, 512, 378, 484, 493, 366, 356, 206, 491, 364, + 1196, 512, 378, 484, 493, 366, 356, 206, 491, 364, 355, 311, 330, 331, 263, 287, 414, 349, 415, 288, 374, 373, 375, 199, 503, 0, 200, 0, 462, 504, 536, 221, 222, 224, 885, 262, 266, 274, 277, 283, 284, 292, 342, 389, 413, 411, 417, 974, 479, 497, 509, 516, 522, 523, 525, 526, 527, 528, 529, 531, - 530, 857, 851, 850, 310, 347, 963, 1005, 395, 436, + 530, 377, 291, 458, 310, 347, 963, 1005, 395, 436, 227, 501, 459, 880, 884, 878, 945, 879, 934, 935, 881, 996, 997, 998, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, @@ -2907,10 +2612,10 @@ var yyAct = [...]int{ 225, 0, 232, 326, 335, 334, 315, 316, 318, 320, 325, 332, 338, 900, 948, 989, 901, 950, 248, 298, 255, 247, 480, 1000, 980, 865, 929, 988, 0, 0, - 1007, 991, 924, 0, 953, 0, 1006, 860, 944, 0, + 216, 991, 924, 0, 953, 0, 1006, 860, 944, 0, 863, 867, 1002, 984, 895, 258, 0, 0, 0, 0, 0, 0, 0, 921, 931, 965, 969, 915, 0, 0, - 0, 0, 0, 0, 0, 893, 0, 940, 0, 0, + 0, 0, 0, 1911, 0, 893, 0, 940, 0, 0, 0, 872, 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2924,16 +2629,16 @@ var yyAct = [...]int{ 346, 485, 416, 496, 518, 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, 467, 502, 457, 369, 481, 482, 306, 456, 278, 195, 344, 524, 211, 443, 229, - 218, 487, 505, 272, 420, 203, 469, 848, 226, 447, + 218, 487, 505, 272, 420, 203, 469, 494, 226, 447, 0, 0, 534, 205, 492, 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, 385, 489, 490, 239, 535, - 215, 513, 207, 870, 512, 378, 484, 493, 366, 356, + 215, 513, 207, 1196, 512, 378, 484, 493, 366, 356, 206, 491, 364, 355, 311, 330, 331, 263, 287, 414, 349, 415, 288, 374, 373, 375, 199, 503, 0, 200, 0, 462, 504, 536, 221, 222, 224, 885, 262, 266, 274, 277, 283, 284, 292, 342, 389, 413, 411, 417, 974, 479, 497, 509, 516, 522, 523, 525, 526, 527, - 528, 529, 531, 530, 857, 851, 850, 310, 347, 963, + 528, 529, 531, 530, 377, 291, 458, 310, 347, 963, 1005, 395, 436, 227, 501, 459, 880, 884, 878, 945, 879, 934, 935, 881, 996, 997, 998, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, @@ -2956,325 +2661,327 @@ var yyAct = [...]int{ 430, 273, 236, 970, 972, 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, 228, 448, 471, 472, 473, 475, 367, 249, 403, 933, - 961, 350, 477, 478, 293, 368, 0, 0, 0, 0, - 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 386, 0, 0, 1847, 0, 637, 0, 0, - 0, 253, 642, 0, 0, 0, 341, 250, 0, 1848, - 400, 0, 197, 0, 450, 237, 351, 348, 483, 265, - 256, 252, 235, 294, 358, 398, 470, 392, 649, 345, - 0, 0, 460, 371, 0, 0, 0, 0, 0, 644, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 300, + 961, 350, 477, 478, 293, 368, 0, 0, 990, 975, + 476, 0, 918, 993, 887, 906, 1003, 909, 912, 954, + 866, 932, 386, 903, 859, 891, 861, 898, 862, 889, + 920, 253, 886, 977, 936, 992, 341, 250, 868, 892, + 400, 908, 197, 956, 450, 237, 351, 348, 483, 265, + 256, 252, 235, 294, 358, 398, 470, 392, 999, 345, + 942, 0, 460, 371, 0, 0, 0, 922, 981, 930, + 968, 917, 955, 876, 941, 994, 904, 951, 995, 300, 234, 302, 196, 383, 461, 269, 0, 87, 0, 0, - 188, 189, 190, 741, 749, 750, 751, 752, 753, 742, - 744, 0, 0, 225, 743, 232, 660, 662, 661, 676, - 677, 678, 679, 680, 681, 682, 658, 746, 754, 755, - 0, 248, 298, 255, 247, 480, 0, 0, 0, 0, - 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, - 0, 620, 634, 0, 648, 0, 0, 0, 258, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 631, 632, 837, 0, 0, 0, - 709, 0, 633, 0, 0, 641, 756, 757, 758, 759, - 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, - 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, - 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, - 790, 791, 792, 793, 794, 795, 796, 797, 715, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, - 0, 372, 240, 0, 708, 0, 0, 517, 0, 0, - 706, 0, 0, 0, 0, 340, 0, 307, 192, 212, - 0, 0, 382, 425, 437, 0, 0, 0, 238, 0, + 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 225, 0, 232, 326, 335, 334, 315, + 316, 318, 320, 325, 332, 338, 900, 948, 989, 901, + 950, 248, 298, 255, 247, 480, 1000, 980, 865, 929, + 988, 0, 0, 216, 991, 924, 0, 953, 0, 1006, + 860, 944, 0, 863, 867, 1002, 984, 895, 258, 0, + 0, 0, 0, 0, 0, 0, 921, 931, 965, 969, + 915, 0, 0, 0, 0, 0, 0, 0, 893, 0, + 940, 0, 0, 0, 872, 864, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 919, 0, + 0, 0, 0, 875, 0, 894, 966, 0, 858, 280, + 869, 372, 240, 0, 973, 983, 916, 517, 987, 914, + 913, 960, 873, 979, 907, 340, 871, 307, 192, 212, + 0, 905, 382, 425, 437, 978, 890, 899, 238, 897, 435, 396, 499, 220, 267, 422, 402, 433, 409, 270, - 0, 0, 434, 346, 485, 416, 496, 518, 519, 246, + 939, 958, 434, 346, 485, 416, 496, 518, 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, 467, 502, 457, 369, 481, 482, 306, 456, 278, 195, 344, 524, 211, 443, 229, 218, 487, 505, 272, 420, 203, 469, 494, 226, 447, 0, 0, 534, 205, 492, 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, 385, 489, - 490, 239, 535, 215, 513, 207, 0, 512, 378, 484, - 493, 366, 356, 206, 491, 364, 355, 311, 671, 672, + 490, 239, 535, 215, 513, 207, 1196, 512, 378, 484, + 493, 366, 356, 206, 491, 364, 355, 311, 330, 331, 263, 287, 414, 349, 415, 288, 374, 373, 375, 199, 503, 0, 200, 0, 462, 504, 536, 221, 222, 224, - 0, 262, 266, 274, 277, 283, 284, 292, 342, 389, - 413, 411, 417, 0, 479, 497, 509, 516, 522, 523, + 885, 262, 266, 274, 277, 283, 284, 292, 342, 389, + 413, 411, 417, 974, 479, 497, 509, 516, 522, 523, 525, 526, 527, 528, 529, 531, 530, 377, 291, 458, - 310, 347, 0, 0, 395, 436, 227, 501, 459, 716, - 707, 653, 720, 655, 717, 718, 650, 651, 654, 719, + 310, 347, 963, 1005, 395, 436, 227, 501, 459, 880, + 884, 878, 945, 879, 934, 935, 881, 996, 997, 998, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 0, 710, - 640, 639, 0, 646, 647, 0, 656, 657, 659, 663, - 664, 665, 673, 674, 675, 683, 685, 686, 684, 687, - 688, 689, 692, 693, 694, 695, 690, 691, 696, 730, - 731, 732, 733, 734, 735, 666, 670, 669, 667, 668, - 638, 191, 208, 343, 0, 418, 271, 533, 511, 506, - 198, 210, 721, 245, 722, 0, 0, 726, 0, 0, - 0, 728, 727, 0, 729, 700, 699, 0, 0, 723, - 724, 0, 725, 0, 0, 193, 194, 201, 209, 219, + 547, 548, 549, 550, 551, 552, 553, 554, 0, 967, + 874, 0, 882, 883, 0, 976, 985, 986, 555, 357, + 449, 498, 312, 324, 327, 317, 336, 0, 337, 313, + 314, 319, 321, 322, 323, 328, 329, 333, 339, 426, + 427, 428, 429, 275, 507, 289, 432, 431, 308, 309, + 938, 191, 208, 343, 1001, 418, 271, 533, 511, 506, + 198, 210, 877, 245, 888, 896, 0, 902, 910, 911, + 923, 925, 926, 927, 928, 946, 947, 949, 957, 959, + 962, 964, 971, 982, 1004, 193, 194, 201, 209, 219, 223, 230, 244, 259, 261, 268, 281, 286, 290, 295, 296, 299, 305, 353, 359, 360, 361, 362, 379, 380, 381, 384, 387, 388, 391, 393, 394, 397, 401, 405, 406, 407, 408, 410, 412, 419, 424, 438, 439, 440, 441, 442, 445, 446, 451, 452, 453, 454, 455, 463, 464, 468, 486, 488, 500, 515, 520, 444, 282, 495, - 521, 0, 352, 0, 0, 354, 264, 285, 297, 0, - 510, 465, 214, 430, 273, 236, 748, 0, 202, 233, + 521, 0, 352, 937, 943, 354, 264, 285, 297, 952, + 510, 465, 214, 430, 273, 236, 970, 972, 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, 228, 448, 471, 472, 473, 475, 367, - 249, 403, 0, 368, 350, 477, 478, 293, 476, 0, + 249, 403, 933, 961, 350, 477, 478, 293, 368, 0, + 0, 990, 975, 476, 0, 918, 993, 887, 906, 1003, + 909, 912, 954, 866, 932, 386, 903, 859, 891, 861, + 898, 862, 889, 920, 253, 886, 977, 936, 992, 341, + 250, 868, 892, 400, 908, 197, 956, 450, 237, 351, + 348, 483, 265, 256, 252, 235, 294, 358, 398, 470, + 392, 999, 345, 942, 0, 460, 371, 0, 0, 0, + 922, 981, 930, 968, 917, 955, 876, 941, 994, 904, + 951, 995, 300, 234, 302, 196, 383, 461, 269, 0, + 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 225, 0, 232, 326, + 335, 334, 315, 316, 318, 320, 325, 332, 338, 900, + 948, 989, 901, 950, 248, 298, 255, 247, 480, 1000, + 980, 865, 929, 988, 0, 0, 216, 991, 924, 0, + 953, 0, 1006, 860, 944, 0, 863, 867, 1002, 984, + 895, 258, 0, 0, 0, 0, 0, 0, 0, 921, + 931, 965, 969, 915, 0, 0, 0, 0, 0, 0, + 0, 893, 0, 940, 0, 0, 0, 872, 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 386, 0, 0, 0, 0, 637, 0, 0, 0, 253, - 642, 0, 0, 0, 341, 250, 0, 0, 400, 0, - 197, 0, 450, 237, 351, 348, 483, 265, 256, 252, - 235, 294, 358, 398, 470, 392, 649, 345, 0, 0, - 460, 371, 0, 0, 0, 0, 0, 644, 645, 0, - 0, 0, 0, 0, 0, 0, 0, 300, 234, 302, - 196, 383, 461, 269, 0, 87, 0, 0, 188, 189, - 190, 741, 749, 750, 751, 752, 753, 742, 744, 0, - 0, 225, 743, 232, 660, 662, 661, 676, 677, 678, - 679, 680, 681, 682, 658, 746, 754, 755, 0, 248, - 298, 255, 247, 480, 0, 0, 1799, 1800, 1801, 0, - 0, 216, 0, 0, 0, 0, 0, 0, 0, 620, - 634, 0, 648, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 631, 632, 0, 0, 0, 0, 709, 0, - 633, 0, 0, 641, 756, 757, 758, 759, 760, 761, - 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, - 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, - 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, - 792, 793, 794, 795, 796, 797, 715, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 280, 0, 372, - 240, 0, 708, 0, 0, 517, 0, 0, 706, 0, - 0, 0, 0, 340, 0, 307, 192, 212, 0, 0, - 382, 425, 437, 0, 0, 0, 238, 0, 435, 396, - 499, 220, 267, 422, 402, 433, 409, 270, 0, 0, - 434, 346, 485, 416, 496, 518, 519, 246, 376, 508, - 474, 514, 532, 213, 243, 390, 467, 502, 457, 369, - 481, 482, 306, 456, 278, 195, 344, 524, 211, 443, - 229, 218, 487, 505, 272, 420, 203, 469, 494, 226, - 447, 0, 0, 534, 205, 492, 466, 365, 303, 304, - 204, 0, 421, 251, 276, 241, 385, 489, 490, 239, - 535, 215, 513, 207, 0, 512, 378, 484, 493, 366, - 356, 206, 491, 364, 355, 311, 671, 672, 263, 287, - 414, 349, 415, 288, 374, 373, 375, 199, 503, 0, - 200, 0, 462, 504, 536, 221, 222, 224, 0, 262, - 266, 274, 277, 283, 284, 292, 342, 389, 413, 411, - 417, 0, 479, 497, 509, 516, 522, 523, 525, 526, - 527, 528, 529, 531, 530, 377, 291, 458, 310, 347, - 0, 0, 395, 436, 227, 501, 459, 716, 707, 653, - 720, 655, 717, 718, 650, 651, 654, 719, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 0, 710, 640, 639, - 0, 646, 647, 0, 656, 657, 659, 663, 664, 665, - 673, 674, 675, 683, 685, 686, 684, 687, 688, 689, - 692, 693, 694, 695, 690, 691, 696, 730, 731, 732, - 733, 734, 735, 666, 670, 669, 667, 668, 638, 191, - 208, 343, 0, 418, 271, 533, 511, 506, 198, 210, - 721, 245, 722, 0, 0, 726, 0, 0, 0, 728, - 727, 0, 729, 700, 699, 0, 0, 723, 724, 0, - 725, 0, 0, 193, 194, 201, 209, 219, 223, 230, - 244, 259, 261, 268, 281, 286, 290, 295, 296, 299, - 305, 353, 359, 360, 361, 362, 379, 380, 381, 384, - 387, 388, 391, 393, 394, 397, 401, 405, 406, 407, - 408, 410, 412, 419, 424, 438, 439, 440, 441, 442, - 445, 446, 451, 452, 453, 454, 455, 463, 464, 468, - 486, 488, 500, 515, 520, 444, 282, 495, 521, 0, - 352, 0, 0, 354, 264, 285, 297, 0, 510, 465, - 214, 430, 273, 236, 748, 0, 202, 233, 217, 242, - 257, 260, 301, 363, 370, 399, 404, 279, 254, 231, - 423, 228, 448, 471, 472, 473, 475, 367, 249, 403, - 0, 368, 350, 477, 478, 293, 476, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 386, 0, - 0, 0, 0, 637, 0, 0, 0, 253, 642, 0, - 0, 0, 341, 250, 0, 0, 400, 0, 197, 0, - 450, 237, 351, 348, 483, 265, 256, 252, 235, 294, - 358, 398, 470, 392, 649, 345, 0, 0, 460, 371, - 0, 0, 0, 0, 0, 644, 645, 0, 0, 0, - 0, 0, 0, 1938, 0, 300, 234, 302, 196, 383, - 461, 269, 0, 87, 0, 0, 188, 189, 190, 741, - 749, 750, 751, 752, 753, 742, 744, 0, 0, 225, - 743, 232, 660, 662, 661, 676, 677, 678, 679, 680, - 681, 682, 658, 746, 754, 755, 1939, 248, 298, 255, - 247, 480, 0, 0, 0, 0, 0, 0, 0, 216, - 0, 0, 0, 0, 0, 0, 0, 620, 634, 0, - 648, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 631, 632, 0, 0, 0, 0, 709, 0, 633, 0, - 0, 641, 756, 757, 758, 759, 760, 761, 762, 763, - 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, - 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, - 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, - 794, 795, 796, 797, 715, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 372, 240, 0, - 708, 0, 0, 517, 0, 0, 706, 0, 0, 0, - 0, 340, 0, 307, 192, 212, 0, 0, 382, 425, - 437, 0, 0, 0, 238, 0, 435, 396, 499, 220, - 267, 422, 402, 433, 409, 270, 0, 0, 434, 346, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 919, 0, 0, 0, 0, 875, 0, 894, 966, + 0, 858, 280, 869, 372, 240, 0, 973, 983, 916, + 517, 987, 914, 913, 960, 873, 979, 907, 340, 871, + 307, 192, 212, 0, 905, 382, 425, 437, 978, 890, + 899, 238, 897, 435, 396, 499, 220, 267, 422, 402, + 433, 409, 270, 939, 958, 434, 346, 485, 416, 496, + 518, 519, 246, 376, 508, 474, 514, 532, 213, 243, + 390, 467, 502, 457, 369, 481, 482, 306, 456, 278, + 195, 344, 524, 211, 443, 229, 218, 487, 505, 272, + 420, 203, 469, 494, 226, 447, 0, 0, 534, 205, + 492, 466, 365, 303, 304, 204, 0, 421, 251, 276, + 241, 385, 489, 490, 239, 535, 215, 513, 207, 1196, + 512, 378, 484, 493, 366, 356, 206, 491, 364, 355, + 311, 330, 331, 263, 287, 414, 349, 415, 288, 374, + 373, 375, 199, 503, 0, 200, 0, 462, 504, 536, + 221, 222, 224, 885, 262, 266, 274, 277, 283, 284, + 292, 342, 389, 413, 411, 417, 974, 479, 497, 509, + 516, 522, 523, 525, 526, 527, 528, 529, 531, 530, + 377, 291, 458, 310, 347, 963, 1005, 395, 436, 227, + 501, 459, 880, 884, 878, 945, 879, 934, 935, 881, + 996, 997, 998, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 0, 967, 874, 0, 882, 883, 0, 976, 985, + 986, 555, 357, 449, 498, 312, 324, 327, 317, 336, + 0, 337, 313, 314, 319, 321, 322, 323, 328, 329, + 333, 339, 426, 427, 428, 429, 275, 507, 289, 432, + 431, 308, 309, 938, 191, 208, 343, 1001, 418, 271, + 533, 511, 506, 198, 210, 877, 245, 888, 896, 0, + 902, 910, 911, 923, 925, 926, 927, 928, 946, 947, + 949, 957, 959, 962, 964, 971, 982, 1004, 193, 194, + 201, 209, 219, 223, 230, 244, 259, 261, 268, 281, + 286, 290, 295, 296, 299, 305, 353, 359, 360, 361, + 362, 379, 380, 381, 384, 387, 388, 391, 393, 394, + 397, 401, 405, 406, 407, 408, 410, 412, 419, 424, + 438, 439, 440, 441, 442, 445, 446, 451, 452, 453, + 454, 455, 463, 464, 468, 486, 488, 500, 515, 520, + 444, 282, 495, 521, 0, 352, 937, 943, 354, 264, + 285, 297, 952, 510, 465, 214, 430, 273, 236, 970, + 972, 202, 233, 217, 242, 257, 260, 301, 363, 370, + 399, 404, 279, 254, 231, 423, 228, 448, 471, 472, + 473, 475, 367, 249, 403, 933, 961, 350, 477, 478, + 293, 368, 0, 0, 990, 975, 476, 0, 918, 993, + 887, 906, 1003, 909, 912, 954, 866, 932, 386, 903, + 859, 891, 861, 898, 862, 889, 920, 253, 886, 977, + 936, 992, 341, 250, 868, 892, 400, 908, 197, 956, + 450, 237, 351, 348, 483, 265, 256, 252, 235, 294, + 358, 398, 470, 392, 999, 345, 942, 0, 460, 371, + 0, 0, 0, 922, 981, 930, 968, 917, 955, 876, + 941, 994, 904, 951, 995, 300, 234, 302, 196, 383, + 461, 269, 0, 0, 0, 0, 188, 189, 190, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, + 0, 232, 326, 335, 334, 315, 316, 318, 320, 325, + 332, 338, 900, 948, 989, 901, 950, 248, 298, 255, + 247, 480, 1000, 980, 865, 929, 988, 0, 0, 1007, + 991, 924, 0, 953, 0, 1006, 860, 944, 0, 863, + 867, 1002, 984, 895, 258, 0, 0, 0, 0, 0, + 0, 0, 921, 931, 965, 969, 915, 0, 0, 0, + 0, 0, 0, 0, 893, 0, 940, 0, 0, 0, + 872, 864, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 919, 0, 0, 0, 0, 875, + 0, 894, 966, 0, 858, 280, 869, 372, 240, 0, + 973, 983, 916, 517, 987, 914, 913, 960, 873, 979, + 907, 340, 871, 307, 192, 212, 0, 905, 382, 425, + 437, 978, 890, 899, 238, 897, 435, 396, 499, 220, + 267, 422, 402, 433, 409, 270, 939, 958, 434, 346, 485, 416, 496, 518, 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, 467, 502, 457, 369, 481, 482, 306, 456, 278, 195, 344, 524, 211, 443, 229, 218, 487, 505, 272, 420, 203, 469, 494, 226, 447, 0, 0, 534, 205, 492, 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, 385, 489, 490, 239, 535, 215, - 513, 207, 0, 512, 378, 484, 493, 366, 356, 206, - 491, 364, 355, 311, 671, 672, 263, 287, 414, 349, + 513, 207, 870, 512, 378, 484, 493, 366, 356, 206, + 491, 364, 355, 311, 330, 331, 263, 287, 414, 349, 415, 288, 374, 373, 375, 199, 503, 0, 200, 0, - 462, 504, 536, 221, 222, 224, 0, 262, 266, 274, - 277, 283, 284, 292, 342, 389, 413, 411, 417, 0, + 462, 504, 536, 221, 222, 224, 885, 262, 266, 274, + 277, 283, 284, 292, 342, 389, 413, 411, 417, 974, 479, 497, 509, 516, 522, 523, 525, 526, 527, 528, - 529, 531, 530, 377, 291, 458, 310, 347, 0, 0, - 395, 436, 227, 501, 459, 716, 707, 653, 720, 655, - 717, 718, 650, 651, 654, 719, 537, 538, 539, 540, + 529, 531, 530, 857, 851, 850, 310, 347, 963, 1005, + 395, 436, 227, 501, 459, 880, 884, 878, 945, 879, + 934, 935, 881, 996, 997, 998, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 0, 710, 640, 639, 0, 646, - 647, 0, 656, 657, 659, 663, 664, 665, 673, 674, - 675, 683, 685, 686, 684, 687, 688, 689, 692, 693, - 694, 695, 690, 691, 696, 730, 731, 732, 733, 734, - 735, 666, 670, 669, 667, 668, 638, 191, 208, 343, - 0, 418, 271, 533, 511, 506, 198, 210, 721, 245, - 722, 0, 0, 726, 0, 0, 0, 728, 727, 0, - 729, 700, 699, 0, 0, 723, 724, 0, 725, 0, - 0, 193, 194, 201, 209, 219, 223, 230, 244, 259, + 551, 552, 553, 554, 0, 967, 874, 0, 882, 883, + 0, 976, 985, 986, 555, 357, 449, 498, 312, 324, + 327, 317, 336, 0, 337, 313, 314, 319, 321, 322, + 323, 328, 329, 333, 339, 426, 427, 428, 429, 275, + 507, 289, 432, 431, 308, 309, 938, 191, 208, 343, + 1001, 418, 271, 533, 511, 506, 198, 210, 877, 245, + 888, 896, 0, 902, 910, 911, 923, 925, 926, 927, + 928, 946, 947, 949, 957, 959, 962, 964, 971, 982, + 1004, 193, 194, 201, 209, 219, 223, 230, 244, 259, 261, 268, 281, 286, 290, 295, 296, 299, 305, 353, 359, 360, 361, 362, 379, 380, 381, 384, 387, 388, 391, 393, 394, 397, 401, 405, 406, 407, 408, 410, 412, 419, 424, 438, 439, 440, 441, 442, 445, 446, 451, 452, 453, 454, 455, 463, 464, 468, 486, 488, - 500, 515, 520, 444, 282, 495, 521, 0, 352, 0, - 0, 354, 264, 285, 297, 0, 510, 465, 214, 430, - 273, 236, 748, 0, 202, 233, 217, 242, 257, 260, + 500, 515, 520, 444, 282, 495, 521, 0, 352, 937, + 943, 354, 264, 285, 297, 952, 510, 465, 214, 430, + 273, 236, 970, 972, 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, 228, - 448, 471, 472, 473, 475, 367, 249, 403, 0, 0, - 350, 477, 478, 293, 368, 0, 0, 0, 78, 476, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 386, 0, 0, 0, 0, 637, 0, 0, 0, - 253, 642, 0, 0, 0, 341, 250, 0, 0, 400, - 0, 197, 0, 450, 237, 351, 348, 483, 265, 256, - 252, 235, 294, 358, 398, 470, 392, 649, 345, 0, - 0, 460, 371, 0, 0, 0, 0, 0, 644, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 300, 234, - 302, 196, 383, 461, 269, 0, 87, 0, 0, 188, - 189, 190, 741, 749, 750, 751, 752, 753, 742, 744, - 0, 0, 225, 743, 232, 660, 662, 661, 676, 677, - 678, 679, 680, 681, 682, 658, 746, 754, 755, 0, - 248, 298, 255, 247, 480, 0, 0, 0, 0, 0, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 620, 634, 0, 648, 0, 0, 0, 258, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 631, 632, 0, 0, 0, 0, 709, - 0, 633, 0, 0, 641, 756, 757, 758, 759, 760, - 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, - 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, - 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, - 791, 792, 793, 794, 795, 796, 797, 715, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 372, 240, 0, 708, 0, 0, 517, 0, 0, 706, - 0, 0, 0, 0, 340, 0, 307, 192, 212, 0, - 0, 382, 425, 437, 0, 0, 0, 238, 0, 435, - 396, 499, 220, 267, 422, 402, 433, 409, 270, 0, - 0, 434, 346, 485, 416, 496, 518, 519, 246, 376, + 448, 471, 472, 473, 475, 367, 249, 403, 933, 961, + 350, 477, 478, 293, 368, 0, 0, 990, 975, 476, + 0, 918, 993, 887, 906, 1003, 909, 912, 954, 866, + 932, 386, 903, 859, 891, 861, 898, 862, 889, 920, + 253, 886, 977, 936, 992, 341, 250, 868, 892, 400, + 908, 197, 956, 450, 237, 351, 348, 483, 265, 256, + 252, 235, 294, 358, 398, 470, 392, 999, 345, 942, + 0, 460, 371, 0, 0, 0, 922, 981, 930, 968, + 917, 955, 876, 941, 994, 904, 951, 995, 300, 234, + 302, 196, 383, 461, 269, 0, 0, 0, 0, 188, + 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 225, 0, 232, 326, 335, 334, 315, 316, + 318, 320, 325, 332, 338, 900, 948, 989, 901, 950, + 248, 298, 255, 247, 480, 1000, 980, 865, 929, 988, + 0, 0, 1007, 991, 924, 0, 953, 0, 1006, 860, + 944, 0, 863, 867, 1002, 984, 895, 258, 0, 0, + 0, 0, 0, 0, 0, 921, 931, 965, 969, 915, + 0, 0, 0, 0, 0, 0, 0, 893, 0, 940, + 0, 0, 0, 872, 864, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 919, 0, 0, + 0, 0, 875, 0, 894, 966, 0, 858, 280, 869, + 372, 240, 0, 973, 983, 916, 517, 987, 914, 913, + 960, 873, 979, 907, 340, 871, 307, 192, 212, 0, + 905, 382, 425, 437, 978, 890, 899, 238, 897, 435, + 396, 499, 220, 267, 422, 402, 433, 409, 270, 939, + 958, 434, 346, 485, 416, 496, 518, 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, 467, 502, 457, 369, 481, 482, 306, 456, 278, 195, 344, 524, 211, - 443, 229, 218, 487, 505, 272, 420, 203, 469, 494, + 443, 229, 218, 487, 505, 272, 420, 203, 469, 1430, 226, 447, 0, 0, 534, 205, 492, 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, 385, 489, 490, - 239, 535, 215, 513, 207, 0, 512, 378, 484, 493, - 366, 356, 206, 491, 364, 355, 311, 671, 672, 263, + 239, 535, 215, 513, 207, 870, 512, 378, 484, 493, + 366, 356, 206, 491, 364, 355, 311, 330, 331, 263, 287, 414, 349, 415, 288, 374, 373, 375, 199, 503, - 0, 200, 0, 462, 504, 536, 221, 222, 224, 0, + 0, 200, 0, 462, 504, 536, 221, 222, 224, 885, 262, 266, 274, 277, 283, 284, 292, 342, 389, 413, - 411, 417, 0, 479, 497, 509, 516, 522, 523, 525, - 526, 527, 528, 529, 531, 530, 377, 291, 458, 310, - 347, 0, 0, 395, 436, 227, 501, 459, 716, 707, - 653, 720, 655, 717, 718, 650, 651, 654, 719, 537, + 411, 417, 974, 479, 497, 509, 516, 522, 523, 525, + 526, 527, 528, 529, 531, 530, 857, 851, 850, 310, + 347, 963, 1005, 395, 436, 227, 501, 459, 880, 884, + 878, 945, 879, 934, 935, 881, 996, 997, 998, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 0, 710, 640, - 639, 0, 646, 647, 0, 656, 657, 659, 663, 664, - 665, 673, 674, 675, 683, 685, 686, 684, 687, 688, - 689, 692, 693, 694, 695, 690, 691, 696, 730, 731, - 732, 733, 734, 735, 666, 670, 669, 667, 668, 638, - 191, 208, 343, 86, 418, 271, 533, 511, 506, 198, - 210, 721, 245, 722, 0, 0, 726, 0, 0, 0, - 728, 727, 0, 729, 700, 699, 0, 0, 723, 724, - 0, 725, 0, 0, 193, 194, 201, 209, 219, 223, + 548, 549, 550, 551, 552, 553, 554, 0, 967, 874, + 0, 882, 883, 0, 976, 985, 986, 555, 357, 449, + 498, 312, 324, 327, 317, 336, 0, 337, 313, 314, + 319, 321, 322, 323, 328, 329, 333, 339, 426, 427, + 428, 429, 275, 507, 289, 432, 431, 308, 309, 938, + 191, 208, 343, 1001, 418, 271, 533, 511, 506, 198, + 210, 877, 245, 888, 896, 0, 902, 910, 911, 923, + 925, 926, 927, 928, 946, 947, 949, 957, 959, 962, + 964, 971, 982, 1004, 193, 194, 201, 209, 219, 223, 230, 244, 259, 261, 268, 281, 286, 290, 295, 296, 299, 305, 353, 359, 360, 361, 362, 379, 380, 381, 384, 387, 388, 391, 393, 394, 397, 401, 405, 406, 407, 408, 410, 412, 419, 424, 438, 439, 440, 441, 442, 445, 446, 451, 452, 453, 454, 455, 463, 464, 468, 486, 488, 500, 515, 520, 444, 282, 495, 521, - 0, 352, 0, 0, 354, 264, 285, 297, 0, 510, - 465, 214, 430, 273, 236, 748, 0, 202, 233, 217, + 0, 352, 937, 943, 354, 264, 285, 297, 952, 510, + 465, 214, 430, 273, 236, 970, 972, 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, 228, 448, 471, 472, 473, 475, 367, 249, - 403, 0, 368, 350, 477, 478, 293, 476, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, - 0, 0, 0, 0, 637, 0, 0, 0, 253, 642, - 0, 0, 0, 341, 250, 0, 0, 400, 0, 197, - 0, 450, 237, 351, 348, 483, 265, 256, 252, 235, - 294, 358, 398, 470, 392, 649, 345, 0, 0, 460, - 371, 0, 0, 0, 0, 0, 644, 645, 0, 0, - 0, 0, 0, 0, 0, 0, 300, 234, 302, 196, - 383, 461, 269, 0, 87, 0, 0, 188, 189, 190, - 741, 749, 750, 751, 752, 753, 742, 744, 0, 0, - 225, 743, 232, 660, 662, 661, 676, 677, 678, 679, - 680, 681, 682, 658, 746, 754, 755, 0, 248, 298, - 255, 247, 480, 0, 0, 0, 0, 0, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 620, 634, - 0, 648, 0, 0, 0, 258, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 631, 632, 0, 0, 0, 0, 709, 0, 633, - 0, 0, 641, 756, 757, 758, 759, 760, 761, 762, - 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, - 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, - 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, - 793, 794, 795, 796, 797, 715, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 372, 240, - 0, 708, 0, 0, 517, 0, 0, 706, 0, 0, - 0, 0, 340, 0, 307, 192, 212, 0, 0, 382, - 425, 437, 0, 0, 0, 238, 0, 435, 396, 499, - 220, 267, 422, 402, 433, 409, 270, 3153, 0, 434, - 346, 485, 416, 496, 518, 519, 246, 376, 508, 474, - 514, 532, 213, 243, 390, 467, 502, 457, 369, 481, - 482, 306, 456, 278, 195, 344, 524, 211, 443, 229, - 218, 487, 505, 272, 420, 203, 469, 494, 226, 447, - 0, 0, 534, 205, 492, 466, 365, 303, 304, 204, - 0, 421, 251, 276, 241, 385, 489, 490, 239, 535, - 215, 513, 207, 0, 512, 378, 484, 493, 366, 356, - 206, 491, 364, 355, 311, 671, 672, 263, 287, 414, - 349, 415, 288, 374, 373, 375, 199, 503, 0, 200, - 0, 462, 504, 536, 221, 222, 224, 0, 262, 266, - 274, 277, 283, 284, 292, 342, 389, 413, 411, 417, - 0, 479, 497, 509, 516, 522, 523, 525, 526, 527, - 528, 529, 531, 530, 377, 291, 458, 310, 347, 0, - 0, 395, 436, 227, 501, 459, 716, 707, 653, 720, - 655, 717, 718, 650, 651, 654, 719, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 0, 710, 640, 639, 0, - 646, 647, 0, 656, 657, 659, 663, 664, 665, 673, - 674, 675, 683, 685, 686, 684, 687, 688, 689, 692, - 693, 694, 695, 690, 691, 696, 730, 731, 732, 733, - 734, 735, 666, 670, 669, 667, 668, 638, 191, 208, - 343, 0, 418, 271, 533, 511, 506, 198, 210, 721, - 245, 722, 0, 0, 726, 0, 0, 0, 728, 727, - 0, 729, 700, 699, 0, 0, 723, 724, 0, 725, - 0, 0, 193, 194, 201, 209, 219, 223, 230, 244, - 259, 261, 268, 281, 286, 290, 295, 296, 299, 305, - 353, 359, 360, 361, 362, 379, 380, 381, 384, 387, - 388, 391, 393, 394, 397, 401, 405, 406, 407, 408, - 410, 412, 419, 424, 438, 439, 440, 441, 442, 445, - 446, 451, 452, 453, 454, 455, 463, 464, 468, 486, - 488, 500, 515, 520, 444, 282, 495, 521, 0, 352, - 0, 0, 354, 264, 285, 297, 0, 510, 465, 214, - 430, 273, 236, 748, 0, 202, 233, 217, 242, 257, - 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, - 228, 448, 471, 472, 473, 475, 367, 249, 403, 0, - 368, 350, 477, 478, 293, 476, 0, 0, 0, 0, + 403, 933, 961, 350, 477, 478, 293, 368, 0, 0, + 990, 975, 476, 0, 918, 993, 887, 906, 1003, 909, + 912, 954, 866, 932, 386, 903, 859, 891, 861, 898, + 862, 889, 920, 253, 886, 977, 936, 992, 341, 250, + 868, 892, 400, 908, 197, 956, 450, 237, 351, 348, + 483, 265, 256, 252, 235, 294, 358, 398, 470, 392, + 999, 345, 942, 0, 460, 371, 0, 0, 0, 922, + 981, 930, 968, 917, 955, 876, 941, 994, 904, 951, + 995, 300, 234, 302, 196, 383, 461, 269, 0, 0, + 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 225, 0, 232, 326, 335, + 334, 315, 316, 318, 320, 325, 332, 338, 900, 948, + 989, 901, 950, 248, 298, 255, 247, 480, 1000, 980, + 865, 929, 988, 0, 0, 1007, 991, 924, 0, 953, + 0, 1006, 860, 944, 0, 863, 867, 1002, 984, 895, + 258, 0, 0, 0, 0, 0, 0, 0, 921, 931, + 965, 969, 915, 0, 0, 0, 0, 0, 0, 0, + 893, 0, 940, 0, 0, 0, 872, 864, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 919, 0, 0, 0, 0, 875, 0, 894, 966, 0, + 858, 280, 869, 372, 240, 0, 973, 983, 916, 517, + 987, 914, 913, 960, 873, 979, 907, 340, 871, 307, + 192, 212, 0, 905, 382, 425, 437, 978, 890, 899, + 238, 897, 435, 396, 499, 220, 267, 422, 402, 433, + 409, 270, 939, 958, 434, 346, 485, 416, 496, 518, + 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, + 467, 502, 457, 369, 481, 482, 306, 456, 278, 195, + 344, 524, 211, 443, 229, 218, 487, 505, 272, 420, + 203, 469, 848, 226, 447, 0, 0, 534, 205, 492, + 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, + 385, 489, 490, 239, 535, 215, 513, 207, 870, 512, + 378, 484, 493, 366, 356, 206, 491, 364, 355, 311, + 330, 331, 263, 287, 414, 349, 415, 288, 374, 373, + 375, 199, 503, 0, 200, 0, 462, 504, 536, 221, + 222, 224, 885, 262, 266, 274, 277, 283, 284, 292, + 342, 389, 413, 411, 417, 974, 479, 497, 509, 516, + 522, 523, 525, 526, 527, 528, 529, 531, 530, 857, + 851, 850, 310, 347, 963, 1005, 395, 436, 227, 501, + 459, 880, 884, 878, 945, 879, 934, 935, 881, 996, + 997, 998, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 0, 967, 874, 0, 882, 883, 0, 976, 985, 986, + 555, 357, 449, 498, 312, 324, 327, 317, 336, 0, + 337, 313, 314, 319, 321, 322, 323, 328, 329, 333, + 339, 426, 427, 428, 429, 275, 507, 289, 432, 431, + 308, 309, 938, 191, 208, 343, 1001, 418, 271, 533, + 511, 506, 198, 210, 877, 245, 888, 896, 0, 902, + 910, 911, 923, 925, 926, 927, 928, 946, 947, 949, + 957, 959, 962, 964, 971, 982, 1004, 193, 194, 201, + 209, 219, 223, 230, 244, 259, 261, 268, 281, 286, + 290, 295, 296, 299, 305, 353, 359, 360, 361, 362, + 379, 380, 381, 384, 387, 388, 391, 393, 394, 397, + 401, 405, 406, 407, 408, 410, 412, 419, 424, 438, + 439, 440, 441, 442, 445, 446, 451, 452, 453, 454, + 455, 463, 464, 468, 486, 488, 500, 515, 520, 444, + 282, 495, 521, 0, 352, 937, 943, 354, 264, 285, + 297, 952, 510, 465, 214, 430, 273, 236, 970, 972, + 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, + 404, 279, 254, 231, 423, 228, 448, 471, 472, 473, + 475, 367, 249, 403, 933, 961, 350, 477, 478, 293, + 368, 0, 0, 0, 0, 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, 0, 0, - 0, 0, 637, 0, 0, 0, 253, 642, 0, 0, - 0, 341, 250, 0, 0, 400, 0, 197, 0, 450, + 1847, 0, 637, 0, 0, 0, 253, 642, 0, 0, + 0, 341, 250, 0, 1848, 400, 0, 197, 0, 450, 237, 351, 348, 483, 265, 256, 252, 235, 294, 358, 398, 470, 392, 649, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 644, 645, 0, 0, 0, 0, 0, 0, 0, 0, 300, 234, 302, 196, 383, 461, - 269, 0, 87, 0, 1397, 188, 189, 190, 741, 749, + 269, 0, 87, 0, 0, 188, 189, 190, 741, 749, 750, 751, 752, 753, 742, 744, 0, 0, 225, 743, 232, 660, 662, 661, 676, 677, 678, 679, 680, 681, 682, 658, 746, 754, 755, 0, 248, 298, 255, 247, @@ -3282,7 +2989,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 620, 634, 0, 648, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, - 632, 0, 0, 0, 0, 709, 0, 633, 0, 0, + 632, 837, 0, 0, 0, 709, 0, 633, 0, 0, 641, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, @@ -3340,10 +3047,10 @@ var yyAct = [...]int{ 752, 753, 742, 744, 0, 0, 225, 743, 232, 660, 662, 661, 676, 677, 678, 679, 680, 681, 682, 658, 746, 754, 755, 0, 248, 298, 255, 247, 480, 0, - 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, + 0, 1799, 1800, 1801, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 620, 634, 0, 648, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 631, 632, 837, + 0, 0, 0, 0, 0, 0, 0, 631, 632, 0, 0, 0, 0, 709, 0, 633, 0, 0, 641, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, @@ -3396,12 +3103,12 @@ var yyAct = [...]int{ 0, 400, 0, 197, 0, 450, 237, 351, 348, 483, 265, 256, 252, 235, 294, 358, 398, 470, 392, 649, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, - 644, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 644, 645, 0, 0, 0, 0, 0, 0, 1938, 0, 300, 234, 302, 196, 383, 461, 269, 0, 87, 0, 0, 188, 189, 190, 741, 749, 750, 751, 752, 753, 742, 744, 0, 0, 225, 743, 232, 660, 662, 661, 676, 677, 678, 679, 680, 681, 682, 658, 746, 754, - 755, 0, 248, 298, 255, 247, 480, 0, 0, 0, + 755, 1939, 248, 298, 255, 247, 480, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 620, 634, 0, 648, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3451,216 +3158,216 @@ var yyAct = [...]int{ 0, 510, 465, 214, 430, 273, 236, 748, 0, 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, 228, 448, 471, 472, 473, 475, - 367, 249, 403, 0, 368, 350, 477, 478, 293, 476, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 386, 0, 0, 0, 0, 637, 0, 0, 0, - 253, 642, 0, 0, 0, 341, 250, 0, 0, 400, - 0, 197, 0, 450, 237, 351, 348, 483, 265, 256, - 252, 235, 294, 358, 398, 470, 392, 649, 345, 0, - 0, 460, 371, 0, 0, 0, 0, 0, 644, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 300, 234, - 302, 196, 383, 461, 269, 0, 87, 0, 0, 188, - 189, 190, 741, 749, 750, 751, 752, 753, 742, 744, - 0, 0, 225, 743, 232, 660, 662, 661, 676, 677, - 678, 679, 680, 681, 682, 658, 746, 754, 755, 0, - 248, 298, 255, 247, 480, 0, 0, 0, 0, 0, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 634, 0, 648, 0, 0, 0, 258, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 631, 632, 0, 0, 0, 0, 709, - 0, 633, 0, 0, 641, 756, 757, 758, 759, 760, - 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, - 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, - 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, - 791, 792, 793, 794, 795, 796, 797, 715, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 372, 240, 0, 708, 0, 0, 517, 0, 0, 706, - 0, 0, 0, 0, 340, 0, 307, 192, 212, 0, - 0, 382, 425, 437, 0, 0, 0, 238, 0, 435, - 396, 499, 220, 267, 422, 402, 433, 409, 270, 0, - 0, 434, 346, 485, 416, 496, 518, 519, 246, 376, - 508, 474, 514, 532, 213, 243, 390, 467, 502, 457, - 369, 481, 482, 306, 456, 278, 195, 344, 524, 211, - 443, 229, 218, 487, 505, 272, 420, 203, 469, 494, - 226, 447, 0, 0, 534, 205, 492, 466, 365, 303, - 304, 204, 0, 421, 251, 276, 241, 385, 489, 490, - 239, 535, 215, 513, 207, 0, 512, 378, 484, 493, - 366, 356, 206, 491, 364, 355, 311, 671, 672, 263, - 287, 414, 349, 415, 288, 374, 373, 375, 199, 503, - 0, 200, 0, 462, 504, 536, 221, 222, 224, 0, - 262, 266, 274, 277, 283, 284, 292, 342, 389, 413, - 411, 417, 0, 479, 497, 509, 516, 522, 523, 525, - 526, 527, 528, 529, 531, 530, 377, 291, 458, 310, - 347, 0, 0, 395, 436, 227, 501, 459, 716, 707, - 653, 720, 655, 717, 718, 650, 651, 654, 719, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 0, 710, 640, - 639, 0, 646, 647, 0, 656, 657, 659, 663, 664, - 665, 673, 674, 675, 683, 685, 686, 684, 687, 688, - 689, 692, 693, 694, 695, 690, 691, 696, 730, 731, - 732, 733, 734, 735, 666, 670, 669, 667, 668, 638, - 191, 208, 343, 0, 418, 271, 533, 511, 506, 198, - 210, 721, 245, 722, 0, 0, 726, 0, 0, 0, - 728, 727, 0, 729, 700, 699, 0, 0, 723, 724, - 0, 725, 0, 0, 193, 194, 201, 209, 219, 223, - 230, 244, 259, 261, 268, 281, 286, 290, 295, 296, - 299, 305, 353, 359, 360, 361, 362, 379, 380, 381, - 384, 387, 388, 391, 393, 394, 397, 401, 405, 406, - 407, 408, 410, 412, 419, 424, 438, 439, 440, 441, - 442, 445, 446, 451, 452, 453, 454, 455, 463, 464, - 468, 486, 488, 500, 515, 520, 444, 282, 495, 521, - 0, 352, 0, 0, 354, 264, 285, 297, 0, 510, - 465, 214, 430, 273, 236, 748, 0, 202, 233, 217, - 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, - 231, 423, 228, 448, 471, 472, 473, 475, 367, 249, - 403, 0, 368, 350, 477, 478, 293, 476, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, - 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, - 0, 0, 0, 341, 250, 0, 0, 400, 0, 197, - 0, 450, 237, 351, 348, 483, 265, 256, 252, 235, - 294, 358, 398, 470, 392, 0, 345, 0, 0, 460, - 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 300, 234, 302, 196, - 383, 461, 269, 0, 0, 0, 0, 188, 189, 190, - 0, 749, 750, 0, 0, 0, 0, 1745, 0, 0, - 225, 0, 232, 326, 335, 334, 315, 316, 318, 320, - 325, 332, 338, 0, 0, 0, 0, 0, 248, 298, - 255, 247, 480, 0, 0, 0, 0, 0, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 756, 757, 758, 759, 760, 761, 762, - 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, - 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, - 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, - 793, 794, 795, 796, 797, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 372, 240, - 0, 0, 0, 0, 517, 0, 0, 0, 0, 0, - 0, 0, 340, 0, 307, 192, 212, 0, 0, 382, - 425, 437, 0, 0, 0, 238, 0, 435, 396, 499, - 220, 267, 422, 402, 433, 409, 270, 0, 0, 434, - 346, 485, 416, 496, 518, 519, 246, 376, 508, 474, - 514, 532, 213, 243, 390, 467, 502, 457, 369, 481, - 482, 306, 456, 278, 195, 344, 524, 211, 443, 229, - 218, 487, 505, 272, 420, 203, 469, 494, 226, 447, - 0, 0, 534, 205, 492, 466, 365, 303, 304, 204, - 0, 421, 251, 276, 241, 385, 489, 490, 239, 535, - 215, 513, 207, 0, 512, 378, 484, 493, 366, 356, - 206, 491, 364, 355, 311, 330, 331, 263, 287, 414, - 349, 415, 288, 374, 373, 375, 199, 503, 0, 200, - 0, 462, 504, 536, 221, 222, 224, 0, 262, 266, - 274, 277, 283, 284, 292, 342, 389, 413, 411, 417, - 0, 479, 497, 509, 516, 522, 523, 525, 526, 527, - 528, 529, 531, 530, 377, 291, 458, 310, 347, 0, - 0, 395, 436, 227, 501, 459, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 555, 357, 449, 498, 312, - 324, 327, 317, 336, 0, 337, 313, 314, 319, 321, - 322, 323, 328, 329, 333, 339, 426, 427, 428, 429, - 275, 507, 289, 432, 431, 308, 309, 0, 191, 208, - 343, 0, 418, 271, 533, 511, 506, 198, 210, 0, - 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 194, 201, 209, 219, 223, 230, 244, - 259, 261, 268, 281, 286, 290, 295, 296, 299, 305, - 353, 359, 360, 361, 362, 379, 380, 381, 384, 387, - 388, 391, 393, 394, 397, 401, 405, 406, 407, 408, - 410, 412, 419, 424, 438, 439, 440, 441, 442, 445, - 446, 451, 452, 453, 454, 455, 463, 464, 468, 486, - 488, 500, 515, 520, 444, 282, 495, 521, 0, 352, - 0, 0, 354, 264, 285, 297, 0, 510, 465, 214, - 430, 273, 236, 0, 0, 202, 233, 217, 242, 257, - 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, - 228, 448, 471, 472, 473, 475, 367, 249, 403, 0, - 368, 350, 477, 478, 293, 476, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 386, 0, 0, - 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, - 0, 341, 250, 0, 0, 400, 0, 197, 0, 450, - 237, 351, 348, 483, 265, 256, 252, 235, 294, 358, - 398, 470, 392, 0, 345, 0, 0, 460, 371, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 300, 234, 302, 196, 383, 461, - 269, 0, 0, 0, 0, 188, 189, 190, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, - 232, 326, 335, 334, 315, 316, 318, 320, 325, 332, - 338, 0, 0, 0, 0, 0, 248, 298, 255, 247, - 480, 0, 0, 0, 0, 0, 0, 0, 216, 0, - 1058, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 372, 240, 0, 0, - 0, 1057, 517, 0, 0, 0, 0, 0, 1054, 1055, - 340, 1015, 307, 192, 212, 1048, 1052, 382, 425, 437, - 0, 0, 0, 238, 0, 435, 396, 499, 220, 267, - 422, 402, 433, 409, 270, 0, 0, 434, 346, 485, - 416, 496, 518, 519, 246, 376, 508, 474, 514, 532, - 213, 243, 390, 467, 502, 457, 369, 481, 482, 306, - 456, 278, 195, 344, 524, 211, 443, 229, 218, 487, - 505, 272, 420, 203, 469, 494, 226, 447, 0, 0, - 534, 205, 492, 466, 365, 303, 304, 204, 0, 421, - 251, 276, 241, 385, 489, 490, 239, 535, 215, 513, - 207, 0, 512, 378, 484, 493, 366, 356, 206, 491, - 364, 355, 311, 330, 331, 263, 287, 414, 349, 415, - 288, 374, 373, 375, 199, 503, 0, 200, 0, 462, - 504, 536, 221, 222, 224, 0, 262, 266, 274, 277, - 283, 284, 292, 342, 389, 413, 411, 417, 0, 479, - 497, 509, 516, 522, 523, 525, 526, 527, 528, 529, - 531, 530, 377, 291, 458, 310, 347, 0, 0, 395, - 436, 227, 501, 459, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 555, 357, 449, 498, 312, 324, 327, - 317, 336, 0, 337, 313, 314, 319, 321, 322, 323, - 328, 329, 333, 339, 426, 427, 428, 429, 275, 507, - 289, 432, 431, 308, 309, 0, 191, 208, 343, 0, - 418, 271, 533, 511, 506, 198, 210, 0, 245, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 367, 249, 403, 0, 0, 350, 477, 478, 293, 368, + 0, 0, 0, 78, 476, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 386, 0, 0, 0, + 0, 637, 0, 0, 0, 253, 642, 0, 0, 0, + 341, 250, 0, 0, 400, 0, 197, 0, 450, 237, + 351, 348, 483, 265, 256, 252, 235, 294, 358, 398, + 470, 392, 649, 345, 0, 0, 460, 371, 0, 0, + 0, 0, 0, 644, 645, 0, 0, 0, 0, 0, + 0, 0, 0, 300, 234, 302, 196, 383, 461, 269, + 0, 87, 0, 0, 188, 189, 190, 741, 749, 750, + 751, 752, 753, 742, 744, 0, 0, 225, 743, 232, + 660, 662, 661, 676, 677, 678, 679, 680, 681, 682, + 658, 746, 754, 755, 0, 248, 298, 255, 247, 480, + 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 620, 634, 0, 648, 0, + 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 631, 632, + 0, 0, 0, 0, 709, 0, 633, 0, 0, 641, + 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, + 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, + 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, + 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, + 796, 797, 715, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 280, 0, 372, 240, 0, 708, 0, + 0, 517, 0, 0, 706, 0, 0, 0, 0, 340, + 0, 307, 192, 212, 0, 0, 382, 425, 437, 0, + 0, 0, 238, 0, 435, 396, 499, 220, 267, 422, + 402, 433, 409, 270, 0, 0, 434, 346, 485, 416, + 496, 518, 519, 246, 376, 508, 474, 514, 532, 213, + 243, 390, 467, 502, 457, 369, 481, 482, 306, 456, + 278, 195, 344, 524, 211, 443, 229, 218, 487, 505, + 272, 420, 203, 469, 494, 226, 447, 0, 0, 534, + 205, 492, 466, 365, 303, 304, 204, 0, 421, 251, + 276, 241, 385, 489, 490, 239, 535, 215, 513, 207, + 0, 512, 378, 484, 493, 366, 356, 206, 491, 364, + 355, 311, 671, 672, 263, 287, 414, 349, 415, 288, + 374, 373, 375, 199, 503, 0, 200, 0, 462, 504, + 536, 221, 222, 224, 0, 262, 266, 274, 277, 283, + 284, 292, 342, 389, 413, 411, 417, 0, 479, 497, + 509, 516, 522, 523, 525, 526, 527, 528, 529, 531, + 530, 377, 291, 458, 310, 347, 0, 0, 395, 436, + 227, 501, 459, 716, 707, 653, 720, 655, 717, 718, + 650, 651, 654, 719, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 0, 710, 640, 639, 0, 646, 647, 0, + 656, 657, 659, 663, 664, 665, 673, 674, 675, 683, + 685, 686, 684, 687, 688, 689, 692, 693, 694, 695, + 690, 691, 696, 730, 731, 732, 733, 734, 735, 666, + 670, 669, 667, 668, 638, 191, 208, 343, 86, 418, + 271, 533, 511, 506, 198, 210, 721, 245, 722, 0, + 0, 726, 0, 0, 0, 728, 727, 0, 729, 700, + 699, 0, 0, 723, 724, 0, 725, 0, 0, 193, + 194, 201, 209, 219, 223, 230, 244, 259, 261, 268, + 281, 286, 290, 295, 296, 299, 305, 353, 359, 360, + 361, 362, 379, 380, 381, 384, 387, 388, 391, 393, + 394, 397, 401, 405, 406, 407, 408, 410, 412, 419, + 424, 438, 439, 440, 441, 442, 445, 446, 451, 452, + 453, 454, 455, 463, 464, 468, 486, 488, 500, 515, + 520, 444, 282, 495, 521, 0, 352, 0, 0, 354, + 264, 285, 297, 0, 510, 465, 214, 430, 273, 236, + 748, 0, 202, 233, 217, 242, 257, 260, 301, 363, + 370, 399, 404, 279, 254, 231, 423, 228, 448, 471, + 472, 473, 475, 367, 249, 403, 0, 368, 350, 477, + 478, 293, 476, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 386, 0, 0, 0, 0, 637, + 0, 0, 0, 253, 642, 0, 0, 0, 341, 250, + 0, 0, 400, 0, 197, 0, 450, 237, 351, 348, + 483, 265, 256, 252, 235, 294, 358, 398, 470, 392, + 649, 345, 0, 0, 460, 371, 0, 0, 0, 0, + 0, 644, 645, 0, 0, 0, 0, 0, 0, 0, + 0, 300, 234, 302, 196, 383, 461, 269, 0, 87, + 0, 0, 188, 189, 190, 741, 749, 750, 751, 752, + 753, 742, 744, 0, 0, 225, 743, 232, 660, 662, + 661, 676, 677, 678, 679, 680, 681, 682, 658, 746, + 754, 755, 0, 248, 298, 255, 247, 480, 0, 0, + 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 620, 634, 0, 648, 0, 0, 0, + 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 631, 632, 0, 0, + 0, 0, 709, 0, 633, 0, 0, 641, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, + 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, + 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, + 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, + 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 280, 0, 372, 240, 0, 708, 0, 0, 517, + 0, 0, 706, 0, 0, 0, 0, 340, 0, 307, + 192, 212, 0, 0, 382, 425, 437, 0, 0, 0, + 238, 0, 435, 396, 499, 220, 267, 422, 402, 433, + 409, 270, 3147, 0, 434, 346, 485, 416, 496, 518, + 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, + 467, 502, 457, 369, 481, 482, 306, 456, 278, 195, + 344, 524, 211, 443, 229, 218, 487, 505, 272, 420, + 203, 469, 494, 226, 447, 0, 0, 534, 205, 492, + 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, + 385, 489, 490, 239, 535, 215, 513, 207, 0, 512, + 378, 484, 493, 366, 356, 206, 491, 364, 355, 311, + 671, 672, 263, 287, 414, 349, 415, 288, 374, 373, + 375, 199, 503, 0, 200, 0, 462, 504, 536, 221, + 222, 224, 0, 262, 266, 274, 277, 283, 284, 292, + 342, 389, 413, 411, 417, 0, 479, 497, 509, 516, + 522, 523, 525, 526, 527, 528, 529, 531, 530, 377, + 291, 458, 310, 347, 0, 0, 395, 436, 227, 501, + 459, 716, 707, 653, 720, 655, 717, 718, 650, 651, + 654, 719, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 0, 710, 640, 639, 0, 646, 647, 0, 656, 657, + 659, 663, 664, 665, 673, 674, 675, 683, 685, 686, + 684, 687, 688, 689, 692, 693, 694, 695, 690, 691, + 696, 730, 731, 732, 733, 734, 735, 666, 670, 669, + 667, 668, 638, 191, 208, 343, 0, 418, 271, 533, + 511, 506, 198, 210, 721, 245, 722, 0, 0, 726, + 0, 0, 0, 728, 727, 0, 729, 700, 699, 0, + 0, 723, 724, 0, 725, 0, 0, 193, 194, 201, + 209, 219, 223, 230, 244, 259, 261, 268, 281, 286, + 290, 295, 296, 299, 305, 353, 359, 360, 361, 362, + 379, 380, 381, 384, 387, 388, 391, 393, 394, 397, + 401, 405, 406, 407, 408, 410, 412, 419, 424, 438, + 439, 440, 441, 442, 445, 446, 451, 452, 453, 454, + 455, 463, 464, 468, 486, 488, 500, 515, 520, 444, + 282, 495, 521, 0, 352, 0, 0, 354, 264, 285, + 297, 0, 510, 465, 214, 430, 273, 236, 748, 0, + 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, + 404, 279, 254, 231, 423, 228, 448, 471, 472, 473, + 475, 367, 249, 403, 0, 368, 350, 477, 478, 293, + 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 386, 0, 0, 0, 0, 637, 0, 0, + 0, 253, 642, 0, 0, 0, 341, 250, 0, 0, + 400, 0, 197, 0, 450, 237, 351, 348, 483, 265, + 256, 252, 235, 294, 358, 398, 470, 392, 649, 345, + 0, 0, 460, 371, 0, 0, 0, 0, 0, 644, + 645, 0, 0, 0, 0, 0, 0, 0, 0, 300, + 234, 302, 196, 383, 461, 269, 0, 87, 0, 1397, + 188, 189, 190, 741, 749, 750, 751, 752, 753, 742, + 744, 0, 0, 225, 743, 232, 660, 662, 661, 676, + 677, 678, 679, 680, 681, 682, 658, 746, 754, 755, + 0, 248, 298, 255, 247, 480, 0, 0, 0, 0, + 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 620, 634, 0, 648, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 193, 194, 201, 209, 219, 223, 230, 244, 259, 261, - 268, 281, 286, 290, 295, 296, 299, 305, 353, 359, - 360, 361, 362, 379, 380, 381, 384, 387, 388, 391, - 393, 394, 397, 401, 405, 406, 407, 408, 410, 412, - 419, 424, 438, 439, 440, 441, 442, 445, 446, 451, - 452, 453, 454, 455, 463, 464, 468, 486, 488, 500, - 515, 520, 444, 282, 495, 521, 0, 352, 0, 0, - 354, 264, 285, 297, 0, 510, 465, 214, 430, 273, - 236, 0, 0, 202, 233, 217, 242, 257, 260, 301, - 363, 370, 399, 404, 279, 254, 231, 423, 228, 448, - 471, 472, 473, 475, 367, 249, 403, 0, 0, 350, - 477, 478, 293, 368, 0, 0, 0, 78, 476, 0, + 0, 0, 0, 0, 631, 632, 0, 0, 0, 0, + 709, 0, 633, 0, 0, 641, 756, 757, 758, 759, + 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, + 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, + 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, + 790, 791, 792, 793, 794, 795, 796, 797, 715, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 372, 240, 0, 708, 0, 0, 517, 0, 0, + 706, 0, 0, 0, 0, 340, 0, 307, 192, 212, + 0, 0, 382, 425, 437, 0, 0, 0, 238, 0, + 435, 396, 499, 220, 267, 422, 402, 433, 409, 270, + 0, 0, 434, 346, 485, 416, 496, 518, 519, 246, + 376, 508, 474, 514, 532, 213, 243, 390, 467, 502, + 457, 369, 481, 482, 306, 456, 278, 195, 344, 524, + 211, 443, 229, 218, 487, 505, 272, 420, 203, 469, + 494, 226, 447, 0, 0, 534, 205, 492, 466, 365, + 303, 304, 204, 0, 421, 251, 276, 241, 385, 489, + 490, 239, 535, 215, 513, 207, 0, 512, 378, 484, + 493, 366, 356, 206, 491, 364, 355, 311, 671, 672, + 263, 287, 414, 349, 415, 288, 374, 373, 375, 199, + 503, 0, 200, 0, 462, 504, 536, 221, 222, 224, + 0, 262, 266, 274, 277, 283, 284, 292, 342, 389, + 413, 411, 417, 0, 479, 497, 509, 516, 522, 523, + 525, 526, 527, 528, 529, 531, 530, 377, 291, 458, + 310, 347, 0, 0, 395, 436, 227, 501, 459, 716, + 707, 653, 720, 655, 717, 718, 650, 651, 654, 719, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 0, 710, + 640, 639, 0, 646, 647, 0, 656, 657, 659, 663, + 664, 665, 673, 674, 675, 683, 685, 686, 684, 687, + 688, 689, 692, 693, 694, 695, 690, 691, 696, 730, + 731, 732, 733, 734, 735, 666, 670, 669, 667, 668, + 638, 191, 208, 343, 0, 418, 271, 533, 511, 506, + 198, 210, 721, 245, 722, 0, 0, 726, 0, 0, + 0, 728, 727, 0, 729, 700, 699, 0, 0, 723, + 724, 0, 725, 0, 0, 193, 194, 201, 209, 219, + 223, 230, 244, 259, 261, 268, 281, 286, 290, 295, + 296, 299, 305, 353, 359, 360, 361, 362, 379, 380, + 381, 384, 387, 388, 391, 393, 394, 397, 401, 405, + 406, 407, 408, 410, 412, 419, 424, 438, 439, 440, + 441, 442, 445, 446, 451, 452, 453, 454, 455, 463, + 464, 468, 486, 488, 500, 515, 520, 444, 282, 495, + 521, 0, 352, 0, 0, 354, 264, 285, 297, 0, + 510, 465, 214, 430, 273, 236, 748, 0, 202, 233, + 217, 242, 257, 260, 301, 363, 370, 399, 404, 279, + 254, 231, 423, 228, 448, 471, 472, 473, 475, 367, + 249, 403, 0, 368, 350, 477, 478, 293, 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 386, 0, 0, 0, 0, 0, 0, 0, 0, 253, - 0, 0, 0, 0, 341, 250, 0, 0, 400, 0, + 386, 0, 0, 0, 0, 637, 0, 0, 0, 253, + 642, 0, 0, 0, 341, 250, 0, 0, 400, 0, 197, 0, 450, 237, 351, 348, 483, 265, 256, 252, - 235, 294, 358, 398, 470, 392, 0, 345, 0, 0, - 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, + 235, 294, 358, 398, 470, 392, 649, 345, 0, 0, + 460, 371, 0, 0, 0, 0, 0, 644, 645, 0, 0, 0, 0, 0, 0, 0, 0, 300, 234, 302, 196, 383, 461, 269, 0, 87, 0, 0, 188, 189, - 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 225, 0, 232, 326, 335, 334, 315, 316, 318, - 320, 325, 332, 338, 0, 0, 0, 0, 0, 248, + 190, 741, 749, 750, 751, 752, 753, 742, 744, 0, + 0, 225, 743, 232, 660, 662, 661, 676, 677, 678, + 679, 680, 681, 682, 658, 746, 754, 755, 0, 248, 298, 255, 247, 480, 0, 0, 0, 0, 0, 0, - 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 620, + 634, 0, 648, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 631, 632, 837, 0, 0, 0, 709, 0, + 633, 0, 0, 641, 756, 757, 758, 759, 760, 761, + 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, + 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, + 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, + 792, 793, 794, 795, 796, 797, 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 372, - 240, 0, 0, 0, 0, 517, 0, 0, 0, 0, + 240, 0, 708, 0, 0, 517, 0, 0, 706, 0, 0, 0, 0, 340, 0, 307, 192, 212, 0, 0, 382, 425, 437, 0, 0, 0, 238, 0, 435, 396, 499, 220, 267, 422, 402, 433, 409, 270, 0, 0, @@ -3671,24 +3378,24 @@ var yyAct = [...]int{ 447, 0, 0, 534, 205, 492, 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, 385, 489, 490, 239, 535, 215, 513, 207, 0, 512, 378, 484, 493, 366, - 356, 206, 491, 364, 355, 311, 330, 331, 263, 287, + 356, 206, 491, 364, 355, 311, 671, 672, 263, 287, 414, 349, 415, 288, 374, 373, 375, 199, 503, 0, 200, 0, 462, 504, 536, 221, 222, 224, 0, 262, 266, 274, 277, 283, 284, 292, 342, 389, 413, 411, 417, 0, 479, 497, 509, 516, 522, 523, 525, 526, 527, 528, 529, 531, 530, 377, 291, 458, 310, 347, - 0, 0, 395, 436, 227, 501, 459, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 537, 538, + 0, 0, 395, 436, 227, 501, 459, 716, 707, 653, + 720, 655, 717, 718, 650, 651, 654, 719, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 555, 357, 449, 498, - 312, 324, 327, 317, 336, 0, 337, 313, 314, 319, - 321, 322, 323, 328, 329, 333, 339, 426, 427, 428, - 429, 275, 507, 289, 432, 431, 308, 309, 0, 191, - 208, 343, 86, 418, 271, 533, 511, 506, 198, 210, - 0, 245, 0, 0, 0, 0, 0, 0, 1926, 0, - 0, 1925, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 193, 194, 201, 209, 219, 223, 230, + 549, 550, 551, 552, 553, 554, 0, 710, 640, 639, + 0, 646, 647, 0, 656, 657, 659, 663, 664, 665, + 673, 674, 675, 683, 685, 686, 684, 687, 688, 689, + 692, 693, 694, 695, 690, 691, 696, 730, 731, 732, + 733, 734, 735, 666, 670, 669, 667, 668, 638, 191, + 208, 343, 0, 418, 271, 533, 511, 506, 198, 210, + 721, 245, 722, 0, 0, 726, 0, 0, 0, 728, + 727, 0, 729, 700, 699, 0, 0, 723, 724, 0, + 725, 0, 0, 193, 194, 201, 209, 219, 223, 230, 244, 259, 261, 268, 281, 286, 290, 295, 296, 299, 305, 353, 359, 360, 361, 362, 379, 380, 381, 384, 387, 388, 391, 393, 394, 397, 401, 405, 406, 407, @@ -3696,35 +3403,35 @@ var yyAct = [...]int{ 445, 446, 451, 452, 453, 454, 455, 463, 464, 468, 486, 488, 500, 515, 520, 444, 282, 495, 521, 0, 352, 0, 0, 354, 264, 285, 297, 0, 510, 465, - 214, 430, 273, 236, 0, 0, 202, 233, 217, 242, + 214, 430, 273, 236, 748, 0, 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, 228, 448, 471, 472, 473, 475, 367, 249, 403, - 0, 1416, 350, 477, 478, 293, 476, 0, 0, 0, + 0, 368, 350, 477, 478, 293, 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, 0, - 0, 0, 1418, 0, 0, 0, 0, 253, 0, 0, + 0, 0, 0, 637, 0, 0, 0, 253, 642, 0, 0, 0, 341, 250, 0, 0, 400, 0, 197, 0, 450, 237, 351, 348, 483, 265, 256, 252, 235, 294, - 358, 398, 470, 392, 0, 345, 0, 0, 460, 371, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 358, 398, 470, 392, 649, 345, 0, 0, 460, 371, + 0, 0, 0, 0, 0, 644, 645, 0, 0, 0, 0, 0, 0, 0, 0, 300, 234, 302, 196, 383, - 461, 269, 0, 0, 0, 0, 188, 189, 190, 0, - 1420, 0, 0, 0, 0, 0, 0, 0, 0, 225, - 0, 232, 326, 335, 334, 315, 316, 318, 320, 325, - 332, 338, 0, 0, 0, 0, 0, 248, 298, 255, + 461, 269, 0, 87, 0, 0, 188, 189, 190, 741, + 749, 750, 751, 752, 753, 742, 744, 0, 0, 225, + 743, 232, 660, 662, 661, 676, 677, 678, 679, 680, + 681, 682, 658, 746, 754, 755, 0, 248, 298, 255, 247, 480, 0, 0, 0, 0, 0, 0, 0, 216, - 0, 0, 0, 1230, 0, 1231, 1232, 0, 0, 0, - 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 620, 634, 0, + 648, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 372, 240, 0, - 0, 0, 0, 517, 0, 0, 0, 0, 0, 0, - 0, 340, 0, 307, 192, 212, 0, 0, 382, 425, - 437, 0, 0, 0, 238, 0, 435, 396, 499, 220, + 631, 632, 0, 0, 0, 0, 709, 0, 633, 0, + 0, 641, 756, 757, 758, 759, 760, 761, 762, 763, + 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, + 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, + 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, + 794, 795, 796, 797, 715, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 372, 240, 0, + 708, 0, 0, 517, 0, 0, 706, 0, 0, 0, + 0, 340, 0, 307, 192, 212, 0, 0, 382, 425, + 437, 0, 0, 0, 238, 0, 435, 396, 499, 220, 267, 422, 402, 433, 409, 270, 0, 0, 434, 346, 485, 416, 496, 518, 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, 467, 502, 457, 369, 481, 482, @@ -3733,23 +3440,23 @@ var yyAct = [...]int{ 0, 534, 205, 492, 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, 385, 489, 490, 239, 535, 215, 513, 207, 0, 512, 378, 484, 493, 366, 356, 206, - 491, 364, 355, 311, 330, 331, 263, 287, 414, 349, + 491, 364, 355, 311, 671, 672, 263, 287, 414, 349, 415, 288, 374, 373, 375, 199, 503, 0, 200, 0, 462, 504, 536, 221, 222, 224, 0, 262, 266, 274, 277, 283, 284, 292, 342, 389, 413, 411, 417, 0, 479, 497, 509, 516, 522, 523, 525, 526, 527, 528, 529, 531, 530, 377, 291, 458, 310, 347, 0, 0, - 395, 436, 227, 501, 459, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 537, 538, 539, 540, + 395, 436, 227, 501, 459, 716, 707, 653, 720, 655, + 717, 718, 650, 651, 654, 719, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 555, 357, 449, 498, 312, 324, - 327, 317, 336, 0, 337, 313, 314, 319, 321, 322, - 323, 328, 329, 333, 339, 426, 427, 428, 429, 275, - 507, 289, 432, 431, 308, 309, 0, 191, 208, 343, - 0, 418, 271, 533, 511, 506, 198, 210, 0, 245, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 551, 552, 553, 554, 0, 710, 640, 639, 0, 646, + 647, 0, 656, 657, 659, 663, 664, 665, 673, 674, + 675, 683, 685, 686, 684, 687, 688, 689, 692, 693, + 694, 695, 690, 691, 696, 730, 731, 732, 733, 734, + 735, 666, 670, 669, 667, 668, 638, 191, 208, 343, + 0, 418, 271, 533, 511, 506, 198, 210, 721, 245, + 722, 0, 0, 726, 0, 0, 0, 728, 727, 0, + 729, 700, 699, 0, 0, 723, 724, 0, 725, 0, 0, 193, 194, 201, 209, 219, 223, 230, 244, 259, 261, 268, 281, 286, 290, 295, 296, 299, 305, 353, 359, 360, 361, 362, 379, 380, 381, 384, 387, 388, @@ -3758,33 +3465,33 @@ var yyAct = [...]int{ 451, 452, 453, 454, 455, 463, 464, 468, 486, 488, 500, 515, 520, 444, 282, 495, 521, 0, 352, 0, 0, 354, 264, 285, 297, 0, 510, 465, 214, 430, - 273, 236, 0, 0, 202, 233, 217, 242, 257, 260, + 273, 236, 748, 0, 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, 228, 448, 471, 472, 473, 475, 367, 249, 403, 0, 368, 350, 477, 478, 293, 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, 0, 0, 0, - 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, + 0, 637, 0, 0, 0, 253, 642, 0, 0, 0, 341, 250, 0, 0, 400, 0, 197, 0, 450, 237, 351, 348, 483, 265, 256, 252, 235, 294, 358, 398, - 470, 392, 0, 345, 0, 0, 460, 371, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 470, 392, 649, 345, 0, 0, 460, 371, 0, 0, + 0, 0, 0, 644, 645, 0, 0, 0, 0, 0, 0, 0, 0, 300, 234, 302, 196, 383, 461, 269, - 0, 0, 0, 0, 188, 189, 190, 1358, 1361, 0, - 0, 0, 0, 1357, 1360, 0, 0, 225, 1356, 232, - 326, 335, 334, 315, 316, 318, 320, 325, 332, 338, - 0, 0, 0, 0, 0, 248, 298, 255, 247, 480, + 0, 87, 0, 0, 188, 189, 190, 741, 749, 750, + 751, 752, 753, 742, 744, 0, 0, 225, 743, 232, + 660, 662, 661, 676, 677, 678, 679, 680, 681, 682, + 658, 746, 754, 755, 0, 248, 298, 255, 247, 480, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 634, 0, 648, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 372, 240, 0, 0, 0, - 0, 517, 0, 0, 0, 0, 0, 0, 0, 340, + 0, 0, 0, 0, 0, 0, 0, 0, 631, 632, + 0, 0, 0, 0, 709, 0, 633, 0, 0, 641, + 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, + 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, + 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, + 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, + 796, 797, 715, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 280, 0, 372, 240, 0, 708, 0, + 0, 517, 0, 0, 706, 0, 0, 0, 0, 340, 0, 307, 192, 212, 0, 0, 382, 425, 437, 0, 0, 0, 238, 0, 435, 396, 499, 220, 267, 422, 402, 433, 409, 270, 0, 0, 434, 346, 485, 416, @@ -3795,23 +3502,23 @@ var yyAct = [...]int{ 205, 492, 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, 385, 489, 490, 239, 535, 215, 513, 207, 0, 512, 378, 484, 493, 366, 356, 206, 491, 364, - 355, 311, 330, 331, 263, 287, 414, 349, 415, 288, + 355, 311, 671, 672, 263, 287, 414, 349, 415, 288, 374, 373, 375, 199, 503, 0, 200, 0, 462, 504, 536, 221, 222, 224, 0, 262, 266, 274, 277, 283, 284, 292, 342, 389, 413, 411, 417, 0, 479, 497, 509, 516, 522, 523, 525, 526, 527, 528, 529, 531, 530, 377, 291, 458, 310, 347, 0, 0, 395, 436, - 227, 501, 459, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 537, 538, 539, 540, 541, 542, + 227, 501, 459, 716, 707, 653, 720, 655, 717, 718, + 650, 651, 654, 719, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 553, 554, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 555, 357, 449, 498, 312, 324, 327, 317, - 336, 0, 337, 313, 314, 319, 321, 322, 323, 328, - 329, 333, 339, 426, 427, 428, 429, 275, 507, 289, - 432, 431, 308, 309, 0, 191, 208, 343, 0, 418, - 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, + 553, 554, 0, 710, 640, 639, 0, 646, 647, 0, + 656, 657, 659, 663, 664, 665, 673, 674, 675, 683, + 685, 686, 684, 687, 688, 689, 692, 693, 694, 695, + 690, 691, 696, 730, 731, 732, 733, 734, 735, 666, + 670, 669, 667, 668, 638, 191, 208, 343, 0, 418, + 271, 533, 511, 506, 198, 210, 721, 245, 722, 0, + 0, 726, 0, 0, 0, 728, 727, 0, 729, 700, + 699, 0, 0, 723, 724, 0, 725, 0, 0, 193, 194, 201, 209, 219, 223, 230, 244, 259, 261, 268, 281, 286, 290, 295, 296, 299, 305, 353, 359, 360, 361, 362, 379, 380, 381, 384, 387, 388, 391, 393, @@ -3820,72 +3527,72 @@ var yyAct = [...]int{ 453, 454, 455, 463, 464, 468, 486, 488, 500, 515, 520, 444, 282, 495, 521, 0, 352, 0, 0, 354, 264, 285, 297, 0, 510, 465, 214, 430, 273, 236, - 0, 0, 202, 233, 217, 242, 257, 260, 301, 363, + 748, 0, 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, 228, 448, 471, - 472, 473, 475, 367, 249, 403, 0, 0, 350, 477, - 478, 293, 368, 0, 0, 0, 78, 476, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, - 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, - 0, 0, 0, 341, 250, 0, 0, 400, 0, 197, - 0, 450, 237, 351, 348, 483, 265, 256, 252, 235, - 294, 358, 398, 470, 392, 0, 345, 0, 0, 460, - 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 300, 234, 302, 196, - 383, 461, 269, 0, 87, 0, 1397, 188, 189, 190, + 472, 473, 475, 367, 249, 403, 0, 368, 350, 477, + 478, 293, 476, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 386, 0, 0, 0, 0, 0, + 0, 0, 0, 253, 0, 0, 0, 0, 341, 250, + 0, 0, 400, 0, 197, 0, 450, 237, 351, 348, + 483, 265, 256, 252, 235, 294, 358, 398, 470, 392, + 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 225, 0, 232, 326, 335, 334, 315, 316, 318, 320, - 325, 332, 338, 0, 0, 0, 0, 0, 248, 298, - 255, 247, 480, 0, 0, 0, 0, 0, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, + 0, 300, 234, 302, 196, 383, 461, 269, 0, 0, + 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 225, 0, 232, 326, 335, + 334, 315, 316, 318, 320, 325, 332, 338, 0, 0, + 0, 0, 0, 248, 298, 255, 247, 480, 0, 0, + 0, 0, 0, 0, 0, 216, 0, 1058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 372, 240, - 0, 0, 0, 0, 517, 0, 0, 0, 0, 0, - 0, 0, 340, 0, 307, 192, 212, 0, 0, 382, - 425, 437, 0, 0, 0, 238, 0, 435, 396, 499, - 220, 267, 422, 402, 433, 409, 270, 0, 0, 434, - 346, 485, 416, 496, 518, 519, 246, 376, 508, 474, - 514, 532, 213, 243, 390, 467, 502, 457, 369, 481, - 482, 306, 456, 278, 195, 344, 524, 211, 443, 229, - 218, 487, 505, 272, 420, 203, 469, 494, 226, 447, - 0, 0, 534, 205, 492, 466, 365, 303, 304, 204, - 0, 421, 251, 276, 241, 385, 489, 490, 239, 535, - 215, 513, 207, 0, 512, 378, 484, 493, 366, 356, - 206, 491, 364, 355, 311, 330, 331, 263, 287, 414, - 349, 415, 288, 374, 373, 375, 199, 503, 0, 200, - 0, 462, 504, 536, 221, 222, 224, 0, 262, 266, - 274, 277, 283, 284, 292, 342, 389, 413, 411, 417, - 0, 479, 497, 509, 516, 522, 523, 525, 526, 527, - 528, 529, 531, 530, 377, 291, 458, 310, 347, 0, - 0, 395, 436, 227, 501, 459, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 555, 357, 449, 498, 312, - 324, 327, 317, 336, 0, 337, 313, 314, 319, 321, - 322, 323, 328, 329, 333, 339, 426, 427, 428, 429, - 275, 507, 289, 432, 431, 308, 309, 0, 191, 208, - 343, 86, 418, 271, 533, 511, 506, 198, 210, 0, - 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 194, 201, 209, 219, 223, 230, 244, - 259, 261, 268, 281, 286, 290, 295, 296, 299, 305, - 353, 359, 360, 361, 362, 379, 380, 381, 384, 387, - 388, 391, 393, 394, 397, 401, 405, 406, 407, 408, - 410, 412, 419, 424, 438, 439, 440, 441, 442, 445, - 446, 451, 452, 453, 454, 455, 463, 464, 468, 486, - 488, 500, 515, 520, 444, 282, 495, 521, 0, 352, - 0, 0, 354, 264, 285, 297, 0, 510, 465, 214, - 430, 273, 236, 0, 0, 202, 233, 217, 242, 257, - 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, - 228, 448, 471, 472, 473, 475, 367, 249, 403, 0, - 368, 350, 477, 478, 293, 476, 0, 0, 0, 0, + 0, 280, 0, 372, 240, 0, 0, 0, 1057, 517, + 0, 0, 0, 0, 0, 1054, 1055, 340, 1015, 307, + 192, 212, 1048, 1052, 382, 425, 437, 0, 0, 0, + 238, 0, 435, 396, 499, 220, 267, 422, 402, 433, + 409, 270, 0, 0, 434, 346, 485, 416, 496, 518, + 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, + 467, 502, 457, 369, 481, 482, 306, 456, 278, 195, + 344, 524, 211, 443, 229, 218, 487, 505, 272, 420, + 203, 469, 494, 226, 447, 0, 0, 534, 205, 492, + 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, + 385, 489, 490, 239, 535, 215, 513, 207, 0, 512, + 378, 484, 493, 366, 356, 206, 491, 364, 355, 311, + 330, 331, 263, 287, 414, 349, 415, 288, 374, 373, + 375, 199, 503, 0, 200, 0, 462, 504, 536, 221, + 222, 224, 0, 262, 266, 274, 277, 283, 284, 292, + 342, 389, 413, 411, 417, 0, 479, 497, 509, 516, + 522, 523, 525, 526, 527, 528, 529, 531, 530, 377, + 291, 458, 310, 347, 0, 0, 395, 436, 227, 501, + 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 555, 357, 449, 498, 312, 324, 327, 317, 336, 0, + 337, 313, 314, 319, 321, 322, 323, 328, 329, 333, + 339, 426, 427, 428, 429, 275, 507, 289, 432, 431, + 308, 309, 0, 191, 208, 343, 0, 418, 271, 533, + 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 193, 194, 201, + 209, 219, 223, 230, 244, 259, 261, 268, 281, 286, + 290, 295, 296, 299, 305, 353, 359, 360, 361, 362, + 379, 380, 381, 384, 387, 388, 391, 393, 394, 397, + 401, 405, 406, 407, 408, 410, 412, 419, 424, 438, + 439, 440, 441, 442, 445, 446, 451, 452, 453, 454, + 455, 463, 464, 468, 486, 488, 500, 515, 520, 444, + 282, 495, 521, 0, 352, 0, 0, 354, 264, 285, + 297, 0, 510, 465, 214, 430, 273, 236, 0, 0, + 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, + 404, 279, 254, 231, 423, 228, 448, 471, 472, 473, + 475, 367, 249, 403, 0, 0, 350, 477, 478, 293, + 368, 0, 0, 0, 78, 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 341, 250, 0, 0, 400, 0, 197, 0, 450, @@ -3932,7 +3639,7 @@ var yyAct = [...]int{ 0, 0, 0, 555, 357, 449, 498, 312, 324, 327, 317, 336, 0, 337, 313, 314, 319, 321, 322, 323, 328, 329, 333, 339, 426, 427, 428, 429, 275, 507, - 289, 432, 431, 308, 309, 0, 191, 208, 343, 0, + 289, 432, 431, 308, 309, 0, 191, 208, 343, 86, 418, 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 1926, 0, 0, 1925, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3946,21 +3653,21 @@ var yyAct = [...]int{ 354, 264, 285, 297, 0, 510, 465, 214, 430, 273, 236, 0, 0, 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, 228, 448, - 471, 472, 473, 475, 367, 249, 403, 0, 368, 350, + 471, 472, 473, 475, 367, 249, 403, 0, 1416, 350, 477, 478, 293, 476, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 386, 0, 0, 0, 1877, + 0, 0, 0, 0, 0, 386, 0, 0, 0, 1418, 0, 0, 0, 0, 253, 0, 0, 0, 0, 341, 250, 0, 0, 400, 0, 197, 0, 450, 237, 351, 348, 483, 265, 256, 252, 235, 294, 358, 398, 470, 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 234, 302, 196, 383, 461, 269, 0, - 0, 0, 0, 188, 189, 190, 0, 1598, 0, 0, + 0, 0, 0, 188, 189, 190, 0, 1420, 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, 232, 326, 335, 334, 315, 316, 318, 320, 325, 332, 338, 0, 0, 0, 0, 0, 248, 298, 255, 247, 480, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1230, 0, 1231, 1232, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3973,7 +3680,7 @@ var yyAct = [...]int{ 517, 0, 0, 0, 0, 0, 0, 0, 340, 0, 307, 192, 212, 0, 0, 382, 425, 437, 0, 0, 0, 238, 0, 435, 396, 499, 220, 267, 422, 402, - 433, 409, 270, 0, 1875, 434, 346, 485, 416, 496, + 433, 409, 270, 0, 0, 434, 346, 485, 416, 496, 518, 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, 467, 502, 457, 369, 481, 482, 306, 456, 278, 195, 344, 524, 211, 443, 229, 218, 487, 505, 272, @@ -4017,13 +3724,13 @@ var yyAct = [...]int{ 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 234, 302, 196, 383, 461, 269, 0, 0, 0, - 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 225, 0, 232, 326, 335, 334, + 0, 188, 189, 190, 1358, 1361, 0, 0, 0, 0, + 1357, 1360, 0, 0, 225, 1356, 232, 326, 335, 334, 315, 316, 318, 320, 325, 332, 338, 0, 0, 0, 0, 0, 248, 298, 255, 247, 480, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, - 0, 0, 0, 0, 0, 0, 0, 0, 1009, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4032,8 +3739,8 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 372, 240, 0, 0, 0, 0, 517, 0, - 0, 0, 0, 0, 0, 0, 340, 1015, 307, 192, - 212, 1013, 0, 382, 425, 437, 0, 0, 0, 238, + 0, 0, 0, 0, 0, 0, 340, 0, 307, 192, + 212, 0, 0, 382, 425, 437, 0, 0, 0, 238, 0, 435, 396, 499, 220, 267, 422, 402, 433, 409, 270, 0, 0, 434, 346, 485, 416, 496, 518, 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, 467, @@ -4070,269 +3777,269 @@ var yyAct = [...]int{ 0, 510, 465, 214, 430, 273, 236, 0, 0, 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, 228, 448, 471, 472, 473, 475, - 367, 249, 403, 0, 368, 350, 477, 478, 293, 476, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 386, 0, 0, 0, 1877, 0, 0, 0, 0, - 253, 0, 0, 0, 0, 341, 250, 0, 0, 400, - 0, 197, 0, 450, 237, 351, 348, 483, 265, 256, - 252, 235, 294, 358, 398, 470, 392, 0, 345, 0, - 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 300, 234, - 302, 196, 383, 461, 269, 0, 0, 0, 0, 188, - 189, 190, 0, 1598, 0, 0, 0, 0, 0, 0, - 0, 0, 225, 0, 232, 326, 335, 334, 315, 316, - 318, 320, 325, 332, 338, 0, 0, 0, 0, 0, - 248, 298, 255, 247, 480, 0, 0, 0, 0, 0, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, + 367, 249, 403, 0, 0, 350, 477, 478, 293, 368, + 0, 0, 0, 78, 476, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 386, 0, 0, 0, + 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, + 341, 250, 0, 0, 400, 0, 197, 0, 450, 237, + 351, 348, 483, 265, 256, 252, 235, 294, 358, 398, + 470, 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 300, 234, 302, 196, 383, 461, 269, + 0, 87, 0, 1397, 188, 189, 190, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 225, 0, 232, + 326, 335, 334, 315, 316, 318, 320, 325, 332, 338, + 0, 0, 0, 0, 0, 248, 298, 255, 247, 480, + 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 372, 240, 0, 0, 0, 0, 517, 0, 0, 0, - 0, 0, 0, 0, 340, 0, 307, 192, 212, 0, - 0, 382, 425, 437, 0, 0, 0, 238, 0, 435, - 396, 499, 220, 267, 422, 402, 433, 409, 270, 0, - 0, 434, 346, 485, 416, 496, 518, 519, 246, 376, - 508, 474, 514, 532, 213, 243, 390, 467, 502, 457, - 369, 481, 482, 306, 456, 278, 195, 344, 524, 211, - 443, 229, 218, 487, 505, 272, 420, 203, 469, 494, - 226, 447, 0, 0, 534, 205, 492, 466, 365, 303, - 304, 204, 0, 421, 251, 276, 241, 385, 489, 490, - 239, 535, 215, 513, 207, 0, 512, 378, 484, 493, - 366, 356, 206, 491, 364, 355, 311, 330, 331, 263, - 287, 414, 349, 415, 288, 374, 373, 375, 199, 503, - 0, 200, 0, 462, 504, 536, 221, 222, 224, 0, - 262, 266, 274, 277, 283, 284, 292, 342, 389, 413, - 411, 417, 0, 479, 497, 509, 516, 522, 523, 525, - 526, 527, 528, 529, 531, 530, 377, 291, 458, 310, - 347, 0, 0, 395, 436, 227, 501, 459, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 555, 357, 449, - 498, 312, 324, 327, 317, 336, 0, 337, 313, 314, - 319, 321, 322, 323, 328, 329, 333, 339, 426, 427, - 428, 429, 275, 507, 289, 432, 431, 308, 309, 0, - 191, 208, 343, 0, 418, 271, 533, 511, 506, 198, - 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 193, 194, 201, 209, 219, 223, - 230, 244, 259, 261, 268, 281, 286, 290, 295, 296, - 299, 305, 353, 359, 360, 361, 362, 379, 380, 381, - 384, 387, 388, 391, 393, 394, 397, 401, 405, 406, - 407, 408, 410, 412, 419, 424, 438, 439, 440, 441, - 442, 445, 446, 451, 452, 453, 454, 455, 463, 464, - 468, 486, 488, 500, 515, 520, 444, 282, 495, 521, - 0, 352, 0, 0, 354, 264, 285, 297, 0, 510, - 465, 214, 430, 273, 236, 0, 0, 202, 233, 217, - 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, - 231, 423, 228, 448, 471, 472, 473, 475, 367, 249, - 403, 0, 368, 350, 477, 478, 293, 476, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, - 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, - 0, 0, 0, 341, 250, 0, 0, 400, 0, 197, - 0, 450, 237, 351, 348, 483, 265, 256, 252, 235, - 294, 358, 398, 470, 392, 0, 345, 0, 0, 460, - 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 300, 234, 302, 196, - 383, 461, 269, 0, 0, 0, 1397, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 225, 0, 232, 326, 335, 334, 315, 316, 318, 320, - 325, 332, 338, 0, 0, 0, 0, 0, 248, 298, - 255, 247, 480, 0, 0, 0, 0, 0, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, + 0, 0, 0, 280, 0, 372, 240, 0, 0, 0, + 0, 517, 0, 0, 0, 0, 0, 0, 0, 340, + 0, 307, 192, 212, 0, 0, 382, 425, 437, 0, + 0, 0, 238, 0, 435, 396, 499, 220, 267, 422, + 402, 433, 409, 270, 0, 0, 434, 346, 485, 416, + 496, 518, 519, 246, 376, 508, 474, 514, 532, 213, + 243, 390, 467, 502, 457, 369, 481, 482, 306, 456, + 278, 195, 344, 524, 211, 443, 229, 218, 487, 505, + 272, 420, 203, 469, 494, 226, 447, 0, 0, 534, + 205, 492, 466, 365, 303, 304, 204, 0, 421, 251, + 276, 241, 385, 489, 490, 239, 535, 215, 513, 207, + 0, 512, 378, 484, 493, 366, 356, 206, 491, 364, + 355, 311, 330, 331, 263, 287, 414, 349, 415, 288, + 374, 373, 375, 199, 503, 0, 200, 0, 462, 504, + 536, 221, 222, 224, 0, 262, 266, 274, 277, 283, + 284, 292, 342, 389, 413, 411, 417, 0, 479, 497, + 509, 516, 522, 523, 525, 526, 527, 528, 529, 531, + 530, 377, 291, 458, 310, 347, 0, 0, 395, 436, + 227, 501, 459, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 555, 357, 449, 498, 312, 324, 327, 317, + 336, 0, 337, 313, 314, 319, 321, 322, 323, 328, + 329, 333, 339, 426, 427, 428, 429, 275, 507, 289, + 432, 431, 308, 309, 0, 191, 208, 343, 86, 418, + 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, + 194, 201, 209, 219, 223, 230, 244, 259, 261, 268, + 281, 286, 290, 295, 296, 299, 305, 353, 359, 360, + 361, 362, 379, 380, 381, 384, 387, 388, 391, 393, + 394, 397, 401, 405, 406, 407, 408, 410, 412, 419, + 424, 438, 439, 440, 441, 442, 445, 446, 451, 452, + 453, 454, 455, 463, 464, 468, 486, 488, 500, 515, + 520, 444, 282, 495, 521, 0, 352, 0, 0, 354, + 264, 285, 297, 0, 510, 465, 214, 430, 273, 236, + 0, 0, 202, 233, 217, 242, 257, 260, 301, 363, + 370, 399, 404, 279, 254, 231, 423, 228, 448, 471, + 472, 473, 475, 367, 249, 403, 0, 368, 350, 477, + 478, 293, 476, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 386, 0, 0, 0, 0, 0, + 0, 0, 0, 253, 0, 0, 0, 0, 341, 250, + 0, 0, 400, 0, 197, 0, 450, 237, 351, 348, + 483, 265, 256, 252, 235, 294, 358, 398, 470, 392, + 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 300, 234, 302, 196, 383, 461, 269, 0, 87, + 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 225, 0, 232, 326, 335, + 334, 315, 316, 318, 320, 325, 332, 338, 0, 0, + 0, 0, 0, 248, 298, 255, 247, 480, 0, 0, + 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 372, 240, - 0, 0, 0, 0, 517, 0, 0, 0, 3061, 0, - 0, 0, 340, 0, 307, 192, 212, 0, 0, 382, - 425, 437, 0, 0, 0, 238, 0, 435, 396, 499, - 220, 267, 422, 402, 433, 409, 270, 0, 0, 434, - 346, 485, 416, 496, 518, 519, 246, 376, 508, 474, - 514, 532, 213, 243, 390, 467, 502, 457, 369, 481, - 482, 306, 456, 278, 195, 344, 524, 211, 443, 229, - 218, 487, 505, 272, 420, 203, 469, 494, 226, 447, - 0, 0, 534, 205, 492, 466, 365, 303, 304, 204, - 0, 421, 251, 276, 241, 385, 489, 490, 239, 535, - 215, 513, 207, 0, 512, 378, 484, 493, 366, 356, - 206, 491, 364, 355, 311, 330, 331, 263, 287, 414, - 349, 415, 288, 374, 373, 375, 199, 503, 0, 200, - 0, 462, 504, 536, 221, 222, 224, 0, 262, 266, - 274, 277, 283, 284, 292, 342, 389, 413, 411, 417, - 0, 479, 497, 509, 516, 522, 523, 525, 526, 527, - 528, 529, 531, 530, 377, 291, 458, 310, 347, 0, - 0, 395, 436, 227, 501, 459, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 555, 357, 449, 498, 312, - 324, 327, 317, 336, 0, 337, 313, 314, 319, 321, - 322, 323, 328, 329, 333, 339, 426, 427, 428, 429, - 275, 507, 289, 432, 431, 308, 309, 0, 191, 208, - 343, 0, 418, 271, 533, 511, 506, 198, 210, 0, - 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 194, 201, 209, 219, 223, 230, 244, - 259, 261, 268, 281, 286, 290, 295, 296, 299, 305, - 353, 359, 360, 361, 362, 379, 380, 381, 384, 387, - 388, 391, 393, 394, 397, 401, 405, 406, 407, 408, - 410, 412, 419, 424, 438, 439, 440, 441, 442, 445, - 446, 451, 452, 453, 454, 455, 463, 464, 468, 486, - 488, 500, 515, 520, 444, 282, 495, 521, 0, 352, - 0, 0, 354, 264, 285, 297, 0, 510, 465, 214, - 430, 273, 236, 0, 0, 202, 233, 217, 242, 257, - 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, - 228, 448, 471, 472, 473, 475, 367, 249, 403, 0, - 368, 350, 477, 478, 293, 476, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 386, 0, 0, - 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, - 0, 341, 250, 0, 0, 400, 0, 197, 0, 450, - 237, 351, 348, 483, 265, 256, 252, 235, 294, 358, - 398, 470, 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 300, 234, 302, 196, 383, 461, - 269, 0, 0, 0, 0, 188, 189, 190, 0, 1741, - 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, - 232, 326, 335, 334, 315, 316, 318, 320, 325, 332, - 338, 0, 0, 0, 0, 0, 248, 298, 255, 247, - 480, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, + 0, 280, 0, 372, 240, 0, 0, 0, 0, 517, + 0, 0, 0, 0, 0, 0, 0, 340, 0, 307, + 192, 212, 0, 0, 382, 425, 437, 0, 0, 0, + 238, 0, 435, 396, 499, 220, 267, 422, 402, 433, + 409, 270, 0, 0, 434, 346, 485, 416, 496, 518, + 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, + 467, 502, 457, 369, 481, 482, 306, 456, 278, 195, + 344, 524, 211, 443, 229, 218, 487, 505, 272, 420, + 203, 469, 494, 226, 447, 0, 0, 534, 205, 492, + 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, + 385, 489, 490, 239, 535, 215, 513, 207, 0, 512, + 378, 484, 493, 366, 356, 206, 491, 364, 355, 311, + 330, 331, 263, 287, 414, 349, 415, 288, 374, 373, + 375, 199, 503, 0, 200, 0, 462, 504, 536, 221, + 222, 224, 0, 262, 266, 274, 277, 283, 284, 292, + 342, 389, 413, 411, 417, 0, 479, 497, 509, 516, + 522, 523, 525, 526, 527, 528, 529, 531, 530, 377, + 291, 458, 310, 347, 0, 0, 395, 436, 227, 501, + 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 555, 357, 449, 498, 312, 324, 327, 317, 336, 0, + 337, 313, 314, 319, 321, 322, 323, 328, 329, 333, + 339, 426, 427, 428, 429, 275, 507, 289, 432, 431, + 308, 309, 0, 191, 208, 343, 0, 418, 271, 533, + 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, + 0, 0, 1926, 0, 0, 1925, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 193, 194, 201, + 209, 219, 223, 230, 244, 259, 261, 268, 281, 286, + 290, 295, 296, 299, 305, 353, 359, 360, 361, 362, + 379, 380, 381, 384, 387, 388, 391, 393, 394, 397, + 401, 405, 406, 407, 408, 410, 412, 419, 424, 438, + 439, 440, 441, 442, 445, 446, 451, 452, 453, 454, + 455, 463, 464, 468, 486, 488, 500, 515, 520, 444, + 282, 495, 521, 0, 352, 0, 0, 354, 264, 285, + 297, 0, 510, 465, 214, 430, 273, 236, 0, 0, + 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, + 404, 279, 254, 231, 423, 228, 448, 471, 472, 473, + 475, 367, 249, 403, 0, 368, 350, 477, 478, 293, + 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 386, 0, 0, 0, 1877, 0, 0, 0, + 0, 253, 0, 0, 0, 0, 341, 250, 0, 0, + 400, 0, 197, 0, 450, 237, 351, 348, 483, 265, + 256, 252, 235, 294, 358, 398, 470, 392, 0, 345, + 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, + 234, 302, 196, 383, 461, 269, 0, 0, 0, 0, + 188, 189, 190, 0, 1598, 0, 0, 0, 0, 0, + 0, 0, 0, 225, 0, 232, 326, 335, 334, 315, + 316, 318, 320, 325, 332, 338, 0, 0, 0, 0, + 0, 248, 298, 255, 247, 480, 0, 0, 0, 0, + 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1742, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 372, 240, 0, 0, - 0, 0, 517, 0, 0, 0, 0, 0, 0, 0, - 340, 0, 307, 192, 212, 0, 0, 382, 425, 437, - 0, 0, 0, 238, 0, 435, 396, 499, 220, 267, - 422, 402, 433, 409, 270, 0, 0, 434, 346, 485, - 416, 496, 518, 519, 246, 376, 508, 474, 514, 532, - 213, 243, 390, 467, 502, 457, 369, 481, 482, 306, - 456, 278, 195, 344, 524, 211, 443, 229, 218, 487, - 505, 272, 420, 203, 469, 494, 226, 447, 0, 0, - 534, 205, 492, 466, 365, 303, 304, 204, 0, 421, - 251, 276, 241, 385, 489, 490, 239, 535, 215, 513, - 207, 0, 512, 378, 484, 493, 366, 356, 206, 491, - 364, 355, 311, 330, 331, 263, 287, 414, 349, 415, - 288, 374, 373, 375, 199, 503, 0, 200, 0, 462, - 504, 536, 221, 222, 224, 0, 262, 266, 274, 277, - 283, 284, 292, 342, 389, 413, 411, 417, 0, 479, - 497, 509, 516, 522, 523, 525, 526, 527, 528, 529, - 531, 530, 377, 291, 458, 310, 347, 0, 0, 395, - 436, 227, 501, 459, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 555, 357, 449, 498, 312, 324, 327, - 317, 336, 0, 337, 313, 314, 319, 321, 322, 323, - 328, 329, 333, 339, 426, 427, 428, 429, 275, 507, - 289, 432, 431, 308, 309, 0, 191, 208, 343, 0, - 418, 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 193, 194, 201, 209, 219, 223, 230, 244, 259, 261, - 268, 281, 286, 290, 295, 296, 299, 305, 353, 359, - 360, 361, 362, 379, 380, 381, 384, 387, 388, 391, - 393, 394, 397, 401, 405, 406, 407, 408, 410, 412, - 419, 424, 438, 439, 440, 441, 442, 445, 446, 451, - 452, 453, 454, 455, 463, 464, 468, 486, 488, 500, - 515, 520, 444, 282, 495, 521, 0, 352, 0, 0, - 354, 264, 285, 297, 0, 510, 465, 214, 430, 273, - 236, 0, 0, 202, 233, 217, 242, 257, 260, 301, - 363, 370, 399, 404, 279, 254, 231, 423, 228, 448, - 471, 472, 473, 475, 367, 249, 403, 0, 368, 350, - 477, 478, 293, 476, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 386, 0, 0, 0, 0, - 0, 0, 0, 0, 253, 0, 0, 0, 0, 341, - 250, 0, 0, 400, 0, 197, 0, 450, 237, 351, - 348, 483, 265, 256, 252, 235, 294, 358, 398, 470, - 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 372, 240, 0, 0, 0, 0, 517, 0, 0, + 0, 0, 0, 0, 0, 340, 0, 307, 192, 212, + 0, 0, 382, 425, 437, 0, 0, 0, 238, 0, + 435, 396, 499, 220, 267, 422, 402, 433, 409, 270, + 0, 1875, 434, 346, 485, 416, 496, 518, 519, 246, + 376, 508, 474, 514, 532, 213, 243, 390, 467, 502, + 457, 369, 481, 482, 306, 456, 278, 195, 344, 524, + 211, 443, 229, 218, 487, 505, 272, 420, 203, 469, + 494, 226, 447, 0, 0, 534, 205, 492, 466, 365, + 303, 304, 204, 0, 421, 251, 276, 241, 385, 489, + 490, 239, 535, 215, 513, 207, 0, 512, 378, 484, + 493, 366, 356, 206, 491, 364, 355, 311, 330, 331, + 263, 287, 414, 349, 415, 288, 374, 373, 375, 199, + 503, 0, 200, 0, 462, 504, 536, 221, 222, 224, + 0, 262, 266, 274, 277, 283, 284, 292, 342, 389, + 413, 411, 417, 0, 479, 497, 509, 516, 522, 523, + 525, 526, 527, 528, 529, 531, 530, 377, 291, 458, + 310, 347, 0, 0, 395, 436, 227, 501, 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 300, 234, 302, 196, 383, 461, 269, 0, - 0, 0, 0, 188, 189, 190, 0, 2237, 0, 0, - 0, 0, 0, 0, 0, 0, 225, 0, 232, 326, - 335, 334, 315, 316, 318, 320, 325, 332, 338, 0, - 0, 0, 0, 0, 248, 298, 255, 247, 480, 0, - 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 555, 357, + 449, 498, 312, 324, 327, 317, 336, 0, 337, 313, + 314, 319, 321, 322, 323, 328, 329, 333, 339, 426, + 427, 428, 429, 275, 507, 289, 432, 431, 308, 309, + 0, 191, 208, 343, 0, 418, 271, 533, 511, 506, + 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 194, 201, 209, 219, + 223, 230, 244, 259, 261, 268, 281, 286, 290, 295, + 296, 299, 305, 353, 359, 360, 361, 362, 379, 380, + 381, 384, 387, 388, 391, 393, 394, 397, 401, 405, + 406, 407, 408, 410, 412, 419, 424, 438, 439, 440, + 441, 442, 445, 446, 451, 452, 453, 454, 455, 463, + 464, 468, 486, 488, 500, 515, 520, 444, 282, 495, + 521, 0, 352, 0, 0, 354, 264, 285, 297, 0, + 510, 465, 214, 430, 273, 236, 0, 0, 202, 233, + 217, 242, 257, 260, 301, 363, 370, 399, 404, 279, + 254, 231, 423, 228, 448, 471, 472, 473, 475, 367, + 249, 403, 0, 368, 350, 477, 478, 293, 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, + 386, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 0, 0, 0, 0, 341, 250, 0, 0, 400, 0, + 197, 0, 450, 237, 351, 348, 483, 265, 256, 252, + 235, 294, 358, 398, 470, 392, 0, 345, 0, 0, + 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 300, 234, 302, + 196, 383, 461, 269, 0, 0, 0, 0, 188, 189, + 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 225, 0, 232, 326, 335, 334, 315, 316, 318, + 320, 325, 332, 338, 0, 0, 0, 0, 0, 248, + 298, 255, 247, 480, 0, 0, 0, 0, 0, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, + 0, 0, 0, 0, 0, 1009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 372, 240, 0, 0, 0, 0, - 517, 0, 0, 0, 0, 0, 0, 0, 340, 0, - 307, 192, 212, 0, 0, 382, 425, 437, 0, 0, - 0, 238, 0, 435, 396, 499, 220, 267, 422, 402, - 433, 409, 270, 0, 0, 434, 346, 485, 416, 496, - 518, 519, 246, 376, 508, 474, 514, 532, 213, 243, - 390, 467, 502, 457, 369, 481, 482, 306, 456, 278, - 195, 344, 524, 211, 443, 229, 218, 487, 505, 272, - 420, 203, 469, 494, 226, 447, 0, 0, 534, 205, - 492, 466, 365, 303, 304, 204, 0, 421, 251, 276, - 241, 385, 489, 490, 239, 535, 215, 513, 207, 0, - 512, 378, 484, 493, 366, 356, 206, 491, 364, 355, - 311, 330, 331, 263, 287, 414, 349, 415, 288, 374, - 373, 375, 199, 503, 0, 200, 0, 462, 504, 536, - 221, 222, 224, 0, 262, 266, 274, 277, 283, 284, - 292, 342, 389, 413, 411, 417, 0, 479, 497, 509, - 516, 522, 523, 525, 526, 527, 528, 529, 531, 530, - 377, 291, 458, 310, 347, 0, 0, 395, 436, 227, - 501, 459, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 555, 357, 449, 498, 312, 324, 327, 317, 336, - 0, 337, 313, 314, 319, 321, 322, 323, 328, 329, - 333, 339, 426, 427, 428, 429, 275, 507, 289, 432, - 431, 308, 309, 0, 191, 208, 343, 0, 418, 271, - 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 280, 0, 372, + 240, 0, 0, 0, 0, 517, 0, 0, 0, 0, + 0, 0, 0, 340, 1015, 307, 192, 212, 1013, 0, + 382, 425, 437, 0, 0, 0, 238, 0, 435, 396, + 499, 220, 267, 422, 402, 433, 409, 270, 0, 0, + 434, 346, 485, 416, 496, 518, 519, 246, 376, 508, + 474, 514, 532, 213, 243, 390, 467, 502, 457, 369, + 481, 482, 306, 456, 278, 195, 344, 524, 211, 443, + 229, 218, 487, 505, 272, 420, 203, 469, 494, 226, + 447, 0, 0, 534, 205, 492, 466, 365, 303, 304, + 204, 0, 421, 251, 276, 241, 385, 489, 490, 239, + 535, 215, 513, 207, 0, 512, 378, 484, 493, 366, + 356, 206, 491, 364, 355, 311, 330, 331, 263, 287, + 414, 349, 415, 288, 374, 373, 375, 199, 503, 0, + 200, 0, 462, 504, 536, 221, 222, 224, 0, 262, + 266, 274, 277, 283, 284, 292, 342, 389, 413, 411, + 417, 0, 479, 497, 509, 516, 522, 523, 525, 526, + 527, 528, 529, 531, 530, 377, 291, 458, 310, 347, + 0, 0, 395, 436, 227, 501, 459, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 555, 357, 449, 498, + 312, 324, 327, 317, 336, 0, 337, 313, 314, 319, + 321, 322, 323, 328, 329, 333, 339, 426, 427, 428, + 429, 275, 507, 289, 432, 431, 308, 309, 0, 191, + 208, 343, 0, 418, 271, 533, 511, 506, 198, 210, + 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 193, 194, - 201, 209, 219, 223, 230, 244, 259, 261, 268, 281, - 286, 290, 295, 296, 299, 305, 353, 359, 360, 361, - 362, 379, 380, 381, 384, 387, 388, 391, 393, 394, - 397, 401, 405, 406, 407, 408, 410, 412, 419, 424, - 438, 439, 440, 441, 442, 445, 446, 451, 452, 453, - 454, 455, 463, 464, 468, 486, 488, 500, 515, 520, - 444, 282, 495, 521, 0, 352, 0, 0, 354, 264, - 285, 297, 0, 510, 465, 214, 430, 273, 236, 0, - 0, 202, 233, 217, 242, 257, 260, 301, 363, 370, - 399, 404, 279, 254, 231, 423, 228, 448, 471, 472, - 473, 475, 367, 249, 403, 0, 368, 350, 477, 478, - 293, 476, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 386, 0, 0, 0, 0, 0, 0, - 0, 0, 253, 0, 0, 0, 0, 341, 250, 0, - 0, 400, 0, 197, 0, 450, 237, 351, 348, 483, - 265, 256, 252, 235, 294, 358, 398, 470, 392, 0, - 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, + 0, 0, 0, 193, 194, 201, 209, 219, 223, 230, + 244, 259, 261, 268, 281, 286, 290, 295, 296, 299, + 305, 353, 359, 360, 361, 362, 379, 380, 381, 384, + 387, 388, 391, 393, 394, 397, 401, 405, 406, 407, + 408, 410, 412, 419, 424, 438, 439, 440, 441, 442, + 445, 446, 451, 452, 453, 454, 455, 463, 464, 468, + 486, 488, 500, 515, 520, 444, 282, 495, 521, 0, + 352, 0, 0, 354, 264, 285, 297, 0, 510, 465, + 214, 430, 273, 236, 0, 0, 202, 233, 217, 242, + 257, 260, 301, 363, 370, 399, 404, 279, 254, 231, + 423, 228, 448, 471, 472, 473, 475, 367, 249, 403, + 0, 368, 350, 477, 478, 293, 476, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 386, 0, + 0, 0, 1877, 0, 0, 0, 0, 253, 0, 0, + 0, 0, 341, 250, 0, 0, 400, 0, 197, 0, + 450, 237, 351, 348, 483, 265, 256, 252, 235, 294, + 358, 398, 470, 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 300, 234, 302, 196, 383, 461, 269, 0, 0, 0, - 0, 188, 189, 190, 0, 0, 0, 2222, 0, 0, - 0, 2223, 0, 0, 225, 0, 232, 326, 335, 334, - 315, 316, 318, 320, 325, 332, 338, 0, 0, 0, - 0, 0, 248, 298, 255, 247, 480, 0, 0, 0, - 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, + 0, 0, 0, 0, 0, 300, 234, 302, 196, 383, + 461, 269, 0, 0, 0, 0, 188, 189, 190, 0, + 1598, 0, 0, 0, 0, 0, 0, 0, 0, 225, + 0, 232, 326, 335, 334, 315, 316, 318, 320, 325, + 332, 338, 0, 0, 0, 0, 0, 248, 298, 255, + 247, 480, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4340,122 +4047,246 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 280, 0, 372, 240, 0, 0, 0, 0, 517, 0, - 0, 0, 0, 0, 0, 0, 340, 0, 307, 192, - 212, 0, 0, 382, 425, 437, 0, 0, 0, 238, - 0, 435, 396, 499, 220, 267, 422, 402, 433, 409, - 270, 0, 0, 434, 346, 485, 416, 496, 518, 519, - 246, 376, 508, 474, 514, 532, 213, 243, 390, 467, - 502, 457, 369, 481, 482, 306, 456, 278, 195, 344, - 524, 211, 443, 229, 218, 487, 505, 272, 420, 203, - 469, 494, 226, 447, 0, 0, 534, 205, 492, 466, - 365, 303, 304, 204, 0, 421, 251, 276, 241, 385, - 489, 490, 239, 535, 215, 513, 207, 0, 512, 378, - 484, 493, 366, 356, 206, 491, 364, 355, 311, 330, - 331, 263, 287, 414, 349, 415, 288, 374, 373, 375, - 199, 503, 0, 200, 0, 462, 504, 536, 221, 222, - 224, 0, 262, 266, 274, 277, 283, 284, 292, 342, - 389, 413, 411, 417, 0, 479, 497, 509, 516, 522, - 523, 525, 526, 527, 528, 529, 531, 530, 377, 291, - 458, 310, 347, 0, 0, 395, 436, 227, 501, 459, + 0, 0, 0, 0, 0, 280, 0, 372, 240, 0, + 0, 0, 0, 517, 0, 0, 0, 0, 0, 0, + 0, 340, 0, 307, 192, 212, 0, 0, 382, 425, + 437, 0, 0, 0, 238, 0, 435, 396, 499, 220, + 267, 422, 402, 433, 409, 270, 0, 0, 434, 346, + 485, 416, 496, 518, 519, 246, 376, 508, 474, 514, + 532, 213, 243, 390, 467, 502, 457, 369, 481, 482, + 306, 456, 278, 195, 344, 524, 211, 443, 229, 218, + 487, 505, 272, 420, 203, 469, 494, 226, 447, 0, + 0, 534, 205, 492, 466, 365, 303, 304, 204, 0, + 421, 251, 276, 241, 385, 489, 490, 239, 535, 215, + 513, 207, 0, 512, 378, 484, 493, 366, 356, 206, + 491, 364, 355, 311, 330, 331, 263, 287, 414, 349, + 415, 288, 374, 373, 375, 199, 503, 0, 200, 0, + 462, 504, 536, 221, 222, 224, 0, 262, 266, 274, + 277, 283, 284, 292, 342, 389, 413, 411, 417, 0, + 479, 497, 509, 516, 522, 523, 525, 526, 527, 528, + 529, 531, 530, 377, 291, 458, 310, 347, 0, 0, + 395, 436, 227, 501, 459, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 555, 357, 449, 498, 312, 324, + 327, 317, 336, 0, 337, 313, 314, 319, 321, 322, + 323, 328, 329, 333, 339, 426, 427, 428, 429, 275, + 507, 289, 432, 431, 308, 309, 0, 191, 208, 343, + 0, 418, 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 555, - 357, 449, 498, 312, 324, 327, 317, 336, 0, 337, - 313, 314, 319, 321, 322, 323, 328, 329, 333, 339, - 426, 427, 428, 429, 275, 507, 289, 432, 431, 308, - 309, 0, 191, 208, 343, 0, 418, 271, 533, 511, - 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 193, 194, 201, 209, - 219, 223, 230, 244, 259, 261, 268, 281, 286, 290, - 295, 296, 299, 305, 353, 359, 360, 361, 362, 379, - 380, 381, 384, 387, 388, 391, 393, 394, 397, 401, - 405, 406, 407, 408, 410, 412, 419, 424, 438, 439, - 440, 441, 442, 445, 446, 451, 452, 453, 454, 455, - 463, 464, 468, 486, 488, 500, 515, 520, 444, 282, - 495, 521, 0, 352, 0, 0, 354, 264, 285, 297, - 0, 510, 465, 214, 430, 273, 236, 0, 0, 202, - 233, 217, 242, 257, 260, 301, 363, 370, 399, 404, - 279, 254, 231, 423, 228, 448, 471, 472, 473, 475, - 367, 249, 403, 0, 368, 350, 477, 478, 293, 476, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 386, 0, 0, 0, 0, 0, 0, 0, 0, - 253, 1441, 0, 0, 0, 341, 250, 0, 0, 400, - 0, 197, 0, 450, 237, 351, 348, 483, 265, 256, - 252, 235, 294, 358, 398, 470, 392, 0, 345, 0, - 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 300, 234, - 302, 196, 383, 461, 269, 0, 0, 0, 0, 188, - 189, 190, 0, 1440, 0, 0, 0, 0, 0, 0, - 0, 0, 225, 0, 232, 326, 335, 334, 315, 316, - 318, 320, 325, 332, 338, 0, 0, 0, 0, 0, - 248, 298, 255, 247, 480, 0, 0, 0, 0, 0, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, + 0, 193, 194, 201, 209, 219, 223, 230, 244, 259, + 261, 268, 281, 286, 290, 295, 296, 299, 305, 353, + 359, 360, 361, 362, 379, 380, 381, 384, 387, 388, + 391, 393, 394, 397, 401, 405, 406, 407, 408, 410, + 412, 419, 424, 438, 439, 440, 441, 442, 445, 446, + 451, 452, 453, 454, 455, 463, 464, 468, 486, 488, + 500, 515, 520, 444, 282, 495, 521, 0, 352, 0, + 0, 354, 264, 285, 297, 0, 510, 465, 214, 430, + 273, 236, 0, 0, 202, 233, 217, 242, 257, 260, + 301, 363, 370, 399, 404, 279, 254, 231, 423, 228, + 448, 471, 472, 473, 475, 367, 249, 403, 0, 368, + 350, 477, 478, 293, 476, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 386, 0, 0, 0, + 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, + 341, 250, 0, 0, 400, 0, 197, 0, 450, 237, + 351, 348, 483, 265, 256, 252, 235, 294, 358, 398, + 470, 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 300, 234, 302, 196, 383, 461, 269, + 0, 0, 0, 1397, 188, 189, 190, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 225, 0, 232, + 326, 335, 334, 315, 316, 318, 320, 325, 332, 338, + 0, 0, 0, 0, 0, 248, 298, 255, 247, 480, + 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 372, 240, 0, 0, 0, 0, 517, 0, 0, 0, - 0, 0, 0, 0, 340, 0, 307, 192, 212, 0, - 0, 382, 425, 437, 0, 0, 0, 238, 0, 435, - 396, 499, 220, 267, 422, 402, 433, 409, 270, 0, - 0, 434, 346, 485, 416, 496, 518, 519, 246, 376, - 508, 474, 514, 532, 213, 243, 390, 467, 502, 457, - 369, 481, 482, 306, 456, 278, 195, 344, 524, 211, - 443, 229, 218, 487, 505, 272, 420, 203, 469, 494, - 226, 447, 0, 0, 534, 205, 492, 466, 365, 303, - 304, 204, 0, 421, 251, 276, 241, 385, 489, 490, - 239, 535, 215, 513, 207, 0, 512, 378, 484, 493, - 366, 356, 206, 491, 364, 355, 311, 330, 331, 263, - 287, 414, 349, 415, 288, 374, 373, 375, 199, 503, - 0, 200, 0, 462, 504, 536, 221, 222, 224, 0, - 262, 266, 274, 277, 283, 284, 292, 342, 389, 413, - 411, 417, 0, 479, 497, 509, 516, 522, 523, 525, - 526, 527, 528, 529, 531, 530, 377, 291, 458, 310, - 347, 0, 0, 395, 436, 227, 501, 459, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 555, 357, 449, - 498, 312, 324, 327, 317, 336, 0, 337, 313, 314, - 319, 321, 322, 323, 328, 329, 333, 339, 426, 427, - 428, 429, 275, 507, 289, 432, 431, 308, 309, 0, - 191, 208, 343, 0, 418, 271, 533, 511, 506, 198, - 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 193, 194, 201, 209, 219, 223, - 230, 244, 259, 261, 268, 281, 286, 290, 295, 296, - 299, 305, 353, 359, 360, 361, 362, 379, 380, 381, - 384, 387, 388, 391, 393, 394, 397, 401, 405, 406, - 407, 408, 410, 412, 419, 424, 438, 439, 440, 441, - 442, 445, 446, 451, 452, 453, 454, 455, 463, 464, - 468, 486, 488, 500, 515, 520, 444, 282, 495, 521, - 0, 352, 0, 0, 354, 264, 285, 297, 0, 510, - 465, 214, 430, 273, 236, 0, 0, 202, 233, 217, - 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, - 231, 423, 228, 448, 471, 472, 473, 475, 367, 249, - 403, 0, 368, 350, 477, 478, 293, 476, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, - 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, - 0, 0, 0, 341, 250, 0, 0, 400, 0, 197, - 0, 450, 237, 351, 348, 483, 265, 256, 252, 235, - 294, 358, 398, 470, 392, 0, 345, 0, 0, 460, - 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 300, 234, 302, 196, - 383, 461, 269, 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 225, 0, 232, 326, 335, 334, 315, 316, 318, 320, - 325, 332, 338, 0, 0, 0, 0, 0, 248, 298, - 255, 247, 480, 0, 0, 0, 0, 0, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, + 0, 0, 0, 280, 0, 372, 240, 0, 0, 0, + 0, 517, 0, 0, 0, 3055, 0, 0, 0, 340, + 0, 307, 192, 212, 0, 0, 382, 425, 437, 0, + 0, 0, 238, 0, 435, 396, 499, 220, 267, 422, + 402, 433, 409, 270, 0, 0, 434, 346, 485, 416, + 496, 518, 519, 246, 376, 508, 474, 514, 532, 213, + 243, 390, 467, 502, 457, 369, 481, 482, 306, 456, + 278, 195, 344, 524, 211, 443, 229, 218, 487, 505, + 272, 420, 203, 469, 494, 226, 447, 0, 0, 534, + 205, 492, 466, 365, 303, 304, 204, 0, 421, 251, + 276, 241, 385, 489, 490, 239, 535, 215, 513, 207, + 0, 512, 378, 484, 493, 366, 356, 206, 491, 364, + 355, 311, 330, 331, 263, 287, 414, 349, 415, 288, + 374, 373, 375, 199, 503, 0, 200, 0, 462, 504, + 536, 221, 222, 224, 0, 262, 266, 274, 277, 283, + 284, 292, 342, 389, 413, 411, 417, 0, 479, 497, + 509, 516, 522, 523, 525, 526, 527, 528, 529, 531, + 530, 377, 291, 458, 310, 347, 0, 0, 395, 436, + 227, 501, 459, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 555, 357, 449, 498, 312, 324, 327, 317, + 336, 0, 337, 313, 314, 319, 321, 322, 323, 328, + 329, 333, 339, 426, 427, 428, 429, 275, 507, 289, + 432, 431, 308, 309, 0, 191, 208, 343, 0, 418, + 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, + 194, 201, 209, 219, 223, 230, 244, 259, 261, 268, + 281, 286, 290, 295, 296, 299, 305, 353, 359, 360, + 361, 362, 379, 380, 381, 384, 387, 388, 391, 393, + 394, 397, 401, 405, 406, 407, 408, 410, 412, 419, + 424, 438, 439, 440, 441, 442, 445, 446, 451, 452, + 453, 454, 455, 463, 464, 468, 486, 488, 500, 515, + 520, 444, 282, 495, 521, 0, 352, 0, 0, 354, + 264, 285, 297, 0, 510, 465, 214, 430, 273, 236, + 0, 0, 202, 233, 217, 242, 257, 260, 301, 363, + 370, 399, 404, 279, 254, 231, 423, 228, 448, 471, + 472, 473, 475, 367, 249, 403, 0, 368, 350, 477, + 478, 293, 476, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 386, 0, 0, 0, 0, 0, + 0, 0, 0, 253, 0, 0, 0, 0, 341, 250, + 0, 0, 400, 0, 197, 0, 450, 237, 351, 348, + 483, 265, 256, 252, 235, 294, 358, 398, 470, 392, + 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 300, 234, 302, 196, 383, 461, 269, 0, 0, + 0, 0, 188, 189, 190, 0, 1741, 0, 0, 0, + 0, 0, 0, 0, 0, 225, 0, 232, 326, 335, + 334, 315, 316, 318, 320, 325, 332, 338, 0, 0, + 0, 0, 0, 248, 298, 255, 247, 480, 0, 0, + 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1742, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 280, 0, 372, 240, 0, 0, 0, 0, 517, + 0, 0, 0, 0, 0, 0, 0, 340, 0, 307, + 192, 212, 0, 0, 382, 425, 437, 0, 0, 0, + 238, 0, 435, 396, 499, 220, 267, 422, 402, 433, + 409, 270, 0, 0, 434, 346, 485, 416, 496, 518, + 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, + 467, 502, 457, 369, 481, 482, 306, 456, 278, 195, + 344, 524, 211, 443, 229, 218, 487, 505, 272, 420, + 203, 469, 494, 226, 447, 0, 0, 534, 205, 492, + 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, + 385, 489, 490, 239, 535, 215, 513, 207, 0, 512, + 378, 484, 493, 366, 356, 206, 491, 364, 355, 311, + 330, 331, 263, 287, 414, 349, 415, 288, 374, 373, + 375, 199, 503, 0, 200, 0, 462, 504, 536, 221, + 222, 224, 0, 262, 266, 274, 277, 283, 284, 292, + 342, 389, 413, 411, 417, 0, 479, 497, 509, 516, + 522, 523, 525, 526, 527, 528, 529, 531, 530, 377, + 291, 458, 310, 347, 0, 0, 395, 436, 227, 501, + 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 555, 357, 449, 498, 312, 324, 327, 317, 336, 0, + 337, 313, 314, 319, 321, 322, 323, 328, 329, 333, + 339, 426, 427, 428, 429, 275, 507, 289, 432, 431, + 308, 309, 0, 191, 208, 343, 0, 418, 271, 533, + 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 193, 194, 201, + 209, 219, 223, 230, 244, 259, 261, 268, 281, 286, + 290, 295, 296, 299, 305, 353, 359, 360, 361, 362, + 379, 380, 381, 384, 387, 388, 391, 393, 394, 397, + 401, 405, 406, 407, 408, 410, 412, 419, 424, 438, + 439, 440, 441, 442, 445, 446, 451, 452, 453, 454, + 455, 463, 464, 468, 486, 488, 500, 515, 520, 444, + 282, 495, 521, 0, 352, 0, 0, 354, 264, 285, + 297, 0, 510, 465, 214, 430, 273, 236, 0, 0, + 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, + 404, 279, 254, 231, 423, 228, 448, 471, 472, 473, + 475, 367, 249, 403, 0, 368, 350, 477, 478, 293, + 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 386, 0, 0, 0, 0, 0, 0, 0, + 0, 253, 0, 0, 0, 0, 341, 250, 0, 0, + 400, 0, 197, 0, 450, 237, 351, 348, 483, 265, + 256, 252, 235, 294, 358, 398, 470, 392, 0, 345, + 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, + 234, 302, 196, 383, 461, 269, 0, 0, 0, 0, + 188, 189, 190, 0, 2237, 0, 0, 0, 0, 0, + 0, 0, 0, 225, 0, 232, 326, 335, 334, 315, + 316, 318, 320, 325, 332, 338, 0, 0, 0, 0, + 0, 248, 298, 255, 247, 480, 0, 0, 0, 0, + 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2238, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 372, 240, 0, 0, 0, 0, 517, 0, 0, + 0, 0, 0, 0, 0, 340, 0, 307, 192, 212, + 0, 0, 382, 425, 437, 0, 0, 0, 238, 0, + 435, 396, 499, 220, 267, 422, 402, 433, 409, 270, + 0, 0, 434, 346, 485, 416, 496, 518, 519, 246, + 376, 508, 474, 514, 532, 213, 243, 390, 467, 502, + 457, 369, 481, 482, 306, 456, 278, 195, 344, 524, + 211, 443, 229, 218, 487, 505, 272, 420, 203, 469, + 494, 226, 447, 0, 0, 534, 205, 492, 466, 365, + 303, 304, 204, 0, 421, 251, 276, 241, 385, 489, + 490, 239, 535, 215, 513, 207, 0, 512, 378, 484, + 493, 366, 356, 206, 491, 364, 355, 311, 330, 331, + 263, 287, 414, 349, 415, 288, 374, 373, 375, 199, + 503, 0, 200, 0, 462, 504, 536, 221, 222, 224, + 0, 262, 266, 274, 277, 283, 284, 292, 342, 389, + 413, 411, 417, 0, 479, 497, 509, 516, 522, 523, + 525, 526, 527, 528, 529, 531, 530, 377, 291, 458, + 310, 347, 0, 0, 395, 436, 227, 501, 459, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 555, 357, + 449, 498, 312, 324, 327, 317, 336, 0, 337, 313, + 314, 319, 321, 322, 323, 328, 329, 333, 339, 426, + 427, 428, 429, 275, 507, 289, 432, 431, 308, 309, + 0, 191, 208, 343, 0, 418, 271, 533, 511, 506, + 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 194, 201, 209, 219, + 223, 230, 244, 259, 261, 268, 281, 286, 290, 295, + 296, 299, 305, 353, 359, 360, 361, 362, 379, 380, + 381, 384, 387, 388, 391, 393, 394, 397, 401, 405, + 406, 407, 408, 410, 412, 419, 424, 438, 439, 440, + 441, 442, 445, 446, 451, 452, 453, 454, 455, 463, + 464, 468, 486, 488, 500, 515, 520, 444, 282, 495, + 521, 0, 352, 0, 0, 354, 264, 285, 297, 0, + 510, 465, 214, 430, 273, 236, 0, 0, 202, 233, + 217, 242, 257, 260, 301, 363, 370, 399, 404, 279, + 254, 231, 423, 228, 448, 471, 472, 473, 475, 367, + 249, 403, 0, 368, 350, 477, 478, 293, 476, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 386, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 0, 0, 0, 0, 341, 250, 0, 0, 400, 0, + 197, 0, 450, 237, 351, 348, 483, 265, 256, 252, + 235, 294, 358, 398, 470, 392, 0, 345, 0, 0, + 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 300, 234, 302, + 196, 383, 461, 269, 0, 0, 0, 0, 188, 189, + 190, 0, 0, 0, 2222, 0, 0, 0, 2223, 0, + 0, 225, 0, 232, 326, 335, 334, 315, 316, 318, + 320, 325, 332, 338, 0, 0, 0, 0, 0, 248, + 298, 255, 247, 480, 0, 0, 0, 0, 0, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4463,61 +4294,61 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 372, 240, - 0, 0, 0, 0, 517, 0, 0, 0, 3187, 0, - 0, 0, 340, 0, 307, 192, 212, 0, 0, 382, - 425, 437, 0, 0, 0, 238, 0, 435, 396, 499, - 220, 267, 422, 402, 433, 409, 270, 0, 0, 434, - 346, 485, 416, 496, 518, 519, 246, 376, 508, 474, - 514, 532, 213, 243, 390, 467, 502, 457, 369, 481, - 482, 306, 456, 278, 195, 344, 524, 211, 443, 229, - 218, 487, 505, 272, 420, 203, 469, 494, 226, 447, - 0, 0, 534, 205, 492, 466, 365, 303, 304, 204, - 0, 421, 251, 276, 241, 385, 489, 490, 239, 535, - 215, 513, 207, 0, 512, 378, 484, 493, 366, 356, - 206, 491, 364, 355, 311, 330, 331, 263, 287, 414, - 349, 415, 288, 374, 373, 375, 199, 503, 0, 200, - 0, 462, 504, 536, 221, 222, 224, 0, 262, 266, - 274, 277, 283, 284, 292, 342, 389, 413, 411, 417, - 0, 479, 497, 509, 516, 522, 523, 525, 526, 527, - 528, 529, 531, 530, 377, 291, 458, 310, 347, 0, - 0, 395, 436, 227, 501, 459, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 555, 357, 449, 498, 312, - 324, 327, 317, 336, 0, 337, 313, 314, 319, 321, - 322, 323, 328, 329, 333, 339, 426, 427, 428, 429, - 275, 507, 289, 432, 431, 308, 309, 0, 191, 208, - 343, 0, 418, 271, 533, 511, 506, 198, 210, 0, - 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 280, 0, 372, + 240, 0, 0, 0, 0, 517, 0, 0, 0, 0, + 0, 0, 0, 340, 0, 307, 192, 212, 0, 0, + 382, 425, 437, 0, 0, 0, 238, 0, 435, 396, + 499, 220, 267, 422, 402, 433, 409, 270, 0, 0, + 434, 346, 485, 416, 496, 518, 519, 246, 376, 508, + 474, 514, 532, 213, 243, 390, 467, 502, 457, 369, + 481, 482, 306, 456, 278, 195, 344, 524, 211, 443, + 229, 218, 487, 505, 272, 420, 203, 469, 494, 226, + 447, 0, 0, 534, 205, 492, 466, 365, 303, 304, + 204, 0, 421, 251, 276, 241, 385, 489, 490, 239, + 535, 215, 513, 207, 0, 512, 378, 484, 493, 366, + 356, 206, 491, 364, 355, 311, 330, 331, 263, 287, + 414, 349, 415, 288, 374, 373, 375, 199, 503, 0, + 200, 0, 462, 504, 536, 221, 222, 224, 0, 262, + 266, 274, 277, 283, 284, 292, 342, 389, 413, 411, + 417, 0, 479, 497, 509, 516, 522, 523, 525, 526, + 527, 528, 529, 531, 530, 377, 291, 458, 310, 347, + 0, 0, 395, 436, 227, 501, 459, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 555, 357, 449, 498, + 312, 324, 327, 317, 336, 0, 337, 313, 314, 319, + 321, 322, 323, 328, 329, 333, 339, 426, 427, 428, + 429, 275, 507, 289, 432, 431, 308, 309, 0, 191, + 208, 343, 0, 418, 271, 533, 511, 506, 198, 210, + 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 194, 201, 209, 219, 223, 230, 244, - 259, 261, 268, 281, 286, 290, 295, 296, 299, 305, - 353, 359, 360, 361, 362, 379, 380, 381, 384, 387, - 388, 391, 393, 394, 397, 401, 405, 406, 407, 408, - 410, 412, 419, 424, 438, 439, 440, 441, 442, 445, - 446, 451, 452, 453, 454, 455, 463, 464, 468, 486, - 488, 500, 515, 520, 444, 282, 495, 521, 0, 352, - 0, 0, 354, 264, 285, 297, 0, 510, 465, 214, - 430, 273, 236, 0, 0, 202, 233, 217, 242, 257, - 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, - 228, 448, 471, 472, 473, 475, 367, 249, 403, 0, - 368, 350, 477, 478, 293, 476, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 386, 0, 0, - 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, - 0, 341, 250, 0, 0, 400, 0, 197, 0, 450, - 237, 351, 348, 483, 265, 256, 252, 235, 294, 358, - 398, 470, 392, 0, 345, 0, 0, 460, 371, 0, + 0, 0, 0, 193, 194, 201, 209, 219, 223, 230, + 244, 259, 261, 268, 281, 286, 290, 295, 296, 299, + 305, 353, 359, 360, 361, 362, 379, 380, 381, 384, + 387, 388, 391, 393, 394, 397, 401, 405, 406, 407, + 408, 410, 412, 419, 424, 438, 439, 440, 441, 442, + 445, 446, 451, 452, 453, 454, 455, 463, 464, 468, + 486, 488, 500, 515, 520, 444, 282, 495, 521, 0, + 352, 0, 0, 354, 264, 285, 297, 0, 510, 465, + 214, 430, 273, 236, 0, 0, 202, 233, 217, 242, + 257, 260, 301, 363, 370, 399, 404, 279, 254, 231, + 423, 228, 448, 471, 472, 473, 475, 367, 249, 403, + 0, 368, 350, 477, 478, 293, 476, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 386, 0, + 0, 0, 0, 0, 0, 0, 0, 253, 1441, 0, + 0, 0, 341, 250, 0, 0, 400, 0, 197, 0, + 450, 237, 351, 348, 483, 265, 256, 252, 235, 294, + 358, 398, 470, 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 300, 234, 302, 196, 383, 461, - 269, 0, 0, 0, 0, 188, 189, 190, 0, 1598, - 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, - 232, 326, 335, 334, 315, 316, 318, 320, 325, 332, - 338, 0, 0, 0, 0, 0, 248, 298, 255, 247, - 480, 0, 0, 0, 0, 0, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 300, 234, 302, 196, 383, + 461, 269, 0, 0, 0, 0, 188, 189, 190, 0, + 1440, 0, 0, 0, 0, 0, 0, 0, 0, 225, + 0, 232, 326, 335, 334, 315, 316, 318, 320, 325, + 332, 338, 0, 0, 0, 0, 0, 248, 298, 255, + 247, 480, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4525,61 +4356,61 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 372, 240, 0, 0, - 0, 0, 517, 0, 0, 0, 0, 0, 0, 0, - 340, 0, 307, 192, 212, 0, 0, 382, 425, 437, - 0, 0, 0, 238, 0, 435, 396, 499, 220, 267, - 422, 402, 433, 409, 270, 0, 0, 434, 346, 485, - 416, 496, 518, 519, 246, 376, 508, 474, 514, 532, - 213, 243, 390, 467, 502, 457, 369, 481, 482, 306, - 456, 278, 195, 344, 524, 211, 443, 229, 218, 487, - 505, 272, 420, 203, 469, 494, 226, 447, 0, 0, - 534, 205, 492, 466, 365, 303, 304, 204, 0, 421, - 251, 276, 241, 385, 489, 490, 239, 535, 215, 513, - 207, 0, 512, 378, 484, 493, 366, 356, 206, 491, - 364, 355, 311, 330, 331, 263, 287, 414, 349, 415, - 288, 374, 373, 375, 199, 503, 0, 200, 0, 462, - 504, 536, 221, 222, 224, 0, 262, 266, 274, 277, - 283, 284, 292, 342, 389, 413, 411, 417, 0, 479, - 497, 509, 516, 522, 523, 525, 526, 527, 528, 529, - 531, 530, 377, 291, 458, 310, 347, 0, 0, 395, - 436, 227, 501, 459, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 555, 357, 449, 498, 312, 324, 327, - 317, 336, 0, 337, 313, 314, 319, 321, 322, 323, - 328, 329, 333, 339, 426, 427, 428, 429, 275, 507, - 289, 432, 431, 308, 309, 0, 191, 208, 343, 0, - 418, 271, 533, 511, 506, 198, 210, 0, 245, 0, + 0, 0, 0, 0, 0, 280, 0, 372, 240, 0, + 0, 0, 0, 517, 0, 0, 0, 0, 0, 0, + 0, 340, 0, 307, 192, 212, 0, 0, 382, 425, + 437, 0, 0, 0, 238, 0, 435, 396, 499, 220, + 267, 422, 402, 433, 409, 270, 0, 0, 434, 346, + 485, 416, 496, 518, 519, 246, 376, 508, 474, 514, + 532, 213, 243, 390, 467, 502, 457, 369, 481, 482, + 306, 456, 278, 195, 344, 524, 211, 443, 229, 218, + 487, 505, 272, 420, 203, 469, 494, 226, 447, 0, + 0, 534, 205, 492, 466, 365, 303, 304, 204, 0, + 421, 251, 276, 241, 385, 489, 490, 239, 535, 215, + 513, 207, 0, 512, 378, 484, 493, 366, 356, 206, + 491, 364, 355, 311, 330, 331, 263, 287, 414, 349, + 415, 288, 374, 373, 375, 199, 503, 0, 200, 0, + 462, 504, 536, 221, 222, 224, 0, 262, 266, 274, + 277, 283, 284, 292, 342, 389, 413, 411, 417, 0, + 479, 497, 509, 516, 522, 523, 525, 526, 527, 528, + 529, 531, 530, 377, 291, 458, 310, 347, 0, 0, + 395, 436, 227, 501, 459, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 555, 357, 449, 498, 312, 324, + 327, 317, 336, 0, 337, 313, 314, 319, 321, 322, + 323, 328, 329, 333, 339, 426, 427, 428, 429, 275, + 507, 289, 432, 431, 308, 309, 0, 191, 208, 343, + 0, 418, 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 193, 194, 201, 209, 219, 223, 230, 244, 259, 261, - 268, 281, 286, 290, 295, 296, 299, 305, 353, 359, - 360, 361, 362, 379, 380, 381, 384, 387, 388, 391, - 393, 394, 397, 401, 405, 406, 407, 408, 410, 412, - 419, 424, 438, 439, 440, 441, 442, 445, 446, 451, - 452, 453, 454, 455, 463, 464, 468, 486, 488, 500, - 515, 520, 444, 282, 495, 521, 0, 352, 0, 0, - 354, 264, 285, 297, 0, 510, 465, 214, 430, 273, - 236, 0, 0, 202, 233, 217, 242, 257, 260, 301, - 363, 370, 399, 404, 279, 254, 231, 423, 228, 448, - 471, 472, 473, 475, 367, 249, 403, 0, 368, 350, - 477, 478, 293, 476, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 386, 0, 0, 0, 0, - 0, 0, 0, 0, 253, 0, 0, 0, 0, 341, - 250, 0, 0, 400, 0, 197, 0, 450, 237, 351, - 348, 483, 265, 256, 252, 235, 294, 358, 398, 470, - 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, + 0, 193, 194, 201, 209, 219, 223, 230, 244, 259, + 261, 268, 281, 286, 290, 295, 296, 299, 305, 353, + 359, 360, 361, 362, 379, 380, 381, 384, 387, 388, + 391, 393, 394, 397, 401, 405, 406, 407, 408, 410, + 412, 419, 424, 438, 439, 440, 441, 442, 445, 446, + 451, 452, 453, 454, 455, 463, 464, 468, 486, 488, + 500, 515, 520, 444, 282, 495, 521, 0, 352, 0, + 0, 354, 264, 285, 297, 0, 510, 465, 214, 430, + 273, 236, 0, 0, 202, 233, 217, 242, 257, 260, + 301, 363, 370, 399, 404, 279, 254, 231, 423, 228, + 448, 471, 472, 473, 475, 367, 249, 403, 0, 368, + 350, 477, 478, 293, 476, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 386, 0, 0, 0, + 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, + 341, 250, 0, 0, 400, 0, 197, 0, 450, 237, + 351, 348, 483, 265, 256, 252, 235, 294, 358, 398, + 470, 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 300, 234, 302, 196, 383, 461, 269, 0, - 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 225, 0, 232, 326, - 335, 334, 315, 316, 318, 320, 325, 332, 338, 0, - 0, 0, 0, 0, 248, 298, 255, 247, 480, 0, - 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 300, 234, 302, 196, 383, 461, 269, + 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 225, 0, 232, + 326, 335, 334, 315, 316, 318, 320, 325, 332, 338, + 0, 0, 0, 0, 0, 248, 298, 255, 247, 480, + 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4587,61 +4418,61 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 372, 240, 0, 0, 0, 0, - 517, 0, 0, 0, 3061, 0, 0, 0, 340, 0, - 307, 192, 212, 0, 0, 382, 425, 437, 0, 0, - 0, 238, 0, 435, 396, 499, 220, 267, 422, 402, - 433, 409, 270, 0, 0, 434, 346, 485, 416, 496, - 518, 519, 246, 376, 508, 474, 514, 532, 213, 243, - 390, 467, 502, 457, 369, 481, 482, 306, 456, 278, - 195, 344, 524, 211, 443, 229, 218, 487, 505, 272, - 420, 203, 469, 494, 226, 447, 0, 0, 534, 205, - 492, 466, 365, 303, 304, 204, 0, 421, 251, 276, - 241, 385, 489, 490, 239, 535, 215, 513, 207, 0, - 512, 378, 484, 493, 366, 356, 206, 491, 364, 355, - 311, 330, 331, 263, 287, 414, 349, 415, 288, 374, - 373, 375, 199, 503, 0, 200, 0, 462, 504, 536, - 221, 222, 224, 0, 262, 266, 274, 277, 283, 284, - 292, 342, 389, 413, 411, 417, 0, 479, 497, 509, - 516, 522, 523, 525, 526, 527, 528, 529, 531, 530, - 377, 291, 458, 310, 347, 0, 0, 395, 436, 227, - 501, 459, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 555, 357, 449, 498, 312, 324, 327, 317, 336, - 0, 337, 313, 314, 319, 321, 322, 323, 328, 329, - 333, 339, 426, 427, 428, 429, 275, 507, 289, 432, - 431, 308, 309, 0, 191, 208, 343, 0, 418, 271, - 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, + 0, 0, 0, 280, 0, 372, 240, 0, 0, 0, + 0, 517, 0, 0, 0, 3181, 0, 0, 0, 340, + 0, 307, 192, 212, 0, 0, 382, 425, 437, 0, + 0, 0, 238, 0, 435, 396, 499, 220, 267, 422, + 402, 433, 409, 270, 0, 0, 434, 346, 485, 416, + 496, 518, 519, 246, 376, 508, 474, 514, 532, 213, + 243, 390, 467, 502, 457, 369, 481, 482, 306, 456, + 278, 195, 344, 524, 211, 443, 229, 218, 487, 505, + 272, 420, 203, 469, 494, 226, 447, 0, 0, 534, + 205, 492, 466, 365, 303, 304, 204, 0, 421, 251, + 276, 241, 385, 489, 490, 239, 535, 215, 513, 207, + 0, 512, 378, 484, 493, 366, 356, 206, 491, 364, + 355, 311, 330, 331, 263, 287, 414, 349, 415, 288, + 374, 373, 375, 199, 503, 0, 200, 0, 462, 504, + 536, 221, 222, 224, 0, 262, 266, 274, 277, 283, + 284, 292, 342, 389, 413, 411, 417, 0, 479, 497, + 509, 516, 522, 523, 525, 526, 527, 528, 529, 531, + 530, 377, 291, 458, 310, 347, 0, 0, 395, 436, + 227, 501, 459, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 555, 357, 449, 498, 312, 324, 327, 317, + 336, 0, 337, 313, 314, 319, 321, 322, 323, 328, + 329, 333, 339, 426, 427, 428, 429, 275, 507, 289, + 432, 431, 308, 309, 0, 191, 208, 343, 0, 418, + 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 193, 194, - 201, 209, 219, 223, 230, 244, 259, 261, 268, 281, - 286, 290, 295, 296, 299, 305, 353, 359, 360, 361, - 362, 379, 380, 381, 384, 387, 388, 391, 393, 394, - 397, 401, 405, 406, 407, 408, 410, 412, 419, 424, - 438, 439, 440, 441, 442, 445, 446, 451, 452, 453, - 454, 455, 463, 464, 468, 486, 488, 500, 515, 520, - 444, 282, 495, 521, 0, 352, 0, 0, 354, 264, - 285, 297, 0, 510, 465, 214, 430, 273, 236, 0, - 0, 202, 233, 217, 242, 257, 260, 301, 363, 370, - 399, 404, 279, 254, 231, 423, 228, 448, 471, 472, - 473, 475, 367, 249, 403, 0, 368, 350, 477, 478, - 293, 476, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 386, 0, 0, 0, 0, 0, 0, - 0, 0, 253, 0, 0, 0, 0, 341, 250, 0, - 0, 400, 0, 197, 0, 450, 237, 351, 348, 483, - 265, 256, 252, 235, 294, 358, 398, 470, 392, 0, - 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, + 194, 201, 209, 219, 223, 230, 244, 259, 261, 268, + 281, 286, 290, 295, 296, 299, 305, 353, 359, 360, + 361, 362, 379, 380, 381, 384, 387, 388, 391, 393, + 394, 397, 401, 405, 406, 407, 408, 410, 412, 419, + 424, 438, 439, 440, 441, 442, 445, 446, 451, 452, + 453, 454, 455, 463, 464, 468, 486, 488, 500, 515, + 520, 444, 282, 495, 521, 0, 352, 0, 0, 354, + 264, 285, 297, 0, 510, 465, 214, 430, 273, 236, + 0, 0, 202, 233, 217, 242, 257, 260, 301, 363, + 370, 399, 404, 279, 254, 231, 423, 228, 448, 471, + 472, 473, 475, 367, 249, 403, 0, 368, 350, 477, + 478, 293, 476, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 386, 0, 0, 0, 0, 0, + 0, 0, 0, 253, 0, 0, 0, 0, 341, 250, + 0, 0, 400, 0, 197, 0, 450, 237, 351, 348, + 483, 265, 256, 252, 235, 294, 358, 398, 470, 392, + 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 300, 234, 302, 196, 383, 461, 269, 0, 87, 0, - 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 225, 0, 232, 326, 335, 334, - 315, 316, 318, 320, 325, 332, 338, 0, 0, 0, - 0, 0, 248, 298, 255, 247, 480, 0, 0, 0, - 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, + 0, 300, 234, 302, 196, 383, 461, 269, 0, 0, + 0, 0, 188, 189, 190, 0, 1598, 0, 0, 0, + 0, 0, 0, 0, 0, 225, 0, 232, 326, 335, + 334, 315, 316, 318, 320, 325, 332, 338, 0, 0, + 0, 0, 0, 248, 298, 255, 247, 480, 0, 0, + 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4649,60 +4480,60 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 280, 0, 372, 240, 0, 0, 0, 0, 517, 0, - 0, 0, 0, 0, 0, 0, 340, 0, 307, 192, - 212, 0, 0, 382, 425, 437, 0, 0, 0, 238, - 0, 435, 396, 499, 220, 267, 422, 402, 433, 409, - 270, 0, 0, 434, 346, 485, 416, 496, 518, 519, - 246, 376, 508, 474, 514, 532, 213, 243, 390, 467, - 502, 457, 369, 481, 482, 306, 456, 278, 195, 344, - 524, 211, 443, 229, 218, 487, 505, 272, 420, 203, - 469, 494, 226, 447, 0, 0, 534, 205, 492, 466, - 365, 303, 304, 204, 0, 421, 251, 276, 241, 385, - 489, 490, 239, 535, 215, 513, 207, 0, 512, 378, - 484, 493, 366, 356, 206, 491, 364, 355, 311, 330, - 331, 263, 287, 414, 349, 415, 288, 374, 373, 375, - 199, 503, 0, 200, 0, 462, 504, 536, 221, 222, - 224, 0, 262, 266, 274, 277, 283, 284, 292, 342, - 389, 413, 411, 417, 0, 479, 497, 509, 516, 522, - 523, 525, 526, 527, 528, 529, 531, 530, 377, 291, - 458, 310, 347, 0, 0, 395, 436, 227, 501, 459, + 0, 280, 0, 372, 240, 0, 0, 0, 0, 517, + 0, 0, 0, 0, 0, 0, 0, 340, 0, 307, + 192, 212, 0, 0, 382, 425, 437, 0, 0, 0, + 238, 0, 435, 396, 499, 220, 267, 422, 402, 433, + 409, 270, 0, 0, 434, 346, 485, 416, 496, 518, + 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, + 467, 502, 457, 369, 481, 482, 306, 456, 278, 195, + 344, 524, 211, 443, 229, 218, 487, 505, 272, 420, + 203, 469, 494, 226, 447, 0, 0, 534, 205, 492, + 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, + 385, 489, 490, 239, 535, 215, 513, 207, 0, 512, + 378, 484, 493, 366, 356, 206, 491, 364, 355, 311, + 330, 331, 263, 287, 414, 349, 415, 288, 374, 373, + 375, 199, 503, 0, 200, 0, 462, 504, 536, 221, + 222, 224, 0, 262, 266, 274, 277, 283, 284, 292, + 342, 389, 413, 411, 417, 0, 479, 497, 509, 516, + 522, 523, 525, 526, 527, 528, 529, 531, 530, 377, + 291, 458, 310, 347, 0, 0, 395, 436, 227, 501, + 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 555, - 357, 449, 498, 312, 324, 327, 317, 336, 0, 337, - 313, 314, 319, 321, 322, 323, 328, 329, 333, 339, - 426, 427, 428, 429, 275, 507, 289, 432, 431, 308, - 309, 0, 191, 208, 343, 0, 418, 271, 533, 511, - 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, + 555, 357, 449, 498, 312, 324, 327, 317, 336, 0, + 337, 313, 314, 319, 321, 322, 323, 328, 329, 333, + 339, 426, 427, 428, 429, 275, 507, 289, 432, 431, + 308, 309, 0, 191, 208, 343, 0, 418, 271, 533, + 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 193, 194, 201, 209, - 219, 223, 230, 244, 259, 261, 268, 281, 286, 290, - 295, 296, 299, 305, 353, 359, 360, 361, 362, 379, - 380, 381, 384, 387, 388, 391, 393, 394, 397, 401, - 405, 406, 407, 408, 410, 412, 419, 424, 438, 439, - 440, 441, 442, 445, 446, 451, 452, 453, 454, 455, - 463, 464, 468, 486, 488, 500, 515, 520, 444, 282, - 495, 521, 0, 352, 0, 0, 354, 264, 285, 297, - 0, 510, 465, 214, 430, 273, 236, 0, 0, 202, - 233, 217, 242, 257, 260, 301, 363, 370, 399, 404, - 279, 254, 231, 423, 228, 448, 471, 472, 473, 475, - 367, 249, 403, 0, 368, 350, 477, 478, 293, 476, - 0, 0, 0, 0, 1927, 0, 0, 0, 0, 0, - 0, 386, 0, 0, 0, 0, 0, 0, 0, 0, - 253, 0, 0, 0, 0, 341, 250, 0, 0, 400, - 0, 197, 0, 450, 237, 351, 348, 483, 265, 256, - 252, 235, 294, 358, 398, 470, 392, 0, 345, 0, - 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 300, 234, - 302, 196, 383, 461, 269, 0, 0, 0, 0, 188, - 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 225, 0, 232, 326, 335, 334, 315, 316, - 318, 320, 325, 332, 338, 0, 0, 0, 0, 0, - 248, 298, 255, 247, 480, 0, 0, 0, 0, 0, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 193, 194, 201, + 209, 219, 223, 230, 244, 259, 261, 268, 281, 286, + 290, 295, 296, 299, 305, 353, 359, 360, 361, 362, + 379, 380, 381, 384, 387, 388, 391, 393, 394, 397, + 401, 405, 406, 407, 408, 410, 412, 419, 424, 438, + 439, 440, 441, 442, 445, 446, 451, 452, 453, 454, + 455, 463, 464, 468, 486, 488, 500, 515, 520, 444, + 282, 495, 521, 0, 352, 0, 0, 354, 264, 285, + 297, 0, 510, 465, 214, 430, 273, 236, 0, 0, + 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, + 404, 279, 254, 231, 423, 228, 448, 471, 472, 473, + 475, 367, 249, 403, 0, 368, 350, 477, 478, 293, + 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 386, 0, 0, 0, 0, 0, 0, 0, + 0, 253, 0, 0, 0, 0, 341, 250, 0, 0, + 400, 0, 197, 0, 450, 237, 351, 348, 483, 265, + 256, 252, 235, 294, 358, 398, 470, 392, 0, 345, + 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, + 234, 302, 196, 383, 461, 269, 0, 0, 0, 0, + 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 225, 0, 232, 326, 335, 334, 315, + 316, 318, 320, 325, 332, 338, 0, 0, 0, 0, + 0, 248, 298, 255, 247, 480, 0, 0, 0, 0, + 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4710,61 +4541,61 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 372, 240, 0, 0, 0, 0, 517, 0, 0, 0, - 0, 0, 0, 0, 340, 0, 307, 192, 212, 0, - 0, 382, 425, 437, 0, 0, 0, 238, 0, 435, - 396, 499, 220, 267, 422, 402, 433, 409, 270, 0, - 0, 434, 346, 485, 416, 496, 518, 519, 246, 376, - 508, 474, 514, 532, 213, 243, 390, 467, 502, 457, - 369, 481, 482, 306, 456, 278, 195, 344, 524, 211, - 443, 229, 218, 487, 505, 272, 420, 203, 469, 494, - 226, 447, 0, 0, 534, 205, 492, 466, 365, 303, - 304, 204, 0, 421, 251, 276, 241, 385, 489, 490, - 239, 535, 215, 513, 207, 0, 512, 378, 484, 493, - 366, 356, 206, 491, 364, 355, 311, 330, 331, 263, - 287, 414, 349, 415, 288, 374, 373, 375, 199, 503, - 0, 200, 0, 462, 504, 536, 221, 222, 224, 0, - 262, 266, 274, 277, 283, 284, 292, 342, 389, 413, - 411, 417, 0, 479, 497, 509, 516, 522, 523, 525, - 526, 527, 528, 529, 531, 530, 377, 291, 458, 310, - 347, 0, 0, 395, 436, 227, 501, 459, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 555, 357, 449, - 498, 312, 324, 327, 317, 336, 0, 337, 313, 314, - 319, 321, 322, 323, 328, 329, 333, 339, 426, 427, - 428, 429, 275, 507, 289, 432, 431, 308, 309, 0, - 191, 208, 343, 0, 418, 271, 533, 511, 506, 198, - 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 372, 240, 0, 0, 0, 0, 517, 0, 0, + 0, 3055, 0, 0, 0, 340, 0, 307, 192, 212, + 0, 0, 382, 425, 437, 0, 0, 0, 238, 0, + 435, 396, 499, 220, 267, 422, 402, 433, 409, 270, + 0, 0, 434, 346, 485, 416, 496, 518, 519, 246, + 376, 508, 474, 514, 532, 213, 243, 390, 467, 502, + 457, 369, 481, 482, 306, 456, 278, 195, 344, 524, + 211, 443, 229, 218, 487, 505, 272, 420, 203, 469, + 494, 226, 447, 0, 0, 534, 205, 492, 466, 365, + 303, 304, 204, 0, 421, 251, 276, 241, 385, 489, + 490, 239, 535, 215, 513, 207, 0, 512, 378, 484, + 493, 366, 356, 206, 491, 364, 355, 311, 330, 331, + 263, 287, 414, 349, 415, 288, 374, 373, 375, 199, + 503, 0, 200, 0, 462, 504, 536, 221, 222, 224, + 0, 262, 266, 274, 277, 283, 284, 292, 342, 389, + 413, 411, 417, 0, 479, 497, 509, 516, 522, 523, + 525, 526, 527, 528, 529, 531, 530, 377, 291, 458, + 310, 347, 0, 0, 395, 436, 227, 501, 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 193, 194, 201, 209, 219, 223, - 230, 244, 259, 261, 268, 281, 286, 290, 295, 296, - 299, 305, 353, 359, 360, 361, 362, 379, 380, 381, - 384, 387, 388, 391, 393, 394, 397, 401, 405, 406, - 407, 408, 410, 412, 419, 424, 438, 439, 440, 441, - 442, 445, 446, 451, 452, 453, 454, 455, 463, 464, - 468, 486, 488, 500, 515, 520, 444, 282, 495, 521, - 0, 352, 0, 0, 354, 264, 285, 297, 0, 510, - 465, 214, 430, 273, 236, 0, 0, 202, 233, 217, - 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, - 231, 423, 228, 448, 471, 472, 473, 475, 367, 249, - 403, 0, 368, 350, 477, 478, 293, 476, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, - 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, - 0, 0, 0, 341, 250, 0, 0, 400, 0, 197, - 0, 450, 237, 351, 348, 483, 265, 256, 252, 235, - 294, 358, 398, 470, 392, 0, 345, 0, 0, 460, - 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 300, 234, 302, 196, - 383, 461, 269, 0, 0, 0, 0, 188, 189, 190, - 0, 1420, 0, 0, 0, 0, 0, 0, 0, 0, - 225, 0, 232, 326, 335, 334, 315, 316, 318, 320, - 325, 332, 338, 0, 0, 0, 0, 0, 248, 298, - 255, 247, 480, 0, 0, 0, 0, 0, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 555, 357, + 449, 498, 312, 324, 327, 317, 336, 0, 337, 313, + 314, 319, 321, 322, 323, 328, 329, 333, 339, 426, + 427, 428, 429, 275, 507, 289, 432, 431, 308, 309, + 0, 191, 208, 343, 0, 418, 271, 533, 511, 506, + 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 194, 201, 209, 219, + 223, 230, 244, 259, 261, 268, 281, 286, 290, 295, + 296, 299, 305, 353, 359, 360, 361, 362, 379, 380, + 381, 384, 387, 388, 391, 393, 394, 397, 401, 405, + 406, 407, 408, 410, 412, 419, 424, 438, 439, 440, + 441, 442, 445, 446, 451, 452, 453, 454, 455, 463, + 464, 468, 486, 488, 500, 515, 520, 444, 282, 495, + 521, 0, 352, 0, 0, 354, 264, 285, 297, 0, + 510, 465, 214, 430, 273, 236, 0, 0, 202, 233, + 217, 242, 257, 260, 301, 363, 370, 399, 404, 279, + 254, 231, 423, 228, 448, 471, 472, 473, 475, 367, + 249, 403, 0, 368, 350, 477, 478, 293, 476, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 386, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 0, 0, 0, 0, 341, 250, 0, 0, 400, 0, + 197, 0, 450, 237, 351, 348, 483, 265, 256, 252, + 235, 294, 358, 398, 470, 392, 0, 345, 0, 0, + 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 300, 234, 302, + 196, 383, 461, 269, 0, 87, 0, 0, 188, 189, + 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 225, 0, 232, 326, 335, 334, 315, 316, 318, + 320, 325, 332, 338, 0, 0, 0, 0, 0, 248, + 298, 255, 247, 480, 0, 0, 0, 0, 0, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4772,123 +4603,123 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 372, 240, - 0, 0, 0, 0, 517, 0, 0, 0, 0, 0, - 0, 0, 340, 0, 307, 192, 212, 0, 0, 382, - 425, 437, 0, 0, 0, 238, 0, 435, 396, 499, - 220, 267, 422, 402, 433, 409, 270, 0, 0, 434, - 346, 485, 416, 496, 518, 519, 246, 376, 508, 474, - 514, 532, 213, 243, 390, 467, 502, 457, 369, 481, - 482, 306, 456, 278, 195, 344, 524, 211, 443, 229, - 218, 487, 505, 272, 420, 203, 469, 494, 226, 447, - 0, 0, 534, 205, 492, 466, 365, 303, 304, 204, - 0, 421, 251, 276, 241, 385, 489, 490, 239, 535, - 215, 513, 207, 0, 512, 378, 484, 493, 366, 356, - 206, 491, 364, 355, 311, 330, 331, 263, 287, 414, - 349, 415, 288, 374, 373, 375, 199, 503, 0, 200, - 0, 462, 504, 536, 221, 222, 224, 0, 262, 266, - 274, 277, 283, 284, 292, 342, 389, 413, 411, 417, - 0, 479, 497, 509, 516, 522, 523, 525, 526, 527, - 528, 529, 531, 530, 377, 291, 458, 310, 347, 0, - 0, 395, 436, 227, 501, 459, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 555, 357, 449, 498, 312, - 324, 327, 317, 336, 0, 337, 313, 314, 319, 321, - 322, 323, 328, 329, 333, 339, 426, 427, 428, 429, - 275, 507, 289, 432, 431, 308, 309, 0, 191, 208, - 343, 0, 418, 271, 533, 511, 506, 198, 210, 0, - 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 280, 0, 372, + 240, 0, 0, 0, 0, 517, 0, 0, 0, 0, + 0, 0, 0, 340, 0, 307, 192, 212, 0, 0, + 382, 425, 437, 0, 0, 0, 238, 0, 435, 396, + 499, 220, 267, 422, 402, 433, 409, 270, 0, 0, + 434, 346, 485, 416, 496, 518, 519, 246, 376, 508, + 474, 514, 532, 213, 243, 390, 467, 502, 457, 369, + 481, 482, 306, 456, 278, 195, 344, 524, 211, 443, + 229, 218, 487, 505, 272, 420, 203, 469, 494, 226, + 447, 0, 0, 534, 205, 492, 466, 365, 303, 304, + 204, 0, 421, 251, 276, 241, 385, 489, 490, 239, + 535, 215, 513, 207, 0, 512, 378, 484, 493, 366, + 356, 206, 491, 364, 355, 311, 330, 331, 263, 287, + 414, 349, 415, 288, 374, 373, 375, 199, 503, 0, + 200, 0, 462, 504, 536, 221, 222, 224, 0, 262, + 266, 274, 277, 283, 284, 292, 342, 389, 413, 411, + 417, 0, 479, 497, 509, 516, 522, 523, 525, 526, + 527, 528, 529, 531, 530, 377, 291, 458, 310, 347, + 0, 0, 395, 436, 227, 501, 459, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 555, 357, 449, 498, + 312, 324, 327, 317, 336, 0, 337, 313, 314, 319, + 321, 322, 323, 328, 329, 333, 339, 426, 427, 428, + 429, 275, 507, 289, 432, 431, 308, 309, 0, 191, + 208, 343, 0, 418, 271, 533, 511, 506, 198, 210, + 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 194, 201, 209, 219, 223, 230, 244, - 259, 261, 268, 281, 286, 290, 295, 296, 299, 305, - 353, 359, 360, 361, 362, 379, 380, 381, 384, 387, - 388, 391, 393, 394, 397, 401, 405, 406, 407, 408, - 410, 412, 419, 424, 438, 439, 440, 441, 442, 445, - 446, 451, 452, 453, 454, 455, 463, 464, 468, 486, - 488, 500, 515, 520, 444, 282, 495, 521, 0, 352, - 0, 0, 354, 264, 285, 297, 0, 510, 465, 214, - 430, 273, 236, 0, 0, 202, 233, 217, 242, 257, - 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, - 228, 448, 471, 472, 473, 475, 367, 249, 403, 0, - 368, 350, 477, 478, 293, 476, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 386, 0, 0, - 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, - 0, 341, 250, 0, 0, 400, 0, 197, 0, 450, - 237, 351, 348, 483, 265, 256, 252, 235, 294, 358, - 398, 470, 392, 0, 345, 0, 0, 460, 371, 0, + 0, 0, 0, 193, 194, 201, 209, 219, 223, 230, + 244, 259, 261, 268, 281, 286, 290, 295, 296, 299, + 305, 353, 359, 360, 361, 362, 379, 380, 381, 384, + 387, 388, 391, 393, 394, 397, 401, 405, 406, 407, + 408, 410, 412, 419, 424, 438, 439, 440, 441, 442, + 445, 446, 451, 452, 453, 454, 455, 463, 464, 468, + 486, 488, 500, 515, 520, 444, 282, 495, 521, 0, + 352, 0, 0, 354, 264, 285, 297, 0, 510, 465, + 214, 430, 273, 236, 0, 0, 202, 233, 217, 242, + 257, 260, 301, 363, 370, 399, 404, 279, 254, 231, + 423, 228, 448, 471, 472, 473, 475, 367, 249, 403, + 0, 368, 350, 477, 478, 293, 476, 0, 0, 0, + 0, 1927, 0, 0, 0, 0, 0, 0, 386, 0, + 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, + 0, 0, 341, 250, 0, 0, 400, 0, 197, 0, + 450, 237, 351, 348, 483, 265, 256, 252, 235, 294, + 358, 398, 470, 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 300, 234, 302, 196, 383, 461, - 269, 0, 0, 0, 0, 188, 189, 190, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, - 232, 326, 335, 334, 315, 316, 318, 320, 325, 332, - 338, 0, 0, 0, 0, 0, 248, 298, 255, 247, - 480, 0, 0, 0, 0, 0, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 300, 234, 302, 196, 383, + 461, 269, 0, 0, 0, 0, 188, 189, 190, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, + 0, 232, 326, 335, 334, 315, 316, 318, 320, 325, + 332, 338, 0, 0, 0, 0, 0, 248, 298, 255, + 247, 480, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 372, 240, 0, 0, - 0, 0, 517, 0, 0, 0, 0, 0, 0, 0, - 340, 0, 307, 192, 212, 0, 0, 382, 425, 437, - 0, 0, 0, 238, 0, 435, 396, 499, 220, 267, - 422, 402, 433, 409, 270, 0, 0, 434, 346, 485, - 416, 496, 518, 519, 246, 376, 508, 474, 514, 532, - 213, 243, 390, 467, 502, 457, 369, 481, 482, 306, - 456, 278, 195, 344, 524, 211, 443, 229, 218, 487, - 505, 272, 420, 203, 469, 494, 226, 447, 0, 0, - 534, 205, 492, 466, 365, 303, 304, 204, 0, 421, - 251, 276, 241, 385, 489, 490, 239, 535, 215, 513, - 207, 0, 512, 378, 484, 493, 366, 356, 206, 491, - 364, 355, 311, 330, 331, 263, 287, 414, 349, 415, - 288, 374, 373, 375, 199, 503, 0, 200, 0, 462, - 504, 536, 221, 222, 224, 0, 262, 266, 274, 277, - 283, 284, 292, 342, 389, 413, 411, 417, 0, 479, - 497, 509, 516, 522, 523, 525, 526, 527, 528, 529, - 531, 530, 377, 291, 458, 310, 347, 0, 0, 395, - 436, 227, 501, 459, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 555, 357, 449, 498, 312, 324, 327, - 317, 336, 0, 337, 313, 314, 319, 321, 322, 323, - 328, 329, 333, 339, 426, 427, 428, 429, 275, 507, - 289, 432, 431, 308, 309, 0, 191, 208, 343, 0, - 418, 271, 533, 511, 506, 198, 210, 0, 245, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 372, 240, 0, + 0, 0, 0, 517, 0, 0, 0, 0, 0, 0, + 0, 340, 0, 307, 192, 212, 0, 0, 382, 425, + 437, 0, 0, 0, 238, 0, 435, 396, 499, 220, + 267, 422, 402, 433, 409, 270, 0, 0, 434, 346, + 485, 416, 496, 518, 519, 246, 376, 508, 474, 514, + 532, 213, 243, 390, 467, 502, 457, 369, 481, 482, + 306, 456, 278, 195, 344, 524, 211, 443, 229, 218, + 487, 505, 272, 420, 203, 469, 494, 226, 447, 0, + 0, 534, 205, 492, 466, 365, 303, 304, 204, 0, + 421, 251, 276, 241, 385, 489, 490, 239, 535, 215, + 513, 207, 0, 512, 378, 484, 493, 366, 356, 206, + 491, 364, 355, 311, 330, 331, 263, 287, 414, 349, + 415, 288, 374, 373, 375, 199, 503, 0, 200, 0, + 462, 504, 536, 221, 222, 224, 0, 262, 266, 274, + 277, 283, 284, 292, 342, 389, 413, 411, 417, 0, + 479, 497, 509, 516, 522, 523, 525, 526, 527, 528, + 529, 531, 530, 377, 291, 458, 310, 347, 0, 0, + 395, 436, 227, 501, 459, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 555, 357, 449, 498, 312, 324, + 327, 317, 336, 0, 337, 313, 314, 319, 321, 322, + 323, 328, 329, 333, 339, 426, 427, 428, 429, 275, + 507, 289, 432, 431, 308, 309, 0, 191, 208, 343, + 0, 418, 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 193, 194, 201, 209, 219, 223, 230, 244, 259, 261, - 268, 281, 286, 290, 295, 296, 299, 305, 353, 359, - 360, 361, 362, 379, 380, 381, 384, 387, 388, 391, - 393, 394, 397, 401, 405, 406, 407, 408, 410, 412, - 419, 424, 438, 439, 440, 441, 442, 445, 446, 451, - 452, 453, 454, 455, 463, 464, 468, 486, 488, 500, - 515, 520, 444, 282, 495, 521, 0, 352, 0, 0, - 354, 264, 285, 297, 0, 510, 465, 214, 430, 273, - 236, 0, 0, 202, 233, 217, 242, 257, 260, 301, - 363, 370, 399, 404, 279, 254, 231, 423, 228, 448, - 471, 472, 473, 475, 367, 249, 403, 0, 368, 350, - 477, 478, 293, 476, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 386, 0, 0, 0, 0, - 0, 0, 0, 0, 253, 0, 0, 0, 0, 341, - 250, 0, 0, 400, 0, 197, 0, 450, 237, 351, - 348, 483, 265, 256, 252, 235, 294, 358, 398, 470, - 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, + 0, 193, 194, 201, 209, 219, 223, 230, 244, 259, + 261, 268, 281, 286, 290, 295, 296, 299, 305, 353, + 359, 360, 361, 362, 379, 380, 381, 384, 387, 388, + 391, 393, 394, 397, 401, 405, 406, 407, 408, 410, + 412, 419, 424, 438, 439, 440, 441, 442, 445, 446, + 451, 452, 453, 454, 455, 463, 464, 468, 486, 488, + 500, 515, 520, 444, 282, 495, 521, 0, 352, 0, + 0, 354, 264, 285, 297, 0, 510, 465, 214, 430, + 273, 236, 0, 0, 202, 233, 217, 242, 257, 260, + 301, 363, 370, 399, 404, 279, 254, 231, 423, 228, + 448, 471, 472, 473, 475, 367, 249, 403, 0, 368, + 350, 477, 478, 293, 476, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 386, 0, 0, 0, + 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, + 341, 250, 0, 0, 400, 0, 197, 0, 450, 237, + 351, 348, 483, 265, 256, 252, 235, 294, 358, 398, + 470, 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 300, 234, 302, 196, 383, 461, 269, 0, - 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 225, 0, 232, 326, - 335, 334, 315, 316, 318, 320, 325, 332, 338, 0, - 0, 0, 0, 0, 248, 298, 255, 247, 480, 0, - 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 300, 234, 302, 196, 383, 461, 269, + 0, 0, 0, 0, 188, 189, 190, 0, 1420, 0, + 0, 0, 0, 0, 0, 0, 0, 225, 0, 232, + 326, 335, 334, 315, 316, 318, 320, 325, 332, 338, + 0, 0, 0, 0, 0, 248, 298, 255, 247, 480, + 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4896,369 +4727,370 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 372, 240, 0, 0, 0, 0, - 517, 0, 0, 0, 0, 0, 0, 0, 340, 0, - 307, 192, 212, 0, 0, 382, 425, 437, 0, 0, - 0, 238, 0, 435, 396, 499, 220, 267, 422, 402, - 433, 409, 270, 0, 0, 434, 346, 485, 416, 496, - 518, 519, 246, 376, 508, 474, 514, 532, 213, 243, - 390, 467, 502, 457, 369, 481, 482, 306, 456, 278, - 195, 344, 524, 211, 443, 229, 218, 487, 505, 272, - 420, 203, 469, 494, 226, 447, 0, 0, 534, 205, - 492, 466, 365, 303, 304, 204, 0, 421, 251, 276, - 241, 385, 489, 490, 239, 535, 215, 513, 207, 0, - 512, 378, 484, 493, 366, 356, 206, 491, 364, 355, - 311, 330, 331, 263, 287, 414, 349, 415, 288, 374, - 373, 375, 199, 503, 0, 200, 0, 462, 504, 536, - 221, 222, 224, 0, 262, 266, 274, 277, 283, 284, - 292, 342, 389, 413, 411, 417, 0, 479, 497, 509, - 516, 522, 523, 525, 526, 527, 528, 529, 531, 530, - 377, 291, 458, 310, 347, 0, 0, 395, 436, 227, - 501, 459, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 555, 357, 449, 498, 312, 324, 327, 317, 336, - 0, 337, 313, 314, 319, 321, 322, 323, 328, 329, - 333, 339, 426, 427, 428, 429, 275, 507, 289, 432, - 431, 308, 309, 0, 191, 208, 343, 1696, 418, 271, - 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, + 0, 0, 0, 280, 0, 372, 240, 0, 0, 0, + 0, 517, 0, 0, 0, 0, 0, 0, 0, 340, + 0, 307, 192, 212, 0, 0, 382, 425, 437, 0, + 0, 0, 238, 0, 435, 396, 499, 220, 267, 422, + 402, 433, 409, 270, 0, 0, 434, 346, 485, 416, + 496, 518, 519, 246, 376, 508, 474, 514, 532, 213, + 243, 390, 467, 502, 457, 369, 481, 482, 306, 456, + 278, 195, 344, 524, 211, 443, 229, 218, 487, 505, + 272, 420, 203, 469, 494, 226, 447, 0, 0, 534, + 205, 492, 466, 365, 303, 304, 204, 0, 421, 251, + 276, 241, 385, 489, 490, 239, 535, 215, 513, 207, + 0, 512, 378, 484, 493, 366, 356, 206, 491, 364, + 355, 311, 330, 331, 263, 287, 414, 349, 415, 288, + 374, 373, 375, 199, 503, 0, 200, 0, 462, 504, + 536, 221, 222, 224, 0, 262, 266, 274, 277, 283, + 284, 292, 342, 389, 413, 411, 417, 0, 479, 497, + 509, 516, 522, 523, 525, 526, 527, 528, 529, 531, + 530, 377, 291, 458, 310, 347, 0, 0, 395, 436, + 227, 501, 459, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 555, 357, 449, 498, 312, 324, 327, 317, + 336, 0, 337, 313, 314, 319, 321, 322, 323, 328, + 329, 333, 339, 426, 427, 428, 429, 275, 507, 289, + 432, 431, 308, 309, 0, 191, 208, 343, 0, 418, + 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 193, 194, - 201, 209, 219, 223, 230, 244, 259, 261, 268, 281, - 286, 290, 295, 296, 299, 305, 353, 359, 360, 361, - 362, 379, 380, 381, 384, 387, 388, 391, 393, 394, - 397, 401, 405, 406, 407, 408, 410, 412, 419, 424, - 438, 439, 440, 441, 442, 445, 446, 451, 452, 453, - 454, 455, 463, 464, 468, 486, 488, 500, 515, 520, - 444, 282, 495, 521, 0, 352, 0, 0, 354, 264, - 285, 297, 0, 510, 465, 214, 430, 273, 236, 0, - 0, 202, 233, 217, 242, 257, 260, 301, 363, 370, - 399, 404, 279, 254, 231, 423, 228, 448, 471, 472, - 473, 475, 367, 249, 403, 0, 368, 350, 477, 478, - 293, 476, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 386, 0, 1566, 0, 0, 0, 0, - 0, 0, 253, 0, 0, 0, 0, 341, 250, 0, - 0, 400, 0, 197, 0, 450, 237, 351, 348, 483, - 265, 256, 252, 235, 294, 358, 398, 470, 392, 0, - 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, + 194, 201, 209, 219, 223, 230, 244, 259, 261, 268, + 281, 286, 290, 295, 296, 299, 305, 353, 359, 360, + 361, 362, 379, 380, 381, 384, 387, 388, 391, 393, + 394, 397, 401, 405, 406, 407, 408, 410, 412, 419, + 424, 438, 439, 440, 441, 442, 445, 446, 451, 452, + 453, 454, 455, 463, 464, 468, 486, 488, 500, 515, + 520, 444, 282, 495, 521, 0, 352, 0, 0, 354, + 264, 285, 297, 0, 510, 465, 214, 430, 273, 236, + 0, 0, 202, 233, 217, 242, 257, 260, 301, 363, + 370, 399, 404, 279, 254, 231, 423, 228, 448, 471, + 472, 473, 475, 367, 249, 403, 0, 368, 350, 477, + 478, 293, 476, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 386, 0, 0, 0, 0, 0, + 0, 0, 0, 253, 0, 0, 0, 0, 341, 250, + 0, 0, 400, 0, 197, 0, 450, 237, 351, 348, + 483, 265, 256, 252, 235, 294, 358, 398, 470, 392, + 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 300, 234, 302, 196, 383, 461, 269, 0, 0, 0, - 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 225, 0, 232, 326, 335, 334, - 315, 316, 318, 320, 325, 332, 338, 0, 0, 0, - 0, 0, 248, 298, 255, 247, 480, 0, 0, 0, - 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, + 0, 300, 234, 302, 196, 383, 461, 269, 0, 0, + 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 225, 0, 232, 326, 335, + 334, 315, 316, 318, 320, 325, 332, 338, 0, 0, + 0, 0, 0, 248, 298, 255, 247, 480, 0, 0, + 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 280, 0, 372, 240, 0, 0, 0, 0, 517, + 0, 0, 0, 0, 0, 0, 0, 340, 0, 307, + 192, 212, 0, 0, 382, 425, 437, 0, 0, 0, + 238, 0, 435, 396, 499, 220, 267, 422, 402, 433, + 409, 270, 0, 0, 434, 346, 485, 416, 496, 518, + 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, + 467, 502, 457, 369, 481, 482, 306, 456, 278, 195, + 344, 524, 211, 443, 229, 218, 487, 505, 272, 420, + 203, 469, 494, 226, 447, 0, 0, 534, 205, 492, + 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, + 385, 489, 490, 239, 535, 215, 513, 207, 0, 512, + 378, 484, 493, 366, 356, 206, 491, 364, 355, 311, + 330, 331, 263, 287, 414, 349, 415, 288, 374, 373, + 375, 199, 503, 0, 200, 0, 462, 504, 536, 221, + 222, 224, 0, 262, 266, 274, 277, 283, 284, 292, + 342, 389, 413, 411, 417, 0, 479, 497, 509, 516, + 522, 523, 525, 526, 527, 528, 529, 531, 530, 377, + 291, 458, 310, 347, 0, 0, 395, 436, 227, 501, + 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 280, 0, 372, 240, 0, 0, 0, 0, 517, 0, - 0, 0, 0, 0, 0, 0, 340, 0, 307, 192, - 212, 0, 0, 382, 425, 437, 0, 0, 0, 238, - 0, 435, 396, 499, 220, 267, 422, 402, 433, 409, - 270, 0, 0, 434, 346, 485, 416, 496, 518, 519, - 246, 376, 508, 474, 514, 532, 213, 243, 390, 467, - 502, 457, 369, 481, 482, 306, 456, 278, 195, 344, - 524, 211, 443, 229, 218, 487, 505, 272, 420, 203, - 469, 494, 226, 447, 0, 0, 534, 205, 492, 466, - 365, 303, 304, 204, 0, 421, 251, 276, 241, 385, - 489, 490, 239, 535, 215, 513, 207, 0, 512, 378, - 484, 493, 366, 356, 206, 491, 364, 355, 311, 330, - 331, 263, 287, 414, 349, 415, 288, 374, 373, 375, - 199, 503, 0, 200, 0, 462, 504, 536, 221, 222, - 224, 0, 262, 266, 274, 277, 283, 284, 292, 342, - 389, 413, 411, 417, 0, 479, 497, 509, 516, 522, - 523, 525, 526, 527, 528, 529, 531, 530, 377, 291, - 458, 310, 347, 0, 0, 395, 436, 227, 501, 459, + 555, 357, 449, 498, 312, 324, 327, 317, 336, 0, + 337, 313, 314, 319, 321, 322, 323, 328, 329, 333, + 339, 426, 427, 428, 429, 275, 507, 289, 432, 431, + 308, 309, 0, 191, 208, 343, 0, 418, 271, 533, + 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 555, - 357, 449, 498, 312, 324, 327, 317, 336, 0, 337, - 313, 314, 319, 321, 322, 323, 328, 329, 333, 339, - 426, 427, 428, 429, 275, 507, 289, 432, 431, 308, - 309, 0, 191, 208, 343, 0, 418, 271, 533, 511, - 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 193, 194, 201, + 209, 219, 223, 230, 244, 259, 261, 268, 281, 286, + 290, 295, 296, 299, 305, 353, 359, 360, 361, 362, + 379, 380, 381, 384, 387, 388, 391, 393, 394, 397, + 401, 405, 406, 407, 408, 410, 412, 419, 424, 438, + 439, 440, 441, 442, 445, 446, 451, 452, 453, 454, + 455, 463, 464, 468, 486, 488, 500, 515, 520, 444, + 282, 495, 521, 0, 352, 0, 0, 354, 264, 285, + 297, 0, 510, 465, 214, 430, 273, 236, 0, 0, + 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, + 404, 279, 254, 231, 423, 228, 448, 471, 472, 473, + 475, 367, 249, 403, 0, 368, 350, 477, 478, 293, + 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 386, 0, 0, 0, 0, 0, 0, 0, + 0, 253, 0, 0, 0, 0, 341, 250, 0, 0, + 400, 0, 197, 0, 450, 237, 351, 348, 483, 265, + 256, 252, 235, 294, 358, 398, 470, 392, 0, 345, + 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, + 234, 302, 196, 383, 461, 269, 0, 0, 0, 0, + 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 225, 0, 232, 326, 335, 334, 315, + 316, 318, 320, 325, 332, 338, 0, 0, 0, 0, + 0, 248, 298, 255, 247, 480, 0, 0, 0, 0, + 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 193, 194, 201, 209, - 219, 223, 230, 244, 259, 261, 268, 281, 286, 290, - 295, 296, 299, 305, 353, 359, 360, 361, 362, 379, - 380, 381, 384, 387, 388, 391, 393, 394, 397, 401, - 405, 406, 407, 408, 410, 412, 419, 424, 438, 439, - 440, 441, 442, 445, 446, 451, 452, 453, 454, 455, - 463, 464, 468, 486, 488, 500, 515, 520, 444, 282, - 495, 521, 0, 352, 0, 0, 354, 264, 285, 297, - 0, 510, 465, 214, 430, 273, 236, 0, 0, 202, - 233, 217, 242, 257, 260, 301, 363, 370, 399, 404, - 279, 254, 231, 423, 228, 448, 471, 472, 473, 475, - 367, 249, 403, 0, 368, 350, 477, 478, 293, 476, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 386, 0, 1564, 0, 0, 0, 0, 0, 0, - 253, 0, 0, 0, 0, 341, 250, 0, 0, 400, - 0, 197, 0, 450, 237, 351, 348, 483, 265, 256, - 252, 235, 294, 358, 398, 470, 392, 0, 345, 0, - 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 300, 234, - 302, 196, 383, 461, 269, 0, 0, 0, 0, 188, - 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 225, 0, 232, 326, 335, 334, 315, 316, - 318, 320, 325, 332, 338, 0, 0, 0, 0, 0, - 248, 298, 255, 247, 480, 0, 0, 0, 0, 0, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 372, 240, 0, 0, 0, 0, 517, 0, 0, + 0, 0, 0, 0, 0, 340, 0, 307, 192, 212, + 0, 0, 382, 425, 437, 0, 0, 0, 238, 0, + 435, 396, 499, 220, 267, 422, 402, 433, 409, 270, + 0, 0, 434, 346, 485, 416, 496, 518, 519, 246, + 376, 508, 474, 514, 532, 213, 243, 390, 467, 502, + 457, 369, 481, 482, 306, 456, 278, 195, 344, 524, + 211, 443, 229, 218, 487, 505, 272, 420, 203, 469, + 494, 226, 447, 0, 0, 534, 205, 492, 466, 365, + 303, 304, 204, 0, 421, 251, 276, 241, 385, 489, + 490, 239, 535, 215, 513, 207, 0, 512, 378, 484, + 493, 366, 356, 206, 491, 364, 355, 311, 330, 331, + 263, 287, 414, 349, 415, 288, 374, 373, 375, 199, + 503, 0, 200, 0, 462, 504, 536, 221, 222, 224, + 0, 262, 266, 274, 277, 283, 284, 292, 342, 389, + 413, 411, 417, 0, 479, 497, 509, 516, 522, 523, + 525, 526, 527, 528, 529, 531, 530, 377, 291, 458, + 310, 347, 0, 0, 395, 436, 227, 501, 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 372, 240, 0, 0, 0, 0, 517, 0, 0, 0, - 0, 0, 0, 0, 340, 0, 307, 192, 212, 0, - 0, 382, 425, 437, 0, 0, 0, 238, 0, 435, - 396, 499, 220, 267, 422, 402, 433, 409, 270, 0, - 0, 434, 346, 485, 416, 496, 518, 519, 246, 376, - 508, 474, 514, 532, 213, 243, 390, 467, 502, 457, - 369, 481, 482, 306, 456, 278, 195, 344, 524, 211, - 443, 229, 218, 487, 505, 272, 420, 203, 469, 494, - 226, 447, 0, 0, 534, 205, 492, 466, 365, 303, - 304, 204, 0, 421, 251, 276, 241, 385, 489, 490, - 239, 535, 215, 513, 207, 0, 512, 378, 484, 493, - 366, 356, 206, 491, 364, 355, 311, 330, 331, 263, - 287, 414, 349, 415, 288, 374, 373, 375, 199, 503, - 0, 200, 0, 462, 504, 536, 221, 222, 224, 0, - 262, 266, 274, 277, 283, 284, 292, 342, 389, 413, - 411, 417, 0, 479, 497, 509, 516, 522, 523, 525, - 526, 527, 528, 529, 531, 530, 377, 291, 458, 310, - 347, 0, 0, 395, 436, 227, 501, 459, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 555, 357, 449, - 498, 312, 324, 327, 317, 336, 0, 337, 313, 314, - 319, 321, 322, 323, 328, 329, 333, 339, 426, 427, - 428, 429, 275, 507, 289, 432, 431, 308, 309, 0, - 191, 208, 343, 0, 418, 271, 533, 511, 506, 198, - 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 555, 357, + 449, 498, 312, 324, 327, 317, 336, 0, 337, 313, + 314, 319, 321, 322, 323, 328, 329, 333, 339, 426, + 427, 428, 429, 275, 507, 289, 432, 431, 308, 309, + 0, 191, 208, 343, 1696, 418, 271, 533, 511, 506, + 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 194, 201, 209, 219, + 223, 230, 244, 259, 261, 268, 281, 286, 290, 295, + 296, 299, 305, 353, 359, 360, 361, 362, 379, 380, + 381, 384, 387, 388, 391, 393, 394, 397, 401, 405, + 406, 407, 408, 410, 412, 419, 424, 438, 439, 440, + 441, 442, 445, 446, 451, 452, 453, 454, 455, 463, + 464, 468, 486, 488, 500, 515, 520, 444, 282, 495, + 521, 0, 352, 0, 0, 354, 264, 285, 297, 0, + 510, 465, 214, 430, 273, 236, 0, 0, 202, 233, + 217, 242, 257, 260, 301, 363, 370, 399, 404, 279, + 254, 231, 423, 228, 448, 471, 472, 473, 475, 367, + 249, 403, 0, 368, 350, 477, 478, 293, 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 193, 194, 201, 209, 219, 223, - 230, 244, 259, 261, 268, 281, 286, 290, 295, 296, - 299, 305, 353, 359, 360, 361, 362, 379, 380, 381, - 384, 387, 388, 391, 393, 394, 397, 401, 405, 406, - 407, 408, 410, 412, 419, 424, 438, 439, 440, 441, - 442, 445, 446, 451, 452, 453, 454, 455, 463, 464, - 468, 486, 488, 500, 515, 520, 444, 282, 495, 521, - 0, 352, 0, 0, 354, 264, 285, 297, 0, 510, - 465, 214, 430, 273, 236, 0, 0, 202, 233, 217, - 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, - 231, 423, 228, 448, 471, 472, 473, 475, 367, 249, - 403, 0, 368, 350, 477, 478, 293, 476, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, - 0, 1562, 0, 0, 0, 0, 0, 0, 253, 0, - 0, 0, 0, 341, 250, 0, 0, 400, 0, 197, - 0, 450, 237, 351, 348, 483, 265, 256, 252, 235, - 294, 358, 398, 470, 392, 0, 345, 0, 0, 460, - 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 300, 234, 302, 196, - 383, 461, 269, 0, 0, 0, 0, 188, 189, 190, + 386, 0, 1566, 0, 0, 0, 0, 0, 0, 253, + 0, 0, 0, 0, 341, 250, 0, 0, 400, 0, + 197, 0, 450, 237, 351, 348, 483, 265, 256, 252, + 235, 294, 358, 398, 470, 392, 0, 345, 0, 0, + 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 300, 234, 302, + 196, 383, 461, 269, 0, 0, 0, 0, 188, 189, + 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 225, 0, 232, 326, 335, 334, 315, 316, 318, + 320, 325, 332, 338, 0, 0, 0, 0, 0, 248, + 298, 255, 247, 480, 0, 0, 0, 0, 0, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 225, 0, 232, 326, 335, 334, 315, 316, 318, 320, - 325, 332, 338, 0, 0, 0, 0, 0, 248, 298, - 255, 247, 480, 0, 0, 0, 0, 0, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 280, 0, 372, + 240, 0, 0, 0, 0, 517, 0, 0, 0, 0, + 0, 0, 0, 340, 0, 307, 192, 212, 0, 0, + 382, 425, 437, 0, 0, 0, 238, 0, 435, 396, + 499, 220, 267, 422, 402, 433, 409, 270, 0, 0, + 434, 346, 485, 416, 496, 518, 519, 246, 376, 508, + 474, 514, 532, 213, 243, 390, 467, 502, 457, 369, + 481, 482, 306, 456, 278, 195, 344, 524, 211, 443, + 229, 218, 487, 505, 272, 420, 203, 469, 494, 226, + 447, 0, 0, 534, 205, 492, 466, 365, 303, 304, + 204, 0, 421, 251, 276, 241, 385, 489, 490, 239, + 535, 215, 513, 207, 0, 512, 378, 484, 493, 366, + 356, 206, 491, 364, 355, 311, 330, 331, 263, 287, + 414, 349, 415, 288, 374, 373, 375, 199, 503, 0, + 200, 0, 462, 504, 536, 221, 222, 224, 0, 262, + 266, 274, 277, 283, 284, 292, 342, 389, 413, 411, + 417, 0, 479, 497, 509, 516, 522, 523, 525, 526, + 527, 528, 529, 531, 530, 377, 291, 458, 310, 347, + 0, 0, 395, 436, 227, 501, 459, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 555, 357, 449, 498, + 312, 324, 327, 317, 336, 0, 337, 313, 314, 319, + 321, 322, 323, 328, 329, 333, 339, 426, 427, 428, + 429, 275, 507, 289, 432, 431, 308, 309, 0, 191, + 208, 343, 0, 418, 271, 533, 511, 506, 198, 210, + 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 372, 240, - 0, 0, 0, 0, 517, 0, 0, 0, 0, 0, - 0, 0, 340, 0, 307, 192, 212, 0, 0, 382, - 425, 437, 0, 0, 0, 238, 0, 435, 396, 499, - 220, 267, 422, 402, 433, 409, 270, 0, 0, 434, - 346, 485, 416, 496, 518, 519, 246, 376, 508, 474, - 514, 532, 213, 243, 390, 467, 502, 457, 369, 481, - 482, 306, 456, 278, 195, 344, 524, 211, 443, 229, - 218, 487, 505, 272, 420, 203, 469, 494, 226, 447, - 0, 0, 534, 205, 492, 466, 365, 303, 304, 204, - 0, 421, 251, 276, 241, 385, 489, 490, 239, 535, - 215, 513, 207, 0, 512, 378, 484, 493, 366, 356, - 206, 491, 364, 355, 311, 330, 331, 263, 287, 414, - 349, 415, 288, 374, 373, 375, 199, 503, 0, 200, - 0, 462, 504, 536, 221, 222, 224, 0, 262, 266, - 274, 277, 283, 284, 292, 342, 389, 413, 411, 417, - 0, 479, 497, 509, 516, 522, 523, 525, 526, 527, - 528, 529, 531, 530, 377, 291, 458, 310, 347, 0, - 0, 395, 436, 227, 501, 459, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 555, 357, 449, 498, 312, - 324, 327, 317, 336, 0, 337, 313, 314, 319, 321, - 322, 323, 328, 329, 333, 339, 426, 427, 428, 429, - 275, 507, 289, 432, 431, 308, 309, 0, 191, 208, - 343, 0, 418, 271, 533, 511, 506, 198, 210, 0, - 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 193, 194, 201, 209, 219, 223, 230, + 244, 259, 261, 268, 281, 286, 290, 295, 296, 299, + 305, 353, 359, 360, 361, 362, 379, 380, 381, 384, + 387, 388, 391, 393, 394, 397, 401, 405, 406, 407, + 408, 410, 412, 419, 424, 438, 439, 440, 441, 442, + 445, 446, 451, 452, 453, 454, 455, 463, 464, 468, + 486, 488, 500, 515, 520, 444, 282, 495, 521, 0, + 352, 0, 0, 354, 264, 285, 297, 0, 510, 465, + 214, 430, 273, 236, 0, 0, 202, 233, 217, 242, + 257, 260, 301, 363, 370, 399, 404, 279, 254, 231, + 423, 228, 448, 471, 472, 473, 475, 367, 249, 403, + 0, 368, 350, 477, 478, 293, 476, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 386, 0, + 1564, 0, 0, 0, 0, 0, 0, 253, 0, 0, + 0, 0, 341, 250, 0, 0, 400, 0, 197, 0, + 450, 237, 351, 348, 483, 265, 256, 252, 235, 294, + 358, 398, 470, 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 194, 201, 209, 219, 223, 230, 244, - 259, 261, 268, 281, 286, 290, 295, 296, 299, 305, - 353, 359, 360, 361, 362, 379, 380, 381, 384, 387, - 388, 391, 393, 394, 397, 401, 405, 406, 407, 408, - 410, 412, 419, 424, 438, 439, 440, 441, 442, 445, - 446, 451, 452, 453, 454, 455, 463, 464, 468, 486, - 488, 500, 515, 520, 444, 282, 495, 521, 0, 352, - 0, 0, 354, 264, 285, 297, 0, 510, 465, 214, - 430, 273, 236, 0, 0, 202, 233, 217, 242, 257, - 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, - 228, 448, 471, 472, 473, 475, 367, 249, 403, 0, - 368, 350, 477, 478, 293, 476, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 386, 0, 1560, - 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, - 0, 341, 250, 0, 0, 400, 0, 197, 0, 450, - 237, 351, 348, 483, 265, 256, 252, 235, 294, 358, - 398, 470, 392, 0, 345, 0, 0, 460, 371, 0, + 0, 0, 0, 0, 0, 300, 234, 302, 196, 383, + 461, 269, 0, 0, 0, 0, 188, 189, 190, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, + 0, 232, 326, 335, 334, 315, 316, 318, 320, 325, + 332, 338, 0, 0, 0, 0, 0, 248, 298, 255, + 247, 480, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 300, 234, 302, 196, 383, 461, - 269, 0, 0, 0, 0, 188, 189, 190, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, - 232, 326, 335, 334, 315, 316, 318, 320, 325, 332, - 338, 0, 0, 0, 0, 0, 248, 298, 255, 247, - 480, 0, 0, 0, 0, 0, 0, 0, 216, 0, + 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 372, 240, 0, + 0, 0, 0, 517, 0, 0, 0, 0, 0, 0, + 0, 340, 0, 307, 192, 212, 0, 0, 382, 425, + 437, 0, 0, 0, 238, 0, 435, 396, 499, 220, + 267, 422, 402, 433, 409, 270, 0, 0, 434, 346, + 485, 416, 496, 518, 519, 246, 376, 508, 474, 514, + 532, 213, 243, 390, 467, 502, 457, 369, 481, 482, + 306, 456, 278, 195, 344, 524, 211, 443, 229, 218, + 487, 505, 272, 420, 203, 469, 494, 226, 447, 0, + 0, 534, 205, 492, 466, 365, 303, 304, 204, 0, + 421, 251, 276, 241, 385, 489, 490, 239, 535, 215, + 513, 207, 0, 512, 378, 484, 493, 366, 356, 206, + 491, 364, 355, 311, 330, 331, 263, 287, 414, 349, + 415, 288, 374, 373, 375, 199, 503, 0, 200, 0, + 462, 504, 536, 221, 222, 224, 0, 262, 266, 274, + 277, 283, 284, 292, 342, 389, 413, 411, 417, 0, + 479, 497, 509, 516, 522, 523, 525, 526, 527, 528, + 529, 531, 530, 377, 291, 458, 310, 347, 0, 0, + 395, 436, 227, 501, 459, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 555, 357, 449, 498, 312, 324, + 327, 317, 336, 0, 337, 313, 314, 319, 321, 322, + 323, 328, 329, 333, 339, 426, 427, 428, 429, 275, + 507, 289, 432, 431, 308, 309, 0, 191, 208, 343, + 0, 418, 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 372, 240, 0, 0, - 0, 0, 517, 0, 0, 0, 0, 0, 0, 0, - 340, 0, 307, 192, 212, 0, 0, 382, 425, 437, - 0, 0, 0, 238, 0, 435, 396, 499, 220, 267, - 422, 402, 433, 409, 270, 0, 0, 434, 346, 485, - 416, 496, 518, 519, 246, 376, 508, 474, 514, 532, - 213, 243, 390, 467, 502, 457, 369, 481, 482, 306, - 456, 278, 195, 344, 524, 211, 443, 229, 218, 487, - 505, 272, 420, 203, 469, 494, 226, 447, 0, 0, - 534, 205, 492, 466, 365, 303, 304, 204, 0, 421, - 251, 276, 241, 385, 489, 490, 239, 535, 215, 513, - 207, 0, 512, 378, 484, 493, 366, 356, 206, 491, - 364, 355, 311, 330, 331, 263, 287, 414, 349, 415, - 288, 374, 373, 375, 199, 503, 0, 200, 0, 462, - 504, 536, 221, 222, 224, 0, 262, 266, 274, 277, - 283, 284, 292, 342, 389, 413, 411, 417, 0, 479, - 497, 509, 516, 522, 523, 525, 526, 527, 528, 529, - 531, 530, 377, 291, 458, 310, 347, 0, 0, 395, - 436, 227, 501, 459, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 555, 357, 449, 498, 312, 324, 327, - 317, 336, 0, 337, 313, 314, 319, 321, 322, 323, - 328, 329, 333, 339, 426, 427, 428, 429, 275, 507, - 289, 432, 431, 308, 309, 0, 191, 208, 343, 0, - 418, 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 193, 194, 201, 209, 219, 223, 230, 244, 259, + 261, 268, 281, 286, 290, 295, 296, 299, 305, 353, + 359, 360, 361, 362, 379, 380, 381, 384, 387, 388, + 391, 393, 394, 397, 401, 405, 406, 407, 408, 410, + 412, 419, 424, 438, 439, 440, 441, 442, 445, 446, + 451, 452, 453, 454, 455, 463, 464, 468, 486, 488, + 500, 515, 520, 444, 282, 495, 521, 0, 352, 0, + 0, 354, 264, 285, 297, 0, 510, 465, 214, 430, + 273, 236, 0, 0, 202, 233, 217, 242, 257, 260, + 301, 363, 370, 399, 404, 279, 254, 231, 423, 228, + 448, 471, 472, 473, 475, 367, 249, 403, 0, 368, + 350, 477, 478, 293, 476, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 386, 0, 1562, 0, + 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, + 341, 250, 0, 0, 400, 0, 197, 0, 450, 237, + 351, 348, 483, 265, 256, 252, 235, 294, 358, 398, + 470, 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 193, 194, 201, 209, 219, 223, 230, 244, 259, 261, - 268, 281, 286, 290, 295, 296, 299, 305, 353, 359, - 360, 361, 362, 379, 380, 381, 384, 387, 388, 391, - 393, 394, 397, 401, 405, 406, 407, 408, 410, 412, - 419, 424, 438, 439, 440, 441, 442, 445, 446, 451, - 452, 453, 454, 455, 463, 464, 468, 486, 488, 500, - 515, 520, 444, 282, 495, 521, 0, 352, 0, 0, - 354, 264, 285, 297, 0, 510, 465, 214, 430, 273, - 236, 0, 0, 202, 233, 217, 242, 257, 260, 301, - 363, 370, 399, 404, 279, 254, 231, 423, 228, 448, - 471, 472, 473, 475, 367, 249, 403, 0, 368, 350, - 477, 478, 293, 476, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 386, 0, 1558, 0, 0, - 0, 0, 0, 0, 253, 0, 0, 0, 0, 341, - 250, 0, 0, 400, 0, 197, 0, 450, 237, 351, - 348, 483, 265, 256, 252, 235, 294, 358, 398, 470, - 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, + 0, 0, 0, 300, 234, 302, 196, 383, 461, 269, + 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 225, 0, 232, + 326, 335, 334, 315, 316, 318, 320, 325, 332, 338, + 0, 0, 0, 0, 0, 248, 298, 255, 247, 480, + 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 300, 234, 302, 196, 383, 461, 269, 0, - 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 225, 0, 232, 326, - 335, 334, 315, 316, 318, 320, 325, 332, 338, 0, - 0, 0, 0, 0, 248, 298, 255, 247, 480, 0, - 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, + 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 280, 0, 372, 240, 0, 0, 0, + 0, 517, 0, 0, 0, 0, 0, 0, 0, 340, + 0, 307, 192, 212, 0, 0, 382, 425, 437, 0, + 0, 0, 238, 0, 435, 396, 499, 220, 267, 422, + 402, 433, 409, 270, 0, 0, 434, 346, 485, 416, + 496, 518, 519, 246, 376, 508, 474, 514, 532, 213, + 243, 390, 467, 502, 457, 369, 481, 482, 306, 456, + 278, 195, 344, 524, 211, 443, 229, 218, 487, 505, + 272, 420, 203, 469, 494, 226, 447, 0, 0, 534, + 205, 492, 466, 365, 303, 304, 204, 0, 421, 251, + 276, 241, 385, 489, 490, 239, 535, 215, 513, 207, + 0, 512, 378, 484, 493, 366, 356, 206, 491, 364, + 355, 311, 330, 331, 263, 287, 414, 349, 415, 288, + 374, 373, 375, 199, 503, 0, 200, 0, 462, 504, + 536, 221, 222, 224, 0, 262, 266, 274, 277, 283, + 284, 292, 342, 389, 413, 411, 417, 0, 479, 497, + 509, 516, 522, 523, 525, 526, 527, 528, 529, 531, + 530, 377, 291, 458, 310, 347, 0, 0, 395, 436, + 227, 501, 459, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 555, 357, 449, 498, 312, 324, 327, 317, + 336, 0, 337, 313, 314, 319, 321, 322, 323, 328, + 329, 333, 339, 426, 427, 428, 429, 275, 507, 289, + 432, 431, 308, 309, 0, 191, 208, 343, 0, 418, + 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 372, 240, 0, 0, 0, 0, - 517, 0, 0, 0, 0, 0, 0, 0, 340, 0, - 307, 192, 212, 0, 0, 382, 425, 437, 0, 0, - 0, 238, 0, 435, 396, 499, 220, 267, 422, 402, - 433, 409, 270, 0, 0, 434, 346, 485, 416, 496, - 518, 519, 246, 376, 508, 474, 514, 532, 213, 243, - 390, 467, 502, 457, 369, 481, 482, 306, 456, 278, - 195, 344, 524, 211, 443, 229, 218, 487, 505, 272, - 420, 203, 469, 494, 226, 447, 0, 0, 534, 205, - 492, 466, 365, 303, 304, 204, 0, 421, 251, 276, - 241, 385, 489, 490, 239, 535, 215, 513, 207, 0, - 512, 378, 484, 493, 366, 356, 206, 491, 364, 355, - 311, 330, 331, 263, 287, 414, 349, 415, 288, 374, - 373, 375, 199, 503, 0, 200, 0, 462, 504, 536, - 221, 222, 224, 0, 262, 266, 274, 277, 283, 284, - 292, 342, 389, 413, 411, 417, 0, 479, 497, 509, - 516, 522, 523, 525, 526, 527, 528, 529, 531, 530, - 377, 291, 458, 310, 347, 0, 0, 395, 436, 227, - 501, 459, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 555, 357, 449, 498, 312, 324, 327, 317, 336, - 0, 337, 313, 314, 319, 321, 322, 323, 328, 329, - 333, 339, 426, 427, 428, 429, 275, 507, 289, 432, - 431, 308, 309, 0, 191, 208, 343, 0, 418, 271, - 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, + 194, 201, 209, 219, 223, 230, 244, 259, 261, 268, + 281, 286, 290, 295, 296, 299, 305, 353, 359, 360, + 361, 362, 379, 380, 381, 384, 387, 388, 391, 393, + 394, 397, 401, 405, 406, 407, 408, 410, 412, 419, + 424, 438, 439, 440, 441, 442, 445, 446, 451, 452, + 453, 454, 455, 463, 464, 468, 486, 488, 500, 515, + 520, 444, 282, 495, 521, 0, 352, 0, 0, 354, + 264, 285, 297, 0, 510, 465, 214, 430, 273, 236, + 0, 0, 202, 233, 217, 242, 257, 260, 301, 363, + 370, 399, 404, 279, 254, 231, 423, 228, 448, 471, + 472, 473, 475, 367, 249, 403, 0, 368, 350, 477, + 478, 293, 476, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 386, 0, 1560, 0, 0, 0, + 0, 0, 0, 253, 0, 0, 0, 0, 341, 250, + 0, 0, 400, 0, 197, 0, 450, 237, 351, 348, + 483, 265, 256, 252, 235, 294, 358, 398, 470, 392, + 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 193, 194, - 201, 209, 219, 223, 230, 244, 259, 261, 268, 281, - 286, 290, 295, 296, 299, 305, 353, 359, 360, 361, - 362, 379, 380, 381, 384, 387, 388, 391, 393, 394, - 397, 401, 405, 406, 407, 408, 410, 412, 419, 424, - 438, 439, 440, 441, 442, 445, 446, 451, 452, 453, - 454, 455, 463, 464, 468, 486, 488, 500, 515, 520, - 444, 282, 495, 521, 0, 352, 0, 0, 354, 264, - 285, 297, 0, 510, 465, 214, 430, 273, 236, 0, - 0, 202, 233, 217, 242, 257, 260, 301, 363, 370, - 399, 404, 279, 254, 231, 423, 228, 448, 471, 472, - 473, 475, 367, 249, 403, 0, 368, 350, 477, 478, - 293, 476, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 386, 0, 1554, 0, 0, 0, 0, - 0, 0, 253, 0, 0, 0, 0, 341, 250, 0, - 0, 400, 0, 197, 0, 450, 237, 351, 348, 483, - 265, 256, 252, 235, 294, 358, 398, 470, 392, 0, - 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, + 0, 300, 234, 302, 196, 383, 461, 269, 0, 0, + 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 225, 0, 232, 326, 335, + 334, 315, 316, 318, 320, 325, 332, 338, 0, 0, + 0, 0, 0, 248, 298, 255, 247, 480, 0, 0, + 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 300, 234, 302, 196, 383, 461, 269, 0, 0, 0, - 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 225, 0, 232, 326, 335, 334, - 315, 316, 318, 320, 325, 332, 338, 0, 0, 0, - 0, 0, 248, 298, 255, 247, 480, 0, 0, 0, - 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, + 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5266,309 +5098,369 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 280, 0, 372, 240, 0, 0, 0, 0, 517, + 0, 0, 0, 0, 0, 0, 0, 340, 0, 307, + 192, 212, 0, 0, 382, 425, 437, 0, 0, 0, + 238, 0, 435, 396, 499, 220, 267, 422, 402, 433, + 409, 270, 0, 0, 434, 346, 485, 416, 496, 518, + 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, + 467, 502, 457, 369, 481, 482, 306, 456, 278, 195, + 344, 524, 211, 443, 229, 218, 487, 505, 272, 420, + 203, 469, 494, 226, 447, 0, 0, 534, 205, 492, + 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, + 385, 489, 490, 239, 535, 215, 513, 207, 0, 512, + 378, 484, 493, 366, 356, 206, 491, 364, 355, 311, + 330, 331, 263, 287, 414, 349, 415, 288, 374, 373, + 375, 199, 503, 0, 200, 0, 462, 504, 536, 221, + 222, 224, 0, 262, 266, 274, 277, 283, 284, 292, + 342, 389, 413, 411, 417, 0, 479, 497, 509, 516, + 522, 523, 525, 526, 527, 528, 529, 531, 530, 377, + 291, 458, 310, 347, 0, 0, 395, 436, 227, 501, + 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 280, 0, 372, 240, 0, 0, 0, 0, 517, 0, - 0, 0, 0, 0, 0, 0, 340, 0, 307, 192, - 212, 0, 0, 382, 425, 437, 0, 0, 0, 238, - 0, 435, 396, 499, 220, 267, 422, 402, 433, 409, - 270, 0, 0, 434, 346, 485, 416, 496, 518, 519, - 246, 376, 508, 474, 514, 532, 213, 243, 390, 467, - 502, 457, 369, 481, 482, 306, 456, 278, 195, 344, - 524, 211, 443, 229, 218, 487, 505, 272, 420, 203, - 469, 494, 226, 447, 0, 0, 534, 205, 492, 466, - 365, 303, 304, 204, 0, 421, 251, 276, 241, 385, - 489, 490, 239, 535, 215, 513, 207, 0, 512, 378, - 484, 493, 366, 356, 206, 491, 364, 355, 311, 330, - 331, 263, 287, 414, 349, 415, 288, 374, 373, 375, - 199, 503, 0, 200, 0, 462, 504, 536, 221, 222, - 224, 0, 262, 266, 274, 277, 283, 284, 292, 342, - 389, 413, 411, 417, 0, 479, 497, 509, 516, 522, - 523, 525, 526, 527, 528, 529, 531, 530, 377, 291, - 458, 310, 347, 0, 0, 395, 436, 227, 501, 459, + 555, 357, 449, 498, 312, 324, 327, 317, 336, 0, + 337, 313, 314, 319, 321, 322, 323, 328, 329, 333, + 339, 426, 427, 428, 429, 275, 507, 289, 432, 431, + 308, 309, 0, 191, 208, 343, 0, 418, 271, 533, + 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 555, - 357, 449, 498, 312, 324, 327, 317, 336, 0, 337, - 313, 314, 319, 321, 322, 323, 328, 329, 333, 339, - 426, 427, 428, 429, 275, 507, 289, 432, 431, 308, - 309, 0, 191, 208, 343, 0, 418, 271, 533, 511, - 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 193, 194, 201, + 209, 219, 223, 230, 244, 259, 261, 268, 281, 286, + 290, 295, 296, 299, 305, 353, 359, 360, 361, 362, + 379, 380, 381, 384, 387, 388, 391, 393, 394, 397, + 401, 405, 406, 407, 408, 410, 412, 419, 424, 438, + 439, 440, 441, 442, 445, 446, 451, 452, 453, 454, + 455, 463, 464, 468, 486, 488, 500, 515, 520, 444, + 282, 495, 521, 0, 352, 0, 0, 354, 264, 285, + 297, 0, 510, 465, 214, 430, 273, 236, 0, 0, + 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, + 404, 279, 254, 231, 423, 228, 448, 471, 472, 473, + 475, 367, 249, 403, 0, 368, 350, 477, 478, 293, + 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 386, 0, 1558, 0, 0, 0, 0, 0, + 0, 253, 0, 0, 0, 0, 341, 250, 0, 0, + 400, 0, 197, 0, 450, 237, 351, 348, 483, 265, + 256, 252, 235, 294, 358, 398, 470, 392, 0, 345, + 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, + 234, 302, 196, 383, 461, 269, 0, 0, 0, 0, + 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 225, 0, 232, 326, 335, 334, 315, + 316, 318, 320, 325, 332, 338, 0, 0, 0, 0, + 0, 248, 298, 255, 247, 480, 0, 0, 0, 0, + 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 193, 194, 201, 209, - 219, 223, 230, 244, 259, 261, 268, 281, 286, 290, - 295, 296, 299, 305, 353, 359, 360, 361, 362, 379, - 380, 381, 384, 387, 388, 391, 393, 394, 397, 401, - 405, 406, 407, 408, 410, 412, 419, 424, 438, 439, - 440, 441, 442, 445, 446, 451, 452, 453, 454, 455, - 463, 464, 468, 486, 488, 500, 515, 520, 444, 282, - 495, 521, 0, 352, 0, 0, 354, 264, 285, 297, - 0, 510, 465, 214, 430, 273, 236, 0, 0, 202, - 233, 217, 242, 257, 260, 301, 363, 370, 399, 404, - 279, 254, 231, 423, 228, 448, 471, 472, 473, 475, - 367, 249, 403, 0, 368, 350, 477, 478, 293, 476, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 386, 0, 1552, 0, 0, 0, 0, 0, 0, - 253, 0, 0, 0, 0, 341, 250, 0, 0, 400, - 0, 197, 0, 450, 237, 351, 348, 483, 265, 256, - 252, 235, 294, 358, 398, 470, 392, 0, 345, 0, - 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 300, 234, - 302, 196, 383, 461, 269, 0, 0, 0, 0, 188, - 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 225, 0, 232, 326, 335, 334, 315, 316, - 318, 320, 325, 332, 338, 0, 0, 0, 0, 0, - 248, 298, 255, 247, 480, 0, 0, 0, 0, 0, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 372, 240, 0, 0, 0, 0, 517, 0, 0, + 0, 0, 0, 0, 0, 340, 0, 307, 192, 212, + 0, 0, 382, 425, 437, 0, 0, 0, 238, 0, + 435, 396, 499, 220, 267, 422, 402, 433, 409, 270, + 0, 0, 434, 346, 485, 416, 496, 518, 519, 246, + 376, 508, 474, 514, 532, 213, 243, 390, 467, 502, + 457, 369, 481, 482, 306, 456, 278, 195, 344, 524, + 211, 443, 229, 218, 487, 505, 272, 420, 203, 469, + 494, 226, 447, 0, 0, 534, 205, 492, 466, 365, + 303, 304, 204, 0, 421, 251, 276, 241, 385, 489, + 490, 239, 535, 215, 513, 207, 0, 512, 378, 484, + 493, 366, 356, 206, 491, 364, 355, 311, 330, 331, + 263, 287, 414, 349, 415, 288, 374, 373, 375, 199, + 503, 0, 200, 0, 462, 504, 536, 221, 222, 224, + 0, 262, 266, 274, 277, 283, 284, 292, 342, 389, + 413, 411, 417, 0, 479, 497, 509, 516, 522, 523, + 525, 526, 527, 528, 529, 531, 530, 377, 291, 458, + 310, 347, 0, 0, 395, 436, 227, 501, 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 372, 240, 0, 0, 0, 0, 517, 0, 0, 0, - 0, 0, 0, 0, 340, 0, 307, 192, 212, 0, - 0, 382, 425, 437, 0, 0, 0, 238, 0, 435, - 396, 499, 220, 267, 422, 402, 433, 409, 270, 0, - 0, 434, 346, 485, 416, 496, 518, 519, 246, 376, - 508, 474, 514, 532, 213, 243, 390, 467, 502, 457, - 369, 481, 482, 306, 456, 278, 195, 344, 524, 211, - 443, 229, 218, 487, 505, 272, 420, 203, 469, 494, - 226, 447, 0, 0, 534, 205, 492, 466, 365, 303, - 304, 204, 0, 421, 251, 276, 241, 385, 489, 490, - 239, 535, 215, 513, 207, 0, 512, 378, 484, 493, - 366, 356, 206, 491, 364, 355, 311, 330, 331, 263, - 287, 414, 349, 415, 288, 374, 373, 375, 199, 503, - 0, 200, 0, 462, 504, 536, 221, 222, 224, 0, - 262, 266, 274, 277, 283, 284, 292, 342, 389, 413, - 411, 417, 0, 479, 497, 509, 516, 522, 523, 525, - 526, 527, 528, 529, 531, 530, 377, 291, 458, 310, - 347, 0, 0, 395, 436, 227, 501, 459, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 555, 357, 449, - 498, 312, 324, 327, 317, 336, 0, 337, 313, 314, - 319, 321, 322, 323, 328, 329, 333, 339, 426, 427, - 428, 429, 275, 507, 289, 432, 431, 308, 309, 0, - 191, 208, 343, 0, 418, 271, 533, 511, 506, 198, - 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 555, 357, + 449, 498, 312, 324, 327, 317, 336, 0, 337, 313, + 314, 319, 321, 322, 323, 328, 329, 333, 339, 426, + 427, 428, 429, 275, 507, 289, 432, 431, 308, 309, + 0, 191, 208, 343, 0, 418, 271, 533, 511, 506, + 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 194, 201, 209, 219, + 223, 230, 244, 259, 261, 268, 281, 286, 290, 295, + 296, 299, 305, 353, 359, 360, 361, 362, 379, 380, + 381, 384, 387, 388, 391, 393, 394, 397, 401, 405, + 406, 407, 408, 410, 412, 419, 424, 438, 439, 440, + 441, 442, 445, 446, 451, 452, 453, 454, 455, 463, + 464, 468, 486, 488, 500, 515, 520, 444, 282, 495, + 521, 0, 352, 0, 0, 354, 264, 285, 297, 0, + 510, 465, 214, 430, 273, 236, 0, 0, 202, 233, + 217, 242, 257, 260, 301, 363, 370, 399, 404, 279, + 254, 231, 423, 228, 448, 471, 472, 473, 475, 367, + 249, 403, 0, 368, 350, 477, 478, 293, 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 193, 194, 201, 209, 219, 223, - 230, 244, 259, 261, 268, 281, 286, 290, 295, 296, - 299, 305, 353, 359, 360, 361, 362, 379, 380, 381, - 384, 387, 388, 391, 393, 394, 397, 401, 405, 406, - 407, 408, 410, 412, 419, 424, 438, 439, 440, 441, - 442, 445, 446, 451, 452, 453, 454, 455, 463, 464, - 468, 486, 488, 500, 515, 520, 444, 282, 495, 521, - 0, 352, 0, 0, 354, 264, 285, 297, 0, 510, - 465, 214, 430, 273, 236, 0, 0, 202, 233, 217, - 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, - 231, 423, 228, 448, 471, 472, 473, 475, 367, 249, - 403, 0, 368, 350, 477, 478, 293, 476, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, - 0, 1550, 0, 0, 0, 0, 0, 0, 253, 0, - 0, 0, 0, 341, 250, 0, 0, 400, 0, 197, - 0, 450, 237, 351, 348, 483, 265, 256, 252, 235, - 294, 358, 398, 470, 392, 0, 345, 0, 0, 460, - 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 300, 234, 302, 196, - 383, 461, 269, 0, 0, 0, 0, 188, 189, 190, + 386, 0, 1554, 0, 0, 0, 0, 0, 0, 253, + 0, 0, 0, 0, 341, 250, 0, 0, 400, 0, + 197, 0, 450, 237, 351, 348, 483, 265, 256, 252, + 235, 294, 358, 398, 470, 392, 0, 345, 0, 0, + 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 300, 234, 302, + 196, 383, 461, 269, 0, 0, 0, 0, 188, 189, + 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 225, 0, 232, 326, 335, 334, 315, 316, 318, + 320, 325, 332, 338, 0, 0, 0, 0, 0, 248, + 298, 255, 247, 480, 0, 0, 0, 0, 0, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 225, 0, 232, 326, 335, 334, 315, 316, 318, 320, - 325, 332, 338, 0, 0, 0, 0, 0, 248, 298, - 255, 247, 480, 0, 0, 0, 0, 0, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 280, 0, 372, + 240, 0, 0, 0, 0, 517, 0, 0, 0, 0, + 0, 0, 0, 340, 0, 307, 192, 212, 0, 0, + 382, 425, 437, 0, 0, 0, 238, 0, 435, 396, + 499, 220, 267, 422, 402, 433, 409, 270, 0, 0, + 434, 346, 485, 416, 496, 518, 519, 246, 376, 508, + 474, 514, 532, 213, 243, 390, 467, 502, 457, 369, + 481, 482, 306, 456, 278, 195, 344, 524, 211, 443, + 229, 218, 487, 505, 272, 420, 203, 469, 494, 226, + 447, 0, 0, 534, 205, 492, 466, 365, 303, 304, + 204, 0, 421, 251, 276, 241, 385, 489, 490, 239, + 535, 215, 513, 207, 0, 512, 378, 484, 493, 366, + 356, 206, 491, 364, 355, 311, 330, 331, 263, 287, + 414, 349, 415, 288, 374, 373, 375, 199, 503, 0, + 200, 0, 462, 504, 536, 221, 222, 224, 0, 262, + 266, 274, 277, 283, 284, 292, 342, 389, 413, 411, + 417, 0, 479, 497, 509, 516, 522, 523, 525, 526, + 527, 528, 529, 531, 530, 377, 291, 458, 310, 347, + 0, 0, 395, 436, 227, 501, 459, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 555, 357, 449, 498, + 312, 324, 327, 317, 336, 0, 337, 313, 314, 319, + 321, 322, 323, 328, 329, 333, 339, 426, 427, 428, + 429, 275, 507, 289, 432, 431, 308, 309, 0, 191, + 208, 343, 0, 418, 271, 533, 511, 506, 198, 210, + 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 372, 240, - 0, 0, 0, 0, 517, 0, 0, 0, 0, 0, - 0, 0, 340, 0, 307, 192, 212, 0, 0, 382, - 425, 437, 0, 0, 0, 238, 0, 435, 396, 499, - 220, 267, 422, 402, 433, 409, 270, 0, 0, 434, - 346, 485, 416, 496, 518, 519, 246, 376, 508, 474, - 514, 532, 213, 243, 390, 467, 502, 457, 369, 481, - 482, 306, 456, 278, 195, 344, 524, 211, 443, 229, - 218, 487, 505, 272, 420, 203, 469, 494, 226, 447, - 0, 0, 534, 205, 492, 466, 365, 303, 304, 204, - 0, 421, 251, 276, 241, 385, 489, 490, 239, 535, - 215, 513, 207, 0, 512, 378, 484, 493, 366, 356, - 206, 491, 364, 355, 311, 330, 331, 263, 287, 414, - 349, 415, 288, 374, 373, 375, 199, 503, 0, 200, - 0, 462, 504, 536, 221, 222, 224, 0, 262, 266, - 274, 277, 283, 284, 292, 342, 389, 413, 411, 417, - 0, 479, 497, 509, 516, 522, 523, 525, 526, 527, - 528, 529, 531, 530, 377, 291, 458, 310, 347, 0, - 0, 395, 436, 227, 501, 459, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 555, 357, 449, 498, 312, - 324, 327, 317, 336, 0, 337, 313, 314, 319, 321, - 322, 323, 328, 329, 333, 339, 426, 427, 428, 429, - 275, 507, 289, 432, 431, 308, 309, 0, 191, 208, - 343, 0, 418, 271, 533, 511, 506, 198, 210, 0, - 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 193, 194, 201, 209, 219, 223, 230, + 244, 259, 261, 268, 281, 286, 290, 295, 296, 299, + 305, 353, 359, 360, 361, 362, 379, 380, 381, 384, + 387, 388, 391, 393, 394, 397, 401, 405, 406, 407, + 408, 410, 412, 419, 424, 438, 439, 440, 441, 442, + 445, 446, 451, 452, 453, 454, 455, 463, 464, 468, + 486, 488, 500, 515, 520, 444, 282, 495, 521, 0, + 352, 0, 0, 354, 264, 285, 297, 0, 510, 465, + 214, 430, 273, 236, 0, 0, 202, 233, 217, 242, + 257, 260, 301, 363, 370, 399, 404, 279, 254, 231, + 423, 228, 448, 471, 472, 473, 475, 367, 249, 403, + 0, 368, 350, 477, 478, 293, 476, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 386, 0, + 1552, 0, 0, 0, 0, 0, 0, 253, 0, 0, + 0, 0, 341, 250, 0, 0, 400, 0, 197, 0, + 450, 237, 351, 348, 483, 265, 256, 252, 235, 294, + 358, 398, 470, 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 194, 201, 209, 219, 223, 230, 244, - 259, 261, 268, 281, 286, 290, 295, 296, 299, 305, - 353, 359, 360, 361, 362, 379, 380, 381, 384, 387, - 388, 391, 393, 394, 397, 401, 405, 406, 407, 408, - 410, 412, 419, 424, 438, 439, 440, 441, 442, 445, - 446, 451, 452, 453, 454, 455, 463, 464, 468, 486, - 488, 500, 515, 520, 444, 282, 495, 521, 0, 352, - 0, 0, 354, 264, 285, 297, 0, 510, 465, 214, - 430, 273, 236, 0, 0, 202, 233, 217, 242, 257, - 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, - 228, 448, 471, 472, 473, 475, 367, 249, 403, 0, - 368, 350, 477, 478, 293, 476, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 386, 0, 0, - 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, - 0, 341, 250, 0, 0, 400, 0, 197, 0, 450, - 237, 351, 348, 483, 265, 256, 252, 235, 294, 358, - 398, 470, 392, 0, 345, 0, 0, 460, 371, 0, + 0, 0, 0, 0, 0, 300, 234, 302, 196, 383, + 461, 269, 0, 0, 0, 0, 188, 189, 190, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, + 0, 232, 326, 335, 334, 315, 316, 318, 320, 325, + 332, 338, 0, 0, 0, 0, 0, 248, 298, 255, + 247, 480, 0, 0, 0, 0, 0, 0, 0, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 372, 240, 0, + 0, 0, 0, 517, 0, 0, 0, 0, 0, 0, + 0, 340, 0, 307, 192, 212, 0, 0, 382, 425, + 437, 0, 0, 0, 238, 0, 435, 396, 499, 220, + 267, 422, 402, 433, 409, 270, 0, 0, 434, 346, + 485, 416, 496, 518, 519, 246, 376, 508, 474, 514, + 532, 213, 243, 390, 467, 502, 457, 369, 481, 482, + 306, 456, 278, 195, 344, 524, 211, 443, 229, 218, + 487, 505, 272, 420, 203, 469, 494, 226, 447, 0, + 0, 534, 205, 492, 466, 365, 303, 304, 204, 0, + 421, 251, 276, 241, 385, 489, 490, 239, 535, 215, + 513, 207, 0, 512, 378, 484, 493, 366, 356, 206, + 491, 364, 355, 311, 330, 331, 263, 287, 414, 349, + 415, 288, 374, 373, 375, 199, 503, 0, 200, 0, + 462, 504, 536, 221, 222, 224, 0, 262, 266, 274, + 277, 283, 284, 292, 342, 389, 413, 411, 417, 0, + 479, 497, 509, 516, 522, 523, 525, 526, 527, 528, + 529, 531, 530, 377, 291, 458, 310, 347, 0, 0, + 395, 436, 227, 501, 459, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 555, 357, 449, 498, 312, 324, + 327, 317, 336, 0, 337, 313, 314, 319, 321, 322, + 323, 328, 329, 333, 339, 426, 427, 428, 429, 275, + 507, 289, 432, 431, 308, 309, 0, 191, 208, 343, + 0, 418, 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 300, 234, 302, 196, 383, 461, - 269, 0, 1525, 0, 0, 188, 189, 190, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, - 232, 326, 335, 334, 315, 316, 318, 320, 325, 332, - 338, 0, 0, 0, 0, 0, 248, 298, 255, 247, - 480, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, + 0, 193, 194, 201, 209, 219, 223, 230, 244, 259, + 261, 268, 281, 286, 290, 295, 296, 299, 305, 353, + 359, 360, 361, 362, 379, 380, 381, 384, 387, 388, + 391, 393, 394, 397, 401, 405, 406, 407, 408, 410, + 412, 419, 424, 438, 439, 440, 441, 442, 445, 446, + 451, 452, 453, 454, 455, 463, 464, 468, 486, 488, + 500, 515, 520, 444, 282, 495, 521, 0, 352, 0, + 0, 354, 264, 285, 297, 0, 510, 465, 214, 430, + 273, 236, 0, 0, 202, 233, 217, 242, 257, 260, + 301, 363, 370, 399, 404, 279, 254, 231, 423, 228, + 448, 471, 472, 473, 475, 367, 249, 403, 0, 368, + 350, 477, 478, 293, 476, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 386, 0, 1550, 0, + 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, + 341, 250, 0, 0, 400, 0, 197, 0, 450, 237, + 351, 348, 483, 265, 256, 252, 235, 294, 358, 398, + 470, 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 300, 234, 302, 196, 383, 461, 269, + 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 225, 0, 232, + 326, 335, 334, 315, 316, 318, 320, 325, 332, 338, + 0, 0, 0, 0, 0, 248, 298, 255, 247, 480, + 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 372, 240, 0, 0, - 0, 0, 517, 0, 0, 0, 0, 0, 0, 0, - 340, 0, 307, 192, 212, 0, 0, 382, 425, 437, - 0, 0, 0, 238, 0, 435, 396, 499, 220, 267, - 422, 402, 433, 409, 270, 0, 0, 434, 346, 485, - 416, 496, 518, 519, 246, 376, 508, 474, 514, 532, - 213, 243, 390, 467, 502, 457, 369, 481, 482, 306, - 456, 278, 195, 344, 524, 211, 443, 229, 218, 487, - 505, 272, 420, 203, 469, 494, 226, 447, 0, 0, - 534, 205, 492, 466, 365, 303, 304, 204, 0, 421, - 251, 276, 241, 385, 489, 490, 239, 535, 215, 513, - 207, 0, 512, 378, 484, 493, 366, 356, 206, 491, - 364, 355, 311, 330, 331, 263, 287, 414, 349, 415, - 288, 374, 373, 375, 199, 503, 0, 200, 0, 462, - 504, 536, 221, 222, 224, 0, 262, 266, 274, 277, - 283, 284, 292, 342, 389, 413, 411, 417, 0, 479, - 497, 509, 516, 522, 523, 525, 526, 527, 528, 529, - 531, 530, 377, 291, 458, 310, 347, 0, 0, 395, - 436, 227, 501, 459, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 555, 357, 449, 498, 312, 324, 327, - 317, 336, 0, 337, 313, 314, 319, 321, 322, 323, - 328, 329, 333, 339, 426, 427, 428, 429, 275, 507, - 289, 432, 431, 308, 309, 0, 191, 208, 343, 0, - 418, 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 193, 194, 201, 209, 219, 223, 230, 244, 259, 261, - 268, 281, 286, 290, 295, 296, 299, 305, 353, 359, - 360, 361, 362, 379, 380, 381, 384, 387, 388, 391, - 393, 394, 397, 401, 405, 406, 407, 408, 410, 412, - 419, 424, 438, 439, 440, 441, 442, 445, 446, 451, - 452, 453, 454, 455, 463, 464, 468, 486, 488, 500, - 515, 520, 444, 282, 495, 521, 0, 352, 0, 0, - 354, 264, 285, 297, 0, 510, 465, 214, 430, 273, - 236, 0, 0, 202, 233, 217, 242, 257, 260, 301, - 363, 370, 399, 404, 279, 254, 231, 423, 228, 448, - 471, 472, 473, 475, 367, 249, 403, 0, 368, 350, - 477, 478, 293, 476, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 386, 0, 0, 0, 0, - 0, 0, 0, 1425, 253, 0, 0, 0, 0, 341, - 250, 0, 0, 400, 0, 197, 0, 450, 237, 351, - 348, 483, 265, 256, 252, 235, 294, 358, 398, 470, - 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, + 0, 0, 0, 280, 0, 372, 240, 0, 0, 0, + 0, 517, 0, 0, 0, 0, 0, 0, 0, 340, + 0, 307, 192, 212, 0, 0, 382, 425, 437, 0, + 0, 0, 238, 0, 435, 396, 499, 220, 267, 422, + 402, 433, 409, 270, 0, 0, 434, 346, 485, 416, + 496, 518, 519, 246, 376, 508, 474, 514, 532, 213, + 243, 390, 467, 502, 457, 369, 481, 482, 306, 456, + 278, 195, 344, 524, 211, 443, 229, 218, 487, 505, + 272, 420, 203, 469, 494, 226, 447, 0, 0, 534, + 205, 492, 466, 365, 303, 304, 204, 0, 421, 251, + 276, 241, 385, 489, 490, 239, 535, 215, 513, 207, + 0, 512, 378, 484, 493, 366, 356, 206, 491, 364, + 355, 311, 330, 331, 263, 287, 414, 349, 415, 288, + 374, 373, 375, 199, 503, 0, 200, 0, 462, 504, + 536, 221, 222, 224, 0, 262, 266, 274, 277, 283, + 284, 292, 342, 389, 413, 411, 417, 0, 479, 497, + 509, 516, 522, 523, 525, 526, 527, 528, 529, 531, + 530, 377, 291, 458, 310, 347, 0, 0, 395, 436, + 227, 501, 459, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 555, 357, 449, 498, 312, 324, 327, 317, + 336, 0, 337, 313, 314, 319, 321, 322, 323, 328, + 329, 333, 339, 426, 427, 428, 429, 275, 507, 289, + 432, 431, 308, 309, 0, 191, 208, 343, 0, 418, + 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 300, 234, 302, 196, 383, 461, 269, 0, - 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 225, 0, 232, 326, - 335, 334, 315, 316, 318, 320, 325, 332, 338, 0, - 0, 0, 0, 0, 248, 298, 255, 247, 480, 0, - 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, + 194, 201, 209, 219, 223, 230, 244, 259, 261, 268, + 281, 286, 290, 295, 296, 299, 305, 353, 359, 360, + 361, 362, 379, 380, 381, 384, 387, 388, 391, 393, + 394, 397, 401, 405, 406, 407, 408, 410, 412, 419, + 424, 438, 439, 440, 441, 442, 445, 446, 451, 452, + 453, 454, 455, 463, 464, 468, 486, 488, 500, 515, + 520, 444, 282, 495, 521, 0, 352, 0, 0, 354, + 264, 285, 297, 0, 510, 465, 214, 430, 273, 236, + 0, 0, 202, 233, 217, 242, 257, 260, 301, 363, + 370, 399, 404, 279, 254, 231, 423, 228, 448, 471, + 472, 473, 475, 367, 249, 403, 0, 368, 350, 477, + 478, 293, 476, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 386, 0, 0, 0, 0, 0, + 0, 0, 0, 253, 0, 0, 0, 0, 341, 250, + 0, 0, 400, 0, 197, 0, 450, 237, 351, 348, + 483, 265, 256, 252, 235, 294, 358, 398, 470, 392, + 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 300, 234, 302, 196, 383, 461, 269, 0, 1525, + 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 225, 0, 232, 326, 335, + 334, 315, 316, 318, 320, 325, 332, 338, 0, 0, + 0, 0, 0, 248, 298, 255, 247, 480, 0, 0, + 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 372, 240, 0, 0, 0, 0, - 517, 0, 0, 0, 0, 0, 0, 0, 340, 0, - 307, 192, 212, 0, 0, 382, 425, 437, 0, 0, - 0, 238, 0, 435, 396, 499, 220, 267, 422, 402, - 433, 409, 270, 0, 0, 434, 346, 485, 416, 496, - 518, 519, 246, 376, 508, 474, 514, 532, 213, 243, - 390, 467, 502, 457, 369, 481, 482, 306, 456, 278, - 195, 344, 524, 211, 443, 229, 218, 487, 505, 272, - 420, 203, 469, 494, 226, 447, 0, 0, 534, 205, - 492, 466, 365, 303, 304, 204, 0, 421, 251, 276, - 241, 385, 489, 490, 239, 535, 215, 513, 207, 0, - 512, 378, 484, 493, 366, 356, 206, 491, 364, 355, - 311, 330, 331, 263, 287, 414, 349, 415, 288, 374, - 373, 375, 199, 503, 0, 200, 0, 462, 504, 536, - 221, 222, 224, 0, 262, 266, 274, 277, 283, 284, - 292, 342, 389, 413, 411, 417, 0, 479, 497, 509, - 516, 522, 523, 525, 526, 527, 528, 529, 531, 530, - 377, 291, 458, 310, 347, 0, 0, 395, 436, 227, - 501, 459, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 555, 357, 449, 498, 312, 324, 327, 317, 336, - 0, 337, 313, 314, 319, 321, 322, 323, 328, 329, - 333, 339, 426, 427, 428, 429, 275, 507, 289, 432, - 431, 308, 309, 0, 191, 208, 343, 0, 418, 271, - 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 193, 194, - 201, 209, 219, 223, 230, 244, 259, 261, 268, 281, - 286, 290, 295, 296, 299, 305, 353, 359, 360, 361, - 362, 379, 380, 381, 384, 387, 388, 391, 393, 394, - 397, 401, 405, 406, 407, 408, 410, 412, 419, 424, - 438, 439, 440, 441, 442, 445, 446, 451, 452, 453, - 454, 455, 463, 464, 468, 486, 488, 500, 515, 520, - 444, 282, 495, 521, 0, 352, 0, 0, 354, 264, - 285, 297, 0, 510, 465, 214, 430, 273, 236, 0, - 0, 202, 233, 217, 242, 257, 260, 301, 363, 370, - 399, 404, 279, 254, 231, 423, 228, 448, 471, 472, - 473, 475, 367, 249, 403, 0, 368, 350, 477, 478, - 293, 476, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 386, 0, 0, 0, 0, 0, 0, - 0, 0, 253, 0, 0, 0, 0, 341, 250, 0, - 0, 400, 0, 197, 0, 450, 237, 351, 348, 483, - 265, 256, 252, 235, 294, 358, 398, 470, 392, 0, - 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, + 0, 280, 0, 372, 240, 0, 0, 0, 0, 517, + 0, 0, 0, 0, 0, 0, 0, 340, 0, 307, + 192, 212, 0, 0, 382, 425, 437, 0, 0, 0, + 238, 0, 435, 396, 499, 220, 267, 422, 402, 433, + 409, 270, 0, 0, 434, 346, 485, 416, 496, 518, + 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, + 467, 502, 457, 369, 481, 482, 306, 456, 278, 195, + 344, 524, 211, 443, 229, 218, 487, 505, 272, 420, + 203, 469, 494, 226, 447, 0, 0, 534, 205, 492, + 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, + 385, 489, 490, 239, 535, 215, 513, 207, 0, 512, + 378, 484, 493, 366, 356, 206, 491, 364, 355, 311, + 330, 331, 263, 287, 414, 349, 415, 288, 374, 373, + 375, 199, 503, 0, 200, 0, 462, 504, 536, 221, + 222, 224, 0, 262, 266, 274, 277, 283, 284, 292, + 342, 389, 413, 411, 417, 0, 479, 497, 509, 516, + 522, 523, 525, 526, 527, 528, 529, 531, 530, 377, + 291, 458, 310, 347, 0, 0, 395, 436, 227, 501, + 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 300, 234, 302, 196, 383, 461, 269, 0, 0, 0, - 0, 188, 189, 190, 0, 1207, 0, 0, 0, 0, - 0, 0, 0, 0, 225, 0, 232, 326, 335, 334, - 315, 316, 318, 320, 325, 332, 338, 0, 0, 0, - 0, 0, 248, 298, 255, 247, 480, 0, 0, 0, - 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, + 555, 357, 449, 498, 312, 324, 327, 317, 336, 0, + 337, 313, 314, 319, 321, 322, 323, 328, 329, 333, + 339, 426, 427, 428, 429, 275, 507, 289, 432, 431, + 308, 309, 0, 191, 208, 343, 0, 418, 271, 533, + 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 193, 194, 201, + 209, 219, 223, 230, 244, 259, 261, 268, 281, 286, + 290, 295, 296, 299, 305, 353, 359, 360, 361, 362, + 379, 380, 381, 384, 387, 388, 391, 393, 394, 397, + 401, 405, 406, 407, 408, 410, 412, 419, 424, 438, + 439, 440, 441, 442, 445, 446, 451, 452, 453, 454, + 455, 463, 464, 468, 486, 488, 500, 515, 520, 444, + 282, 495, 521, 0, 352, 0, 0, 354, 264, 285, + 297, 0, 510, 465, 214, 430, 273, 236, 0, 0, + 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, + 404, 279, 254, 231, 423, 228, 448, 471, 472, 473, + 475, 367, 249, 403, 0, 368, 350, 477, 478, 293, + 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 386, 0, 0, 0, 0, 0, 0, 0, + 1425, 253, 0, 0, 0, 0, 341, 250, 0, 0, + 400, 0, 197, 0, 450, 237, 351, 348, 483, 265, + 256, 252, 235, 294, 358, 398, 470, 392, 0, 345, + 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, + 234, 302, 196, 383, 461, 269, 0, 0, 0, 0, + 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 225, 0, 232, 326, 335, 334, 315, + 316, 318, 320, 325, 332, 338, 0, 0, 0, 0, + 0, 248, 298, 255, 247, 480, 0, 0, 0, 0, + 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5576,60 +5468,61 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 280, 0, 372, 240, 0, 0, 0, 0, 517, 0, - 0, 0, 0, 0, 0, 0, 340, 0, 307, 192, - 212, 0, 0, 382, 425, 437, 0, 0, 0, 238, - 0, 435, 396, 499, 220, 267, 422, 402, 433, 409, - 270, 0, 0, 434, 346, 485, 416, 496, 518, 519, - 246, 376, 508, 474, 514, 532, 213, 243, 390, 467, - 502, 457, 369, 481, 482, 306, 456, 278, 195, 344, - 524, 211, 443, 229, 218, 487, 505, 272, 420, 203, - 469, 494, 226, 447, 0, 0, 534, 205, 492, 466, - 365, 303, 304, 204, 0, 421, 251, 276, 241, 385, - 489, 490, 239, 535, 215, 513, 207, 0, 512, 378, - 484, 493, 366, 356, 206, 491, 364, 355, 311, 330, - 331, 263, 287, 414, 349, 415, 288, 374, 373, 375, - 199, 503, 0, 200, 0, 462, 504, 536, 221, 222, - 224, 0, 262, 266, 274, 277, 283, 284, 292, 342, - 389, 413, 411, 417, 0, 479, 497, 509, 516, 522, - 523, 525, 526, 527, 528, 529, 531, 530, 377, 291, - 458, 310, 347, 0, 0, 395, 436, 227, 501, 459, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 372, 240, 0, 0, 0, 0, 517, 0, 0, + 0, 0, 0, 0, 0, 340, 0, 307, 192, 212, + 0, 0, 382, 425, 437, 0, 0, 0, 238, 0, + 435, 396, 499, 220, 267, 422, 402, 433, 409, 270, + 0, 0, 434, 346, 485, 416, 496, 518, 519, 246, + 376, 508, 474, 514, 532, 213, 243, 390, 467, 502, + 457, 369, 481, 482, 306, 456, 278, 195, 344, 524, + 211, 443, 229, 218, 487, 505, 272, 420, 203, 469, + 494, 226, 447, 0, 0, 534, 205, 492, 466, 365, + 303, 304, 204, 0, 421, 251, 276, 241, 385, 489, + 490, 239, 535, 215, 513, 207, 0, 512, 378, 484, + 493, 366, 356, 206, 491, 364, 355, 311, 330, 331, + 263, 287, 414, 349, 415, 288, 374, 373, 375, 199, + 503, 0, 200, 0, 462, 504, 536, 221, 222, 224, + 0, 262, 266, 274, 277, 283, 284, 292, 342, 389, + 413, 411, 417, 0, 479, 497, 509, 516, 522, 523, + 525, 526, 527, 528, 529, 531, 530, 377, 291, 458, + 310, 347, 0, 0, 395, 436, 227, 501, 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 555, - 357, 449, 498, 312, 324, 327, 317, 336, 0, 337, - 313, 314, 319, 321, 322, 323, 328, 329, 333, 339, - 426, 427, 428, 429, 275, 507, 289, 432, 431, 308, - 309, 0, 191, 208, 343, 0, 418, 271, 533, 511, - 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 555, 357, + 449, 498, 312, 324, 327, 317, 336, 0, 337, 313, + 314, 319, 321, 322, 323, 328, 329, 333, 339, 426, + 427, 428, 429, 275, 507, 289, 432, 431, 308, 309, + 0, 191, 208, 343, 0, 418, 271, 533, 511, 506, + 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 194, 201, 209, 219, + 223, 230, 244, 259, 261, 268, 281, 286, 290, 295, + 296, 299, 305, 353, 359, 360, 361, 362, 379, 380, + 381, 384, 387, 388, 391, 393, 394, 397, 401, 405, + 406, 407, 408, 410, 412, 419, 424, 438, 439, 440, + 441, 442, 445, 446, 451, 452, 453, 454, 455, 463, + 464, 468, 486, 488, 500, 515, 520, 444, 282, 495, + 521, 0, 352, 0, 0, 354, 264, 285, 297, 0, + 510, 465, 214, 430, 273, 236, 0, 0, 202, 233, + 217, 242, 257, 260, 301, 363, 370, 399, 404, 279, + 254, 231, 423, 228, 448, 471, 472, 473, 475, 367, + 249, 403, 0, 368, 350, 477, 478, 293, 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 193, 194, 201, 209, - 219, 223, 230, 244, 259, 261, 268, 281, 286, 290, - 295, 296, 299, 305, 353, 359, 360, 361, 362, 379, - 380, 381, 384, 387, 388, 391, 393, 394, 397, 401, - 405, 406, 407, 408, 410, 412, 419, 424, 438, 439, - 440, 441, 442, 445, 446, 451, 452, 453, 454, 455, - 463, 464, 468, 486, 488, 500, 515, 520, 444, 282, - 495, 521, 0, 352, 0, 0, 354, 264, 285, 297, - 0, 510, 465, 214, 430, 273, 236, 0, 0, 202, - 233, 217, 242, 257, 260, 301, 363, 370, 399, 404, - 279, 254, 231, 423, 228, 448, 471, 472, 473, 475, - 367, 249, 403, 0, 368, 350, 477, 478, 293, 476, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 386, 0, 0, 0, 0, 0, 0, 0, 0, - 253, 0, 0, 0, 0, 341, 250, 0, 0, 400, - 0, 197, 0, 450, 237, 351, 348, 483, 265, 256, - 252, 235, 294, 358, 398, 470, 392, 0, 345, 0, - 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 300, 234, - 302, 196, 383, 461, 269, 0, 0, 0, 0, 188, - 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 225, 0, 232, 326, 335, 334, 315, 316, - 318, 320, 325, 332, 338, 0, 0, 0, 0, 0, - 248, 298, 255, 247, 480, 0, 0, 0, 0, 0, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, + 386, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 0, 0, 0, 0, 341, 250, 0, 0, 400, 0, + 197, 0, 450, 237, 351, 348, 483, 265, 256, 252, + 235, 294, 358, 398, 470, 392, 0, 345, 0, 0, + 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 300, 234, 302, + 196, 383, 461, 269, 0, 0, 0, 0, 188, 189, + 190, 0, 1207, 0, 0, 0, 0, 0, 0, 0, + 0, 225, 0, 232, 326, 335, 334, 315, 316, 318, + 320, 325, 332, 338, 0, 0, 0, 0, 0, 248, + 298, 255, 247, 480, 0, 0, 0, 0, 0, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5637,185 +5530,185 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 372, 240, 0, 0, 0, 0, 517, 0, 0, 0, - 0, 0, 0, 0, 340, 0, 307, 192, 212, 0, - 0, 382, 425, 437, 0, 0, 0, 238, 0, 435, - 396, 499, 220, 267, 422, 402, 433, 409, 270, 0, - 0, 434, 346, 485, 416, 496, 518, 519, 246, 376, - 508, 474, 514, 532, 213, 243, 390, 467, 502, 457, - 369, 481, 482, 306, 456, 278, 195, 344, 524, 211, - 443, 229, 218, 487, 505, 272, 420, 203, 469, 494, - 226, 447, 0, 0, 534, 205, 492, 466, 365, 303, - 304, 204, 0, 421, 251, 276, 241, 385, 489, 490, - 239, 535, 215, 513, 207, 0, 512, 378, 484, 493, - 366, 356, 206, 491, 364, 355, 311, 330, 331, 263, - 287, 414, 349, 415, 288, 374, 373, 375, 199, 503, - 0, 200, 0, 462, 504, 536, 221, 222, 224, 0, - 262, 266, 274, 277, 283, 284, 292, 342, 389, 413, - 411, 417, 0, 479, 497, 509, 516, 522, 523, 525, - 526, 527, 528, 529, 531, 530, 377, 291, 458, 310, - 347, 0, 0, 395, 436, 227, 501, 459, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 555, 357, 449, - 498, 312, 324, 327, 317, 336, 0, 337, 313, 314, - 319, 321, 322, 323, 328, 329, 333, 339, 426, 427, - 428, 429, 275, 507, 289, 432, 431, 308, 309, 0, - 191, 208, 343, 0, 418, 271, 533, 511, 506, 198, - 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 280, 0, 372, + 240, 0, 0, 0, 0, 517, 0, 0, 0, 0, + 0, 0, 0, 340, 0, 307, 192, 212, 0, 0, + 382, 425, 437, 0, 0, 0, 238, 0, 435, 396, + 499, 220, 267, 422, 402, 433, 409, 270, 0, 0, + 434, 346, 485, 416, 496, 518, 519, 246, 376, 508, + 474, 514, 532, 213, 243, 390, 467, 502, 457, 369, + 481, 482, 306, 456, 278, 195, 344, 524, 211, 443, + 229, 218, 487, 505, 272, 420, 203, 469, 494, 226, + 447, 0, 0, 534, 205, 492, 466, 365, 303, 304, + 204, 0, 421, 251, 276, 241, 385, 489, 490, 239, + 535, 215, 513, 207, 0, 512, 378, 484, 493, 366, + 356, 206, 491, 364, 355, 311, 330, 331, 263, 287, + 414, 349, 415, 288, 374, 373, 375, 199, 503, 0, + 200, 0, 462, 504, 536, 221, 222, 224, 0, 262, + 266, 274, 277, 283, 284, 292, 342, 389, 413, 411, + 417, 0, 479, 497, 509, 516, 522, 523, 525, 526, + 527, 528, 529, 531, 530, 377, 291, 458, 310, 347, + 0, 0, 395, 436, 227, 501, 459, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 555, 357, 449, 498, + 312, 324, 327, 317, 336, 0, 337, 313, 314, 319, + 321, 322, 323, 328, 329, 333, 339, 426, 427, 428, + 429, 275, 507, 289, 432, 431, 308, 309, 0, 191, + 208, 343, 0, 418, 271, 533, 511, 506, 198, 210, + 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 819, 0, 0, 0, 193, 194, 201, 209, 219, 223, - 230, 244, 259, 261, 268, 281, 286, 290, 295, 296, - 299, 305, 353, 359, 360, 361, 362, 379, 380, 381, - 384, 387, 388, 391, 393, 394, 397, 401, 405, 406, - 407, 408, 410, 412, 419, 424, 438, 439, 440, 441, - 442, 445, 446, 451, 452, 453, 454, 455, 463, 464, - 468, 486, 488, 500, 515, 520, 444, 282, 495, 521, - 0, 352, 0, 0, 354, 264, 285, 297, 0, 510, - 465, 214, 430, 273, 236, 0, 0, 202, 233, 217, - 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, - 231, 423, 228, 448, 471, 472, 473, 475, 367, 249, - 403, 0, 368, 350, 477, 478, 293, 476, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, - 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, - 0, 0, 0, 341, 250, 0, 0, 400, 0, 197, - 0, 450, 237, 351, 348, 483, 265, 256, 252, 235, - 294, 358, 398, 470, 392, 0, 345, 0, 0, 460, - 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 300, 234, 302, 196, - 383, 461, 269, 0, 0, 0, 0, 188, 189, 190, + 0, 0, 0, 193, 194, 201, 209, 219, 223, 230, + 244, 259, 261, 268, 281, 286, 290, 295, 296, 299, + 305, 353, 359, 360, 361, 362, 379, 380, 381, 384, + 387, 388, 391, 393, 394, 397, 401, 405, 406, 407, + 408, 410, 412, 419, 424, 438, 439, 440, 441, 442, + 445, 446, 451, 452, 453, 454, 455, 463, 464, 468, + 486, 488, 500, 515, 520, 444, 282, 495, 521, 0, + 352, 0, 0, 354, 264, 285, 297, 0, 510, 465, + 214, 430, 273, 236, 0, 0, 202, 233, 217, 242, + 257, 260, 301, 363, 370, 399, 404, 279, 254, 231, + 423, 228, 448, 471, 472, 473, 475, 367, 249, 403, + 0, 368, 350, 477, 478, 293, 476, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 386, 0, + 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, + 0, 0, 341, 250, 0, 0, 400, 0, 197, 0, + 450, 237, 351, 348, 483, 265, 256, 252, 235, 294, + 358, 398, 470, 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 225, 0, 232, 326, 335, 334, 315, 316, 318, 320, - 325, 332, 338, 0, 0, 0, 0, 0, 248, 298, - 255, 247, 480, 0, 0, 0, 0, 0, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 300, 234, 302, 196, 383, + 461, 269, 0, 0, 0, 0, 188, 189, 190, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, + 0, 232, 326, 335, 334, 315, 316, 318, 320, 325, + 332, 338, 0, 0, 0, 0, 0, 248, 298, 255, + 247, 480, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 612, 0, 280, 0, 372, 240, - 0, 0, 0, 0, 517, 0, 0, 0, 0, 0, - 0, 0, 340, 0, 307, 192, 212, 0, 0, 382, - 425, 437, 0, 0, 0, 238, 0, 435, 396, 499, - 220, 267, 422, 402, 433, 409, 270, 0, 0, 434, - 346, 485, 416, 496, 518, 519, 246, 376, 508, 474, - 514, 532, 213, 243, 390, 467, 502, 457, 369, 481, - 482, 306, 456, 278, 195, 344, 524, 211, 443, 229, - 218, 487, 505, 272, 420, 203, 469, 494, 226, 447, - 0, 0, 534, 205, 492, 466, 365, 303, 304, 204, - 0, 421, 251, 276, 241, 385, 489, 490, 239, 535, - 215, 513, 207, 0, 512, 378, 484, 493, 366, 356, - 206, 491, 364, 355, 311, 330, 331, 263, 287, 414, - 349, 415, 288, 374, 373, 375, 199, 503, 0, 200, - 0, 462, 504, 536, 221, 222, 224, 0, 262, 266, - 274, 277, 283, 284, 292, 342, 389, 413, 411, 417, - 0, 479, 497, 509, 516, 522, 523, 525, 526, 527, - 528, 529, 531, 530, 377, 291, 458, 310, 347, 0, - 0, 395, 436, 227, 501, 459, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 555, 357, 449, 498, 312, - 324, 327, 317, 336, 0, 337, 313, 314, 319, 321, - 322, 323, 328, 329, 333, 339, 426, 427, 428, 429, - 275, 507, 289, 432, 431, 308, 309, 0, 191, 208, - 343, 0, 418, 271, 533, 511, 506, 198, 210, 0, - 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 194, 201, 209, 219, 223, 230, 244, - 259, 261, 268, 281, 286, 290, 295, 296, 299, 305, - 353, 359, 360, 361, 362, 379, 380, 381, 384, 387, - 388, 391, 393, 394, 397, 401, 405, 406, 407, 408, - 410, 412, 419, 424, 438, 439, 440, 441, 442, 445, - 446, 451, 452, 453, 454, 455, 463, 464, 468, 486, - 488, 500, 515, 520, 444, 611, 495, 521, 0, 352, - 0, 0, 354, 264, 285, 297, 0, 510, 465, 214, - 430, 273, 236, 0, 0, 202, 233, 217, 242, 257, - 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, - 228, 448, 471, 472, 473, 475, 367, 249, 403, 0, - 368, 350, 477, 478, 293, 476, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 386, 0, 0, - 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, - 0, 341, 250, 0, 0, 400, 0, 197, 0, 450, - 237, 351, 348, 483, 265, 256, 252, 235, 294, 358, - 398, 470, 392, 0, 345, 0, 0, 460, 371, 0, + 0, 0, 0, 0, 0, 280, 0, 372, 240, 0, + 0, 0, 0, 517, 0, 0, 0, 0, 0, 0, + 0, 340, 0, 307, 192, 212, 0, 0, 382, 425, + 437, 0, 0, 0, 238, 0, 435, 396, 499, 220, + 267, 422, 402, 433, 409, 270, 0, 0, 434, 346, + 485, 416, 496, 518, 519, 246, 376, 508, 474, 514, + 532, 213, 243, 390, 467, 502, 457, 369, 481, 482, + 306, 456, 278, 195, 344, 524, 211, 443, 229, 218, + 487, 505, 272, 420, 203, 469, 494, 226, 447, 0, + 0, 534, 205, 492, 466, 365, 303, 304, 204, 0, + 421, 251, 276, 241, 385, 489, 490, 239, 535, 215, + 513, 207, 0, 512, 378, 484, 493, 366, 356, 206, + 491, 364, 355, 311, 330, 331, 263, 287, 414, 349, + 415, 288, 374, 373, 375, 199, 503, 0, 200, 0, + 462, 504, 536, 221, 222, 224, 0, 262, 266, 274, + 277, 283, 284, 292, 342, 389, 413, 411, 417, 0, + 479, 497, 509, 516, 522, 523, 525, 526, 527, 528, + 529, 531, 530, 377, 291, 458, 310, 347, 0, 0, + 395, 436, 227, 501, 459, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 555, 357, 449, 498, 312, 324, + 327, 317, 336, 0, 337, 313, 314, 319, 321, 322, + 323, 328, 329, 333, 339, 426, 427, 428, 429, 275, + 507, 289, 432, 431, 308, 309, 0, 191, 208, 343, + 0, 418, 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 300, 234, 302, 196, 383, 461, - 269, 0, 0, 0, 0, 188, 189, 190, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, - 232, 326, 335, 334, 315, 316, 318, 320, 325, 332, - 338, 0, 0, 0, 0, 0, 248, 298, 255, 247, - 480, 0, 0, 0, 0, 0, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 819, 0, 0, + 0, 193, 194, 201, 209, 219, 223, 230, 244, 259, + 261, 268, 281, 286, 290, 295, 296, 299, 305, 353, + 359, 360, 361, 362, 379, 380, 381, 384, 387, 388, + 391, 393, 394, 397, 401, 405, 406, 407, 408, 410, + 412, 419, 424, 438, 439, 440, 441, 442, 445, 446, + 451, 452, 453, 454, 455, 463, 464, 468, 486, 488, + 500, 515, 520, 444, 282, 495, 521, 0, 352, 0, + 0, 354, 264, 285, 297, 0, 510, 465, 214, 430, + 273, 236, 0, 0, 202, 233, 217, 242, 257, 260, + 301, 363, 370, 399, 404, 279, 254, 231, 423, 228, + 448, 471, 472, 473, 475, 367, 249, 403, 0, 368, + 350, 477, 478, 293, 476, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 386, 0, 0, 0, + 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, + 341, 250, 0, 0, 400, 0, 197, 0, 450, 237, + 351, 348, 483, 265, 256, 252, 235, 294, 358, 398, + 470, 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 300, 234, 302, 196, 383, 461, 269, + 0, 0, 0, 0, 188, 189, 190, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 225, 0, 232, + 326, 335, 334, 315, 316, 318, 320, 325, 332, 338, + 0, 0, 0, 0, 0, 248, 298, 255, 247, 480, + 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 372, 240, 0, 0, - 558, 0, 517, 0, 0, 0, 0, 0, 0, 0, - 340, 0, 307, 192, 212, 0, 0, 382, 425, 437, - 0, 0, 0, 238, 0, 435, 396, 499, 220, 267, - 422, 402, 433, 409, 270, 0, 0, 434, 346, 485, - 416, 496, 518, 519, 246, 376, 508, 474, 514, 532, - 213, 243, 390, 467, 502, 457, 369, 481, 482, 306, - 456, 278, 195, 344, 524, 211, 443, 229, 218, 487, - 505, 272, 420, 203, 469, 494, 226, 447, 0, 0, - 534, 205, 492, 466, 365, 303, 304, 204, 0, 421, - 251, 276, 241, 385, 489, 490, 239, 535, 215, 513, - 207, 0, 512, 378, 484, 493, 366, 356, 206, 491, - 364, 355, 311, 330, 331, 263, 287, 414, 349, 415, - 288, 374, 373, 375, 199, 503, 0, 200, 0, 462, - 504, 536, 221, 222, 224, 0, 262, 266, 274, 277, - 283, 284, 292, 342, 389, 413, 411, 417, 0, 479, - 497, 509, 516, 522, 523, 525, 526, 527, 528, 529, - 531, 530, 377, 291, 458, 310, 347, 0, 0, 395, - 436, 227, 501, 459, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 555, 357, 449, 498, 312, 324, 327, - 317, 336, 0, 337, 313, 314, 319, 321, 322, 323, - 328, 329, 333, 339, 426, 427, 428, 429, 275, 507, - 289, 432, 431, 308, 309, 0, 191, 208, 343, 0, - 418, 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 612, 0, 280, 0, 372, 240, 0, 0, 0, + 0, 517, 0, 0, 0, 0, 0, 0, 0, 340, + 0, 307, 192, 212, 0, 0, 382, 425, 437, 0, + 0, 0, 238, 0, 435, 396, 499, 220, 267, 422, + 402, 433, 409, 270, 0, 0, 434, 346, 485, 416, + 496, 518, 519, 246, 376, 508, 474, 514, 532, 213, + 243, 390, 467, 502, 457, 369, 481, 482, 306, 456, + 278, 195, 344, 524, 211, 443, 229, 218, 487, 505, + 272, 420, 203, 469, 494, 226, 447, 0, 0, 534, + 205, 492, 466, 365, 303, 304, 204, 0, 421, 251, + 276, 241, 385, 489, 490, 239, 535, 215, 513, 207, + 0, 512, 378, 484, 493, 366, 356, 206, 491, 364, + 355, 311, 330, 331, 263, 287, 414, 349, 415, 288, + 374, 373, 375, 199, 503, 0, 200, 0, 462, 504, + 536, 221, 222, 224, 0, 262, 266, 274, 277, 283, + 284, 292, 342, 389, 413, 411, 417, 0, 479, 497, + 509, 516, 522, 523, 525, 526, 527, 528, 529, 531, + 530, 377, 291, 458, 310, 347, 0, 0, 395, 436, + 227, 501, 459, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 555, 357, 449, 498, 312, 324, 327, 317, + 336, 0, 337, 313, 314, 319, 321, 322, 323, 328, + 329, 333, 339, 426, 427, 428, 429, 275, 507, 289, + 432, 431, 308, 309, 0, 191, 208, 343, 0, 418, + 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 193, 194, 201, 209, 219, 223, 230, 244, 259, 261, - 268, 281, 286, 290, 295, 296, 299, 305, 353, 359, - 360, 361, 362, 379, 380, 381, 384, 387, 388, 391, - 393, 394, 397, 401, 405, 406, 407, 408, 410, 412, - 419, 424, 438, 439, 440, 441, 442, 445, 446, 451, - 452, 453, 454, 455, 463, 464, 468, 486, 488, 500, - 515, 520, 444, 282, 495, 521, 0, 352, 0, 0, - 354, 264, 285, 297, 0, 510, 465, 214, 430, 273, - 236, 0, 0, 202, 233, 217, 242, 257, 260, 301, - 363, 370, 399, 404, 279, 254, 231, 423, 228, 448, - 471, 472, 473, 475, 367, 249, 403, 0, 368, 350, - 477, 478, 293, 476, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 386, 0, 0, 0, 0, - 0, 0, 0, 0, 253, 0, 0, 0, 0, 341, - 250, 0, 0, 400, 0, 197, 0, 450, 237, 351, - 348, 483, 265, 256, 252, 235, 294, 358, 398, 470, - 392, 0, 345, 0, 0, 460, 371, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, + 194, 201, 209, 219, 223, 230, 244, 259, 261, 268, + 281, 286, 290, 295, 296, 299, 305, 353, 359, 360, + 361, 362, 379, 380, 381, 384, 387, 388, 391, 393, + 394, 397, 401, 405, 406, 407, 408, 410, 412, 419, + 424, 438, 439, 440, 441, 442, 445, 446, 451, 452, + 453, 454, 455, 463, 464, 468, 486, 488, 500, 515, + 520, 444, 611, 495, 521, 0, 352, 0, 0, 354, + 264, 285, 297, 0, 510, 465, 214, 430, 273, 236, + 0, 0, 202, 233, 217, 242, 257, 260, 301, 363, + 370, 399, 404, 279, 254, 231, 423, 228, 448, 471, + 472, 473, 475, 367, 249, 403, 0, 368, 350, 477, + 478, 293, 476, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 386, 0, 0, 0, 0, 0, + 0, 0, 0, 253, 0, 0, 0, 0, 341, 250, + 0, 0, 400, 0, 197, 0, 450, 237, 351, 348, + 483, 265, 256, 252, 235, 294, 358, 398, 470, 392, + 0, 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 300, 234, 302, 196, 383, 461, 269, 0, - 0, 0, 0, 188, 189, 190, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 225, 0, 232, 326, - 335, 334, 315, 316, 318, 320, 325, 332, 338, 0, - 0, 0, 0, 0, 248, 298, 255, 247, 480, 0, - 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, + 0, 300, 234, 302, 196, 383, 461, 269, 0, 0, + 0, 0, 188, 189, 190, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 225, 0, 232, 326, 335, + 334, 315, 316, 318, 320, 325, 332, 338, 0, 0, + 0, 0, 0, 248, 298, 255, 247, 480, 0, 0, + 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, + 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5823,60 +5716,60 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 372, 240, 0, 0, 0, 0, - 517, 0, 0, 0, 0, 0, 0, 0, 340, 0, - 307, 192, 212, 0, 0, 382, 425, 437, 0, 0, - 0, 238, 0, 435, 396, 499, 220, 267, 422, 402, - 433, 409, 270, 0, 0, 434, 346, 485, 416, 496, - 518, 519, 246, 376, 508, 474, 514, 532, 213, 243, - 390, 467, 502, 457, 369, 481, 482, 306, 456, 278, - 195, 344, 524, 211, 443, 229, 218, 487, 505, 272, - 420, 203, 469, 494, 226, 447, 0, 0, 534, 205, - 492, 466, 365, 303, 304, 204, 0, 421, 251, 276, - 241, 385, 489, 490, 239, 535, 215, 513, 207, 0, - 512, 378, 484, 493, 366, 356, 206, 491, 364, 355, - 311, 330, 331, 263, 287, 414, 349, 415, 288, 374, - 373, 375, 199, 503, 0, 200, 0, 462, 504, 536, - 221, 222, 224, 0, 262, 266, 274, 277, 283, 284, - 292, 342, 389, 413, 411, 417, 0, 479, 497, 509, - 516, 522, 523, 525, 526, 527, 528, 529, 531, 530, - 377, 291, 458, 310, 347, 0, 0, 395, 436, 227, - 501, 459, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 555, 357, 449, 498, 312, 324, 327, 317, 336, - 0, 337, 313, 314, 319, 321, 322, 323, 328, 329, - 333, 339, 426, 427, 428, 429, 275, 507, 289, 432, - 431, 308, 309, 0, 191, 208, 343, 0, 418, 271, - 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, + 0, 280, 0, 372, 240, 0, 0, 558, 0, 517, + 0, 0, 0, 0, 0, 0, 0, 340, 0, 307, + 192, 212, 0, 0, 382, 425, 437, 0, 0, 0, + 238, 0, 435, 396, 499, 220, 267, 422, 402, 433, + 409, 270, 0, 0, 434, 346, 485, 416, 496, 518, + 519, 246, 376, 508, 474, 514, 532, 213, 243, 390, + 467, 502, 457, 369, 481, 482, 306, 456, 278, 195, + 344, 524, 211, 443, 229, 218, 487, 505, 272, 420, + 203, 469, 494, 226, 447, 0, 0, 534, 205, 492, + 466, 365, 303, 304, 204, 0, 421, 251, 276, 241, + 385, 489, 490, 239, 535, 215, 513, 207, 0, 512, + 378, 484, 493, 366, 356, 206, 491, 364, 355, 311, + 330, 331, 263, 287, 414, 349, 415, 288, 374, 373, + 375, 199, 503, 0, 200, 0, 462, 504, 536, 221, + 222, 224, 0, 262, 266, 274, 277, 283, 284, 292, + 342, 389, 413, 411, 417, 0, 479, 497, 509, 516, + 522, 523, 525, 526, 527, 528, 529, 531, 530, 377, + 291, 458, 310, 347, 0, 0, 395, 436, 227, 501, + 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 193, 194, - 201, 209, 219, 223, 230, 244, 259, 261, 268, 281, - 286, 290, 295, 296, 299, 305, 353, 359, 360, 361, - 362, 3195, 380, 381, 384, 387, 388, 391, 393, 394, - 397, 401, 405, 406, 407, 408, 410, 412, 419, 424, - 438, 439, 440, 441, 442, 445, 446, 451, 452, 453, - 454, 455, 463, 464, 468, 486, 488, 500, 515, 520, - 444, 282, 495, 521, 0, 352, 0, 0, 354, 264, - 285, 297, 0, 510, 465, 214, 430, 273, 236, 0, - 0, 202, 233, 217, 242, 257, 260, 301, 363, 370, - 399, 404, 279, 254, 231, 423, 228, 448, 471, 472, - 473, 475, 367, 249, 403, 0, 368, 350, 477, 478, - 293, 476, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 386, 0, 0, 0, 0, 0, 0, - 0, 0, 253, 0, 0, 0, 0, 341, 250, 0, - 0, 400, 0, 197, 0, 450, 237, 351, 348, 483, - 265, 256, 252, 235, 294, 358, 398, 470, 392, 0, - 345, 0, 0, 460, 371, 0, 0, 0, 0, 0, + 555, 357, 449, 498, 312, 324, 327, 317, 336, 0, + 337, 313, 314, 319, 321, 322, 323, 328, 329, 333, + 339, 426, 427, 428, 429, 275, 507, 289, 432, 431, + 308, 309, 0, 191, 208, 343, 0, 418, 271, 533, + 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 300, 234, 302, 196, 383, 461, 269, 0, 0, 0, - 0, 188, 189, 190, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 225, 0, 232, 326, 335, 334, - 315, 316, 318, 320, 325, 332, 338, 0, 0, 0, - 0, 0, 248, 298, 255, 247, 480, 0, 0, 0, - 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, + 0, 0, 0, 0, 0, 0, 0, 193, 194, 201, + 209, 219, 223, 230, 244, 259, 261, 268, 281, 286, + 290, 295, 296, 299, 305, 353, 359, 360, 361, 362, + 379, 380, 381, 384, 387, 388, 391, 393, 394, 397, + 401, 405, 406, 407, 408, 410, 412, 419, 424, 438, + 439, 440, 441, 442, 445, 446, 451, 452, 453, 454, + 455, 463, 464, 468, 486, 488, 500, 515, 520, 444, + 282, 495, 521, 0, 352, 0, 0, 354, 264, 285, + 297, 0, 510, 465, 214, 430, 273, 236, 0, 0, + 202, 233, 217, 242, 257, 260, 301, 363, 370, 399, + 404, 279, 254, 231, 423, 228, 448, 471, 472, 473, + 475, 367, 249, 403, 0, 368, 350, 477, 478, 293, + 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 386, 0, 0, 0, 0, 0, 0, 0, + 0, 253, 0, 0, 0, 0, 341, 250, 0, 0, + 400, 0, 197, 0, 450, 237, 351, 348, 483, 265, + 256, 252, 235, 294, 358, 398, 470, 392, 0, 345, + 0, 0, 460, 371, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, + 234, 302, 196, 383, 461, 269, 0, 0, 0, 0, + 188, 189, 190, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 225, 0, 232, 326, 335, 334, 315, + 316, 318, 320, 325, 332, 338, 0, 0, 0, 0, + 0, 248, 298, 255, 247, 480, 0, 0, 0, 0, + 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5884,193 +5777,255 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 372, 240, 0, 0, 0, 0, 517, 0, 0, + 0, 0, 0, 0, 0, 340, 0, 307, 192, 212, + 0, 0, 382, 425, 437, 0, 0, 0, 238, 0, + 435, 396, 499, 220, 267, 422, 402, 433, 409, 270, + 0, 0, 434, 346, 485, 416, 496, 518, 519, 246, + 376, 508, 474, 514, 532, 213, 243, 390, 467, 502, + 457, 369, 481, 482, 306, 456, 278, 195, 344, 524, + 211, 443, 229, 218, 487, 505, 272, 420, 203, 469, + 494, 226, 447, 0, 0, 534, 205, 492, 466, 365, + 303, 304, 204, 0, 421, 251, 276, 241, 385, 489, + 490, 239, 535, 215, 513, 207, 0, 512, 378, 484, + 493, 366, 356, 206, 491, 364, 355, 311, 330, 331, + 263, 287, 414, 349, 415, 288, 374, 373, 375, 199, + 503, 0, 200, 0, 462, 504, 536, 221, 222, 224, + 0, 262, 266, 274, 277, 283, 284, 292, 342, 389, + 413, 411, 417, 0, 479, 497, 509, 516, 522, 523, + 525, 526, 527, 528, 529, 531, 530, 377, 291, 458, + 310, 347, 0, 0, 395, 436, 227, 501, 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 280, 0, 372, 240, 0, 0, 0, 0, 517, 0, - 0, 0, 0, 0, 0, 0, 340, 0, 307, 192, - 212, 0, 0, 382, 425, 437, 0, 0, 0, 238, - 0, 435, 396, 499, 220, 267, 422, 402, 433, 409, - 270, 0, 0, 434, 346, 485, 416, 496, 518, 519, - 246, 376, 508, 474, 514, 532, 213, 243, 390, 467, - 502, 457, 369, 481, 482, 306, 456, 278, 195, 344, - 524, 211, 443, 229, 218, 487, 505, 272, 420, 203, - 469, 494, 226, 447, 0, 0, 534, 205, 492, 466, - 365, 303, 304, 204, 0, 421, 251, 276, 241, 385, - 489, 490, 239, 535, 215, 513, 207, 0, 512, 378, - 484, 493, 366, 356, 206, 491, 364, 355, 311, 330, - 331, 263, 287, 414, 349, 415, 288, 374, 373, 375, - 199, 503, 0, 200, 0, 462, 504, 536, 221, 222, - 224, 0, 262, 266, 274, 277, 283, 284, 292, 342, - 389, 413, 411, 417, 0, 479, 497, 509, 516, 522, - 523, 525, 526, 527, 528, 529, 531, 530, 377, 291, - 458, 310, 347, 0, 0, 395, 436, 227, 501, 459, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 555, 357, + 449, 498, 312, 324, 327, 317, 336, 0, 337, 313, + 314, 319, 321, 322, 323, 328, 329, 333, 339, 426, + 427, 428, 429, 275, 507, 289, 432, 431, 308, 309, + 0, 191, 208, 343, 0, 418, 271, 533, 511, 506, + 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 194, 201, 209, 219, + 223, 230, 244, 259, 261, 268, 281, 286, 290, 295, + 296, 299, 305, 353, 359, 360, 361, 362, 3189, 380, + 381, 384, 387, 388, 391, 393, 394, 397, 401, 405, + 406, 407, 408, 410, 412, 419, 424, 438, 439, 440, + 441, 442, 445, 446, 451, 452, 453, 454, 455, 463, + 464, 468, 486, 488, 500, 515, 520, 444, 282, 495, + 521, 0, 352, 0, 0, 354, 264, 285, 297, 0, + 510, 465, 214, 430, 273, 236, 0, 0, 202, 233, + 217, 242, 257, 260, 301, 363, 370, 399, 404, 279, + 254, 231, 423, 228, 448, 471, 472, 473, 475, 367, + 249, 403, 0, 368, 350, 477, 478, 293, 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 555, - 357, 449, 498, 312, 324, 327, 317, 336, 0, 337, - 313, 314, 319, 321, 322, 323, 328, 329, 333, 339, - 426, 427, 428, 429, 275, 507, 289, 432, 431, 308, - 309, 0, 191, 208, 343, 0, 418, 271, 533, 511, - 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, + 386, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 0, 0, 0, 0, 341, 250, 0, 0, 400, 0, + 197, 0, 450, 237, 351, 348, 483, 265, 256, 252, + 235, 294, 358, 398, 470, 392, 0, 345, 0, 0, + 460, 371, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 300, 234, 302, + 196, 383, 461, 269, 0, 0, 0, 0, 188, 189, + 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 225, 0, 232, 326, 335, 334, 315, 316, 318, + 320, 325, 332, 338, 0, 0, 0, 0, 0, 248, + 298, 255, 247, 480, 0, 0, 0, 0, 0, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 193, 194, 201, 209, - 219, 223, 230, 244, 259, 261, 268, 281, 286, 290, - 295, 296, 299, 305, 353, 359, 360, 361, 362, 379, - 380, 381, 384, 387, 388, 391, 393, 394, 397, 401, - 405, 406, 407, 408, 410, 412, 419, 424, 438, 439, - 440, 441, 442, 445, 446, 451, 452, 453, 454, 455, - 463, 464, 468, 486, 488, 500, 515, 520, 444, 282, - 495, 521, 0, 352, 0, 0, 354, 264, 285, 297, - 0, 510, 465, 214, 430, 273, 236, 0, 0, 202, - 233, 217, 242, 257, 260, 301, 363, 370, 399, 404, - 279, 254, 231, 423, 228, 448, 471, 472, 473, 475, - 367, 249, 403, 0, 368, 350, 477, 478, 293, 476, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 386, 0, 0, 0, 0, 0, 0, 0, 0, - 253, 0, 0, 0, 0, 341, 250, 0, 0, 400, - 0, 197, 0, 450, 237, 351, 348, 483, 265, 256, - 252, 235, 294, 358, 398, 470, 392, 0, 345, 0, - 0, 460, 371, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 300, 234, - 302, 196, 383, 461, 269, 0, 0, 0, 0, 188, - 2743, 190, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 225, 0, 232, 326, 335, 334, 315, 316, - 318, 320, 325, 332, 338, 0, 0, 0, 0, 0, - 248, 298, 255, 247, 480, 0, 0, 0, 0, 0, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 280, 0, 372, + 240, 0, 0, 0, 0, 517, 0, 0, 0, 0, + 0, 0, 0, 340, 0, 307, 192, 212, 0, 0, + 382, 425, 437, 0, 0, 0, 238, 0, 435, 396, + 499, 220, 267, 422, 402, 433, 409, 270, 0, 0, + 434, 346, 485, 416, 496, 518, 519, 246, 376, 508, + 474, 514, 532, 213, 243, 390, 467, 502, 457, 369, + 481, 482, 306, 456, 278, 195, 344, 524, 211, 443, + 229, 218, 487, 505, 272, 420, 203, 469, 494, 226, + 447, 0, 0, 534, 205, 492, 466, 365, 303, 304, + 204, 0, 421, 251, 276, 241, 385, 489, 490, 239, + 535, 215, 513, 207, 0, 512, 378, 484, 493, 366, + 356, 206, 491, 364, 355, 311, 330, 331, 263, 287, + 414, 349, 415, 288, 374, 373, 375, 199, 503, 0, + 200, 0, 462, 504, 536, 221, 222, 224, 0, 262, + 266, 274, 277, 283, 284, 292, 342, 389, 413, 411, + 417, 0, 479, 497, 509, 516, 522, 523, 525, 526, + 527, 528, 529, 531, 530, 377, 291, 458, 310, 347, + 0, 0, 395, 436, 227, 501, 459, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 555, 357, 449, 498, + 312, 324, 327, 317, 336, 0, 337, 313, 314, 319, + 321, 322, 323, 328, 329, 333, 339, 426, 427, 428, + 429, 275, 507, 289, 432, 431, 308, 309, 0, 191, + 208, 343, 0, 418, 271, 533, 511, 506, 198, 210, + 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 372, 240, 0, 0, 0, 0, 517, 0, 0, 0, - 0, 0, 0, 0, 340, 0, 307, 192, 212, 0, - 0, 382, 425, 437, 0, 0, 0, 238, 0, 435, - 396, 499, 220, 267, 422, 402, 433, 409, 270, 0, - 0, 434, 346, 485, 416, 496, 518, 519, 246, 376, - 508, 474, 514, 532, 213, 243, 390, 467, 502, 457, - 369, 481, 482, 306, 456, 278, 195, 344, 524, 211, - 443, 229, 218, 487, 505, 272, 420, 203, 469, 494, - 226, 447, 0, 0, 534, 205, 492, 466, 365, 303, - 304, 204, 0, 421, 251, 276, 241, 385, 489, 490, - 239, 535, 215, 513, 207, 0, 512, 378, 484, 493, - 366, 356, 206, 491, 364, 355, 311, 330, 331, 263, - 287, 414, 349, 415, 288, 374, 373, 375, 199, 503, - 0, 200, 0, 462, 504, 536, 221, 222, 224, 0, - 262, 266, 274, 277, 283, 284, 292, 342, 389, 413, - 411, 417, 0, 479, 497, 509, 516, 522, 523, 525, - 526, 527, 528, 529, 531, 530, 377, 291, 458, 310, - 347, 0, 0, 395, 436, 227, 501, 459, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 555, 357, 449, - 498, 312, 324, 327, 317, 336, 0, 337, 313, 314, - 319, 321, 322, 323, 328, 329, 333, 339, 426, 427, - 428, 429, 275, 507, 289, 432, 431, 308, 309, 0, - 191, 208, 343, 0, 418, 271, 533, 511, 506, 198, - 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 193, 194, 201, 209, 219, 223, 230, + 244, 259, 261, 268, 281, 286, 290, 295, 296, 299, + 305, 353, 359, 360, 361, 362, 379, 380, 381, 384, + 387, 388, 391, 393, 394, 397, 401, 405, 406, 407, + 408, 410, 412, 419, 424, 438, 439, 440, 441, 442, + 445, 446, 451, 452, 453, 454, 455, 463, 464, 468, + 486, 488, 500, 515, 520, 444, 282, 495, 521, 0, + 352, 0, 0, 354, 264, 285, 297, 0, 510, 465, + 214, 430, 273, 236, 0, 0, 202, 233, 217, 242, + 257, 260, 301, 363, 370, 399, 404, 279, 254, 231, + 423, 228, 448, 471, 472, 473, 475, 367, 249, 403, + 0, 368, 350, 477, 478, 293, 476, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 386, 0, + 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, + 0, 0, 341, 250, 0, 0, 400, 0, 197, 0, + 450, 237, 351, 348, 483, 265, 256, 252, 235, 294, + 358, 398, 470, 392, 0, 345, 0, 0, 460, 371, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 300, 234, 302, 196, 383, + 461, 269, 0, 0, 0, 0, 188, 2739, 190, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, + 0, 232, 326, 335, 334, 315, 316, 318, 320, 325, + 332, 338, 0, 0, 0, 0, 0, 248, 298, 255, + 247, 480, 0, 0, 0, 0, 0, 0, 0, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 258, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 372, 240, 0, + 0, 0, 0, 517, 0, 0, 0, 0, 0, 0, + 0, 340, 0, 307, 192, 212, 0, 0, 382, 425, + 437, 0, 0, 0, 238, 0, 435, 396, 499, 220, + 267, 422, 402, 433, 409, 270, 0, 0, 434, 346, + 485, 416, 496, 518, 519, 246, 376, 508, 474, 514, + 532, 213, 243, 390, 467, 502, 457, 369, 481, 482, + 306, 456, 278, 195, 344, 524, 211, 443, 229, 218, + 487, 505, 272, 420, 203, 469, 494, 226, 447, 0, + 0, 534, 205, 492, 466, 365, 303, 304, 204, 0, + 421, 251, 276, 241, 385, 489, 490, 239, 535, 215, + 513, 207, 0, 512, 378, 484, 493, 366, 356, 206, + 491, 364, 355, 311, 330, 331, 263, 287, 414, 349, + 415, 288, 374, 373, 375, 199, 503, 0, 200, 0, + 462, 504, 536, 221, 222, 224, 0, 262, 266, 274, + 277, 283, 284, 292, 342, 389, 413, 411, 417, 0, + 479, 497, 509, 516, 522, 523, 525, 526, 527, 528, + 529, 531, 530, 377, 291, 458, 310, 347, 0, 0, + 395, 436, 227, 501, 459, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 555, 357, 449, 498, 312, 324, + 327, 317, 336, 0, 337, 313, 314, 319, 321, 322, + 323, 328, 329, 333, 339, 426, 427, 428, 429, 275, + 507, 289, 432, 431, 308, 309, 0, 191, 208, 343, + 0, 418, 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 193, 194, 201, 209, 219, 223, - 230, 244, 259, 261, 268, 281, 286, 290, 295, 296, - 299, 305, 353, 359, 360, 361, 362, 379, 380, 381, - 384, 387, 388, 391, 393, 394, 397, 401, 405, 406, - 407, 408, 410, 412, 419, 424, 438, 439, 440, 441, - 442, 445, 446, 451, 452, 453, 454, 455, 463, 464, - 468, 486, 488, 500, 515, 520, 444, 282, 495, 521, - 0, 352, 0, 0, 354, 264, 285, 297, 0, 510, - 465, 214, 430, 273, 236, 0, 0, 202, 233, 217, - 242, 257, 260, 301, 363, 370, 399, 404, 279, 254, - 231, 423, 228, 448, 471, 472, 473, 475, 367, 249, - 403, 0, 368, 350, 477, 478, 293, 476, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, - 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, - 0, 0, 0, 341, 250, 0, 0, 400, 0, 197, - 0, 450, 237, 351, 348, 483, 265, 256, 252, 235, - 294, 358, 398, 470, 392, 0, 345, 0, 0, 460, - 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 300, 234, 302, 196, - 383, 461, 269, 0, 0, 0, 0, 188, 2218, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 225, 0, 232, 326, 335, 334, 315, 316, 318, 320, - 325, 332, 338, 0, 0, 0, 0, 0, 248, 298, - 255, 247, 480, 0, 0, 0, 0, 0, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, + 0, 193, 194, 201, 209, 219, 223, 230, 244, 259, + 261, 268, 281, 286, 290, 295, 296, 299, 305, 353, + 359, 360, 361, 362, 379, 380, 381, 384, 387, 388, + 391, 393, 394, 397, 401, 405, 406, 407, 408, 410, + 412, 419, 424, 438, 439, 440, 441, 442, 445, 446, + 451, 452, 453, 454, 455, 463, 464, 468, 486, 488, + 500, 515, 520, 444, 282, 495, 521, 0, 352, 0, + 0, 354, 264, 285, 297, 0, 510, 465, 214, 430, + 273, 236, 0, 0, 202, 233, 217, 242, 257, 260, + 301, 363, 370, 399, 404, 279, 254, 231, 423, 228, + 448, 471, 472, 473, 475, 367, 249, 403, 0, 368, + 350, 477, 478, 293, 476, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 386, 0, 0, 0, + 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, + 341, 250, 0, 0, 400, 0, 197, 0, 450, 237, + 351, 348, 483, 265, 256, 252, 235, 294, 358, 398, + 470, 392, 0, 345, 0, 0, 460, 371, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 300, 234, 302, 196, 383, 461, 269, + 0, 0, 0, 0, 188, 2218, 190, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 225, 0, 232, + 326, 335, 334, 315, 316, 318, 320, 325, 332, 338, + 0, 0, 0, 0, 0, 248, 298, 255, 247, 480, + 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 372, 240, - 0, 0, 0, 0, 517, 0, 0, 0, 0, 0, - 0, 0, 340, 0, 307, 192, 212, 0, 0, 382, - 425, 437, 0, 0, 0, 238, 0, 435, 396, 499, - 220, 267, 422, 402, 433, 409, 270, 0, 0, 434, - 346, 485, 416, 496, 518, 519, 246, 376, 508, 474, - 514, 532, 213, 243, 390, 467, 502, 457, 369, 481, - 482, 306, 456, 278, 195, 344, 524, 211, 443, 229, - 218, 487, 505, 272, 420, 203, 469, 494, 226, 447, - 0, 0, 534, 205, 492, 466, 365, 303, 304, 204, - 0, 421, 251, 276, 241, 385, 489, 490, 239, 535, - 215, 513, 207, 0, 512, 378, 484, 493, 366, 356, - 206, 491, 364, 355, 311, 330, 331, 263, 287, 414, - 349, 415, 288, 374, 373, 375, 199, 503, 0, 200, - 0, 462, 504, 536, 221, 222, 224, 0, 262, 266, - 274, 277, 283, 284, 292, 342, 389, 413, 411, 417, - 0, 479, 497, 509, 516, 522, 523, 525, 526, 527, - 528, 529, 531, 530, 377, 291, 458, 310, 347, 0, - 0, 395, 436, 227, 501, 459, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 555, 357, 449, 498, 312, - 324, 327, 317, 336, 0, 337, 313, 314, 319, 321, - 322, 323, 328, 329, 333, 339, 426, 427, 428, 429, - 275, 507, 289, 432, 431, 308, 309, 0, 191, 208, - 343, 0, 418, 271, 533, 511, 506, 198, 210, 0, - 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 194, 201, 209, 219, 223, 230, 244, - 259, 261, 268, 281, 286, 290, 295, 296, 299, 305, - 353, 359, 360, 361, 362, 379, 380, 381, 384, 387, - 388, 391, 393, 394, 397, 401, 405, 406, 407, 408, - 410, 412, 419, 424, 438, 439, 440, 441, 442, 445, - 446, 451, 452, 453, 454, 455, 463, 464, 468, 486, - 488, 500, 515, 520, 444, 282, 495, 521, 0, 352, - 0, 0, 354, 264, 285, 297, 0, 510, 465, 214, - 430, 273, 236, 0, 0, 202, 233, 217, 242, 257, - 260, 301, 363, 370, 399, 404, 279, 254, 231, 423, - 228, 448, 471, 472, 473, 475, 367, 249, 403, 0, - 0, 350, 477, 478, 293, + 0, 0, 0, 280, 0, 372, 240, 0, 0, 0, + 0, 517, 0, 0, 0, 0, 0, 0, 0, 340, + 0, 307, 192, 212, 0, 0, 382, 425, 437, 0, + 0, 0, 238, 0, 435, 396, 499, 220, 267, 422, + 402, 433, 409, 270, 0, 0, 434, 346, 485, 416, + 496, 518, 519, 246, 376, 508, 474, 514, 532, 213, + 243, 390, 467, 502, 457, 369, 481, 482, 306, 456, + 278, 195, 344, 524, 211, 443, 229, 218, 487, 505, + 272, 420, 203, 469, 494, 226, 447, 0, 0, 534, + 205, 492, 466, 365, 303, 304, 204, 0, 421, 251, + 276, 241, 385, 489, 490, 239, 535, 215, 513, 207, + 0, 512, 378, 484, 493, 366, 356, 206, 491, 364, + 355, 311, 330, 331, 263, 287, 414, 349, 415, 288, + 374, 373, 375, 199, 503, 0, 200, 0, 462, 504, + 536, 221, 222, 224, 0, 262, 266, 274, 277, 283, + 284, 292, 342, 389, 413, 411, 417, 0, 479, 497, + 509, 516, 522, 523, 525, 526, 527, 528, 529, 531, + 530, 377, 291, 458, 310, 347, 0, 0, 395, 436, + 227, 501, 459, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 555, 357, 449, 498, 312, 324, 327, 317, + 336, 0, 337, 313, 314, 319, 321, 322, 323, 328, + 329, 333, 339, 426, 427, 428, 429, 275, 507, 289, + 432, 431, 308, 309, 0, 191, 208, 343, 0, 418, + 271, 533, 511, 506, 198, 210, 0, 245, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, + 194, 201, 209, 219, 223, 230, 244, 259, 261, 268, + 281, 286, 290, 295, 296, 299, 305, 353, 359, 360, + 361, 362, 379, 380, 381, 384, 387, 388, 391, 393, + 394, 397, 401, 405, 406, 407, 408, 410, 412, 419, + 424, 438, 439, 440, 441, 442, 445, 446, 451, 452, + 453, 454, 455, 463, 464, 468, 486, 488, 500, 515, + 520, 444, 282, 495, 521, 0, 352, 0, 0, 354, + 264, 285, 297, 0, 510, 465, 214, 430, 273, 236, + 0, 0, 202, 233, 217, 242, 257, 260, 301, 363, + 370, 399, 404, 279, 254, 231, 423, 228, 448, 471, + 472, 473, 475, 367, 249, 403, 0, 0, 350, 477, + 478, 293, } var yyPact = [...]int{ - 6302, -1000, -415, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 5660, -1000, -420, -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, 2107, 2694, -1000, -1000, - -1000, -1000, 2292, -1000, 785, 1819, -1000, 2114, 391, -1000, - 43942, 513, -1000, 42706, 511, 3958, 43942, -1000, 225, -1000, - 206, 43942, 220, 42088, -1000, -1000, -273, 19212, 2032, 60, - 58, 43942, -1000, -1000, -1000, -1000, 2267, 1788, -1000, 383, - -1000, -1000, -1000, -1000, -1000, -1000, 41470, -1000, -1000, -1000, - 2109, 2135, 2310, 678, 2028, -1000, 2187, 1788, -1000, 19212, - 2246, 2176, 18594, -1000, 18594, 445, -1000, -1000, 14258, -1000, - -1000, 25402, 43942, 31582, 355, -1000, 2114, -1000, -1000, -1000, - 105, -1000, 358, 1651, -1000, 1643, -1000, 668, 733, 374, - 487, 483, 370, 369, 368, 364, 363, 362, 360, 359, - 393, -1000, 709, 709, -136, -142, 4434, 466, 433, 433, - 494, 2061, 2058, -1000, 724, -1000, 709, 709, 709, 394, - 709, 709, 709, 709, 327, 326, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 350, 2114, 289, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 2134, 2177, -1000, -1000, + -1000, -1000, 2309, -1000, 802, 1815, -1000, 2105, 5175, -1000, + 43489, 544, -1000, 42253, 543, 125, 43489, -1000, 237, -1000, + 227, 43489, 236, 41635, -1000, -1000, -281, 19377, 2030, 81, + 80, 43489, -1000, -1000, -1000, -1000, 2262, 1702, -1000, 397, + -1000, -1000, -1000, -1000, -1000, -1000, 41017, -1000, -1000, -1000, + 2124, 2108, 2311, 676, 2045, -1000, 2199, 1702, -1000, 19377, + 2243, 2184, 18759, -1000, 18759, 503, -1000, -1000, 14423, -1000, + -1000, 24949, 43489, 31129, 307, -1000, 2105, -1000, -1000, -1000, + 120, -1000, 424, 1600, -1000, 1597, -1000, 664, 757, 429, + 547, 531, 425, 423, 422, 421, 408, 407, 405, 400, + 438, -1000, 699, 699, -98, -100, 3793, 499, 490, 490, + 513, 2078, 2062, -1000, 758, -1000, 699, 699, 699, 374, + 699, 699, 699, 699, 364, 362, 699, 699, 699, 699, + 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, + 699, 699, 699, 390, 2105, 308, -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, @@ -6107,39 +6062,39 @@ 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, -1000, 43942, 269, 43942, -1000, - 607, 43942, 830, 830, 126, 830, 830, 830, 830, 179, - 646, 40, -1000, 172, 283, 175, 300, 828, 256, -1000, - -1000, 272, 828, 1301, -1000, 695, 150, -1000, 830, 830, - -1000, 11766, 184, 11766, 11766, -1000, 2068, -1000, -1000, -1000, - -1000, 1306, -1000, 491, -1000, -1000, -1000, -1000, 43942, 40852, - 437, 736, -1000, -1000, -1000, 106, -1000, -1000, 1385, 920, - 19212, 1057, -1000, 1320, 659, -1000, -1000, -1000, -1000, -1000, - 578, 19830, 19830, 19830, 19830, -1000, -1000, 1665, 1665, 1665, - 1665, 19830, 1665, -1000, 1665, 1665, 1665, 1665, 19212, 1665, - 1665, 1665, -1000, 1665, 1665, 1665, 1665, 1665, 1665, 1665, - 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, - 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, - 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, - 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, - 1665, 1665, -1000, -1000, 1665, 600, 1665, 1665, 1665, 1665, - 1665, -1000, -1000, -1000, -1000, 19830, 1665, 1665, 1665, 1665, - 1665, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1665, 1665, 1665, 1665, 1665, 1665, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 22925, -1000, 16740, 1665, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 43489, 291, 43489, -1000, + 603, 43489, 853, 853, 108, 853, 853, 853, 853, 217, + 684, 79, -1000, 212, 344, 252, 310, 859, 330, -1000, + -1000, 314, 859, 1247, -1000, 685, 196, -1000, 853, 853, + -1000, 11931, 271, 11931, 11931, -1000, 2091, -1000, -1000, -1000, + -1000, 1257, -1000, 512, -1000, -1000, -1000, -1000, 43489, 40399, + 398, 748, -1000, -1000, -1000, 74, -1000, -1000, 1397, 1086, + 19377, 1019, -1000, 1227, 652, -1000, -1000, -1000, -1000, -1000, + 560, 19995, 19995, 19995, 19995, -1000, -1000, 1439, 1439, 1439, + 1439, 19995, 1439, -1000, 1439, 1439, 1439, 1439, 19377, 1439, + 1439, 1439, -1000, 1439, 1439, 1439, 1439, 1439, 1439, 1439, + 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, + 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, + 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, + 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, + 1439, 1439, -1000, -1000, 1439, 601, 1439, 1439, 1439, 1439, + 1439, -1000, -1000, -1000, -1000, 19995, 1439, 1439, 1439, 1439, + 1439, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1439, 1439, 1439, 1439, 1439, 1439, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 22472, -1000, 16905, 1439, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 43942, - -1000, 1665, 242, 43942, 43942, 378, 2187, 1788, -1000, 2267, - 2209, 383, -1000, 2635, 1624, 1379, 1168, 1788, 1608, 43942, - -1000, 1695, -1000, -1000, -1000, 1958, 1227, 1282, -1000, -1000, - -1000, -1000, 1570, 19212, -1000, -1000, 2282, -1000, 22307, 585, - 878, 2280, 40234, -1000, 445, 445, 1639, 13635, 12, -1000, - -1000, -1000, 735, 29110, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 43489, + -1000, 1439, 262, 43489, 43489, 401, 2199, 1702, -1000, 2262, + 2223, 397, -1000, 2616, 1950, 1625, 1262, 1702, 1573, 43489, + -1000, 1621, -1000, -1000, -1000, 1948, 1175, 1244, -1000, -1000, + -1000, -1000, 1359, 19377, -1000, -1000, 2294, -1000, 21854, 592, + 900, 2285, 39781, -1000, 503, 503, 1595, 13800, 48, -1000, + -1000, -1000, 746, 28657, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 2068, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 2091, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -6152,283 +6107,283 @@ 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, -1000, -1000, -1000, 1705, 43942, - -1000, -1000, 3163, 1242, -1000, 1818, -1000, 1696, -1000, 1783, - 19212, 1828, 509, 1242, 500, 486, 468, -1000, -35, -1000, - -1000, -1000, -1000, -1000, -1000, 709, 709, 709, -1000, 382, - 2245, 391, 4904, -1000, -1000, -1000, 39616, 1817, 1242, -1000, - 1816, -1000, 831, 543, 603, 603, 1242, -1000, -1000, 43942, - 1242, 820, 818, 1242, 1242, 43942, 43942, -1000, 38998, -1000, - 38380, 37762, 1149, 43942, 37144, 36526, 35908, 35290, 34672, -1000, - 2023, -1000, 2038, -1000, -1000, -1000, 43942, 1242, 1242, 43942, - 43942, 333, -1000, -1000, 43942, 1242, -1000, -1000, 1148, 1125, - 1124, 709, 709, 1122, 1279, 1278, 1272, 709, 709, 1119, - 1270, 30346, 1269, 292, 1090, 1079, 1078, 1164, 1268, 200, - 1267, 1141, 1137, 1063, 43942, 1815, 43942, -1000, 268, 712, - 462, 728, 2114, 2016, 1631, 485, 507, 1242, 441, 441, - 43942, -1000, 12389, -1000, -1000, 1263, 19212, -1000, 841, 828, - 828, -1000, -1000, -1000, -1000, -1000, -1000, 830, 43942, 841, - -1000, -1000, -1000, 828, 830, 43942, 830, 830, 830, 830, - 828, 828, 828, 830, 43942, 43942, 43942, 43942, 43942, 43942, - 43942, 43942, 43942, 11766, 695, 830, -295, -1000, 1258, -1000, - 1931, -1000, -1000, -1000, -1000, -1000, -1000, 11766, 11766, -1000, - -1000, -1000, -1000, 210, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -51, 1623, 34054, -1000, -299, -303, -308, - -313, -1000, -1000, -1000, -322, -327, -1000, -1000, -1000, 19212, - 19212, 19212, 19212, -165, -1000, 928, 19830, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 153, 952, 19830, 19830, 19830, 19830, - 19830, 19830, 19830, 19830, 19830, 19830, 19830, 19830, 19830, 19830, - 19830, -1000, -1000, 27256, 6654, 6654, 659, 659, 659, 659, - -1000, 18594, 19212, 19212, 659, -1000, 1242, 18594, 18594, 19212, - 2067, 751, 920, 43942, -1000, 1168, -1000, -1000, -1000, 1166, - -1000, 43942, 43942, 1397, 19212, 19212, 19212, 19212, 19212, 19212, - 15499, 19212, 19212, 19212, 1168, 19212, 19212, 19212, 19212, 19212, - 19212, 19212, 19212, 19212, 19212, 19212, 19212, 19212, 19212, 19212, - 19212, 19212, 19212, 19212, 19212, 19212, 19212, 19212, 19212, 19212, - 19212, 19212, 1168, 19212, 1158, 19212, 19212, 14881, 12389, 18594, - 18594, 18594, 18594, 18594, 33436, -1000, -1000, -1000, -1000, -1000, - 19212, 19212, 19212, 19212, 19212, 19212, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 575, 1791, 1428, 1546, 19212, -1000, 1610, - -1000, -118, 24784, 19212, 1251, 2279, 1853, 43942, -1000, -1000, - -1000, 2187, -1000, 2187, 1791, 2478, 1963, 18594, -1000, -1000, - 2478, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1522, - -1000, 43942, 1608, 2159, 43942, 1954, 1250, 392, -1000, 19212, - 19212, 1605, -1000, 998, 43942, -1000, -165, -1000, 32818, -1000, - -1000, 11143, -1000, 43942, 343, 43942, -1000, 24166, 32200, 13012, - 12, -1000, 13012, 1530, -1000, 21, 44, 16117, 628, -1000, - -1000, -1000, 4434, 21066, 1361, 628, 99, -1000, -1000, -1000, - 1783, -1000, 1783, 1783, 1783, 1783, 392, 392, 392, 392, - -1000, -1000, -1000, -1000, -1000, 1812, 1810, -1000, 1783, 1783, - 1783, 1783, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1809, - 1809, 1809, 1786, 1786, 428, -1000, 19212, 357, 31582, 2149, - 1047, 1581, 268, 443, 1845, 1242, 1242, 1242, 443, -1000, - 1264, 1223, 1207, -1000, -403, 1596, -1000, -1000, 2243, -1000, - -1000, 535, 846, 845, 656, 43942, 251, 336, -1000, 422, - -1000, 31582, 1242, 806, 603, 1242, -1000, 1242, -1000, -1000, - -1000, -1000, -1000, 1242, -1000, -1000, 1584, -1000, 1578, 888, - 842, 877, 838, 1584, -1000, -1000, -86, 1584, -1000, 1584, - -1000, 1584, -1000, 1584, -1000, 1584, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 739, 197, -218, 43942, 251, - 27256, -1000, 467, -1000, -1000, -1000, 27256, 27256, -1000, -1000, - -1000, -1000, 1249, 1247, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1734, 43489, + -1000, -1000, 5035, 1223, -1000, 1807, -1000, 1723, -1000, 1727, + 19377, 1822, 540, 1223, 530, 526, 524, -1000, -8, -1000, + -1000, -1000, -1000, -1000, -1000, 699, 699, 699, -1000, 437, + 2236, 5175, 3464, -1000, -1000, -1000, 39163, 1806, 1223, -1000, + 1805, -1000, 808, 605, 629, 629, 1223, -1000, -1000, 43489, + 1223, 806, 804, 1223, 1223, 43489, 43489, -1000, 38545, -1000, + 37927, 37309, 1106, 43489, 36691, 36073, 35455, 34837, 34219, -1000, + 1957, -1000, 1825, -1000, -1000, -1000, 43489, 1223, 1223, 43489, + 43489, 393, -1000, -1000, 43489, 1223, -1000, -1000, 1100, 1099, + 1094, 699, 699, 1091, 1241, 1240, 1212, 699, 699, 1070, + 1209, 29893, 1203, 305, 1069, 1063, 1047, 1029, 1201, 203, + 1196, 1025, 998, 1044, 43489, 1799, 43489, -1000, 302, 742, + 472, 745, 2105, 2027, 1586, 511, 534, 1223, 493, 493, + 43489, -1000, 12554, -1000, -1000, 1194, 19377, -1000, 863, 859, + 859, -1000, -1000, -1000, -1000, -1000, -1000, 853, 43489, 863, + -1000, -1000, -1000, 859, 853, 43489, 853, 853, 853, 853, + 859, 859, 859, 853, 43489, 43489, 43489, 43489, 43489, 43489, + 43489, 43489, 43489, 11931, 685, 853, -288, -1000, 1191, -1000, + 1917, -1000, -1000, -1000, -1000, -1000, -1000, 11931, 11931, -1000, + -1000, -1000, -1000, 233, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -42, 1581, 33601, -1000, -292, -294, -296, + -298, -1000, -1000, -1000, -314, -316, -1000, -1000, -1000, 19377, + 19377, 19377, 19377, -125, -1000, 928, 19995, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 160, 952, 19995, 19995, 19995, 19995, + 19995, 19995, 19995, 19995, 19995, 19995, 19995, 19995, 19995, 19995, + 19995, -1000, -1000, 26803, 6853, 6853, 652, 652, 652, 652, + -1000, 18759, 19377, 19377, 652, -1000, 1223, 18759, 18759, 19377, + 2101, 759, 1086, 43489, -1000, 1262, -1000, -1000, -1000, 1138, + -1000, 43489, 43489, 552, 19377, 19377, 19377, 19377, 19377, 19377, + 15664, 19377, 19377, 19377, 1262, 19377, 19377, 19377, 19377, 19377, + 19377, 19377, 19377, 19377, 19377, 19377, 19377, 19377, 19377, 19377, + 19377, 19377, 19377, 19377, 19377, 19377, 19377, 19377, 19377, 19377, + 19377, 19377, 1262, 19377, 1220, 19377, 19377, 15046, 12554, 18759, + 18759, 18759, 18759, 18759, 32983, -1000, -1000, -1000, -1000, -1000, + 19377, 19377, 19377, 19377, 19377, 19377, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 591, 1461, 1401, 1294, 19377, -1000, 1579, + -1000, -117, 24331, 19377, 1188, 2281, 1836, 43489, -1000, -1000, + -1000, 2199, -1000, 2199, 1461, 2422, 1964, 18759, -1000, -1000, + 2422, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1379, + -1000, 43489, 1573, 2162, 43489, 1944, 1183, 378, -1000, 19377, + 19377, 1559, -1000, 1338, 43489, -1000, -125, -1000, 32365, -1000, + -1000, 11308, -1000, 43489, 387, 43489, -1000, 23713, 31747, 13177, + 48, -1000, 13177, 1493, -1000, 58, 49, 16282, 651, -1000, + -1000, -1000, 3793, 20613, 1390, 651, 180, -1000, -1000, -1000, + 1727, -1000, 1727, 1727, 1727, 1727, 378, 378, 378, 378, + -1000, -1000, -1000, -1000, -1000, 1798, 1793, -1000, 1727, 1727, + 1727, 1727, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1791, + 1791, 1791, 1733, 1733, 485, -1000, 19377, 311, 31129, 2122, + 1041, 1550, 302, 496, 1833, 1223, 1223, 1223, 496, -1000, + 1438, 1369, 1327, -1000, -411, 1555, -1000, -1000, 2233, -1000, + -1000, 793, 839, 832, 857, 43489, 268, 379, -1000, 467, + -1000, 31129, 1223, 803, 629, 1223, -1000, 1223, -1000, -1000, + -1000, -1000, -1000, 1223, -1000, -1000, 1529, -1000, 1491, 907, + 831, 881, 830, 1529, -1000, -1000, -65, 1529, -1000, 1529, + -1000, 1529, -1000, 1529, -1000, 1529, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 776, 234, -183, 43489, 268, + 26803, -1000, 508, -1000, -1000, -1000, 26803, 26803, -1000, -1000, + -1000, -1000, 1182, 1180, -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, -388, 43942, -1000, 262, 720, 323, 388, - 313, 43942, 276, 2178, 2173, 2166, 280, 325, 43942, 43942, - 441, 1906, 43942, 2143, 43942, -1000, -1000, -1000, -1000, -1000, - 920, 43942, -1000, -1000, 830, 830, -1000, -1000, 43942, 830, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 830, -1000, + -1000, -1000, -1000, -393, 43489, -1000, 281, 741, 369, 410, + 350, 43489, 333, 2176, 2173, 2171, 309, 351, 43489, 43489, + 493, 1899, 43489, 2144, 43489, -1000, -1000, -1000, -1000, -1000, + 1086, 43489, -1000, -1000, 853, 853, -1000, -1000, 43489, 853, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 853, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 43942, -1000, -1000, -1000, -1000, 43942, - -1000, -1000, -1000, -1000, -1000, 128, 16, 345, -1000, -1000, - -1000, -1000, -1000, 2184, -1000, 920, 804, 776, -1000, 1665, - -1000, -1000, 1012, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 153, 19830, 19830, 19830, 987, 504, 871, 937, 1061, 917, - 917, 885, 885, 663, 663, 663, 663, 663, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 1245, -1000, 1594, -1000, - 2427, 1366, 1168, 1594, 1594, 1666, 18594, -1000, -1000, 754, - -1000, 19212, 1168, -1000, -1000, 1168, 1168, 1573, 1564, 2278, + -1000, -1000, -1000, -1000, 43489, -1000, -1000, -1000, -1000, 43489, + -1000, -1000, -1000, -1000, -1000, 95, 55, 392, -1000, -1000, + -1000, -1000, -1000, 2195, -1000, 1086, 777, 773, -1000, 1439, + -1000, -1000, 987, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 160, 19995, 19995, 19995, 1608, 538, 1664, 1675, 983, 917, + 917, 885, 885, 657, 657, 657, 657, 657, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1178, -1000, 1670, -1000, + 1851, 1159, 1262, 1670, 1670, 1334, 18759, -1000, -1000, 754, + -1000, 19377, 1262, -1000, -1000, 1262, 1262, 1526, 1509, 2280, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 1917, 1581, 1581, 1581, 1581, 1581, 19212, 1421, -1000, - -1000, -1000, 2527, 1581, 1581, -1000, 1581, 2451, 2446, 1168, - 1385, 1168, 1550, -1000, 2431, 1581, 2422, 2417, 2412, 1271, - 2401, 2396, 2386, 1581, 1581, 1581, 1799, 2357, 2315, 2302, - 2298, 2284, 2271, 2221, 2193, 2111, 1581, -167, 1581, 1168, - -1000, -1000, -1000, -1000, 2085, 1793, 1168, 18594, 18594, 1540, - 1665, 573, -1000, 1594, 1168, 1168, 1594, 1594, -1000, 2073, - 2017, 2010, 1992, 1988, 1956, 12389, 1168, -1000, 1546, 43942, - -1000, -278, -1000, 2, 664, 1665, -1000, 30346, 1168, -1000, - 6612, -1000, 45178, -1000, -1000, -1000, -1000, -1000, 28492, 1489, - 2478, -1000, -1000, 1665, 1637, -1000, -1000, 392, 81, 27874, - 622, 622, 158, 920, 920, 19212, -1000, -1000, -1000, -1000, - -1000, -1000, 571, 2257, 410, 1665, -1000, 1533, 2402, -1000, - -1000, -1000, 2157, 21689, -1000, 1665, 1665, 43942, 1879, 1878, - -1000, 561, -1000, 1530, 12, 32, -1000, -1000, -1000, -1000, - 920, -1000, 1193, 353, 4633, -1000, 430, -1000, -1000, -1000, - -1000, 2046, 93, -1000, -1000, -1000, 215, 392, -1000, -1000, - -1000, -1000, -1000, -1000, 1244, 1244, -1000, -1000, -1000, -1000, - -1000, 1045, -1000, -1000, -1000, 1044, -1000, -1000, 1935, 1827, - 357, -1000, -1000, 709, 1241, -1000, -1000, 2051, 709, 709, - 43942, -1000, -1000, 1346, 2149, 262, 43942, 759, 1901, -1000, - 1845, 1845, 1845, 43942, -1000, -1000, -1000, -1000, -1000, -1000, - -392, 76, 366, -1000, -1000, -1000, 3503, 43942, 1626, -1000, - 246, -1000, 1344, -1000, 43942, -1000, 1617, 1808, 1242, 1242, - -1000, -1000, -1000, 43942, 1665, -1000, -1000, -1000, -1000, 506, - 2108, 288, -1000, -1000, -187, -1000, -1000, 251, 246, 628, - 1242, -1000, -1000, -1000, -1000, -1000, -393, 1601, 463, 254, - 321, 43942, 43942, 43942, 43942, 43942, 545, -1000, -1000, -1000, - -1000, 232, -1000, -1000, 232, -1000, -1000, -1000, -1000, 303, - 448, -1000, 43942, 43942, 583, -1000, -1000, -1000, 828, -1000, - -1000, 828, -1000, -1000, -1000, -1000, -1000, 2086, 43942, 14, - -343, -1000, -339, 19212, -1000, -1000, -1000, -1000, 953, 484, - 871, 19830, 19830, 18594, -80, 621, 621, 27256, -1000, -1000, - -1000, 19212, 19212, 1537, 743, -1000, 19212, 1025, -1000, -1000, - -1000, 19212, 19212, 19212, 1168, 329, -1000, -1000, -1000, -1000, - -1000, 2270, -1000, 19212, 19212, -1000, -1000, -1000, 19212, 19212, - -1000, -1000, 19212, 19212, -1000, 19212, 19212, 20448, 1168, 20448, - 19212, 19212, 20448, -1000, -1000, -1000, -1000, 20448, 19212, 19212, - 19212, 19212, 19212, 19212, 19212, 19212, 19212, -1000, -1000, 31582, - 85, -167, 1158, 85, 1158, -1000, 1594, 1594, 18594, 12389, - -1000, -1000, -1000, -1000, -1000, 19212, 19212, 19212, 19212, 19212, - 19212, -1000, -1000, -1000, -1000, -1000, -1000, 664, -1000, 603, - 603, 603, 43942, -1000, -1000, -1000, -1000, -1000, -1000, 1514, - 2180, -1000, 1981, 1980, 2265, 2257, -1000, 24166, 2478, -1000, - -1000, 43942, -266, -1000, 2012, 2069, 622, 622, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 10520, 2187, 19212, 1897, 43942, - 160, -1000, 23548, 43942, 43942, 24166, 24166, 24166, 24166, 24166, - -1000, 1946, 1943, -1000, 1949, 1929, 2066, 43942, -1000, 1590, - 1168, 2209, 21689, 383, 19212, 26020, 1359, 24166, -1000, -1000, - 24166, 43942, 9897, -1000, -1000, 7, 20, -1000, -1000, -1000, - -1000, 4434, -1000, -1000, 385, 2156, 2041, -1000, -1000, -1000, - -1000, -1000, 1588, -1000, 1567, 1507, 1562, 197, -1000, 1796, - 2077, 709, 709, -1000, 1037, -1000, 1242, 1236, 1231, -1000, - -1000, -1000, 461, -1000, 2138, 43942, 1893, 1891, 1888, -1000, - -408, 1036, 1805, 1704, 19212, 1804, 2236, 1486, 43942, -1000, - -1000, 43942, -1000, 170, -1000, 357, 43942, -1000, -1000, -1000, - 336, 43942, -1000, 6480, -1000, -1000, -1000, 246, -1000, -1000, - -1000, -1000, -1000, -1000, 43942, 278, -1000, 1787, 1274, -1000, - -1000, 1834, -1000, -1000, -1000, -1000, 224, 315, 229, 1226, - 229, -1000, 43942, 576, 1827, 43942, -1000, -1000, -1000, 830, - 830, -1000, -1000, 2074, -1000, 1242, 1581, 19830, 19830, -1000, - 659, -1000, 1665, -147, 1783, 1783, -1000, 1783, 1786, -1000, - 1783, 201, 1783, 190, 1783, -1000, -1000, 1168, 1168, 1778, - 1259, -42, -1000, 920, 19212, 1911, 1872, 1581, -1000, 1782, - 1767, 19212, 1581, 1581, 1581, 1581, -1000, 920, 1271, 1867, - 1427, -1000, -1000, -1000, -1000, 1505, 1581, 1840, -272, 1168, - 1559, 1559, 1559, 1559, 1559, 1546, 1546, 1546, 1546, 43942, - -1000, -167, -1000, -1000, -206, -207, -1000, 1168, -167, 1502, - -1000, -1000, 1168, -1000, 1725, 1719, 1836, 1712, 1581, 1832, - -1000, 2181, 2181, 2181, 1528, 44560, 43942, -1000, -1000, -1000, - -1000, 2257, 2255, 1499, -1000, -1000, 81, 420, -1000, 2025, - 2069, -1000, 2229, 1995, 2225, -1000, -1000, -1000, -1000, -1000, - 920, -1000, 2112, 1554, -1000, 716, 1413, -1000, -1000, 17976, - 1535, 1969, 555, 1528, 1495, 2402, 1857, 1887, 2611, -1000, - -1000, -1000, -1000, 1928, -1000, 1927, -1000, -1000, 1695, -1000, - -1000, 1428, 1168, 1548, 343, 24166, 1483, 1483, -1000, 549, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 860, 5365, 2309, - -1000, 1222, -1000, 1100, 205, 978, -1000, -1000, 709, 709, - -1000, 803, 801, -1000, 43942, 1763, -1000, 392, 1216, 392, - 975, -1000, 968, -1000, -1000, -1000, -1000, 2030, 1910, -1000, - -1000, -1000, -1000, 43942, -1000, -1000, 43942, 43942, 43942, 1761, - 2223, -1000, 19212, 1724, 714, 1863, 43942, 43942, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 460, - 709, -370, 322, 308, 709, 709, 709, -409, -1000, -1000, - 1509, 1447, -1000, -131, -1000, 19212, -1000, -1000, -1000, 1049, - 1049, -1000, 1695, -1000, -1000, -1000, 1339, -1000, -1000, -89, - 43942, 43942, 43942, 43942, -1000, 914, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 659, 19830, - 1168, -1000, -1000, 392, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 19212, -1000, 19212, -1000, 2187, 1215, 920, - 19212, 19212, -1000, 965, 933, 1581, -1000, -1000, -1000, -1000, - 1168, 20448, -1000, 20448, -1000, 19212, 238, 621, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1168, 342, - -1000, -1000, -1000, -1000, 2263, -1000, 1168, 19212, -1000, -1000, - 19212, -1000, 19212, 19212, -1000, 19212, -1000, 19212, 1665, 1967, - 1665, 1665, 26020, -1000, -1000, 2255, 2253, 2222, 1989, 2005, - 2005, 2025, -1000, 2220, 2217, -1000, 1202, 2211, 1198, 797, - -1000, 43942, 19212, 160, -1000, 411, 43942, 160, 43942, -1000, - 2249, -1000, -1000, 19212, 1715, -1000, 19212, -1000, -1000, -1000, - -1000, -1000, -1000, 6654, 2257, 1483, -1000, -1000, 669, -1000, - 19212, -1000, -1000, -1000, 5294, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1187, 1186, -1000, -1000, 1702, 19212, -1000, - -1000, -1000, 1330, 1328, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 1695, -1000, -1000, -1000, -1000, 336, -397, 1848, - 43942, 926, -1000, 1441, 1486, 335, 160, 1183, 709, 709, - 709, 921, 918, 30346, 1437, -1000, 43942, 404, -1000, 336, - -1000, -143, -144, 1581, -1000, -1000, 2154, -1000, -1000, 12389, - -1000, -1000, 1691, 1841, -1000, -1000, -1000, 314, -1000, -1000, - 1581, 1581, 1168, -1000, 1581, 1581, 1326, 1312, -1000, -1000, - 1427, -1000, 1707, -1000, 238, 1168, 1885, -1000, -1000, 6654, - -1000, -1000, 2249, 2195, 85, -1000, -1000, 244, 85, 920, - 1703, 1581, 1699, 1490, 1581, 26638, -1000, 2191, 2189, 30964, - 30964, 664, 2253, -175, 19212, 19212, 1970, 904, -1000, -1000, - -1000, -1000, 1169, 1167, -1000, 1162, -1000, 2303, -1000, 920, - -1000, 160, -1000, 538, 1413, -1000, 2187, 920, 43942, 920, - 87, 2249, -1000, 1581, -1000, 1665, 1665, 1665, 1665, 1665, - 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, - 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, - 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, - 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, -1000, -1000, - 43942, 1811, -1000, -1000, 2153, 1409, 74, -1000, 1404, -1000, - -1000, 159, -1000, 19212, -1000, 30346, 1159, 1153, -1000, -1000, - -1000, -1000, -409, -1000, -1000, -1000, -1000, -1000, -1000, 383, - 1480, -1000, 705, 43942, 43942, 1168, 334, -92, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 19212, -1000, 1168, - 1882, -1000, -229, -1000, -373, 19212, -167, -1000, -1000, -167, - -1000, 19212, -1000, -1000, 19212, -1000, 19212, -1000, 1368, -1000, - -1000, -1000, -1000, -1000, 1368, 1368, -1000, -175, -1000, 1435, - -1000, 43942, 920, 1385, -1000, 901, -1000, -1000, -1000, -1000, - -1000, 43942, 1413, 43942, -1000, 1364, 1168, 1665, 2187, -1000, - 1354, -1000, 383, -1000, 1688, 1704, -1000, -1000, -1000, 17358, - -1000, -1000, -1000, -1000, -1000, 177, -87, 12389, 9274, 1352, - -1000, -1000, 1951, -83, -99, 1271, -1000, -330, -1000, -1000, - -1000, -1000, 253, -1000, -1000, 1385, -1000, -1000, 1466, 1433, - 1238, 29728, -1000, -1000, -1000, -1000, -175, -1000, -1000, 2148, - -1000, -1000, 1371, -1000, -1000, 26020, 43324, -1000, -78, 304, - -87, 19212, 1677, 1168, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 15, -1000, -1000, -1000, -1000, -1000, 1834, -1000, - 1886, -1000, 1168, -1000, 233, -347, -189, -193, -1000, -1000, - -1000, 19212, -1000, 19212, -1000, 19212, -1000, -1000, -1000, 43942, - 1665, -1000, 1335, -1000, 1416, -221, 1876, -1000, -62, -1000, - -1000, -1000, 856, 1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1774, 43942, -1000, 415, -1000, -1000, -89, -90, -1000, 773, - -1000, -1000, -1000, -1000, -1000, 1230, 1163, 1581, -1000, 43942, - -1000, 43324, -213, 628, 6654, -1000, 1864, 1849, 2277, -1000, - -1000, -1000, -1000, -1000, -1000, -412, 1316, 266, -1000, -94, - 233, -1000, 19212, -1000, 19212, -1000, 1168, -1000, -1000, 2128, - 87, -1000, 2301, -1000, 2294, 634, 634, -1000, 886, -412, - -1000, -117, -1000, 1581, 1581, -1000, -226, -1000, -1000, -1000, - -1000, -1000, 412, 1017, -1000, -1000, -1000, -1000, -1000, -1000, - 6654, -1000, -1000, -1000, 237, 237, -1000, -1000, + -1000, 1517, 1550, 1550, 1550, 1550, 1550, 19377, 1679, -1000, + -1000, -1000, 2536, 1550, 1550, -1000, 1550, 2521, 2423, 1262, + 1397, 1262, 1499, -1000, 2416, 1550, 2409, 2397, 2393, 1800, + 2385, 2376, 2355, 1550, 1550, 1550, 1776, 2332, 2286, 2267, + 2153, 2136, 2111, 2064, 2050, 2040, 1550, -127, 1550, 1262, + -1000, -1000, -1000, -1000, 2022, 1721, 1262, 18759, 18759, 1496, + 1439, 588, -1000, 1670, 1262, 1262, 1670, 1670, -1000, 2016, + 1995, 1990, 1962, 1954, 1937, 12554, 1262, -1000, 1294, 43489, + -1000, -272, -1000, 36, 672, 1439, -1000, 29893, 1262, -1000, + 5804, -1000, 44725, -1000, -1000, -1000, -1000, -1000, 28039, 1544, + 2422, -1000, -1000, 1439, 1719, -1000, -1000, 378, 114, 27421, + 648, 648, 170, 1086, 1086, 19377, -1000, -1000, -1000, -1000, + -1000, -1000, 579, 2252, 402, 1439, -1000, 1443, 2367, -1000, + -1000, -1000, 2157, 21236, -1000, 1439, 1439, 43489, 1775, 1557, + -1000, 574, -1000, 1493, 48, 73, -1000, -1000, -1000, -1000, + 1086, -1000, 1321, 395, 3611, -1000, 465, -1000, -1000, -1000, + -1000, 2054, 121, -1000, -1000, -1000, 272, 378, -1000, -1000, + -1000, -1000, -1000, -1000, 1168, 1168, -1000, -1000, -1000, -1000, + -1000, 1040, -1000, -1000, -1000, 1037, -1000, -1000, 1846, 1878, + 311, -1000, -1000, 699, 1166, -1000, -1000, 2057, 699, 699, + 43489, -1000, -1000, 1381, 2122, 281, 43489, 761, 1898, -1000, + 1833, 1833, 1833, 43489, -1000, -1000, -1000, -1000, -1000, -1000, + -397, 72, 399, -1000, -1000, -1000, 346, 43489, 1698, -1000, + 265, -1000, 1364, -1000, 43489, -1000, 1694, 1786, 1223, 1223, + -1000, -1000, -1000, 43489, 1439, -1000, -1000, -1000, -1000, 532, + 2093, 327, -1000, -1000, -147, -1000, -1000, 268, 265, 651, + 1223, -1000, -1000, -1000, -1000, -1000, -398, 1677, 517, 273, + 342, 43489, 43489, 43489, 43489, 43489, 562, -1000, -1000, -1000, + -1000, 249, -1000, -1000, 249, -1000, -1000, -1000, -1000, 329, + 506, -1000, 43489, 43489, 642, -1000, -1000, -1000, 859, -1000, + -1000, 859, -1000, -1000, -1000, -1000, -1000, 2088, 43489, 52, + -335, -1000, -327, 19377, -1000, -1000, -1000, -1000, 1567, 494, + 1664, 19995, 19995, 18759, -60, 791, 791, 26803, -1000, -1000, + -1000, 19377, 19377, 1422, 750, -1000, 19377, 995, -1000, -1000, + -1000, 19377, 19377, 19377, 1262, 357, -1000, -1000, -1000, -1000, + -1000, 2279, -1000, 19377, 19377, -1000, -1000, -1000, 19377, 19377, + -1000, -1000, 19377, 19377, -1000, 19377, 19377, 19377, -1000, 19377, + 19377, 19377, 19377, -1000, -1000, -1000, -1000, 19377, 19377, 19377, + 19377, 19377, 19377, 19377, 19377, 19377, 19377, -1000, -1000, 31129, + 111, -127, 1220, 111, 1220, -1000, 1670, 1670, 18759, 12554, + -1000, -1000, -1000, -1000, -1000, 19377, 19377, 19377, 19377, 19377, + 19377, -1000, -1000, -1000, -1000, -1000, -1000, 672, -1000, 629, + 629, 629, 43489, -1000, -1000, -1000, -1000, -1000, -1000, 1488, + 2204, -1000, 1959, 1956, 2273, 2252, -1000, 23713, 2422, -1000, + -1000, 43489, -263, -1000, 2024, 2060, 648, 648, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 10685, 2199, 19377, 1897, 43489, + 169, -1000, 23095, 43489, 43489, 23713, 23713, 23713, 23713, 23713, + -1000, 1929, 1926, -1000, 1982, 1951, 2020, 43489, -1000, 1667, + 1262, 2223, 21236, 397, 19377, 25567, 1358, 23713, -1000, -1000, + 23713, 43489, 10062, -1000, -1000, 40, 31, -1000, -1000, -1000, + -1000, 3793, -1000, -1000, 1650, 2150, 2039, -1000, -1000, -1000, + -1000, -1000, 1663, -1000, 1654, 1475, 1635, 234, -1000, 1780, + 2084, 699, 699, -1000, 1031, -1000, 1223, 1162, 1157, -1000, + -1000, -1000, 515, -1000, 2142, 43489, 1896, 1895, 1891, -1000, + -406, 1023, 1782, 1680, 19377, 1781, 2232, 1450, 43489, -1000, + -1000, 43489, -1000, 165, -1000, 311, 43489, -1000, -1000, -1000, + 379, 43489, -1000, 7418, -1000, -1000, -1000, 265, -1000, -1000, + -1000, -1000, -1000, -1000, 43489, 292, -1000, 1779, 1253, -1000, + -1000, 1809, -1000, -1000, -1000, -1000, 225, 367, 247, 1151, + 247, -1000, 43489, 585, 1878, 43489, -1000, -1000, -1000, 853, + 853, -1000, -1000, 2081, -1000, 1223, 1550, 19995, 19995, -1000, + 652, -1000, 1439, -106, 1727, 1727, -1000, 1727, 1733, -1000, + 1727, 215, 1727, 201, 1727, -1000, -1000, 1262, 1262, 1715, + 1497, -18, -1000, 1086, 19377, 1876, 1869, 1550, -1000, 1708, + 1706, 19377, 1550, 1550, 1550, 1550, -1000, 1086, 1294, 1862, + 1294, 1550, 1550, 1842, 306, 1550, 1633, 1633, 1633, 1633, + 1633, 1294, 1294, 1294, 1294, 43489, -1000, -127, -1000, -1000, + -167, -168, -1000, 1262, -127, 1466, -1000, -1000, 1262, -1000, + 1661, 1624, 1812, 1539, 1550, 1794, -1000, 2179, 2179, 2179, + 1604, 44107, 43489, -1000, -1000, -1000, -1000, 2252, 2250, 1464, + -1000, -1000, 114, 457, -1000, 2003, 2060, -1000, 2229, 2011, + 2225, -1000, -1000, -1000, -1000, -1000, 1086, -1000, 2115, 1356, + -1000, 723, 1407, -1000, -1000, 18141, 1630, 1953, 572, 1604, + 1575, 2367, 1885, 1889, 2645, -1000, -1000, -1000, -1000, 1911, + -1000, 1910, -1000, -1000, 1621, -1000, -1000, 1401, 1262, 1564, + 387, 23713, 1448, 1448, -1000, 570, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 887, 6811, 2304, -1000, 1150, -1000, 1176, + 194, 978, -1000, -1000, 699, 699, -1000, 798, 797, -1000, + 43489, 1673, -1000, 378, 1148, 378, 975, -1000, 968, -1000, + -1000, -1000, -1000, 1765, 1838, -1000, -1000, -1000, -1000, 43489, + -1000, -1000, 43489, 43489, 43489, 1660, 2220, -1000, 19377, 1657, + 711, 1816, 43489, 43489, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 488, 699, -365, 349, 328, + 699, 699, 699, -407, -1000, -1000, 1592, 1561, -1000, -88, + -1000, 19377, -1000, -1000, -1000, 1004, 1004, -1000, 1621, -1000, + -1000, -1000, 1339, -1000, -1000, -67, 43489, 43489, 43489, 43489, + -1000, 926, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 652, 19995, 1262, -1000, -1000, 378, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 19377, + -1000, 19377, -1000, 2199, 1145, 1086, 19377, 19377, -1000, 967, + 963, 1550, -1000, -1000, -1000, -1000, -1000, 19377, -1000, -1000, + -1000, 19377, 266, 791, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 1262, 384, -1000, -1000, -1000, -1000, + 2256, -1000, 1262, 19377, -1000, -1000, 19377, -1000, 19377, 19377, + -1000, 19377, -1000, 19377, 1439, 2015, 1439, 1439, 25567, -1000, + -1000, 2250, 2248, 2219, 2002, 2004, 2004, 2003, -1000, 2217, + 2216, -1000, 1139, 2215, 1137, 784, -1000, 43489, 19377, 169, + -1000, 404, 43489, 169, 43489, -1000, 2246, -1000, -1000, 19377, + 1652, -1000, 19377, -1000, -1000, -1000, -1000, -1000, -1000, 6853, + 2252, 1448, -1000, -1000, 666, -1000, 19377, -1000, -1000, -1000, + 6379, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1134, + 1130, -1000, -1000, 1638, 19377, -1000, -1000, -1000, 1337, 1313, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1621, -1000, + -1000, -1000, -1000, 379, -402, 1808, 43489, 946, -1000, 1542, + 1450, 373, 169, 1128, 699, 699, 699, 937, 931, 29893, + 1513, -1000, 43489, 456, -1000, 379, -1000, -101, -103, 1550, + -1000, -1000, 2147, -1000, -1000, 12554, -1000, -1000, 1619, 1829, + -1000, -1000, -1000, 452, -1000, -1000, 1550, 1550, 1262, -1000, + 1550, 1550, 1291, 1269, -1000, 1294, 1482, -1000, 266, 1262, + 1888, -1000, -1000, 6853, -1000, -1000, 2246, 2214, 111, -1000, + -1000, 277, 111, 1086, 1427, 1550, 1354, 1349, 1550, 26185, + -1000, 2212, 2210, 30511, 30511, 672, 2248, -135, 19377, 19377, + 1985, 940, -1000, -1000, -1000, -1000, 1127, 1122, -1000, 1120, + -1000, 2299, -1000, 1086, -1000, 169, -1000, 569, 1407, -1000, + 2199, 1086, 43489, 1086, 110, 2246, -1000, 1550, -1000, 1439, + 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, + 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, + 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, + 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, + 1439, 1439, -1000, -1000, 43489, 1787, -1000, -1000, 2146, 1469, + 70, -1000, 1435, -1000, -1000, 159, -1000, 19377, -1000, 29893, + 1114, 1110, -1000, -1000, -1000, -1000, -407, -1000, -1000, -1000, + -1000, -1000, -1000, 397, 1413, -1000, 696, 43489, 43489, 1262, + 356, -77, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 19377, -1000, 1262, 1866, -1000, -229, -1000, -383, 19377, + -127, -1000, -1000, -127, -1000, 19377, -1000, -1000, 19377, -1000, + 19377, -1000, 1430, -1000, -1000, -1000, -1000, -1000, 1430, 1430, + -1000, -135, -1000, 1409, -1000, 43489, 1086, 1397, -1000, 914, + -1000, -1000, -1000, -1000, -1000, 43489, 1407, 43489, -1000, 1417, + 1262, 1439, 2199, -1000, 1367, -1000, 397, -1000, 1615, 1680, + -1000, -1000, -1000, 17523, -1000, -1000, -1000, -1000, -1000, 261, + -66, 12554, 9439, 1351, -1000, -1000, 1941, -63, -89, 1294, + -1000, -319, -1000, -1000, -1000, -1000, 255, -1000, -1000, 1397, + -1000, -1000, 1312, 1268, 1213, 29275, -1000, -1000, -1000, -1000, + -135, -1000, -1000, 2137, -1000, -1000, 1395, -1000, -1000, 25567, + 42871, -1000, -57, 299, -66, 19377, 1609, 1262, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 22, -1000, -1000, -1000, + -1000, -1000, 1809, -1000, 1934, -1000, -1000, -1000, 185, -346, + -158, -160, -1000, -1000, -1000, 19377, -1000, 19377, -1000, 19377, + -1000, -1000, -1000, 43489, 1439, -1000, 1287, -1000, 5154, -180, + 1864, -1000, -36, -1000, -1000, -1000, 854, 919, -1000, -1000, + -1000, -1000, -1000, -1000, 1783, 43489, -1000, 459, -1000, -1000, + -67, -72, 769, -1000, -1000, -1000, -1000, -1000, 1152, 1109, + 1550, -1000, 43489, -1000, 42871, -173, 651, 6853, -1000, 1861, + 1859, 2272, -1000, -1000, -1000, -1000, -1000, -1000, -417, 1284, + 294, -1000, -81, 185, -1000, 19377, -1000, 19377, -1000, 1262, + -1000, -1000, 2138, 110, -1000, 2274, -1000, 2287, 688, 688, + -1000, 930, -417, -1000, -91, -1000, 1550, 1550, -1000, -182, + -1000, -1000, -1000, -1000, -1000, 475, 1006, -1000, -1000, -1000, + -1000, -1000, -1000, 6853, -1000, -1000, -1000, 241, 241, -1000, + -1000, } var yyPgo = [...]int{ - 0, 2834, 2830, 33, 6, 45, 42, 2820, 38, 121, - 199, 31, 211, 124, 2819, 2818, 2814, 2812, 2811, 2810, - 2808, 241, 238, 230, 2807, 2806, 2803, 2801, 2800, 2799, - 2798, 2796, 2795, 2794, 233, 181, 198, 2793, 2792, 2790, - 145, 195, 102, 104, 193, 2789, 2788, 94, 2786, 2783, - 2782, 190, 189, 188, 763, 2780, 203, 147, 67, 2778, - 2775, 2774, 2773, 2768, 2766, 2764, 2763, 2762, 2761, 2760, - 2759, 2758, 2757, 2755, 2754, 2753, 217, 2752, 2750, 21, - 2749, 96, 2746, 2745, 2744, 2742, 11, 2741, 2740, 17, - 44, 2739, 2738, 53, 2737, 2736, 2735, 2734, 2722, 19, - 2721, 22, 2720, 32, 2719, 2718, 144, 2717, 2716, 2713, - 46, 2710, 2706, 2703, 2697, 2696, 2695, 2694, 163, 2693, - 2691, 2689, 2686, 205, 2685, 2682, 187, 127, 137, 2675, - 2672, 126, 196, 2671, 141, 2670, 2669, 2668, 171, 2667, - 3197, 2664, 2655, 83, 78, 2650, 132, 2649, 2648, 10, - 91, 79, 16, 7, 1, 2647, 2646, 80, 93, 2645, - 135, 123, 95, 2643, 119, 106, 2634, 2633, 13, 9, - 2632, 4, 8, 5, 81, 2622, 2619, 139, 2617, 2612, - 2611, 117, 2609, 2606, 3525, 2605, 105, 157, 129, 90, - 2604, 59, 88, 2602, 2601, 2595, 2593, 2592, 66, 2591, - 2588, 2581, 164, 43, 184, 2579, 49, 58, 68, 154, - 2578, 75, 98, 2577, 160, 159, 2576, 2572, 69, 47, - 50, 2571, 110, 153, 138, 63, 108, 156, 2568, 2562, - 65, 86, 2557, 2554, 2552, 2549, 185, 2547, 2544, 85, - 2536, 73, 2530, 206, 2529, 23, 2528, 61, 55, 2527, - 84, 125, 89, 40, 2526, 179, 2523, 71, 178, 152, - 183, 2521, 2520, 2519, 2517, 197, 321, 2512, 2494, 120, - 182, 167, 170, 103, 2492, 315, 2489, 2485, 115, 1549, - 5061, 2484, 41, 180, 2482, 2481, 6193, 162, 48, 27, - 2477, 177, 2476, 2466, 2465, 200, 222, 134, 1062, 76, - 2464, 2463, 2462, 15, 2459, 2458, 2457, 2449, 2448, 2445, - 92, 37, 36, 35, 209, 82, 18, 130, 176, 99, - 2443, 2442, 2439, 143, 122, 2430, 175, 174, 151, 131, - 2429, 186, 165, 158, 2428, 202, 34, 2427, 2425, 2424, - 2419, 107, 2418, 2415, 2412, 2408, 173, 166, 142, 100, - 2406, 101, 149, 172, 169, 70, 2404, 52, 2401, 2393, - 29, 191, 30, 2391, 20, 77, 74, 28, 133, 128, - 2381, 0, 2372, 24, 192, 314, 168, 2362, 2356, 2, - 12, 14, 2351, 2350, 2346, 2345, 161, 2344, 2340, 2334, - 2333, 26, 60, 25, 3, 140, 97, 2328, 2327, 4164, - 1519, 155, 2324, 207, + 0, 2780, 2778, 32, 3, 44, 43, 2773, 45, 108, + 199, 30, 196, 122, 2772, 2769, 2768, 2767, 2762, 2761, + 2760, 259, 256, 235, 2759, 2757, 2756, 2755, 2754, 2753, + 2752, 2751, 2750, 2748, 229, 175, 195, 2747, 2746, 2745, + 142, 187, 99, 101, 193, 2744, 2743, 92, 2742, 2741, + 2740, 228, 227, 226, 823, 2738, 184, 129, 60, 2736, + 2735, 2734, 2732, 2731, 2730, 2729, 2728, 2727, 2725, 2724, + 2723, 2716, 2710, 2707, 2706, 2705, 200, 2704, 2703, 21, + 2701, 94, 2700, 2699, 2698, 2697, 9, 2696, 2695, 16, + 40, 2684, 2682, 53, 2678, 2677, 2673, 2671, 2670, 20, + 2668, 27, 2667, 34, 2666, 2665, 147, 2663, 2661, 2658, + 41, 2656, 2655, 2652, 2646, 2645, 2642, 2641, 162, 2632, + 2631, 2630, 2628, 201, 2627, 2624, 262, 124, 128, 2618, + 2617, 111, 192, 2616, 139, 2615, 2614, 2613, 168, 2612, + 3477, 2611, 2610, 81, 78, 2609, 71, 2606, 2602, 8, + 91, 74, 7, 17, 14, 2600, 2599, 79, 104, 2592, + 148, 116, 96, 2591, 120, 110, 2583, 2575, 12, 6, + 2574, 5, 1, 2, 82, 2573, 2572, 131, 2570, 2567, + 2566, 105, 2565, 2563, 3479, 2558, 102, 157, 121, 89, + 2556, 55, 76, 2550, 2541, 2539, 2538, 2537, 61, 2534, + 2530, 2528, 161, 35, 181, 2527, 42, 58, 69, 153, + 2526, 70, 93, 2522, 160, 155, 2519, 2518, 77, 52, + 50, 2517, 118, 151, 137, 65, 106, 152, 2516, 2513, + 73, 85, 2511, 2509, 2508, 2507, 176, 2506, 2504, 83, + 2501, 68, 2500, 203, 2497, 22, 2495, 63, 47, 2492, + 80, 133, 86, 33, 2488, 182, 2481, 67, 174, 150, + 180, 2479, 2473, 2469, 2465, 194, 319, 2464, 2462, 84, + 183, 164, 167, 100, 2461, 370, 2459, 2458, 117, 1510, + 5232, 2457, 31, 179, 2455, 2453, 6364, 177, 49, 25, + 2452, 135, 2450, 2449, 2448, 197, 178, 127, 1020, 75, + 2447, 2441, 2438, 19, 2431, 2430, 2429, 2426, 2423, 2421, + 138, 39, 38, 37, 205, 88, 11, 119, 172, 90, + 2418, 2417, 2416, 146, 115, 2415, 173, 170, 159, 132, + 2414, 186, 163, 136, 2409, 154, 36, 2407, 2404, 2402, + 2398, 107, 2395, 2394, 2393, 2392, 171, 165, 141, 97, + 2391, 98, 145, 169, 166, 66, 2388, 48, 2385, 2371, + 29, 189, 28, 2366, 15, 126, 134, 2363, 0, 2362, + 23, 185, 346, 191, 2360, 2355, 4, 18, 10, 2351, + 2350, 2348, 2345, 158, 2338, 2337, 2335, 2334, 26, 59, + 24, 13, 130, 95, 2332, 2328, 4339, 1480, 149, 2327, + 198, } -//line sql.y:7581 +//line sql.y:7552 type yySymType struct { union any empty struct{} @@ -6444,7 +6399,6 @@ type yySymType struct { databaseOption DatabaseOption columnType ColumnType columnCharset ColumnCharset - jsonPathParam JSONPathParam yys int } @@ -6748,11 +6702,6 @@ func (st *yySymType) jsonObjectParamsUnion() []*JSONObjectParam { return v } -func (st *yySymType) jsonPathParamsUnion() []JSONPathParam { - v, _ := st.union.([]JSONPathParam) - return v -} - func (st *yySymType) jtColumnDefinitionUnion() *JtColumnDefinition { v, _ := st.union.(*JtColumnDefinition) return v @@ -7094,35 +7043,35 @@ func (st *yySymType) withUnion() *With { } var yyR1 = [...]int{ - 0, 397, 398, 398, 7, 7, 7, 7, 7, 7, + 0, 394, 395, 395, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 371, 371, - 371, 374, 374, 32, 71, 34, 34, 33, 33, 36, + 7, 7, 7, 7, 7, 7, 7, 7, 368, 368, + 368, 371, 371, 32, 71, 34, 34, 33, 33, 36, 36, 35, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 13, 13, 13, 13, 13, 19, 20, 12, 12, 21, 21, 104, 104, 22, 23, 23, 23, 23, - 401, 401, 179, 179, 177, 177, 178, 178, 250, 250, + 398, 398, 179, 179, 177, 177, 178, 178, 250, 250, 24, 25, 25, 260, 260, 259, 259, 259, 261, 261, 261, 261, 298, 298, 26, 26, 26, 26, 26, 124, - 124, 373, 373, 372, 364, 364, 363, 363, 362, 370, - 370, 369, 369, 368, 38, 39, 48, 48, 48, 48, - 49, 50, 375, 375, 337, 55, 55, 54, 54, 54, + 124, 370, 370, 369, 364, 364, 363, 363, 362, 367, + 367, 366, 366, 365, 38, 39, 48, 48, 48, 48, + 49, 50, 372, 372, 337, 55, 55, 54, 54, 54, 54, 54, 54, 56, 56, 52, 52, 51, 51, 53, 53, 339, 339, 325, 325, 338, 338, 338, 338, 338, 338, 338, 324, 324, 135, 135, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 390, 390, 390, 389, 389, 229, 229, + 228, 228, 228, 387, 387, 387, 386, 386, 229, 229, 229, 229, 229, 229, 229, 229, 145, 145, 157, 157, 157, 157, 157, 143, 143, 144, 142, 142, 142, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 394, 394, 394, 394, 394, 394, 394, 394, 394, - 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, - 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, - 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, - 394, 394, 394, 156, 156, 152, 152, 152, 153, 153, - 153, 154, 154, 391, 391, 391, 391, 303, 303, 303, + 151, 391, 391, 391, 391, 391, 391, 391, 391, 391, + 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, + 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, + 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, + 391, 391, 391, 156, 156, 152, 152, 152, 153, 153, + 153, 154, 154, 388, 388, 388, 388, 303, 303, 303, 303, 306, 306, 304, 304, 304, 304, 304, 304, 304, 304, 304, 305, 305, 305, 305, 305, 307, 307, 307, 307, 307, 308, 308, 308, 308, 308, 308, 308, 308, @@ -7134,16 +7083,16 @@ var yyR1 = [...]int{ 348, 348, 348, 348, 348, 348, 348, 335, 335, 345, 345, 345, 345, 345, 334, 334, 330, 330, 330, 331, 331, 332, 332, 329, 329, 333, 333, 347, 347, 346, - 346, 327, 327, 328, 328, 353, 392, 392, 392, 392, - 392, 393, 393, 354, 382, 384, 384, 384, 383, 383, - 380, 381, 379, 379, 379, 379, 379, 81, 81, 81, + 346, 327, 327, 328, 328, 353, 389, 389, 389, 389, + 389, 390, 390, 354, 379, 381, 381, 381, 380, 380, + 377, 378, 376, 376, 376, 376, 376, 81, 81, 81, 273, 273, 274, 274, 343, 343, 342, 342, 342, 344, 344, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 268, 268, 268, 378, 378, 378, 378, 378, - 378, 377, 377, 377, 340, 340, 340, 376, 376, 57, - 57, 212, 212, 395, 395, 396, 396, 396, 45, 45, + 341, 341, 268, 268, 268, 375, 375, 375, 375, 375, + 375, 374, 374, 374, 340, 340, 340, 373, 373, 57, + 57, 212, 212, 392, 392, 393, 393, 393, 45, 45, 45, 45, 45, 45, 44, 44, 44, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, @@ -7169,14 +7118,14 @@ var yyR1 = [...]int{ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 267, 267, 276, 276, 266, 266, 291, 291, 291, 269, 269, - 269, 270, 270, 388, 388, 388, 263, 263, 64, 64, + 269, 270, 270, 385, 385, 385, 263, 263, 64, 64, 64, 66, 66, 67, 68, 68, 293, 293, 294, 294, 69, 70, 82, 82, 82, 82, 82, 82, 105, 105, 105, 15, 15, 15, 15, 78, 78, 78, 14, 14, - 65, 65, 72, 385, 385, 386, 387, 387, 387, 387, + 65, 65, 72, 382, 382, 383, 384, 384, 384, 384, 73, 75, 31, 31, 31, 31, 31, 31, 130, 130, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 125, 125, 125, 119, 119, 402, 76, 77, + 118, 118, 125, 125, 125, 119, 119, 399, 76, 77, 77, 123, 123, 123, 116, 116, 116, 122, 122, 122, 16, 16, 17, 249, 249, 18, 18, 127, 127, 129, 129, 129, 129, 129, 131, 131, 131, 131, 131, 131, @@ -7208,33 +7157,33 @@ var yyR1 = [...]int{ 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, - 198, 198, 198, 198, 198, 198, 198, 160, 160, 160, - 160, 217, 217, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 148, 148, - 300, 300, 367, 367, 366, 366, 365, 365, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 403, - 403, 314, 314, 314, 314, 200, 200, 200, 200, 200, - 121, 121, 121, 121, 121, 297, 297, 297, 301, 301, - 301, 299, 299, 299, 299, 299, 299, 299, 299, 299, - 299, 299, 299, 299, 299, 299, 302, 302, 215, 215, - 117, 117, 213, 213, 214, 216, 216, 211, 211, 211, - 196, 196, 196, 218, 218, 219, 219, 101, 102, 102, - 103, 103, 220, 220, 222, 221, 221, 223, 224, 224, - 224, 225, 225, 226, 226, 226, 47, 47, 47, 47, - 47, 42, 42, 42, 42, 43, 43, 43, 43, 132, - 132, 132, 132, 134, 134, 133, 133, 79, 79, 80, - 80, 80, 138, 138, 139, 139, 139, 136, 136, 137, - 137, 243, 243, 227, 227, 227, 234, 234, 234, 230, - 230, 232, 232, 232, 233, 233, 233, 231, 240, 240, - 242, 242, 241, 241, 237, 237, 238, 238, 239, 239, - 239, 235, 235, 195, 195, 195, 195, 195, 244, 244, - 244, 244, 252, 252, 206, 206, 208, 208, 207, 207, - 159, 253, 253, 257, 254, 254, 258, 258, 258, 258, - 258, 255, 255, 256, 256, 285, 285, 285, 262, 262, - 275, 275, 271, 271, 272, 272, 265, 265, 277, 277, - 277, 74, 204, 204, 352, 352, 349, 280, 280, 282, - 282, 286, 286, 290, 290, 287, 287, 278, 278, 278, + 198, 198, 198, 198, 198, 198, 198, 198, 160, 160, + 160, 160, 217, 217, 147, 147, 147, 147, 147, 147, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 148, + 148, 300, 300, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 400, 400, 314, 314, 314, 314, + 200, 200, 200, 200, 200, 121, 121, 121, 121, 121, + 297, 297, 297, 301, 301, 301, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 302, 302, 215, 215, 117, 117, 213, 213, 214, + 216, 216, 211, 211, 211, 196, 196, 196, 218, 218, + 219, 219, 101, 102, 102, 103, 103, 220, 220, 222, + 221, 221, 223, 224, 224, 224, 225, 225, 226, 226, + 226, 47, 47, 47, 47, 47, 42, 42, 42, 42, + 43, 43, 43, 43, 132, 132, 132, 132, 134, 134, + 133, 133, 79, 79, 80, 80, 80, 138, 138, 139, + 139, 139, 136, 136, 137, 137, 243, 243, 227, 227, + 227, 234, 234, 234, 230, 230, 232, 232, 232, 233, + 233, 233, 231, 240, 240, 242, 242, 241, 241, 237, + 237, 238, 238, 239, 239, 239, 235, 235, 195, 195, + 195, 195, 195, 244, 244, 244, 244, 252, 252, 206, + 206, 208, 208, 207, 207, 159, 253, 253, 257, 254, + 254, 258, 258, 258, 258, 258, 255, 255, 256, 256, + 285, 285, 285, 262, 262, 275, 275, 271, 271, 272, + 272, 265, 265, 277, 277, 277, 74, 204, 204, 352, + 352, 349, 280, 280, 282, 282, 286, 286, 290, 290, + 287, 287, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, @@ -7249,7 +7198,7 @@ var yyR1 = [...]int{ 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 279, 279, 279, 279, + 278, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, @@ -7285,8 +7234,8 @@ var yyR1 = [...]int{ 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 399, 400, 295, 296, 296, 296, + 279, 279, 279, 279, 279, 279, 396, 397, 295, 296, + 296, 296, } var yyR2 = [...]int{ @@ -7401,36 +7350,35 @@ var yyR2 = [...]int{ 8, 6, 8, 5, 4, 2, 2, 1, 2, 2, 2, 8, 8, 6, 5, 4, 4, 4, 4, 4, 7, 4, 6, 6, 4, 4, 3, 4, 6, 6, - 4, 4, 4, 7, 8, 6, 5, 6, 8, 11, - 7, 8, 8, 9, 4, 4, 4, 4, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 4, 4, - 6, 5, 9, 6, 9, 1, 1, 1, 1, 1, - 1, 0, 2, 6, 8, 10, 12, 14, 6, 8, - 8, 10, 12, 14, 6, 8, 10, 12, 6, 8, - 0, 2, 0, 2, 1, 3, 1, 1, 1, 1, + 4, 4, 4, 6, 8, 6, 4, 6, 6, 8, + 10, 7, 8, 8, 9, 4, 4, 4, 4, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, + 4, 6, 5, 9, 6, 9, 1, 1, 1, 1, + 1, 1, 0, 2, 6, 8, 10, 12, 14, 6, + 8, 8, 10, 12, 14, 6, 8, 10, 12, 6, + 8, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 2, 0, 2, 3, 3, 4, 4, 4, 4, 4, - 0, 3, 4, 7, 3, 1, 1, 1, 0, 5, - 5, 2, 3, 1, 2, 2, 1, 2, 1, 2, - 2, 1, 2, 2, 1, 1, 0, 1, 0, 1, - 0, 2, 1, 2, 4, 0, 2, 1, 3, 5, - 1, 2, 2, 0, 3, 0, 2, 2, 1, 3, - 0, 1, 0, 1, 3, 1, 3, 2, 0, 1, - 1, 0, 1, 2, 4, 4, 0, 2, 2, 1, - 1, 3, 3, 3, 3, 3, 3, 3, 3, 0, - 3, 3, 3, 0, 3, 1, 1, 0, 4, 0, - 1, 1, 0, 3, 1, 3, 2, 1, 1, 0, - 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, 4, - 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, 0, 2, 0, 2, 3, 3, + 4, 4, 4, 4, 4, 0, 3, 4, 7, 3, + 1, 1, 1, 0, 5, 5, 2, 3, 1, 2, + 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, + 1, 0, 1, 0, 1, 0, 2, 1, 2, 4, + 0, 2, 1, 3, 5, 1, 2, 2, 0, 3, + 0, 2, 2, 1, 3, 0, 1, 0, 1, 3, + 1, 3, 2, 0, 1, 1, 0, 1, 2, 4, + 4, 0, 2, 2, 1, 1, 3, 3, 3, 3, + 3, 3, 3, 3, 0, 3, 3, 3, 0, 3, + 1, 1, 0, 4, 0, 1, 1, 0, 3, 1, + 3, 2, 1, 1, 0, 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, 4, 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, @@ -7482,21 +7430,22 @@ 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, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, + 1, 1, } var yyChk = [...]int{ - -1000, -397, -7, -11, -19, -20, -21, -22, -23, -24, + -1000, -394, -7, -11, -19, -20, -21, -22, -23, -24, -25, -26, -27, -28, -29, -30, -62, -63, -64, -66, -67, -68, -69, -70, -14, -65, -31, -32, -71, -72, -73, -74, -75, -16, -17, -18, -9, -8, -13, 9, 10, -104, -33, 32, -38, -48, 222, -49, -39, 223, -50, 225, 224, 261, 226, 254, 74, 307, 308, 310, 311, 312, 313, -105, 259, 260, 228, 36, 45, 33, - 34, 37, 232, 267, 268, 231, -10, -34, 8, -399, - 11, 438, 256, 255, 28, -12, 483, 86, -398, 627, + 34, 37, 232, 267, 268, 231, -10, -34, 8, -396, + 11, 438, 256, 255, 28, -12, 483, 86, -395, 627, -243, -227, 22, 33, 29, -226, -222, -123, -227, 20, - 18, 7, -76, -402, -76, -76, 12, 13, -76, -337, + 18, 7, -76, -399, -76, -76, 12, 13, -76, -337, -339, 86, 156, 86, -76, -55, -54, -52, -51, -53, -56, 31, -45, -46, -361, -44, -41, 227, 224, 271, 120, 121, 261, 262, 263, 226, 245, 260, 264, 259, @@ -7504,7 +7453,7 @@ var yyChk = [...]int{ 439, 123, 122, 75, 225, -341, 361, 516, 597, -56, 599, 102, 104, 598, 44, 235, 600, 601, 602, 523, 603, 244, 604, 605, 606, 607, 613, 565, 614, 615, - 616, 124, 7, -76, -290, -286, -371, -279, 89, 90, + 616, 124, 7, -76, -290, -286, -368, -279, 89, 90, 91, 480, 247, 514, 515, 296, 81, 41, 489, 358, 361, 516, 597, 307, 321, 315, 342, 334, 481, 517, 490, 299, 248, 284, 591, 332, 132, 599, 302, 518, @@ -7543,10 +7492,10 @@ var yyChk = [...]int{ 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 447, 234, -76, 234, -184, -286, 234, -255, 367, -276, 369, 382, 377, 387, 375, - -267, 378, 380, 274, -388, 397, 234, 384, 222, 370, + -267, 378, 380, 274, -385, 397, 234, 384, 222, 370, 379, 388, 389, 298, 395, 390, 394, 283, 391, 392, - 393, -371, 174, 602, 617, 132, 335, 374, 372, 398, - 581, -286, 309, -293, 314, -280, -371, -279, 312, -184, + 393, -368, 174, 602, 617, 132, 335, 374, 372, 398, + 581, -286, 309, -293, 314, -280, -368, -279, 312, -184, -82, 577, 226, -295, -295, -125, 581, 583, -203, -140, 140, -155, -158, -146, -150, -197, -198, -199, -200, -156, -211, 163, 164, 171, 141, -209, -159, 26, 479, 440, @@ -7559,15 +7508,15 @@ var yyChk = [...]int{ 504, -98, -147, -148, -280, -286, 239, 409, 233, 169, 438, -151, -144, -8, -207, 217, 408, 413, 414, 418, 411, 491, 493, 508, 509, 511, 496, 501, 500, 503, - 468, 469, 470, 471, 472, 473, -371, -279, -153, -152, - -193, 92, 98, 103, 99, -394, 116, -399, 595, 93, + 468, 469, 470, 471, 472, 473, -368, -279, -153, -152, + -193, 92, 98, 103, 99, -391, 116, -396, 595, 93, 94, 95, 96, 97, 117, 118, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 44, 383, 383, -184, -76, -76, -76, -76, -220, -123, -222, -10, - -8, -399, 8, -76, -8, -9, -13, -34, -36, 510, + -8, -396, 8, -76, -8, -9, -13, -34, -36, 510, -35, -286, -227, -243, 12, 159, 42, 50, -225, -226, -12, -8, -140, 19, 23, 24, -128, 165, -140, -286, -77, -128, -265, 238, -76, -76, -254, -298, 309, -258, @@ -7588,24 +7537,24 @@ var yyChk = [...]int{ 7, 133, 34, 12, 74, 77, 416, 417, 418, 57, 125, 483, 144, 15, 513, 402, 138, 132, -338, 156, -324, -328, -280, 249, -354, 245, -184, -347, -346, -280, - -399, -124, -275, 235, 243, 242, 133, -375, 136, 291, + -396, -124, -275, 235, 243, 242, 133, -372, 136, 291, 409, 233, -51, -52, -53, -255, 173, 601, -106, 266, - 270, 87, 87, -328, -327, -326, -376, 270, 249, -353, - -345, 241, 250, -334, 242, 243, -329, 235, 134, -376, + 270, 87, 87, -328, -327, -326, -373, 270, 249, -353, + -345, 241, 250, -334, 242, 243, -329, 235, 134, -373, -329, 240, 250, 245, 249, 270, 270, 124, 270, 124, 270, 270, 270, 270, 270, 270, 270, 270, 270, 265, - -335, 148, -335, 487, 487, -341, -376, 245, 235, -376, - -376, 237, 35, 35, -277, -329, 237, 25, -335, -335, + -335, 148, -335, 487, 487, -341, -373, 245, 235, -373, + -373, 237, 35, 35, -277, -329, 237, 25, -335, -335, -335, -255, 173, -335, -335, -335, -335, 278, 278, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, - -335, -335, -335, -335, -335, -335, 234, -375, -132, 394, - 298, 81, -54, 280, -37, -184, -275, 235, 236, -375, + -335, -335, -335, -335, -335, -335, 234, -372, -132, 394, + 298, 81, -54, 280, -37, -184, -275, 235, 236, -372, 267, -184, 218, -184, -269, 156, 15, -269, -266, 383, 381, 368, 373, -269, -269, -269, -269, 281, 366, -330, 235, 35, 246, 383, 281, 366, 281, 282, 281, 282, 376, 386, 281, -291, 14, 159, 409, 371, 375, 274, 234, 275, 236, 385, 282, -291, 93, -270, 156, 383, - 277, -269, -269, -296, -399, -282, 335, -371, 584, -296, + 277, -269, -269, -296, -396, -282, 335, -368, 584, -296, -296, 32, 90, 237, -280, -78, -280, 93, -15, -11, -22, -21, -23, 148, -130, 383, -118, 174, 602, 585, 586, 587, 584, 380, 592, 590, 588, 281, 589, 87, @@ -7613,20 +7562,20 @@ var yyChk = [...]int{ 151, 152, 153, 154, 159, 140, 142, 156, -236, 137, 160, 161, 162, 163, 164, 165, 166, 168, 167, 169, 170, 157, 158, 173, 220, 221, -150, -150, -150, -150, - -209, -399, -399, -399, -150, -264, -399, -399, -399, -399, - -399, -215, -140, -399, -403, -399, -403, -403, -314, -399, - -314, -399, -399, -399, -399, -399, -399, -399, -399, -399, - -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, - -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, - -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, - -399, -399, -399, -399, -399, -399, -399, -399, 218, -399, - -399, -399, -399, -399, -150, -314, -314, -314, -314, -314, - -399, -399, -399, -399, -399, -399, 103, 98, 92, -211, - 99, 93, -280, -286, -8, -9, -203, -399, -295, -385, - -386, -187, -184, -399, 298, -280, -280, 267, -225, -12, + -209, -396, -396, -396, -150, -264, -396, -396, -396, -396, + -396, -215, -140, -396, -400, -396, -400, -400, -314, -396, + -314, -396, -396, -396, -396, -396, -396, -396, -396, -396, + -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, + -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, + -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, + -396, -396, -396, -396, -396, -396, -396, -396, 218, -396, + -396, -396, -396, -396, -150, -314, -314, -314, -314, -314, + -396, -396, -396, -396, -396, -396, 103, 98, 92, -211, + 99, 93, -280, -286, -8, -9, -203, -396, -295, -382, + -383, -187, -184, -396, 298, -280, -280, 267, -225, -12, -8, -220, -226, -222, -8, -76, -116, -129, 63, 64, - -131, 24, 38, 67, 65, 23, -400, 88, -400, -243, - -400, 87, -36, -247, 86, 61, 43, 93, 93, 87, + -131, 24, 38, 67, 65, 23, -397, 88, -397, -243, + -397, 87, -36, -247, 86, 61, 43, 93, 93, 87, 21, -221, -223, -140, 14, -284, 4, -283, 25, -280, 93, 218, 101, 14, -185, 29, -184, -265, -265, 87, 309, -258, -298, -260, -259, 399, 401, 148, -285, -280, @@ -7635,22 +7584,22 @@ var yyChk = [...]int{ 342, 343, 344, 345, 346, 349, 32, 257, 328, 329, 330, 331, 350, 351, 352, 353, 354, 355, 356, 357, 315, 334, 481, 316, 317, 318, 319, 320, 321, 323, - 324, 325, 326, 327, -374, -371, 86, 88, 87, -310, - 86, -140, -132, 234, -371, 235, 235, 235, -76, 438, + 324, 325, 326, 327, -371, -368, 86, 88, 87, -310, + 86, -140, -132, 234, -368, 235, 235, 235, -76, 438, -335, -335, -335, 265, 19, -44, -41, -361, 18, -40, - -41, 227, 120, 121, 224, 86, -324, 86, -333, -374, - -371, 86, 134, 240, 133, -332, -329, -332, -333, -371, - -211, -371, 134, 134, -371, -371, -251, -280, -251, -251, + -41, 227, 120, 121, 224, 86, -324, 86, -333, -371, + -368, 86, 134, 240, 133, -332, -329, -332, -333, -368, + -211, -368, 134, 134, -368, -368, -251, -280, -251, -251, 23, -251, 23, -251, 23, 95, -280, -251, 23, -251, 23, -251, 23, -251, 23, -251, 23, 31, 78, 79, - 80, 31, 82, 83, 84, -211, -371, -371, -211, -324, - -255, -184, -371, 95, 95, 95, -335, -335, 95, 93, + 80, 31, 82, 83, 84, -211, -368, -368, -211, -324, + -255, -184, -368, 95, 95, 95, -335, -335, 95, 93, 93, 93, -335, -335, 95, 93, -288, -286, 93, 93, - -377, 251, 295, 297, 95, 95, 95, 95, 31, 93, - -378, 31, 609, 608, 610, 611, 612, 93, 95, 31, + -374, 251, 295, 297, 95, 95, 95, 95, 31, 93, + -375, 31, 609, 608, 610, 611, 612, 93, 95, 31, 95, 31, 95, -280, 86, -184, -138, 285, 222, 224, 227, 76, 93, 299, 303, 304, 148, 44, 87, 237, - 234, -371, -271, 239, -271, -280, -287, -286, -278, 93, + 234, -368, -271, 239, -271, -280, -287, -286, -278, 93, -140, -331, 14, 159, -291, -291, -269, -184, -331, -291, -269, -184, -269, -269, -269, -269, -291, -291, -291, -269, -286, -286, -184, -184, -184, -184, -184, -184, -184, -296, @@ -7660,162 +7609,162 @@ var yyChk = [...]int{ -201, 116, 140, 117, 118, -158, -202, -207, -209, 100, 159, 142, 156, -236, -146, -150, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -297, - -280, 93, 174, -154, -153, 99, -394, -154, -126, -128, - -140, -140, -371, -126, -126, -140, -122, 24, 38, -213, - -214, 144, -211, -400, -400, 95, 99, -280, -280, -115, + -280, 93, 174, -154, -153, 99, -391, -154, -126, -128, + -140, -140, -368, -126, -126, -140, -122, 24, 38, -213, + -214, 144, -211, -397, -397, 95, 99, -280, -280, -115, -114, 420, 421, 422, 423, 425, 426, 427, 430, 431, 435, 436, 419, 437, 424, 429, 432, 433, 434, 428, 331, -140, -140, -140, -140, -140, -140, -83, -140, 127, - 128, 129, -140, -140, -140, -400, -140, -140, -140, -204, - -203, -370, -369, -368, -140, -140, -140, -140, -140, -140, + 128, 129, -140, -140, -140, -397, -140, -140, -140, -204, + -203, -367, -366, -365, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, - -140, -140, -140, -140, -140, -140, -140, -400, -140, -160, - -144, 95, -371, 99, -140, -140, -127, 24, 38, -126, + -140, -140, -140, -140, -140, -140, -140, -397, -140, -160, + -144, 95, -368, 99, -140, -140, -127, 24, 38, -126, -282, -287, -278, -126, -127, -127, -126, -126, -280, -140, - -140, -140, -140, -140, -140, 218, -243, -400, -203, 87, - -387, 401, 402, 582, -289, 270, -288, 25, -204, 93, + -140, -140, -140, -140, -140, 218, -243, -397, -203, 87, + -384, 401, 402, 582, -289, 270, -288, 25, -204, 93, 14, -249, 77, -280, -225, -225, 63, 64, 59, -126, - -131, -400, -35, 25, -245, -280, 62, 93, -315, -255, + -131, -397, -35, 25, -245, -280, 62, 93, -315, -255, 358, 359, 174, -140, -140, 87, -224, 27, 28, -184, -283, 165, -287, -184, -250, 270, -184, -162, -164, -165, - -166, -187, -210, -399, -167, 502, 499, 14, -177, -178, + -166, -187, -210, -396, -167, 502, 499, 14, -177, -178, -186, -286, -258, -260, 87, 400, 402, 403, 76, 119, -140, -316, 173, -343, -342, -341, -324, -326, -327, -328, 88, -316, -320, 364, 363, -310, -310, -310, -310, -310, -315, -315, -315, -315, 86, 86, -310, -310, -310, -310, -318, 86, -318, -318, -319, 86, -319, -354, -140, -351, -350, -348, -349, 244, 102, 575, 531, 483, 523, 565, - 77, -346, -224, 95, -400, -138, -272, 239, -352, -349, - -371, -371, -371, -272, -371, 93, -371, 93, -371, 93, + 77, -346, -224, 95, -397, -138, -272, 239, -352, -349, + -368, -368, -368, -272, -368, 93, -368, 93, -368, 93, -107, -58, -1, 621, 622, 623, 87, 19, -325, -324, -57, 295, -357, -358, 270, -353, -347, -333, 134, -332, - -333, -333, -371, 87, 29, 124, 124, 124, 124, 483, + -333, -333, -368, 87, 29, 124, 124, 124, 124, 483, 224, 32, -273, 522, 140, 575, 531, -324, -57, -297, 237, -297, -297, 93, 93, -268, 617, -177, -134, 287, 148, 276, 276, 234, 234, 289, -184, 300, 302, 301, 299, 303, 304, 23, 23, 23, 288, 290, 292, 278, -184, -184, -271, 76, -179, -184, 26, -286, -184, -269, -269, -184, -269, -269, -184, -280, -118, 401, 87, 483, - 22, -119, 22, -399, 116, 117, 118, -202, -146, -150, - -146, 139, 258, 87, -400, 25, 87, 77, -400, -400, - -400, 87, 14, -126, -216, -214, 146, -140, -400, -400, - -400, 87, 87, 14, -301, 25, -400, -400, -400, -400, - -400, -215, -400, 14, 87, -400, -400, -400, 87, 87, - -400, -400, 87, 87, -400, 87, 87, 87, -367, 87, - 87, 87, 87, -400, -400, -400, -400, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, -400, -90, 507, - -400, -400, 87, -400, 87, -400, -126, -126, -399, 218, - -400, -400, -400, -400, -400, 87, 87, 87, 87, 87, - 87, -282, -400, -386, 581, 402, -191, -190, -188, 74, - 238, 75, -399, -288, -400, -154, 90, -246, 90, -245, + 22, -119, 22, -396, 116, 117, 118, -202, -146, -150, + -146, 139, 258, 87, -397, 25, 87, 77, -397, -397, + -397, 87, 14, -126, -216, -214, 146, -140, -397, -397, + -397, 87, 87, 14, -301, 25, -397, -397, -397, -397, + -397, -215, -397, 14, 87, -397, -397, -397, 87, 87, + -397, -397, 87, 87, -397, 87, 87, 87, -397, 87, + 87, 87, 87, -397, -397, -397, -397, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, -397, -90, 507, + -397, -397, 87, -397, 87, -397, -126, -126, -396, 218, + -397, -397, -397, -397, -397, 87, 87, 87, 87, 87, + 87, -282, -397, -383, 581, 402, -191, -190, -188, 74, + 238, 75, -396, -288, -397, -154, 90, -246, 90, -245, -196, -280, 95, 99, -227, -161, -163, 14, -131, -209, 88, 87, -315, -231, -237, -266, -280, 93, 174, -317, 174, -317, 358, 359, -223, 218, -192, 15, -195, 32, - 57, -11, -399, -399, 32, 87, -180, -182, -181, -183, + 57, -11, -396, -396, 32, 87, -180, -182, -181, -183, 66, 70, 72, 67, 68, 69, 73, -292, 25, -162, - -9, -8, -399, -399, -399, -184, -177, -401, 14, 77, - -401, 87, 218, -259, -261, 404, 401, 407, -371, 93, + -9, -8, -396, -396, -396, -184, -177, -398, 14, 77, + -398, 87, 218, -259, -261, 404, 401, 407, -368, 93, -106, 87, -341, -328, -228, -135, 40, -321, 365, -315, 490, -315, -323, 93, -323, 95, 95, 88, -47, -42, -43, 33, 81, -348, -335, 93, 39, -335, -335, -280, 88, -224, -134, -184, 140, 76, -352, -352, -352, -286, -2, 620, 626, 134, 86, 368, 18, -245, 87, 88, -212, 296, 88, -108, -280, 88, 86, -333, -333, -280, - -399, 234, 31, 31, 575, 531, 522, -57, -212, -316, - -371, 619, 618, 88, 236, 294, -139, 415, -136, 93, - 89, -184, -184, -184, -184, -184, 227, 224, -395, 305, - -395, 279, 237, -177, -184, 87, -81, 253, 248, -291, + -396, 234, 31, 31, 575, 531, 522, -57, -212, -316, + -368, 619, 618, 88, 236, 294, -139, 415, -136, 93, + 89, -184, -184, -184, -184, -184, 227, 224, -392, 305, + -392, 279, 237, -177, -184, 87, -81, 253, 248, -291, -291, 33, -184, 401, 593, 591, -140, 139, 258, -158, -150, -128, 480, -299, 174, 332, 257, 330, 326, 346, 337, 363, 328, 364, 325, 324, 323, -299, -297, -140, - -140, -220, 147, -140, 145, -140, -140, -140, -400, 174, - 332, 14, -140, -140, -140, -140, -368, -140, -140, -140, - -366, -365, -154, -211, -400, -366, -140, -140, -365, -365, - -369, -369, -369, -369, -369, -203, -203, -203, -203, -399, - -280, -93, -92, -91, 558, 238, -90, -160, -93, -160, - -400, -400, -127, -282, -140, -140, -140, -140, -140, -140, - -188, -329, -329, -329, -251, 87, -262, 22, 14, 57, - 57, -161, -192, -162, -131, -280, -234, 577, -240, 46, - -238, -239, 47, -235, 48, 56, -317, -317, 165, -225, - -140, -252, 76, -253, -257, -211, -206, -208, -207, -399, - -244, -400, -280, -251, -253, -164, -165, -165, -164, -165, - 66, 66, 66, 71, 66, 71, 66, -181, -286, -400, - -400, -9, -9, -140, -289, 77, -162, -162, -186, -286, - 165, 401, 405, 406, -341, -393, 116, 140, 31, 76, - 361, 102, -391, 173, 519, 570, 575, 531, 523, 565, - -392, 240, 133, 134, 252, 25, 41, 88, 87, 88, - 87, 88, 87, -274, -273, -43, -42, -335, -335, 95, - -371, 93, 93, 236, 26, -184, 76, 76, 76, -109, - 624, 95, 86, -3, 81, -140, 86, 19, -324, -211, - -359, -311, -360, -312, -313, -5, -6, -336, -112, 57, - 102, -61, 44, 235, 604, 605, 124, -399, 617, -351, - -245, -355, -357, -184, -143, -399, -142, -144, -151, 163, - 164, -212, -184, -133, 285, 293, 86, -137, 90, -373, - 77, 276, 361, 276, -396, 306, 93, -396, -184, -81, - -47, -184, -269, -269, 33, -371, -400, -158, -150, -399, - -302, 489, -310, -310, -310, -319, -310, 320, -310, 320, - -310, -400, -400, 87, -400, 22, -400, -117, 444, -140, - 87, 87, -400, 86, 86, -140, -400, -400, -400, -400, - -367, 87, -400, 87, -400, 87, -300, 576, -400, -400, - -400, -400, -400, -400, -400, -400, -400, -400, -89, -281, - -280, -90, 540, 540, -400, -90, -217, 87, -400, -400, - 87, -400, 87, 87, -400, 87, -400, 87, -189, 22, - -189, -189, -400, 90, -184, -192, -218, 16, -231, 51, - 338, -242, -241, 55, 47, -239, 19, 49, 19, 30, - -252, 87, 148, 87, -400, -400, 87, 57, 218, -400, - -192, -175, -174, 76, 77, -176, 76, -174, 66, 66, - -247, -400, -400, 87, -250, -162, -192, -192, 218, 116, - -399, -145, -157, -143, 12, 93, 93, -371, -390, 608, - 609, 31, 95, -335, -335, 134, 134, -184, 86, -315, - 93, -315, 95, 95, 31, 82, 83, 84, 31, 78, - 79, 80, -184, -184, -184, -184, -356, 86, 19, -140, - 86, 148, 88, -245, -245, 272, 159, -335, 602, 278, - 278, -335, -335, -335, -111, -110, 624, 88, -400, 87, - -322, 483, 486, -140, -152, -152, -247, 88, -364, 483, - -372, -280, -280, -280, -280, 95, 97, -146, -400, -315, - -140, -140, -225, 93, -140, -140, 95, 95, -400, -400, - -366, -365, -140, -400, -172, -171, -173, 585, 116, 31, - -299, -400, -205, 270, -96, -95, -94, 14, -400, -140, - -140, -140, -140, -140, -140, -399, 66, 18, 16, -399, - -399, -289, -218, -219, 17, 19, -232, 53, -230, 52, - -230, -241, 19, 19, 93, 19, 93, 134, -257, -140, - -208, 57, -11, -280, -206, -280, -220, -140, 86, -140, - -154, -192, -192, -140, -198, 447, 105, 107, 106, 448, - 449, 450, 474, 477, 478, 476, 475, 347, 348, 451, - 452, 453, 108, 109, 110, 111, 112, 113, 114, 454, - 457, 455, 458, 459, 460, 465, 466, 461, 462, 463, - 464, 467, 468, 469, 470, 471, 472, 473, 93, 93, - 86, -140, 88, 88, -247, -355, -58, 88, -245, 95, - 88, 273, -207, -399, 93, -335, -335, -335, 95, 95, - -288, -400, 87, -280, -392, -357, 487, 487, -400, 25, - -363, -362, -282, 86, 77, -121, 159, 483, -400, -400, - -400, -400, -400, 88, 88, -400, -400, 87, -400, -171, - -173, -400, 76, -154, -220, 19, -93, 295, 297, -93, - -400, 87, -400, -400, 87, -400, 87, -400, -248, -400, - -280, 240, 19, 19, -248, -248, -191, -219, -103, -102, - -101, 513, -140, -203, -233, 54, 76, 119, 93, 93, - 93, 12, -206, 218, -225, -245, -169, 368, -220, -400, - -245, 88, 25, 88, 626, 134, 88, -207, -120, -399, - 269, -288, 93, 93, -110, -113, -11, 87, 148, -245, - -184, -400, 481, 73, 484, -140, -400, 76, 494, 585, - -88, -87, -84, 596, 622, -203, -90, -90, -140, -140, - -140, 87, -400, -400, -400, -103, 87, -100, -99, -280, - 76, 119, -253, -280, 88, -400, -399, -225, 88, -229, - -11, 86, -3, 269, -311, -360, -312, -313, -5, -6, - -336, -79, 483, -362, -340, -282, 93, 95, 88, 62, - 482, 485, -367, -86, 142, 594, 573, -141, -152, -149, - -400, 87, -400, 87, -400, 87, -280, 240, -101, 87, - 25, -289, -170, -168, -280, 537, -383, -382, 479, -393, - -389, 116, 140, 102, -391, 575, 531, 125, 126, -79, - -140, 86, -400, -80, 284, 581, -373, 62, -400, -86, - 595, 551, 525, 551, 525, -140, -140, -140, -99, -399, - -400, 87, 22, -303, -60, 548, -380, -381, 76, -384, - 374, 547, 568, 116, 93, 88, -245, 245, -364, 483, - 139, -400, 87, -400, 87, -400, -89, -168, 544, -316, - -154, -381, 76, -380, 76, 13, 12, -4, 625, 88, - 286, 484, -86, -140, -140, -400, -59, 26, -169, -379, - 253, 248, 251, 32, -379, 95, -4, 485, -400, -400, - 548, 247, 31, 116, -154, -172, -171, -171, + -140, -220, 147, -140, 145, -140, -140, -140, -397, 174, + 332, 14, -140, -140, -140, -140, -365, -140, -203, -140, + -203, -140, -140, -140, -140, -140, -366, -366, -366, -366, + -366, -203, -203, -203, -203, -396, -280, -93, -92, -91, + 558, 238, -90, -160, -93, -160, -397, -397, -127, -282, + -140, -140, -140, -140, -140, -140, -188, -329, -329, -329, + -251, 87, -262, 22, 14, 57, 57, -161, -192, -162, + -131, -280, -234, 577, -240, 46, -238, -239, 47, -235, + 48, 56, -317, -317, 165, -225, -140, -252, 76, -253, + -257, -211, -206, -208, -207, -396, -244, -397, -280, -251, + -253, -164, -165, -165, -164, -165, 66, 66, 66, 71, + 66, 71, 66, -181, -286, -397, -397, -9, -9, -140, + -289, 77, -162, -162, -186, -286, 165, 401, 405, 406, + -341, -390, 116, 140, 31, 76, 361, 102, -388, 173, + 519, 570, 575, 531, 523, 565, -389, 240, 133, 134, + 252, 25, 41, 88, 87, 88, 87, 88, 87, -274, + -273, -43, -42, -335, -335, 95, -368, 93, 93, 236, + 26, -184, 76, 76, 76, -109, 624, 95, 86, -3, + 81, -140, 86, 19, -324, -211, -359, -311, -360, -312, + -313, -5, -6, -336, -112, 57, 102, -61, 44, 235, + 604, 605, 124, -396, 617, -351, -245, -355, -357, -184, + -143, -396, -142, -144, -151, 163, 164, -212, -184, -133, + 285, 293, 86, -137, 90, -370, 77, 276, 361, 276, + -393, 306, 93, -393, -184, -81, -47, -184, -269, -269, + 33, -368, -397, -158, -150, -396, -302, 489, -310, -310, + -310, -319, -310, 320, -310, 320, -310, -397, -397, 87, + -397, 22, -397, -117, 444, -140, 87, 87, -397, 86, + 86, -140, -397, -397, -397, -397, -397, 87, -397, -397, + -397, 87, -300, 576, -397, -397, -397, -397, -397, -397, + -397, -397, -397, -397, -89, -281, -280, -90, 540, 540, + -397, -90, -217, 87, -397, -397, 87, -397, 87, 87, + -397, 87, -397, 87, -189, 22, -189, -189, -397, 90, + -184, -192, -218, 16, -231, 51, 338, -242, -241, 55, + 47, -239, 19, 49, 19, 30, -252, 87, 148, 87, + -397, -397, 87, 57, 218, -397, -192, -175, -174, 76, + 77, -176, 76, -174, 66, 66, -247, -397, -397, 87, + -250, -162, -192, -192, 218, 116, -396, -145, -157, -143, + 12, 93, 93, -368, -387, 608, 609, 31, 95, -335, + -335, 134, 134, -184, 86, -315, 93, -315, 95, 95, + 31, 82, 83, 84, 31, 78, 79, 80, -184, -184, + -184, -184, -356, 86, 19, -140, 86, 148, 88, -245, + -245, 272, 159, -335, 602, 278, 278, -335, -335, -335, + -111, -110, 624, 88, -397, 87, -322, 483, 486, -140, + -152, -152, -247, 88, -364, 483, -369, -280, -280, -280, + -280, 95, 97, -146, -397, -315, -140, -140, -225, 93, + -140, -140, 95, 95, -397, -203, -140, -397, -172, -171, + -173, 585, 116, 31, -299, -397, -205, 270, -96, -95, + -94, 14, -397, -140, -140, -140, -140, -140, -140, -396, + 66, 18, 16, -396, -396, -289, -218, -219, 17, 19, + -232, 53, -230, 52, -230, -241, 19, 19, 93, 19, + 93, 134, -257, -140, -208, 57, -11, -280, -206, -280, + -220, -140, 86, -140, -154, -192, -192, -140, -198, 447, + 105, 107, 106, 448, 449, 450, 474, 477, 478, 476, + 475, 347, 348, 451, 452, 453, 108, 109, 110, 111, + 112, 113, 114, 454, 457, 455, 458, 459, 460, 465, + 466, 461, 462, 463, 464, 467, 468, 469, 470, 471, + 472, 473, 93, 93, 86, -140, 88, 88, -247, -355, + -58, 88, -245, 95, 88, 273, -207, -396, 93, -335, + -335, -335, 95, 95, -288, -397, 87, -280, -389, -357, + 487, 487, -397, 25, -363, -362, -282, 86, 77, -121, + 159, 483, -397, -397, -397, -397, -397, 88, 88, -397, + -397, 87, -397, -171, -173, -397, 76, -154, -220, 19, + -93, 295, 297, -93, -397, 87, -397, -397, 87, -397, + 87, -397, -248, -397, -280, 240, 19, 19, -248, -248, + -191, -219, -103, -102, -101, 513, -140, -203, -233, 54, + 76, 119, 93, 93, 93, 12, -206, 218, -225, -245, + -169, 368, -220, -397, -245, 88, 25, 88, 626, 134, + 88, -207, -120, -396, 269, -288, 93, 93, -110, -113, + -11, 87, 148, -245, -184, -397, 481, 73, 484, -203, + -397, 76, 494, 585, -88, -87, -84, 596, 622, -203, + -90, -90, -140, -140, -140, 87, -397, -397, -397, -103, + 87, -100, -99, -280, 76, 119, -253, -280, 88, -397, + -396, -225, 88, -229, -11, 86, -3, 269, -311, -360, + -312, -313, -5, -6, -336, -79, 483, -362, -340, -282, + 93, 95, 88, 62, 482, 485, -397, -86, 142, 594, + 573, -141, -152, -149, -397, 87, -397, 87, -397, 87, + -280, 240, -101, 87, 25, -289, -170, -168, -280, 537, + -380, -379, 479, -390, -386, 116, 140, 102, -388, 575, + 531, 125, 126, -79, -140, 86, -397, -80, 284, 581, + -370, 62, -86, 595, 551, 525, 551, 525, -140, -140, + -140, -99, -396, -397, 87, 22, -303, -60, 548, -377, + -378, 76, -381, 374, 547, 568, 116, 93, 88, -245, + 245, -364, 483, 139, -397, 87, -397, 87, -397, -89, + -168, 544, -316, -154, -378, 76, -377, 76, 13, 12, + -4, 625, 88, 286, 484, -86, -140, -140, -397, -59, + 26, -169, -376, 253, 248, 251, 32, -376, 95, -4, + 485, -397, -397, 548, 247, 31, 116, -154, -172, -171, + -171, } var yyDef = [...]int{ @@ -7824,122 +7773,122 @@ var yyDef = [...]int{ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 68, 70, 71, 827, 827, 827, 0, 827, 0, 0, 827, -2, -2, 827, - 1403, 0, 827, 0, 0, -2, 759, 761, 0, 763, - -2, 0, 0, 772, 1923, 1923, 822, 0, 0, 0, - 0, 0, 827, 827, 827, 827, 1262, 48, 827, 0, - 83, 84, 778, 779, 780, 63, 0, 1921, 1, 3, - 69, 73, 0, 0, 0, 56, 1271, 0, 76, 0, - 0, 831, 0, 829, 0, 1386, 827, 827, 0, 114, + 1398, 0, 827, 0, 0, -2, 759, 761, 0, 763, + -2, 0, 0, 772, 1918, 1918, 822, 0, 0, 0, + 0, 0, 827, 827, 827, 827, 1257, 48, 827, 0, + 83, 84, 778, 779, 780, 63, 0, 1916, 1, 3, + 69, 73, 0, 0, 0, 56, 1266, 0, 76, 0, + 0, 831, 0, 829, 0, 1381, 827, 827, 0, 114, 115, 0, 0, 0, -2, 118, -2, 147, 148, 149, 0, 154, 573, 501, 552, 499, 537, -2, 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 504, 377, 377, 0, 0, -2, 487, 487, 487, - 0, 0, 0, 534, 1388, 439, 377, 377, 377, 0, + 0, 0, 0, 534, 1383, 439, 377, 377, 377, 0, 377, 377, 377, 377, 0, 0, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 1289, 153, 1404, 1401, 1402, 38, 39, - 40, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, - 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, - 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, - 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, - 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, - 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, - 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, - 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, - 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, - 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, - 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, - 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, - 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, - 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, - 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, - 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, - 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, - 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, - 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, - 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, - 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, - 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, - 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, - 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, - 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, - 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, - 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, - 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, - 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, - 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, - 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, - 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, - 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, - 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, - 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, - 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, - 1915, 1916, 1917, 1918, 1919, 1920, 0, 1380, 0, 686, + 377, 377, 377, 1284, 153, 1399, 1396, 1397, 38, 39, + 40, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, + 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, + 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, + 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, + 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, + 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, + 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, + 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, + 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, + 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, + 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, + 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, + 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, + 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, + 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, + 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, + 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, + 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, + 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, + 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, + 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, + 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, + 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, + 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, + 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, + 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, + 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, + 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, + 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, + 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, + 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, + 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, + 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, + 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, + 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, + 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, + 1910, 1911, 1912, 1913, 1914, 1915, 0, 1375, 0, 686, 928, 0, 748, 748, 0, 748, 748, 748, 748, 0, 0, 0, 698, 0, 0, 0, 0, 745, 0, 714, 715, 0, 745, 0, 721, 751, 0, 726, 748, 748, - 729, 1924, 0, 1924, 1924, 1371, 0, 742, 740, 754, - 755, 758, 762, 0, 767, 770, 1397, 1398, 0, 785, - 47, 1647, 777, 790, 791, 0, 823, 824, 43, 1070, + 729, 1919, 0, 1919, 1919, 1366, 0, 742, 740, 754, + 755, 758, 762, 0, 767, 770, 1392, 1393, 0, 785, + 47, 1642, 777, 790, 791, 0, 823, 824, 43, 1070, 0, 950, 955, 966, 981, 982, 983, 984, 985, 987, 988, 0, 0, 0, 0, 993, 994, 0, 0, 0, - 0, 0, 1051, 1002, 0, 0, 0, 0, 1238, 0, - 1199, 1199, 1087, 1199, 1201, 1201, 0, 0, 0, 1920, - 1691, 1699, 1700, 1722, 1814, 1863, 1654, 1673, 1674, 1796, - 1797, 1695, 1696, 1677, 1689, 1692, 1680, 1681, 1683, 1685, - 1690, 1697, 1703, 1682, 1702, 1701, 0, 1678, 1679, 1684, - 1694, 1698, 1686, 1687, 1688, 1693, 1704, 0, 0, 0, - 0, 0, 1145, 1146, 1247, 0, 0, 0, 0, 0, - 0, 273, 274, 1069, 1360, 0, 1201, 1201, 1201, 1201, - 1201, 1011, 1012, 1013, 1014, 1015, 1039, 1040, 1046, 1047, - 1791, 1792, 1793, 1794, 1640, 1872, -2, -2, 219, 220, + 0, 0, 1051, 1002, 0, 0, 0, 0, 1233, 0, + 1194, 1194, 1087, 1194, 1196, 1196, 0, 0, 0, 1915, + 1686, 1694, 1695, 1717, 1809, 1858, 1649, 1668, 1669, 1791, + 1792, 1690, 1691, 1672, 1684, 1687, 1675, 1676, 1678, 1680, + 1685, 1692, 1698, 1677, 1697, 1696, 0, 1673, 1674, 1679, + 1689, 1693, 1681, 1682, 1683, 1688, 1699, 0, 0, 0, + 0, 0, 1146, 1147, 1242, 0, 0, 0, 0, 0, + 0, 273, 274, 1069, 1355, 0, 1196, 1196, 1196, 1196, + 1196, 1011, 1012, 1013, 1014, 1015, 1039, 1040, 1046, 1047, + 1786, 1787, 1788, 1789, 1635, 1867, -2, -2, 219, 220, 221, 222, 223, 224, 225, 0, 215, 0, 0, 278, 279, 275, 276, 277, 1053, 1054, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 1923, 0, - 800, 0, 0, 0, 0, 0, 1271, 0, 1263, 1262, + 265, 266, 267, 268, 269, 270, 271, 272, 1918, 0, + 800, 0, 0, 0, 0, 0, 1266, 0, 1258, 1257, 61, 0, 827, -2, 0, 0, 0, 0, 45, 0, - 50, 887, 75, 74, 1311, 0, 0, 0, 57, 1272, - 65, 67, 1273, 0, 832, 833, 0, 863, 867, 0, - 828, 0, 0, 1387, 1386, 1386, 100, 0, 1859, 1364, - -2, -2, 0, 0, 1399, 1400, 1373, -2, 1407, 1408, - 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, - 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, - 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, - 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, - 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, - 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, - 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, - 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, - 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, - 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, - 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, - 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, - 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, - 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, - 1549, 1550, 1551, 1552, 1553, 1554, 1555, -2, 0, 0, + 50, 887, 75, 74, 1306, 0, 0, 0, 57, 1267, + 65, 67, 1268, 0, 832, 833, 0, 863, 867, 0, + 828, 0, 0, 1382, 1381, 1381, 100, 0, 1854, 1359, + -2, -2, 0, 0, 1394, 1395, 1368, -2, 1402, 1403, + 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, + 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, + 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, + 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, + 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, + 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, + 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, + 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, + 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, + 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, + 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, + 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, + 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, + 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, + 1544, 1545, 1546, 1547, 1548, 1549, 1550, -2, 0, 0, 165, 166, 0, 41, 404, 0, 161, 0, 397, 338, - 0, 1289, 0, 0, 0, 0, 0, 827, 0, 1381, + 0, 1284, 0, 0, 0, 0, 0, 827, 0, 1376, 142, 143, 150, 151, 152, 377, 377, 377, 549, 0, 0, 153, 153, 508, 509, 510, 0, 0, -2, 402, 0, 488, 0, 0, 391, 391, 395, 393, 394, 0, 0, 0, 0, 0, 0, 0, 0, 526, 0, 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 634, 0, 378, 0, 547, 548, 440, 0, 0, 0, 0, - 0, 0, 524, 525, 0, 0, 1389, 1390, 0, 0, + 0, 0, 524, 525, 0, 0, 1384, 1385, 0, 0, 0, 377, 377, 0, 0, 0, 0, 377, 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 141, 1302, 0, - 0, 0, -2, 0, 678, 0, 0, 0, 1382, 1382, + 0, 0, 0, 0, 0, 0, 0, 141, 1297, 0, + 0, 0, -2, 0, 678, 0, 0, 0, 1377, 1377, 0, 685, 0, 687, 688, 0, 0, 689, 0, 745, 745, 743, 744, 691, 692, 693, 694, 748, 0, 0, 386, 387, 388, 745, 748, 0, 748, 748, 748, 748, 745, 745, 745, 748, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1924, 751, 748, 0, 722, 0, 723, - 724, 727, 728, 730, 1925, 1926, 1419, 1924, 1924, 734, - 738, 1372, 760, 768, 771, 788, 786, 787, 789, 781, + 0, 0, 0, 1919, 751, 748, 0, 722, 0, 723, + 724, 727, 728, 730, 1920, 1921, 1414, 1919, 1919, 734, + 738, 1367, 760, 768, 771, 788, 786, 787, 789, 781, 782, 783, 784, 0, 802, 803, 808, 0, 0, 0, 0, 814, 815, 816, 0, 0, 819, 820, 821, 0, 0, 0, 0, 0, 948, 0, 0, 1059, 1060, 1061, @@ -7947,29 +7896,29 @@ var yyDef = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 967, 968, 0, 0, 0, 989, 990, 991, 992, 995, 0, 0, 0, 1000, 1001, 0, 0, 0, 0, - 837, 0, 1239, 0, 1085, 0, 1086, 1088, 1089, 0, + 837, 0, 1234, 0, 1085, 0, 1086, 1088, 1089, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1392, 129, + 0, 0, 0, 0, 0, 0, 0, 0, 1387, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 847, 0, 0, 847, 847, 0, 0, 0, 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, 0, 226, 227, 228, 229, - 230, 280, 1247, 0, 1069, 0, 0, 0, 44, 792, - 793, 0, 911, 1392, 0, 0, 843, 0, 55, 64, - 66, 1271, 59, 1271, 0, 849, 0, 0, -2, -2, - 850, 856, 857, 858, 859, 860, 52, 1922, 53, 0, - 72, 0, 46, 0, 0, 0, 0, 350, 1314, 0, - 0, 1264, 1265, 1268, 0, 864, 1733, 868, 0, 870, + 230, 280, 1242, 0, 1069, 0, 0, 0, 44, 792, + 793, 0, 911, 1387, 0, 0, 843, 0, 55, 64, + 66, 1266, 59, 1266, 0, 849, 0, 0, -2, -2, + 850, 856, 857, 858, 859, 860, 52, 1917, 53, 0, + 72, 0, 46, 0, 0, 0, 0, 350, 1309, 0, + 0, 1259, 1260, 1263, 0, 864, 1728, 868, 0, 870, 871, 0, 830, 0, 98, 0, 927, 0, 0, 0, - 1859, 1370, 0, 102, 103, 0, 0, 0, 361, 1375, - 1376, 1377, -2, 384, 0, 361, 345, 288, 289, 290, + 1854, 1365, 0, 102, 103, 0, 0, 0, 361, 1370, + 1371, 1372, -2, 384, 0, 361, 345, 288, 289, 290, 338, 292, 338, 338, 338, 338, 350, 350, 350, 350, 321, 322, 323, 324, 325, 0, 0, 307, 338, 338, 338, 338, 328, 329, 330, 331, 332, 333, 334, 335, 293, 294, 295, 296, 297, 298, 299, 300, 301, 340, - 340, 340, 342, 342, 0, 42, 0, 365, 0, 1268, - 0, 0, 1302, 1384, 1394, 0, 0, 0, 1384, 120, + 340, 340, 342, 342, 0, 42, 0, 365, 0, 1263, + 0, 0, 1297, 1379, 1389, 0, 0, 0, 1379, 120, 0, 0, 0, 550, 584, 502, 538, 551, 0, 505, 506, -2, 0, 0, 487, 0, 489, 0, 385, 0, -2, 0, 395, 0, 391, 395, 392, 395, 383, 396, @@ -7981,9 +7930,9 @@ var yyDef = [...]int{ 448, 449, 0, 0, 452, 453, 454, 914, 915, 455, 456, 481, 482, 483, 457, 458, 459, 460, 461, 462, 463, 475, 476, 477, 478, 479, 480, 464, 465, 466, - 467, 468, 469, 472, 0, 135, 1293, 0, 0, 0, + 467, 468, 469, 472, 0, 135, 1288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1382, 0, 0, 0, 0, 846, 929, 1405, 1406, 749, + 1377, 0, 0, 0, 0, 846, 929, 1400, 1401, 749, 750, 0, 389, 390, 748, 748, 695, 735, 0, 748, 699, 736, 700, 702, 701, 703, 716, 717, 748, 706, 746, 747, 707, 708, 709, 710, 711, 712, 713, 731, @@ -7993,162 +7942,162 @@ var yyDef = [...]int{ 949, 952, 0, 1055, 1057, 954, 956, 1066, 1067, 1068, 0, 0, 0, 0, 0, 960, 964, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 986, - 1215, 1216, 1217, 1003, 281, 282, 0, 1004, 0, 861, - 0, 0, 0, 0, 0, 0, 0, 838, 839, 1245, - 1242, 0, 0, 1200, 1202, 0, 0, 0, 0, 0, - 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, - 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, - 1198, 1218, 0, 0, 0, 0, 0, 1238, 0, 1006, + 1210, 1211, 1212, 1003, 281, 282, 0, 1004, 0, 861, + 0, 0, 0, 0, 0, 0, 0, 838, 839, 1240, + 1237, 0, 0, 1195, 1197, 0, 0, 0, 0, 0, + 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, + 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, + 1193, 1213, 0, 0, 0, 0, 0, 1233, 0, 1006, 1007, 1008, 0, 0, 0, 1106, 0, 0, 0, 0, - 1393, 0, 130, 131, 0, 0, 0, 0, 0, 1172, + 1388, 0, 130, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1147, 1148, 1149, 1150, 0, 0, 0, 0, 0, 848, - 1248, 0, -2, 0, 0, 0, 0, 0, 1005, 0, - 0, 0, 0, 0, 0, 0, 0, 1358, 0, 0, + 1148, 1149, 1150, 1151, 0, 0, 0, 0, 0, 848, + 1243, 0, -2, 0, 0, 0, 0, 0, 1005, 0, + 0, 0, 0, 0, 0, 0, 0, 1353, 0, 0, 795, 796, 798, 0, 931, 0, 912, 0, 0, 801, 0, 842, 0, 845, 58, 60, 854, 855, 0, 872, - 851, 54, 49, 0, 0, 889, 1312, 350, 1334, 0, - 359, 359, 356, 1274, 1275, 0, 1267, 1269, 1270, 77, + 851, 54, 49, 0, 0, 889, 1307, 350, 1329, 0, + 359, 359, 356, 1269, 1270, 0, 1262, 1264, 1265, 77, 869, 865, 0, 943, 0, 0, 926, 0, 875, 877, 878, 879, 909, 0, 882, 0, 0, 0, 0, 0, - 96, 928, 1365, 101, 0, 0, 106, 107, 1366, 1367, - 1368, 1369, 0, 573, -2, 436, 167, 169, 170, 171, + 96, 928, 1360, 101, 0, 0, 106, 107, 1361, 1362, + 1363, 1364, 0, 573, -2, 436, 167, 169, 170, 171, 162, -2, 348, 346, 347, 291, 350, 350, 315, 316, 317, 318, 319, 320, 0, 0, 308, 309, 310, 311, - 302, 0, 303, 304, 305, 0, 306, 403, 0, 1276, + 302, 0, 303, 304, 305, 0, 306, 403, 0, 1271, 366, 367, 369, 377, 0, 372, 373, 0, 377, 377, - 0, 398, 399, 0, 1268, 1293, 0, 0, 0, 1395, - 1394, 1394, 1394, 0, 155, 156, 157, 158, 159, 160, + 0, 398, 399, 0, 1263, 1288, 0, 0, 0, 1390, + 1389, 1389, 1389, 0, 155, 156, 157, 158, 159, 160, 609, 0, 0, 585, 607, 608, 153, 0, 0, 163, 491, 490, 0, 641, 0, 401, 0, 0, 395, 395, 380, 381, 531, 0, 0, 616, 617, 618, 619, 0, 0, 0, 518, 430, 0, 519, 520, 489, 491, 361, 0, 444, 445, 450, 451, 470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 564, 565, 566, - 567, 493, 571, 568, 493, 572, 1290, 1291, 1292, 0, - 0, 679, 0, 0, 427, 92, 1383, 684, 745, 705, + 567, 493, 571, 568, 493, 572, 1285, 1286, 1287, 0, + 0, 679, 0, 0, 427, 92, 1378, 684, 745, 705, 737, 745, 697, 704, 725, 765, 809, 0, 0, 0, 0, 817, 0, 0, 953, 1056, 1058, 957, 0, 961, 965, 0, 0, 0, 0, 0, 0, 0, 1052, 1076, - 1077, 0, 0, 1262, 0, 1243, 0, 0, 1084, 1203, - 1204, 0, 0, 0, 0, 0, 1095, 1096, 1097, 1098, + 1077, 0, 0, 1257, 0, 1238, 0, 0, 1084, 1198, + 1199, 0, 0, 0, 0, 0, 1095, 1096, 1097, 1098, 1099, 0, 1101, 0, 0, 1104, 1105, 1107, 0, 0, - 1110, 1111, 0, 0, 1112, 0, 0, 0, 0, 0, - 0, 0, 0, 1124, 1125, 1126, 1127, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1138, 1139, 0, + 1110, 1111, 0, 0, 1112, 0, 0, 0, 1116, 0, + 0, 0, 0, 1125, 1126, 1127, 1128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1139, 1140, 0, 1034, 0, 0, 1034, 0, 1072, 0, 0, 847, 0, - 1205, 1206, 1207, 1208, 1209, 0, 0, 0, 0, 0, - 0, 1248, 1359, 794, 797, 799, 885, 932, 933, 0, - 0, 0, 0, 913, 1391, 840, 841, 844, -2, 0, - 0, 1250, 0, 0, 872, 943, 873, 0, 852, 51, - 888, 0, 1316, 1315, 1328, 1341, 359, 359, 353, 354, - 360, 355, 357, 358, 1266, 0, 1271, 0, 1352, 0, - 0, 1344, 0, 0, 0, 0, 0, 0, 0, 0, + 1200, 1201, 1202, 1203, 1204, 0, 0, 0, 0, 0, + 0, 1243, 1354, 794, 797, 799, 885, 932, 933, 0, + 0, 0, 0, 913, 1386, 840, 841, 844, -2, 0, + 0, 1245, 0, 0, 872, 943, 873, 0, 852, 51, + 888, 0, 1311, 1310, 1323, 1336, 359, 359, 353, 354, + 360, 355, 357, 358, 1261, 0, 1266, 0, 1347, 0, + 0, 1339, 0, 0, 0, 0, 0, 0, 0, 0, 916, 0, 0, 919, 0, 0, 0, 0, 910, 0, 0, 0, 0, 0, 0, -2, 0, 0, 90, 91, 0, 0, 0, 104, 105, 0, 0, 111, 362, 363, 144, 153, 438, 168, 411, 0, 0, 287, 349, 312, - 313, 314, 0, 336, 0, 0, 0, 432, 116, 1280, - 1279, 377, 377, 368, 0, 371, 0, 0, 0, 1396, + 313, 314, 0, 336, 0, 0, 0, 432, 116, 1275, + 1274, 377, 377, 368, 0, 371, 0, 0, 0, 1391, 339, 400, 0, 134, 0, 0, 0, 0, 0, 140, 579, 0, 0, 586, 0, 0, 0, 500, 0, 511, 512, 0, 613, -2, 675, 365, 0, 379, 382, 898, 0, 0, 513, 0, 516, 517, 431, 491, 522, 523, - 536, 473, 474, 471, 0, 0, 1303, 1304, 1309, 1307, - 1308, 121, 557, 559, 558, 562, 0, 0, 495, 0, - 495, 555, 0, 427, 1276, 0, 683, 428, 429, 748, + 536, 473, 474, 471, 0, 0, 1298, 1299, 1304, 1302, + 1303, 121, 557, 559, 558, 562, 0, 0, 495, 0, + 495, 555, 0, 427, 1271, 0, 683, 428, 429, 748, 748, 804, 95, 0, 807, 0, 0, 0, 0, 958, - 962, 862, 0, 1236, 338, 338, 1223, 338, 342, 1226, - 338, 1228, 338, 1231, 338, 1234, 1235, 0, 0, 0, - 0, 1240, 1083, 1246, 0, 0, 0, 0, 1094, 0, - 0, 0, 0, 0, 0, 0, 132, 133, 1172, 0, - 0, 1174, 1176, 1177, 1116, 1173, 0, 0, 1170, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1029, - 1033, 0, 1035, 1036, 0, 0, 1141, 0, 0, 1151, - 1073, 1074, 0, 1249, 0, 0, 0, 0, 0, 0, - 934, 939, 939, 939, 0, 0, 0, 1378, 1379, 1251, - 1252, 943, 1253, 874, 853, 890, 1334, 0, 1327, 0, - -2, 1336, 0, 0, 0, 1342, 351, 352, 866, 78, - 944, 81, 0, 1352, 1361, 0, 1343, 1354, 1356, 0, - 0, 0, 1348, 0, 943, 876, 905, 907, 0, 902, - 917, 918, 920, 0, 922, 0, 924, 925, 887, 881, - 883, 0, 0, 0, 98, 0, 943, 943, 97, 0, - 930, 108, 109, 110, 437, 172, 177, 0, 0, 0, - 182, 0, 184, 0, 0, 0, 189, 190, 377, 377, - 412, 0, 284, 286, 0, 0, 175, 350, 0, 350, - 0, 343, 0, 413, 433, 1277, 1278, 0, 0, 370, - 374, 375, 376, 0, 1385, 136, 0, 0, 0, 582, - 0, 610, 0, 0, 0, 0, 0, 0, 164, 492, - 642, 643, 644, 645, 646, 647, 648, 649, 650, 0, - 377, 0, 0, 0, 377, 377, 377, 0, 667, 364, - 0, 0, 638, 635, 514, 0, 213, 214, 216, 0, - 0, 521, 887, 1294, 1295, 1296, 0, 1306, 1310, 124, - 0, 0, 0, 0, 569, 0, 494, 570, 680, 681, - 682, 93, 690, 696, 806, 826, 951, 959, 963, 0, - 0, 1237, 1221, 350, 1224, 1225, 1227, 1229, 1230, 1232, - 1233, 998, 999, 0, 1079, 0, 1081, 1271, 0, 1244, - 0, 0, 1093, 0, 0, 0, 1102, 1103, 1108, 1109, - 0, 0, 1115, 0, 1117, 0, 0, 0, 1128, 1129, - 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 0, 1027, - 1030, 1140, 1037, 1038, 1043, 1143, 0, 0, 1075, 1153, - 0, 1158, 0, 0, 1164, 0, 1168, 0, 0, 0, - 0, 0, 911, -2, 62, 1253, 1255, 0, 1321, 1319, - 1319, 1329, 1330, 0, 0, 1337, 0, 0, 0, 0, - 82, 0, 0, 0, 1357, 0, 0, 0, 0, 99, - 1262, 899, 906, 0, 0, 900, 0, 901, 921, 923, - 880, -2, 884, 0, 943, 943, 88, 89, 0, 178, - 0, 180, 206, 207, 0, 183, 185, 186, 187, 193, - 194, 195, 188, 0, 0, 283, 285, 0, 0, 326, - 337, 327, 0, 0, 1281, 1282, 1283, 1284, 1285, 1286, - 1287, 1288, 887, 137, 138, 139, 574, 0, 584, 0, - 0, 0, 577, 0, 503, 0, 0, 0, 377, 377, - 377, 0, 0, 0, 0, 652, 0, 0, 615, 0, - 623, 0, 0, 0, 217, 218, 0, 1305, 556, 0, - 122, 123, 0, 0, 561, 496, 497, 1210, 997, 1222, - 0, 0, 0, 1241, 0, 0, 0, 0, 1100, 1113, - 0, 1175, 0, 1120, 0, 0, 0, 604, 605, 0, - 1171, 1032, 1262, 0, 1034, 1044, 1045, 0, 1034, 1152, - 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, - 0, 931, 1255, 1260, 0, 0, 1324, 0, 1317, 1320, - 1318, 1331, 0, 0, 1338, 0, 1340, 0, 1362, 1363, - 1355, 0, 1347, 1350, 1346, 1349, 1271, 903, 0, 908, - 0, 1262, 87, 0, 181, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, - 0, 0, 341, 344, 0, 0, 0, 575, 0, 587, - 578, 0, 665, 0, 669, 0, 0, 0, 672, 673, - 674, 651, 0, 655, 405, 639, 636, 637, 515, 0, - 125, 126, 0, 0, 0, 0, 0, 0, 1078, 1080, - 1082, 1091, 1092, 1219, 1220, 1114, 1118, 0, 1121, 0, - 0, 1122, 0, 606, 1023, 0, 0, 1041, 1042, 0, - 1154, 0, 1159, 1160, 0, 1165, 0, 1169, 0, 936, - 893, 894, 941, 942, 0, 0, 886, 1260, 80, 1261, - 1258, 0, 1256, 1254, 1313, 0, 1322, 1323, 1332, 1333, - 1339, 0, 1345, 0, 85, 0, 0, 0, 1271, 179, - 0, 198, 0, 583, 0, 586, 576, 663, 664, 0, - 676, 668, 670, 671, 653, -2, 1297, 0, 0, 0, - 563, 996, 0, 0, 0, 1172, 1123, 0, 602, 603, - 1031, 1024, 0, 1009, 1010, 1028, 1142, 1144, 0, 0, - 0, 0, 935, 937, 938, 79, 0, 1257, 1049, 0, - 1325, 1326, 1353, 1351, 904, 911, 0, 86, 418, 411, - 1297, 0, 0, 0, 656, 657, 658, 659, 660, 661, - 662, 553, 1299, 127, 128, 484, 485, 486, 121, 1211, - 0, 1214, 0, 1025, 0, 0, 0, 0, 1021, 1022, - 1155, 0, 1161, 0, 1166, 0, 895, 896, 1259, 0, - 0, 588, 0, 590, 0, -2, 406, 419, 0, 173, - 199, 200, 0, 0, 203, 204, 205, 196, 197, 117, - 0, 0, 677, 0, 1300, 1301, 124, 1212, 1119, 0, - 1016, 1017, 1018, 1019, 1020, 0, 0, 0, 1050, 1029, - 589, 0, 0, 361, 0, 599, 407, 408, 0, 414, - 415, 416, 417, 201, 202, 611, 0, 0, 560, 0, - 0, 1156, 0, 1162, 0, 1167, 0, 591, 592, 600, - 0, 409, 0, 410, 0, 0, 0, 580, 0, 611, - 1298, 0, 1026, 0, 0, 1048, 0, 601, 597, 420, - 422, 423, 0, 0, 421, 612, 581, 1213, 1157, 1163, - 0, 424, 425, 426, 593, 594, 595, 596, + 962, 862, 0, 1231, 338, 338, 1218, 338, 342, 1221, + 338, 1223, 338, 1226, 338, 1229, 1230, 0, 0, 0, + 0, 1235, 1083, 1241, 0, 0, 0, 0, 1094, 0, + 0, 0, 0, 0, 0, 0, 132, 133, 0, 0, + 0, 0, 0, 0, 1171, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1029, 1033, 0, 1035, 1036, + 0, 0, 1142, 0, 0, 1152, 1073, 1074, 0, 1244, + 0, 0, 0, 0, 0, 0, 934, 939, 939, 939, + 0, 0, 0, 1373, 1374, 1246, 1247, 943, 1248, 874, + 853, 890, 1329, 0, 1322, 0, -2, 1331, 0, 0, + 0, 1337, 351, 352, 866, 78, 944, 81, 0, 1347, + 1356, 0, 1338, 1349, 1351, 0, 0, 0, 1343, 0, + 943, 876, 905, 907, 0, 902, 917, 918, 920, 0, + 922, 0, 924, 925, 887, 881, 883, 0, 0, 0, + 98, 0, 943, 943, 97, 0, 930, 108, 109, 110, + 437, 172, 177, 0, 0, 0, 182, 0, 184, 0, + 0, 0, 189, 190, 377, 377, 412, 0, 284, 286, + 0, 0, 175, 350, 0, 350, 0, 343, 0, 413, + 433, 1272, 1273, 0, 0, 370, 374, 375, 376, 0, + 1380, 136, 0, 0, 0, 582, 0, 610, 0, 0, + 0, 0, 0, 0, 164, 492, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 0, 377, 0, 0, 0, + 377, 377, 377, 0, 667, 364, 0, 0, 638, 635, + 514, 0, 213, 214, 216, 0, 0, 521, 887, 1289, + 1290, 1291, 0, 1301, 1305, 124, 0, 0, 0, 0, + 569, 0, 494, 570, 680, 681, 682, 93, 690, 696, + 806, 826, 951, 959, 963, 0, 0, 1232, 1216, 350, + 1219, 1220, 1222, 1224, 1225, 1227, 1228, 998, 999, 0, + 1079, 0, 1081, 1266, 0, 1239, 0, 0, 1093, 0, + 0, 0, 1102, 1103, 1108, 1109, 1113, 0, 1115, 1117, + 1118, 0, 0, 0, 1129, 1130, 1131, 1132, 1133, 1134, + 1135, 1136, 1137, 1138, 0, 1027, 1030, 1141, 1037, 1038, + 1043, 1144, 0, 0, 1075, 1154, 0, 1159, 0, 0, + 1165, 0, 1169, 0, 0, 0, 0, 0, 911, -2, + 62, 1248, 1250, 0, 1316, 1314, 1314, 1324, 1325, 0, + 0, 1332, 0, 0, 0, 0, 82, 0, 0, 0, + 1352, 0, 0, 0, 0, 99, 1257, 899, 906, 0, + 0, 900, 0, 901, 921, 923, 880, -2, 884, 0, + 943, 943, 88, 89, 0, 178, 0, 180, 206, 207, + 0, 183, 185, 186, 187, 193, 194, 195, 188, 0, + 0, 283, 285, 0, 0, 326, 337, 327, 0, 0, + 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 887, 137, + 138, 139, 574, 0, 584, 0, 0, 0, 577, 0, + 503, 0, 0, 0, 377, 377, 377, 0, 0, 0, + 0, 652, 0, 0, 615, 0, 623, 0, 0, 0, + 217, 218, 0, 1300, 556, 0, 122, 123, 0, 0, + 561, 496, 497, 1205, 997, 1217, 0, 0, 0, 1236, + 0, 0, 0, 0, 1100, 0, 0, 1121, 0, 0, + 0, 604, 605, 0, 1172, 1032, 1257, 0, 1034, 1044, + 1045, 0, 1034, 1153, 0, 0, 0, 0, 0, 0, + 940, 0, 0, 0, 0, 931, 1250, 1255, 0, 0, + 1319, 0, 1312, 1315, 1313, 1326, 0, 0, 1333, 0, + 1335, 0, 1357, 1358, 1350, 0, 1342, 1345, 1341, 1344, + 1266, 903, 0, 908, 0, 1257, 87, 0, 181, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 191, 192, 0, 0, 341, 344, 0, 0, + 0, 575, 0, 587, 578, 0, 665, 0, 669, 0, + 0, 0, 672, 673, 674, 651, 0, 655, 405, 639, + 636, 637, 515, 0, 125, 126, 0, 0, 0, 0, + 0, 0, 1078, 1080, 1082, 1091, 1092, 1214, 1215, 1114, + 1119, 0, 1122, 0, 0, 1123, 0, 606, 1023, 0, + 0, 1041, 1042, 0, 1155, 0, 1160, 1161, 0, 1166, + 0, 1170, 0, 936, 893, 894, 941, 942, 0, 0, + 886, 1255, 80, 1256, 1253, 0, 1251, 1249, 1308, 0, + 1317, 1318, 1327, 1328, 1334, 0, 1340, 0, 85, 0, + 0, 0, 1266, 179, 0, 198, 0, 583, 0, 586, + 576, 663, 664, 0, 676, 668, 670, 671, 653, -2, + 1292, 0, 0, 0, 563, 996, 0, 0, 0, 0, + 1124, 0, 602, 603, 1031, 1024, 0, 1009, 1010, 1028, + 1143, 1145, 0, 0, 0, 0, 935, 937, 938, 79, + 0, 1252, 1049, 0, 1320, 1321, 1348, 1346, 904, 911, + 0, 86, 418, 411, 1292, 0, 0, 0, 656, 657, + 658, 659, 660, 661, 662, 553, 1294, 127, 128, 484, + 485, 486, 121, 1206, 0, 1209, 1120, 1025, 0, 0, + 0, 0, 1021, 1022, 1156, 0, 1162, 0, 1167, 0, + 895, 896, 1254, 0, 0, 588, 0, 590, 0, -2, + 406, 419, 0, 173, 199, 200, 0, 0, 203, 204, + 205, 196, 197, 117, 0, 0, 677, 0, 1295, 1296, + 124, 1207, 0, 1016, 1017, 1018, 1019, 1020, 0, 0, + 0, 1050, 1029, 589, 0, 0, 361, 0, 599, 407, + 408, 0, 414, 415, 416, 417, 201, 202, 611, 0, + 0, 560, 0, 0, 1157, 0, 1163, 0, 1168, 0, + 591, 592, 600, 0, 409, 0, 410, 0, 0, 0, + 580, 0, 611, 1293, 0, 1026, 0, 0, 1048, 0, + 601, 597, 420, 422, 423, 0, 0, 421, 612, 581, + 1208, 1158, 1164, 0, 424, 425, 426, 593, 594, 595, + 596, } var yyTok1 = [...]int{ @@ -8617,68 +8566,68 @@ yydefault: case 1: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:574 +//line sql.y:570 { setParseTree(yylex, yyDollar[1].statementUnion()) } case 2: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:579 +//line sql.y:575 { } case 3: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:580 +//line sql.y:576 { } case 4: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:584 +//line sql.y:580 { yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL case 37: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:620 +//line sql.y:616 { setParseTree(yylex, nil) } case 38: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:626 +//line sql.y:622 { yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), NoAt) } case 39: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:630 +//line sql.y:626 { yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), SingleAt) } case 40: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:634 +//line sql.y:630 { yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), DoubleAt) } case 41: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:639 +//line sql.y:635 { yyVAL.colIdent = NewColIdentWithAt("", NoAt) } case 42: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:643 +//line sql.y:639 { yyVAL.colIdent = yyDollar[1].colIdent } case 43: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:649 +//line sql.y:645 { yyLOCAL = &OtherAdmin{} } @@ -8686,7 +8635,7 @@ yydefault: case 44: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:655 +//line sql.y:651 { yyLOCAL = &Load{} } @@ -8694,7 +8643,7 @@ yydefault: case 45: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *With -//line sql.y:661 +//line sql.y:657 { yyLOCAL = &With{ctes: yyDollar[2].ctesUnion(), Recursive: false} } @@ -8702,7 +8651,7 @@ yydefault: case 46: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *With -//line sql.y:665 +//line sql.y:661 { yyLOCAL = &With{ctes: yyDollar[3].ctesUnion(), Recursive: true} } @@ -8710,7 +8659,7 @@ yydefault: case 47: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *With -//line sql.y:670 +//line sql.y:666 { yyLOCAL = nil } @@ -8718,14 +8667,14 @@ yydefault: case 48: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *With -//line sql.y:674 +//line sql.y:670 { yyLOCAL = yyDollar[1].withUnion() } yyVAL.union = yyLOCAL case 49: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:680 +//line sql.y:676 { yySLICE := (*[]*CommonTableExpr)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].cteUnion()) @@ -8733,7 +8682,7 @@ yydefault: case 50: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*CommonTableExpr -//line sql.y:684 +//line sql.y:680 { yyLOCAL = []*CommonTableExpr{yyDollar[1].cteUnion()} } @@ -8741,7 +8690,7 @@ yydefault: case 51: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *CommonTableExpr -//line sql.y:690 +//line sql.y:686 { yyLOCAL = &CommonTableExpr{TableID: yyDollar[1].tableIdent, Columns: yyDollar[2].columnsUnion(), Subquery: yyDollar[4].subqueryUnion()} } @@ -8749,7 +8698,7 @@ yydefault: case 52: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:696 +//line sql.y:692 { yyLOCAL = yyDollar[2].selStmtUnion() } @@ -8757,7 +8706,7 @@ yydefault: case 53: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:700 +//line sql.y:696 { yyLOCAL = yyDollar[2].selStmtUnion() } @@ -8765,7 +8714,7 @@ yydefault: case 54: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:704 +//line sql.y:700 { setLockInSelect(yyDollar[2].selStmtUnion(), yyDollar[3].lockUnion()) yyLOCAL = yyDollar[2].selStmtUnion() @@ -8774,7 +8723,7 @@ yydefault: case 55: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:727 +//line sql.y:723 { yyDollar[1].selStmtUnion().SetOrderBy(yyDollar[2].orderByUnion()) yyDollar[1].selStmtUnion().SetLimit(yyDollar[3].limitUnion()) @@ -8784,7 +8733,7 @@ yydefault: case 56: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:733 +//line sql.y:729 { yyDollar[1].selStmtUnion().SetLimit(yyDollar[2].limitUnion()) yyLOCAL = yyDollar[1].selStmtUnion() @@ -8793,7 +8742,7 @@ yydefault: case 57: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:738 +//line sql.y:734 { yyDollar[1].selStmtUnion().SetOrderBy(yyDollar[2].orderByUnion()) yyDollar[1].selStmtUnion().SetLimit(yyDollar[3].limitUnion()) @@ -8803,7 +8752,7 @@ yydefault: case 58: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:744 +//line sql.y:740 { yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion()) yyDollar[2].selStmtUnion().SetOrderBy(yyDollar[3].orderByUnion()) @@ -8814,7 +8763,7 @@ yydefault: case 59: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:751 +//line sql.y:747 { yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion()) yyDollar[2].selStmtUnion().SetLimit(yyDollar[3].limitUnion()) @@ -8824,7 +8773,7 @@ yydefault: case 60: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:757 +//line sql.y:753 { yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion()) yyDollar[2].selStmtUnion().SetOrderBy(yyDollar[3].orderByUnion()) @@ -8834,14 +8783,14 @@ yydefault: yyVAL.union = yyLOCAL case 61: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:764 +//line sql.y:760 { yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion()) } case 62: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:768 +//line sql.y:764 { 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*/, nil) } @@ -8849,7 +8798,7 @@ yydefault: case 63: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:774 +//line sql.y:770 { yyLOCAL = yyDollar[1].selStmtUnion() } @@ -8857,7 +8806,7 @@ yydefault: case 64: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:778 +//line sql.y:774 { yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()} } @@ -8865,7 +8814,7 @@ yydefault: case 65: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:782 +//line sql.y:778 { yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()} } @@ -8873,7 +8822,7 @@ yydefault: case 66: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:786 +//line sql.y:782 { yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()} } @@ -8881,7 +8830,7 @@ yydefault: case 67: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:790 +//line sql.y:786 { yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()} } @@ -8889,7 +8838,7 @@ yydefault: case 68: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:796 +//line sql.y:792 { yyLOCAL = yyDollar[1].selStmtUnion() } @@ -8897,7 +8846,7 @@ yydefault: case 69: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:800 +//line sql.y:796 { setLockInSelect(yyDollar[1].selStmtUnion(), yyDollar[2].lockUnion()) yyLOCAL = yyDollar[1].selStmtUnion() @@ -8906,7 +8855,7 @@ yydefault: case 70: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:805 +//line sql.y:801 { yyLOCAL = yyDollar[1].selStmtUnion() } @@ -8914,7 +8863,7 @@ yydefault: case 71: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:809 +//line sql.y:805 { yyLOCAL = yyDollar[1].selStmtUnion() } @@ -8922,7 +8871,7 @@ yydefault: case 72: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:815 +//line sql.y:811 { yyLOCAL = yyDollar[2].selStmtUnion() } @@ -8930,7 +8879,7 @@ yydefault: case 73: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:819 +//line sql.y:815 { yyDollar[1].selStmtUnion().SetInto(yyDollar[2].selectIntoUnion()) yyLOCAL = yyDollar[1].selStmtUnion() @@ -8939,7 +8888,7 @@ yydefault: case 74: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:824 +//line sql.y:820 { yyDollar[1].selStmtUnion().SetInto(yyDollar[2].selectIntoUnion()) yyDollar[1].selStmtUnion().SetLock(yyDollar[3].lockUnion()) @@ -8949,7 +8898,7 @@ yydefault: case 75: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:830 +//line sql.y:826 { yyDollar[1].selStmtUnion().SetInto(yyDollar[3].selectIntoUnion()) yyDollar[1].selStmtUnion().SetLock(yyDollar[2].lockUnion()) @@ -8959,7 +8908,7 @@ yydefault: case 76: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:836 +//line sql.y:832 { yyDollar[1].selStmtUnion().SetInto(yyDollar[2].selectIntoUnion()) yyLOCAL = yyDollar[1].selStmtUnion() @@ -8968,7 +8917,7 @@ yydefault: case 77: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:843 +//line sql.y:839 { yyLOCAL = &Stream{Comments: Comments(yyDollar[2].strs).Parsed(), SelectExpr: yyDollar[3].selectExprUnion(), Table: yyDollar[5].tableName} } @@ -8976,7 +8925,7 @@ yydefault: case 78: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:849 +//line sql.y:845 { yyLOCAL = &VStream{Comments: Comments(yyDollar[2].strs).Parsed(), SelectExpr: yyDollar[3].selectExprUnion(), Table: yyDollar[5].tableName, Where: NewWhere(WhereClause, yyDollar[6].exprUnion()), Limit: yyDollar[7].limitUnion()} } @@ -8984,7 +8933,7 @@ yydefault: case 79: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:857 +//line sql.y:853 { 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()), yyDollar[10].namedWindowsUnion()) } @@ -8992,7 +8941,7 @@ yydefault: case 80: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:861 +//line sql.y:857 { 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()), yyDollar[9].namedWindowsUnion()) } @@ -9000,7 +8949,7 @@ yydefault: case 81: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:869 +//line sql.y:865 { // insert_data returns a *Insert pre-filled with Columns & Values ins := yyDollar[6].insUnion() @@ -9016,7 +8965,7 @@ yydefault: case 82: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:881 +//line sql.y:877 { cols := make(Columns, 0, len(yyDollar[7].updateExprsUnion())) vals := make(ValTuple, 0, len(yyDollar[8].updateExprsUnion())) @@ -9030,7 +8979,7 @@ yydefault: case 83: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL InsertAction -//line sql.y:893 +//line sql.y:889 { yyLOCAL = InsertAct } @@ -9038,7 +8987,7 @@ yydefault: case 84: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL InsertAction -//line sql.y:897 +//line sql.y:893 { yyLOCAL = ReplaceAct } @@ -9046,7 +8995,7 @@ yydefault: case 85: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Statement -//line sql.y:903 +//line sql.y:899 { yyLOCAL = &Update{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs).Parsed(), 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()} } @@ -9054,7 +9003,7 @@ yydefault: case 86: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL Statement -//line sql.y:909 +//line sql.y:905 { yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs).Parsed(), Ignore: yyDollar[4].ignoreUnion(), TableExprs: TableExprs{&AliasedTableExpr{Expr: yyDollar[6].tableName, As: yyDollar[7].tableIdent}}, Partitions: yyDollar[8].partitionsUnion(), Where: NewWhere(WhereClause, yyDollar[9].exprUnion()), OrderBy: yyDollar[10].orderByUnion(), Limit: yyDollar[11].limitUnion()} } @@ -9062,7 +9011,7 @@ yydefault: case 87: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Statement -//line sql.y:913 +//line sql.y:909 { yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs).Parsed(), Ignore: yyDollar[4].ignoreUnion(), Targets: yyDollar[6].tableNamesUnion(), TableExprs: yyDollar[8].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[9].exprUnion())} } @@ -9070,7 +9019,7 @@ yydefault: case 88: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:917 +//line sql.y:913 { yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs).Parsed(), Ignore: yyDollar[4].ignoreUnion(), Targets: yyDollar[5].tableNamesUnion(), TableExprs: yyDollar[7].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion())} } @@ -9078,32 +9027,32 @@ yydefault: case 89: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:921 +//line sql.y:917 { yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs).Parsed(), Ignore: yyDollar[4].ignoreUnion(), Targets: yyDollar[5].tableNamesUnion(), TableExprs: yyDollar[7].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion())} } yyVAL.union = yyLOCAL case 90: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:926 +//line sql.y:922 { } case 91: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:927 +//line sql.y:923 { } case 92: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableNames -//line sql.y:931 +//line sql.y:927 { yyLOCAL = TableNames{yyDollar[1].tableName.ToViewName()} } yyVAL.union = yyLOCAL case 93: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:935 +//line sql.y:931 { yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableName.ToViewName()) @@ -9111,14 +9060,14 @@ yydefault: case 94: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableNames -//line sql.y:941 +//line sql.y:937 { yyLOCAL = TableNames{yyDollar[1].tableName} } yyVAL.union = yyLOCAL case 95: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:945 +//line sql.y:941 { yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableName) @@ -9126,14 +9075,14 @@ yydefault: case 96: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableNames -//line sql.y:951 +//line sql.y:947 { yyLOCAL = TableNames{yyDollar[1].tableName} } yyVAL.union = yyLOCAL case 97: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:955 +//line sql.y:951 { yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableName) @@ -9141,7 +9090,7 @@ yydefault: case 98: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Partitions -//line sql.y:960 +//line sql.y:956 { yyLOCAL = nil } @@ -9149,7 +9098,7 @@ yydefault: case 99: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Partitions -//line sql.y:964 +//line sql.y:960 { yyLOCAL = yyDollar[3].partitionsUnion() } @@ -9157,7 +9106,7 @@ yydefault: case 100: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:970 +//line sql.y:966 { yyLOCAL = &Set{Comments: Comments(yyDollar[2].strs).Parsed(), Exprs: yyDollar[3].setExprsUnion()} } @@ -9165,7 +9114,7 @@ yydefault: case 101: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:976 +//line sql.y:972 { yyLOCAL = &SetTransaction{Comments: Comments(yyDollar[2].strs).Parsed(), Scope: yyDollar[3].scopeUnion(), Characteristics: yyDollar[5].characteristicsUnion()} } @@ -9173,7 +9122,7 @@ yydefault: case 102: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:980 +//line sql.y:976 { yyLOCAL = &SetTransaction{Comments: Comments(yyDollar[2].strs).Parsed(), Characteristics: yyDollar[4].characteristicsUnion(), Scope: ImplicitScope} } @@ -9181,14 +9130,14 @@ yydefault: case 103: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []Characteristic -//line sql.y:986 +//line sql.y:982 { yyLOCAL = []Characteristic{yyDollar[1].characteristicUnion()} } yyVAL.union = yyLOCAL case 104: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:990 +//line sql.y:986 { yySLICE := (*[]Characteristic)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].characteristicUnion()) @@ -9196,7 +9145,7 @@ yydefault: case 105: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Characteristic -//line sql.y:996 +//line sql.y:992 { yyLOCAL = yyDollar[3].isolationLevelUnion() } @@ -9204,7 +9153,7 @@ yydefault: case 106: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Characteristic -//line sql.y:1000 +//line sql.y:996 { yyLOCAL = ReadWrite } @@ -9212,7 +9161,7 @@ yydefault: case 107: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Characteristic -//line sql.y:1004 +//line sql.y:1000 { yyLOCAL = ReadOnly } @@ -9220,7 +9169,7 @@ yydefault: case 108: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsolationLevel -//line sql.y:1010 +//line sql.y:1006 { yyLOCAL = RepeatableRead } @@ -9228,7 +9177,7 @@ yydefault: case 109: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsolationLevel -//line sql.y:1014 +//line sql.y:1010 { yyLOCAL = ReadCommitted } @@ -9236,7 +9185,7 @@ yydefault: case 110: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsolationLevel -//line sql.y:1018 +//line sql.y:1014 { yyLOCAL = ReadUncommitted } @@ -9244,7 +9193,7 @@ yydefault: case 111: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsolationLevel -//line sql.y:1022 +//line sql.y:1018 { yyLOCAL = Serializable } @@ -9252,7 +9201,7 @@ yydefault: case 112: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Scope -//line sql.y:1028 +//line sql.y:1024 { yyLOCAL = SessionScope } @@ -9260,7 +9209,7 @@ yydefault: case 113: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Scope -//line sql.y:1032 +//line sql.y:1028 { yyLOCAL = GlobalScope } @@ -9268,7 +9217,7 @@ yydefault: case 114: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:1038 +//line sql.y:1034 { yyDollar[1].createTableUnion().TableSpec = yyDollar[2].tableSpecUnion() yyDollar[1].createTableUnion().FullyParsed = true @@ -9278,7 +9227,7 @@ yydefault: case 115: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:1044 +//line sql.y:1040 { // Create table [name] like [name] yyDollar[1].createTableUnion().OptLike = yyDollar[2].optLikeUnion() @@ -9289,7 +9238,7 @@ yydefault: case 116: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:1051 +//line sql.y:1047 { indexDef := yyDollar[1].alterTableUnion().AlterOptions[0].(*AddIndexDefinition).IndexDefinition indexDef.Columns = yyDollar[3].indexColumnsUnion() @@ -9302,7 +9251,7 @@ yydefault: case 117: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL Statement -//line sql.y:1060 +//line sql.y:1056 { yyLOCAL = &CreateView{ViewName: yyDollar[8].tableName.ToViewName(), Comments: Comments(yyDollar[2].strs).Parsed(), IsReplace: yyDollar[3].booleanUnion(), Algorithm: yyDollar[4].str, Definer: yyDollar[5].definerUnion(), Security: yyDollar[6].str, Columns: yyDollar[9].columnsUnion(), Select: yyDollar[11].selStmtUnion(), CheckOption: yyDollar[12].str} } @@ -9310,7 +9259,7 @@ yydefault: case 118: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:1064 +//line sql.y:1060 { yyDollar[1].createDatabaseUnion().FullyParsed = true yyDollar[1].createDatabaseUnion().CreateOptions = yyDollar[2].databaseOptionsUnion() @@ -9320,7 +9269,7 @@ yydefault: case 119: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1071 +//line sql.y:1067 { yyLOCAL = false } @@ -9328,33 +9277,33 @@ yydefault: case 120: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:1075 +//line sql.y:1071 { yyLOCAL = true } yyVAL.union = yyLOCAL case 121: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1080 +//line sql.y:1076 { yyVAL.colIdent = NewColIdent("") } case 122: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1084 +//line sql.y:1080 { yyVAL.colIdent = yyDollar[2].colIdent } case 123: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1090 +//line sql.y:1086 { yyVAL.colIdent = yyDollar[1].colIdent } case 124: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []VindexParam -//line sql.y:1095 +//line sql.y:1091 { var v []VindexParam yyLOCAL = v @@ -9363,7 +9312,7 @@ yydefault: case 125: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []VindexParam -//line sql.y:1100 +//line sql.y:1096 { yyLOCAL = yyDollar[2].vindexParamsUnion() } @@ -9371,7 +9320,7 @@ yydefault: case 126: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []VindexParam -//line sql.y:1106 +//line sql.y:1102 { yyLOCAL = make([]VindexParam, 0, 4) yyLOCAL = append(yyLOCAL, yyDollar[1].vindexParam) @@ -9379,21 +9328,21 @@ yydefault: yyVAL.union = yyLOCAL case 127: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1111 +//line sql.y:1107 { yySLICE := (*[]VindexParam)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].vindexParam) } case 128: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1117 +//line sql.y:1113 { yyVAL.vindexParam = VindexParam{Key: yyDollar[1].colIdent, Val: yyDollar[3].str} } case 129: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*JSONObjectParam -//line sql.y:1122 +//line sql.y:1118 { yyLOCAL = nil } @@ -9401,7 +9350,7 @@ yydefault: case 130: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*JSONObjectParam -//line sql.y:1126 +//line sql.y:1122 { yyLOCAL = yyDollar[1].jsonObjectParamsUnion() } @@ -9409,28 +9358,28 @@ yydefault: case 131: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*JSONObjectParam -//line sql.y:1132 +//line sql.y:1128 { yyLOCAL = []*JSONObjectParam{yyDollar[1].jsonObjectParam} } yyVAL.union = yyLOCAL case 132: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1136 +//line sql.y:1132 { yySLICE := (*[]*JSONObjectParam)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].jsonObjectParam) } case 133: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1142 +//line sql.y:1138 { yyVAL.jsonObjectParam = &JSONObjectParam{Key: yyDollar[1].exprUnion(), Value: yyDollar[3].exprUnion()} } case 134: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *CreateTable -//line sql.y:1148 +//line sql.y:1144 { yyLOCAL = &CreateTable{Comments: Comments(yyDollar[2].strs).Parsed(), Table: yyDollar[6].tableName, IfNotExists: yyDollar[5].booleanUnion(), Temp: yyDollar[3].booleanUnion()} setDDL(yylex, yyLOCAL) @@ -9439,7 +9388,7 @@ yydefault: case 135: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:1155 +//line sql.y:1151 { yyLOCAL = &AlterTable{Comments: Comments(yyDollar[2].strs).Parsed(), Table: yyDollar[4].tableName} setDDL(yylex, yyLOCAL) @@ -9448,7 +9397,7 @@ yydefault: case 136: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:1162 +//line sql.y:1158 { 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) @@ -9457,7 +9406,7 @@ yydefault: case 137: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:1167 +//line sql.y:1163 { 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) @@ -9466,7 +9415,7 @@ yydefault: case 138: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:1172 +//line sql.y:1168 { 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) @@ -9475,7 +9424,7 @@ yydefault: case 139: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:1177 +//line sql.y:1173 { 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) @@ -9484,7 +9433,7 @@ yydefault: case 140: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *CreateDatabase -//line sql.y:1184 +//line sql.y:1180 { yyLOCAL = &CreateDatabase{Comments: Comments(yyDollar[4].strs).Parsed(), DBName: yyDollar[6].tableIdent, IfNotExists: yyDollar[5].booleanUnion()} setDDL(yylex, yyLOCAL) @@ -9493,7 +9442,7 @@ yydefault: case 141: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AlterDatabase -//line sql.y:1191 +//line sql.y:1187 { yyLOCAL = &AlterDatabase{} setDDL(yylex, yyLOCAL) @@ -9502,7 +9451,7 @@ yydefault: case 144: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *TableSpec -//line sql.y:1202 +//line sql.y:1198 { yyLOCAL = yyDollar[2].tableSpecUnion() yyLOCAL.Options = yyDollar[4].tableOptionsUnion() @@ -9512,7 +9461,7 @@ yydefault: case 145: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []DatabaseOption -//line sql.y:1209 +//line sql.y:1205 { yyLOCAL = nil } @@ -9520,7 +9469,7 @@ yydefault: case 146: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []DatabaseOption -//line sql.y:1213 +//line sql.y:1209 { yyLOCAL = yyDollar[1].databaseOptionsUnion() } @@ -9528,7 +9477,7 @@ yydefault: case 147: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []DatabaseOption -//line sql.y:1219 +//line sql.y:1215 { yyLOCAL = []DatabaseOption{yyDollar[1].databaseOption} } @@ -9536,7 +9485,7 @@ yydefault: case 148: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []DatabaseOption -//line sql.y:1223 +//line sql.y:1219 { yyLOCAL = []DatabaseOption{yyDollar[1].databaseOption} } @@ -9544,28 +9493,28 @@ yydefault: case 149: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []DatabaseOption -//line sql.y:1227 +//line sql.y:1223 { yyLOCAL = []DatabaseOption{yyDollar[1].databaseOption} } yyVAL.union = yyLOCAL case 150: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1231 +//line sql.y:1227 { yySLICE := (*[]DatabaseOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].databaseOption) } case 151: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1235 +//line sql.y:1231 { yySLICE := (*[]DatabaseOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].databaseOption) } case 152: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1239 +//line sql.y:1235 { yySLICE := (*[]DatabaseOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].databaseOption) @@ -9573,7 +9522,7 @@ yydefault: case 153: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1245 +//line sql.y:1241 { yyLOCAL = false } @@ -9581,51 +9530,51 @@ yydefault: case 154: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1249 +//line sql.y:1245 { yyLOCAL = true } yyVAL.union = yyLOCAL case 155: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1255 +//line sql.y:1251 { yyVAL.databaseOption = DatabaseOption{Type: CharacterSetType, Value: (yyDollar[4].colIdent.String()), IsDefault: yyDollar[1].booleanUnion()} } case 156: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1259 +//line sql.y:1255 { yyVAL.databaseOption = DatabaseOption{Type: CharacterSetType, Value: (encodeSQLString(yyDollar[4].str)), IsDefault: yyDollar[1].booleanUnion()} } case 157: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1265 +//line sql.y:1261 { yyVAL.databaseOption = DatabaseOption{Type: CollateType, Value: (yyDollar[4].colIdent.String()), IsDefault: yyDollar[1].booleanUnion()} } case 158: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1269 +//line sql.y:1265 { yyVAL.databaseOption = DatabaseOption{Type: CollateType, Value: (encodeSQLString(yyDollar[4].str)), IsDefault: yyDollar[1].booleanUnion()} } case 159: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1275 +//line sql.y:1271 { yyVAL.databaseOption = DatabaseOption{Type: EncryptionType, Value: (yyDollar[4].colIdent.String()), IsDefault: yyDollar[1].booleanUnion()} } case 160: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1279 +//line sql.y:1275 { yyVAL.databaseOption = DatabaseOption{Type: EncryptionType, Value: (encodeSQLString(yyDollar[4].str)), IsDefault: yyDollar[1].booleanUnion()} } case 161: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *OptLike -//line sql.y:1285 +//line sql.y:1281 { yyLOCAL = &OptLike{LikeTable: yyDollar[2].tableName} } @@ -9633,7 +9582,7 @@ yydefault: case 162: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *OptLike -//line sql.y:1289 +//line sql.y:1285 { yyLOCAL = &OptLike{LikeTable: yyDollar[3].tableName} } @@ -9641,14 +9590,14 @@ yydefault: case 163: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*ColumnDefinition -//line sql.y:1295 +//line sql.y:1291 { yyLOCAL = []*ColumnDefinition{yyDollar[1].columnDefinitionUnion()} } yyVAL.union = yyLOCAL case 164: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1299 +//line sql.y:1295 { yySLICE := (*[]*ColumnDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].columnDefinitionUnion()) @@ -9656,7 +9605,7 @@ yydefault: case 165: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *TableSpec -//line sql.y:1305 +//line sql.y:1301 { yyLOCAL = &TableSpec{} yyLOCAL.AddColumn(yyDollar[1].columnDefinitionUnion()) @@ -9665,7 +9614,7 @@ yydefault: case 166: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *TableSpec -//line sql.y:1310 +//line sql.y:1306 { yyLOCAL = &TableSpec{} yyLOCAL.AddConstraint(yyDollar[1].constraintDefinitionUnion()) @@ -9673,39 +9622,39 @@ yydefault: yyVAL.union = yyLOCAL case 167: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1315 +//line sql.y:1311 { yyVAL.tableSpecUnion().AddColumn(yyDollar[3].columnDefinitionUnion()) } case 168: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1319 +//line sql.y:1315 { yyVAL.tableSpecUnion().AddColumn(yyDollar[3].columnDefinitionUnion()) yyVAL.tableSpecUnion().AddConstraint(yyDollar[4].constraintDefinitionUnion()) } case 169: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1324 +//line sql.y:1320 { yyVAL.tableSpecUnion().AddIndex(yyDollar[3].indexDefinitionUnion()) } case 170: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1328 +//line sql.y:1324 { yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion()) } case 171: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1332 +//line sql.y:1328 { yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion()) } case 172: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ColumnDefinition -//line sql.y:1343 +//line sql.y:1339 { yyDollar[2].columnType.Options = yyDollar[4].columnTypeOptionsUnion() if yyDollar[2].columnType.Options.Collate == "" { @@ -9718,7 +9667,7 @@ yydefault: case 173: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL *ColumnDefinition -//line sql.y:1352 +//line sql.y:1348 { yyDollar[2].columnType.Options = yyDollar[9].columnTypeOptionsUnion() yyDollar[2].columnType.Options.As = yyDollar[7].exprUnion() @@ -9729,20 +9678,20 @@ yydefault: yyVAL.union = yyLOCAL case 174: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1361 +//line sql.y:1357 { yyVAL.str = "" } case 175: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1365 +//line sql.y:1361 { yyVAL.str = "" } case 176: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1374 +//line sql.y:1370 { yyLOCAL = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: colKeyNone, Comment: nil, As: nil, Invisible: nil, Format: UnspecifiedFormat, EngineAttribute: nil, SecondaryEngineAttribute: nil} } @@ -9750,7 +9699,7 @@ yydefault: case 177: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1378 +//line sql.y:1374 { val := true yyDollar[1].columnTypeOptionsUnion().Null = &val @@ -9760,7 +9709,7 @@ yydefault: case 178: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1384 +//line sql.y:1380 { val := false yyDollar[1].columnTypeOptionsUnion().Null = &val @@ -9770,7 +9719,7 @@ yydefault: case 179: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1390 +//line sql.y:1386 { yyDollar[1].columnTypeOptionsUnion().Default = yyDollar[4].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -9779,7 +9728,7 @@ yydefault: case 180: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1395 +//line sql.y:1391 { yyDollar[1].columnTypeOptionsUnion().Default = yyDollar[3].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -9788,7 +9737,7 @@ yydefault: case 181: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1400 +//line sql.y:1396 { yyDollar[1].columnTypeOptionsUnion().OnUpdate = yyDollar[4].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -9797,7 +9746,7 @@ yydefault: case 182: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1405 +//line sql.y:1401 { yyDollar[1].columnTypeOptionsUnion().Autoincrement = true yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -9806,7 +9755,7 @@ yydefault: case 183: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1410 +//line sql.y:1406 { yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -9815,7 +9764,7 @@ yydefault: case 184: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1415 +//line sql.y:1411 { yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -9823,14 +9772,14 @@ yydefault: yyVAL.union = yyLOCAL case 185: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1420 +//line sql.y:1416 { yyDollar[1].columnTypeOptionsUnion().Collate = encodeSQLString(yyDollar[3].str) } case 186: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1424 +//line sql.y:1420 { yyDollar[1].columnTypeOptionsUnion().Collate = string(yyDollar[3].colIdent.String()) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -9838,14 +9787,14 @@ yydefault: yyVAL.union = yyLOCAL case 187: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1429 +//line sql.y:1425 { yyDollar[1].columnTypeOptionsUnion().Format = yyDollar[3].columnFormatUnion() } case 188: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1433 +//line sql.y:1429 { yyDollar[1].columnTypeOptionsUnion().SRID = NewIntLiteral(yyDollar[3].str) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -9854,7 +9803,7 @@ yydefault: case 189: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1438 +//line sql.y:1434 { val := false yyDollar[1].columnTypeOptionsUnion().Invisible = &val @@ -9864,7 +9813,7 @@ yydefault: case 190: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1444 +//line sql.y:1440 { val := true yyDollar[1].columnTypeOptionsUnion().Invisible = &val @@ -9873,20 +9822,20 @@ yydefault: yyVAL.union = yyLOCAL case 191: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1450 +//line sql.y:1446 { yyDollar[1].columnTypeOptionsUnion().EngineAttribute = NewStrLiteral(yyDollar[4].str) } case 192: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1454 +//line sql.y:1450 { yyDollar[1].columnTypeOptionsUnion().SecondaryEngineAttribute = NewStrLiteral(yyDollar[4].str) } case 193: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnFormat -//line sql.y:1460 +//line sql.y:1456 { yyLOCAL = FixedFormat } @@ -9894,7 +9843,7 @@ yydefault: case 194: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnFormat -//line sql.y:1464 +//line sql.y:1460 { yyLOCAL = DynamicFormat } @@ -9902,7 +9851,7 @@ yydefault: case 195: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnFormat -//line sql.y:1468 +//line sql.y:1464 { yyLOCAL = DefaultFormat } @@ -9910,7 +9859,7 @@ yydefault: case 196: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnStorage -//line sql.y:1474 +//line sql.y:1470 { yyLOCAL = VirtualStorage } @@ -9918,7 +9867,7 @@ yydefault: case 197: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnStorage -//line sql.y:1478 +//line sql.y:1474 { yyLOCAL = StoredStorage } @@ -9926,7 +9875,7 @@ yydefault: case 198: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1483 +//line sql.y:1479 { yyLOCAL = &ColumnTypeOptions{} } @@ -9934,7 +9883,7 @@ yydefault: case 199: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1487 +//line sql.y:1483 { yyDollar[1].columnTypeOptionsUnion().Storage = yyDollar[2].columnStorageUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -9943,7 +9892,7 @@ yydefault: case 200: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1492 +//line sql.y:1488 { val := true yyDollar[1].columnTypeOptionsUnion().Null = &val @@ -9953,7 +9902,7 @@ yydefault: case 201: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1498 +//line sql.y:1494 { val := false yyDollar[1].columnTypeOptionsUnion().Null = &val @@ -9963,7 +9912,7 @@ yydefault: case 202: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1504 +//line sql.y:1500 { yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -9972,7 +9921,7 @@ yydefault: case 203: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1509 +//line sql.y:1505 { yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() @@ -9981,7 +9930,7 @@ yydefault: case 204: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1514 +//line sql.y:1510 { val := false yyDollar[1].columnTypeOptionsUnion().Invisible = &val @@ -9991,7 +9940,7 @@ yydefault: case 205: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1520 +//line sql.y:1516 { val := true yyDollar[1].columnTypeOptionsUnion().Invisible = &val @@ -10001,7 +9950,7 @@ yydefault: case 206: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1528 +//line sql.y:1524 { yyLOCAL = yyDollar[1].exprUnion() } @@ -10009,7 +9958,7 @@ yydefault: case 208: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1535 +//line sql.y:1531 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].exprUnion()} } @@ -10017,7 +9966,7 @@ yydefault: case 209: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1539 +//line sql.y:1535 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].exprUnion()} } @@ -10025,7 +9974,7 @@ yydefault: case 210: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1543 +//line sql.y:1539 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].exprUnion()} } @@ -10033,7 +9982,7 @@ yydefault: case 211: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1547 +//line sql.y:1543 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].exprUnion()} } @@ -10041,7 +9990,7 @@ yydefault: case 212: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1551 +//line sql.y:1547 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("now"), Fsp: yyDollar[2].exprUnion()} } @@ -10049,7 +9998,7 @@ yydefault: case 215: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1562 +//line sql.y:1558 { yyLOCAL = &NullVal{} } @@ -10057,7 +10006,7 @@ yydefault: case 217: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1569 +//line sql.y:1565 { yyLOCAL = yyDollar[2].exprUnion() } @@ -10065,7 +10014,7 @@ yydefault: case 218: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1573 +//line sql.y:1569 { yyLOCAL = &UnaryExpr{Operator: UMinusOp, Expr: yyDollar[2].exprUnion()} } @@ -10073,7 +10022,7 @@ yydefault: case 219: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1579 +//line sql.y:1575 { yyLOCAL = yyDollar[1].exprUnion() } @@ -10081,7 +10030,7 @@ yydefault: case 220: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1583 +//line sql.y:1579 { yyLOCAL = yyDollar[1].exprUnion() } @@ -10089,7 +10038,7 @@ yydefault: case 221: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1587 +//line sql.y:1583 { yyLOCAL = yyDollar[1].boolValUnion() } @@ -10097,7 +10046,7 @@ yydefault: case 222: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1591 +//line sql.y:1587 { yyLOCAL = NewHexLiteral(yyDollar[1].str) } @@ -10105,7 +10054,7 @@ yydefault: case 223: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1595 +//line sql.y:1591 { yyLOCAL = NewHexNumLiteral(yyDollar[1].str) } @@ -10113,7 +10062,7 @@ yydefault: case 224: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1599 +//line sql.y:1595 { yyLOCAL = NewBitLiteral(yyDollar[1].str) } @@ -10121,7 +10070,7 @@ yydefault: case 225: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1603 +//line sql.y:1599 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) @@ -10130,7 +10079,7 @@ yydefault: case 226: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1608 +//line sql.y:1604 { yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewBitLiteral(yyDollar[2].str)} } @@ -10138,7 +10087,7 @@ yydefault: case 227: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1612 +//line sql.y:1608 { yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewHexNumLiteral(yyDollar[2].str)} } @@ -10146,7 +10095,7 @@ yydefault: case 228: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1616 +//line sql.y:1612 { yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewHexLiteral(yyDollar[2].str)} } @@ -10154,7 +10103,7 @@ yydefault: case 229: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1620 +//line sql.y:1616 { yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: yyDollar[2].colNameUnion()} } @@ -10162,7 +10111,7 @@ yydefault: case 230: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1624 +//line sql.y:1620 { bindVariable(yylex, yyDollar[2].str[1:]) yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewArgument(yyDollar[2].str[1:])} @@ -10170,260 +10119,260 @@ yydefault: yyVAL.union = yyLOCAL case 231: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1631 +//line sql.y:1627 { yyVAL.str = Armscii8Str } case 232: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1635 +//line sql.y:1631 { yyVAL.str = ASCIIStr } case 233: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1639 +//line sql.y:1635 { yyVAL.str = Big5Str } case 234: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1643 +//line sql.y:1639 { yyVAL.str = UBinaryStr } case 235: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1647 +//line sql.y:1643 { yyVAL.str = Cp1250Str } case 236: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1651 +//line sql.y:1647 { yyVAL.str = Cp1251Str } case 237: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1655 +//line sql.y:1651 { yyVAL.str = Cp1256Str } case 238: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1659 +//line sql.y:1655 { yyVAL.str = Cp1257Str } case 239: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1663 +//line sql.y:1659 { yyVAL.str = Cp850Str } case 240: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1667 +//line sql.y:1663 { yyVAL.str = Cp852Str } case 241: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1671 +//line sql.y:1667 { yyVAL.str = Cp866Str } case 242: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1675 +//line sql.y:1671 { yyVAL.str = Cp932Str } case 243: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1679 +//line sql.y:1675 { yyVAL.str = Dec8Str } case 244: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1683 +//line sql.y:1679 { yyVAL.str = EucjpmsStr } case 245: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1687 +//line sql.y:1683 { yyVAL.str = EuckrStr } case 246: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1691 +//line sql.y:1687 { yyVAL.str = Gb18030Str } case 247: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1695 +//line sql.y:1691 { yyVAL.str = Gb2312Str } case 248: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1699 +//line sql.y:1695 { yyVAL.str = GbkStr } case 249: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1703 +//line sql.y:1699 { yyVAL.str = Geostd8Str } case 250: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1707 +//line sql.y:1703 { yyVAL.str = GreekStr } case 251: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1711 +//line sql.y:1707 { yyVAL.str = HebrewStr } case 252: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1715 +//line sql.y:1711 { yyVAL.str = Hp8Str } case 253: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1719 +//line sql.y:1715 { yyVAL.str = Keybcs2Str } case 254: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1723 +//line sql.y:1719 { yyVAL.str = Koi8rStr } case 255: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1727 +//line sql.y:1723 { yyVAL.str = Koi8uStr } case 256: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1731 +//line sql.y:1727 { yyVAL.str = Latin1Str } case 257: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1735 +//line sql.y:1731 { yyVAL.str = Latin2Str } case 258: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1739 +//line sql.y:1735 { yyVAL.str = Latin5Str } case 259: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1743 +//line sql.y:1739 { yyVAL.str = Latin7Str } case 260: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1747 +//line sql.y:1743 { yyVAL.str = MacceStr } case 261: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1751 +//line sql.y:1747 { yyVAL.str = MacromanStr } case 262: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1755 +//line sql.y:1751 { yyVAL.str = SjisStr } case 263: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1759 +//line sql.y:1755 { yyVAL.str = Swe7Str } case 264: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1763 +//line sql.y:1759 { yyVAL.str = Tis620Str } case 265: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1767 +//line sql.y:1763 { yyVAL.str = Ucs2Str } case 266: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1771 +//line sql.y:1767 { yyVAL.str = UjisStr } case 267: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1775 +//line sql.y:1771 { yyVAL.str = Utf16Str } case 268: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1779 +//line sql.y:1775 { yyVAL.str = Utf16leStr } case 269: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1783 +//line sql.y:1779 { yyVAL.str = Utf32Str } case 270: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1787 +//line sql.y:1783 { yyVAL.str = Utf8Str } case 271: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1791 +//line sql.y:1787 { yyVAL.str = Utf8mb4Str } case 272: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1795 +//line sql.y:1791 { yyVAL.str = Utf8Str } case 275: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1805 +//line sql.y:1801 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } @@ -10431,7 +10380,7 @@ yydefault: case 276: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1809 +//line sql.y:1805 { yyLOCAL = NewFloatLiteral(yyDollar[1].str) } @@ -10439,7 +10388,7 @@ yydefault: case 277: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1813 +//line sql.y:1809 { yyLOCAL = NewDecimalLiteral(yyDollar[1].str) } @@ -10447,7 +10396,7 @@ yydefault: case 278: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1819 +//line sql.y:1815 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } @@ -10455,7 +10404,7 @@ yydefault: case 279: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1823 +//line sql.y:1819 { yyLOCAL = &UnaryExpr{Operator: NStringOp, Expr: NewStrLiteral(yyDollar[1].str)} } @@ -10463,7 +10412,7 @@ yydefault: case 280: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:1827 +//line sql.y:1823 { yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewStrLiteral(yyDollar[2].str)} } @@ -10471,7 +10420,7 @@ yydefault: case 281: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1833 +//line sql.y:1829 { yyLOCAL = yyDollar[1].exprUnion() } @@ -10479,7 +10428,7 @@ yydefault: case 282: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:1837 +//line sql.y:1833 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) @@ -10488,7 +10437,7 @@ yydefault: case 283: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1844 +//line sql.y:1840 { yyLOCAL = colKeyPrimary } @@ -10496,7 +10445,7 @@ yydefault: case 284: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1848 +//line sql.y:1844 { yyLOCAL = colKeyUnique } @@ -10504,7 +10453,7 @@ yydefault: case 285: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1852 +//line sql.y:1848 { yyLOCAL = colKeyUniqueKey } @@ -10512,14 +10461,14 @@ yydefault: case 286: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1856 +//line sql.y:1852 { yyLOCAL = colKey } yyVAL.union = yyLOCAL case 287: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1862 +//line sql.y:1858 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].booleanUnion() @@ -10527,74 +10476,74 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1873 +//line sql.y:1869 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].literalUnion() } case 292: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1878 +//line sql.y:1874 { yyVAL.columnType = yyDollar[1].columnType } case 293: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1884 +//line sql.y:1880 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 294: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1888 +//line sql.y:1884 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 295: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1892 +//line sql.y:1888 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 296: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1896 +//line sql.y:1892 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 297: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1900 +//line sql.y:1896 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 298: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1904 +//line sql.y:1900 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 299: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1908 +//line sql.y:1904 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 300: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1912 +//line sql.y:1908 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 301: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1916 +//line sql.y:1912 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 302: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1922 +//line sql.y:1918 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -10602,7 +10551,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1928 +//line sql.y:1924 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -10610,7 +10559,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1934 +//line sql.y:1930 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -10618,7 +10567,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1940 +//line sql.y:1936 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -10626,7 +10575,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1946 +//line sql.y:1942 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -10634,43 +10583,43 @@ yydefault: } case 307: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1954 +//line sql.y:1950 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 308: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1958 +//line sql.y:1954 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 309: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1962 +//line sql.y:1958 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 310: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1966 +//line sql.y:1962 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 311: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1970 +//line sql.y:1966 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 312: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1976 +//line sql.y:1972 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].columnCharset} } case 313: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1980 +//line sql.y:1976 { // CHAR BYTE is an alias for binary. See also: // https://dev.mysql.com/doc/refman/8.0/en/string-type-syntax.html @@ -10678,153 +10627,153 @@ yydefault: } case 314: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1986 +//line sql.y:1982 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].columnCharset} } case 315: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1990 +//line sql.y:1986 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 316: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1994 +//line sql.y:1990 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } case 317: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1998 +//line sql.y:1994 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].columnCharset} } case 318: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2002 +//line sql.y:1998 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].columnCharset} } case 319: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2006 +//line sql.y:2002 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].columnCharset} } case 320: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2010 +//line sql.y:2006 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].columnCharset} } case 321: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2014 +//line sql.y:2010 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 322: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2018 +//line sql.y:2014 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 323: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2022 +//line sql.y:2018 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 324: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2026 +//line sql.y:2022 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 325: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2030 +//line sql.y:2026 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 326: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2034 +//line sql.y:2030 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].columnCharset} } case 327: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2039 +//line sql.y:2035 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].columnCharset} } case 328: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2045 +//line sql.y:2041 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 329: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2049 +//line sql.y:2045 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 330: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2053 +//line sql.y:2049 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 331: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2057 +//line sql.y:2053 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 332: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2061 +//line sql.y:2057 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 333: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2065 +//line sql.y:2061 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 334: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2069 +//line sql.y:2065 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 335: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2073 +//line sql.y:2069 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } case 336: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2079 +//line sql.y:2075 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, encodeSQLString(yyDollar[1].str)) } case 337: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2084 +//line sql.y:2080 { yyVAL.strs = append(yyDollar[1].strs, encodeSQLString(yyDollar[3].str)) } case 338: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Literal -//line sql.y:2089 +//line sql.y:2085 { yyLOCAL = nil } @@ -10832,20 +10781,20 @@ yydefault: case 339: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Literal -//line sql.y:2093 +//line sql.y:2089 { yyLOCAL = NewIntLiteral(yyDollar[2].str) } yyVAL.union = yyLOCAL case 340: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2098 +//line sql.y:2094 { yyVAL.LengthScaleOption = LengthScaleOption{} } case 341: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2102 +//line sql.y:2098 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), @@ -10854,13 +10803,13 @@ yydefault: } case 342: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2110 +//line sql.y:2106 { yyVAL.LengthScaleOption = LengthScaleOption{} } case 343: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2114 +//line sql.y:2110 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), @@ -10868,7 +10817,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2120 +//line sql.y:2116 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), @@ -10878,7 +10827,7 @@ yydefault: case 345: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2128 +//line sql.y:2124 { yyLOCAL = false } @@ -10886,7 +10835,7 @@ yydefault: case 346: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2132 +//line sql.y:2128 { yyLOCAL = true } @@ -10894,7 +10843,7 @@ yydefault: case 347: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2136 +//line sql.y:2132 { yyLOCAL = false } @@ -10902,7 +10851,7 @@ yydefault: case 348: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2141 +//line sql.y:2137 { yyLOCAL = false } @@ -10910,66 +10859,66 @@ yydefault: case 349: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2145 +//line sql.y:2141 { yyLOCAL = true } yyVAL.union = yyLOCAL case 350: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2150 +//line sql.y:2146 { yyVAL.columnCharset = ColumnCharset{} } case 351: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2154 +//line sql.y:2150 { yyVAL.columnCharset = ColumnCharset{Name: string(yyDollar[2].colIdent.String()), Binary: yyDollar[3].booleanUnion()} } case 352: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2158 +//line sql.y:2154 { yyVAL.columnCharset = ColumnCharset{Name: encodeSQLString(yyDollar[2].str), Binary: yyDollar[3].booleanUnion()} } case 353: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2162 +//line sql.y:2158 { yyVAL.columnCharset = ColumnCharset{Name: string(yyDollar[2].str)} } case 354: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2166 +//line sql.y:2162 { // ASCII: Shorthand for CHARACTER SET latin1. yyVAL.columnCharset = ColumnCharset{Name: "latin1", Binary: yyDollar[2].booleanUnion()} } case 355: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2171 +//line sql.y:2167 { // UNICODE: Shorthand for CHARACTER SET ucs2. yyVAL.columnCharset = ColumnCharset{Name: "ucs2", Binary: yyDollar[2].booleanUnion()} } case 356: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2176 +//line sql.y:2172 { // BINARY: Shorthand for default CHARACTER SET but with binary collation yyVAL.columnCharset = ColumnCharset{Name: "", Binary: true} } case 357: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2181 +//line sql.y:2177 { // BINARY ASCII: Shorthand for CHARACTER SET latin1 with binary collation yyVAL.columnCharset = ColumnCharset{Name: "latin1", Binary: true} } case 358: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2186 +//line sql.y:2182 { // BINARY UNICODE: Shorthand for CHARACTER SET ucs2 with binary collation yyVAL.columnCharset = ColumnCharset{Name: "ucs2", Binary: true} @@ -10977,7 +10926,7 @@ yydefault: case 359: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2192 +//line sql.y:2188 { yyLOCAL = false } @@ -10985,33 +10934,33 @@ yydefault: case 360: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2196 +//line sql.y:2192 { yyLOCAL = true } yyVAL.union = yyLOCAL case 361: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2201 +//line sql.y:2197 { yyVAL.str = "" } case 362: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2205 +//line sql.y:2201 { yyVAL.str = string(yyDollar[2].colIdent.String()) } case 363: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2209 +//line sql.y:2205 { yyVAL.str = encodeSQLString(yyDollar[2].str) } case 364: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexDefinition -//line sql.y:2216 +//line sql.y:2212 { yyLOCAL = &IndexDefinition{Info: yyDollar[1].indexInfoUnion(), Columns: yyDollar[3].indexColumnsUnion(), Options: yyDollar[5].indexOptionsUnion()} } @@ -11019,7 +10968,7 @@ yydefault: case 365: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:2221 +//line sql.y:2217 { yyLOCAL = nil } @@ -11027,7 +10976,7 @@ yydefault: case 366: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:2225 +//line sql.y:2221 { yyLOCAL = yyDollar[1].indexOptionsUnion() } @@ -11035,14 +10984,14 @@ yydefault: case 367: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:2231 +//line sql.y:2227 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL case 368: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2235 +//line sql.y:2231 { yySLICE := (*[]*IndexOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].indexOptionUnion()) @@ -11050,7 +10999,7 @@ yydefault: case 369: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:2241 +//line sql.y:2237 { yyLOCAL = yyDollar[1].indexOptionUnion() } @@ -11058,7 +11007,7 @@ yydefault: case 370: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:2245 +//line sql.y:2241 { // should not be string yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} @@ -11067,7 +11016,7 @@ yydefault: case 371: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:2250 +//line sql.y:2246 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[2].str)} } @@ -11075,7 +11024,7 @@ yydefault: case 372: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:2254 +//line sql.y:2250 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str)} } @@ -11083,7 +11032,7 @@ yydefault: case 373: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:2258 +//line sql.y:2254 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str)} } @@ -11091,7 +11040,7 @@ yydefault: case 374: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:2262 +//line sql.y:2258 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str) + " " + string(yyDollar[2].str), String: yyDollar[3].colIdent.String()} } @@ -11099,7 +11048,7 @@ yydefault: case 375: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:2266 +//line sql.y:2262 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -11107,27 +11056,27 @@ yydefault: case 376: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:2270 +//line sql.y:2266 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL case 377: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2276 +//line sql.y:2272 { yyVAL.str = "" } case 378: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2280 +//line sql.y:2276 { yyVAL.str = string(yyDollar[1].str) } case 379: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:2286 +//line sql.y:2282 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} } @@ -11135,7 +11084,7 @@ yydefault: case 380: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:2290 +//line sql.y:2286 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Spatial: true, Unique: false} } @@ -11143,7 +11092,7 @@ yydefault: case 381: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:2294 +//line sql.y:2290 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Fulltext: true, Unique: false} } @@ -11151,7 +11100,7 @@ yydefault: case 382: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:2298 +//line sql.y:2294 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent(yyDollar[4].str), Unique: true} } @@ -11159,100 +11108,100 @@ yydefault: case 383: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:2302 +//line sql.y:2298 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(yyDollar[2].str), Unique: false} } yyVAL.union = yyLOCAL case 384: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2307 +//line sql.y:2303 { yyVAL.str = "" } case 385: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2311 +//line sql.y:2307 { yyVAL.str = yyDollar[2].str } case 386: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2317 +//line sql.y:2313 { yyVAL.str = string(yyDollar[1].str) } case 387: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2321 +//line sql.y:2317 { yyVAL.str = string(yyDollar[1].str) } case 388: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2325 +//line sql.y:2321 { yyVAL.str = string(yyDollar[1].str) } case 389: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2332 +//line sql.y:2328 { yyVAL.str = string(yyDollar[1].str) } case 390: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2336 +//line sql.y:2332 { yyVAL.str = string(yyDollar[1].str) } case 391: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2341 +//line sql.y:2337 { yyVAL.str = "key" } case 392: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2345 +//line sql.y:2341 { yyVAL.str = yyDollar[1].str } case 393: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2351 +//line sql.y:2347 { yyVAL.str = string(yyDollar[1].str) } case 394: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2355 +//line sql.y:2351 { yyVAL.str = string(yyDollar[1].str) } case 395: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2360 +//line sql.y:2356 { yyVAL.str = "" } case 396: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2364 +//line sql.y:2360 { yyVAL.str = string(yyDollar[1].colIdent.String()) } case 397: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexColumn -//line sql.y:2370 +//line sql.y:2366 { yyLOCAL = []*IndexColumn{yyDollar[1].indexColumnUnion()} } yyVAL.union = yyLOCAL case 398: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2374 +//line sql.y:2370 { yySLICE := (*[]*IndexColumn)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].indexColumnUnion()) @@ -11260,7 +11209,7 @@ yydefault: case 399: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexColumn -//line sql.y:2380 +//line sql.y:2376 { yyLOCAL = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].literalUnion(), Direction: yyDollar[3].orderDirectionUnion()} } @@ -11268,7 +11217,7 @@ yydefault: case 400: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexColumn -//line sql.y:2384 +//line sql.y:2380 { yyLOCAL = &IndexColumn{Expression: yyDollar[2].exprUnion(), Direction: yyDollar[4].orderDirectionUnion()} } @@ -11276,7 +11225,7 @@ yydefault: case 401: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:2390 +//line sql.y:2386 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } @@ -11284,7 +11233,7 @@ yydefault: case 402: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:2394 +//line sql.y:2390 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } @@ -11292,7 +11241,7 @@ yydefault: case 403: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:2400 +//line sql.y:2396 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } @@ -11300,7 +11249,7 @@ yydefault: case 404: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:2404 +//line sql.y:2400 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } @@ -11308,7 +11257,7 @@ yydefault: case 405: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:2410 +//line sql.y:2406 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferenceDefinition: yyDollar[7].referenceDefinitionUnion()} } @@ -11316,7 +11265,7 @@ yydefault: case 406: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:2416 +//line sql.y:2412 { yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), Match: yyDollar[6].matchActionUnion()} } @@ -11324,7 +11273,7 @@ yydefault: case 407: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:2420 +//line sql.y:2416 { yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), Match: yyDollar[6].matchActionUnion(), OnDelete: yyDollar[7].referenceActionUnion()} } @@ -11332,7 +11281,7 @@ yydefault: case 408: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:2424 +//line sql.y:2420 { yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), Match: yyDollar[6].matchActionUnion(), OnUpdate: yyDollar[7].referenceActionUnion()} } @@ -11340,7 +11289,7 @@ yydefault: case 409: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:2428 +//line sql.y:2424 { yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), Match: yyDollar[6].matchActionUnion(), OnDelete: yyDollar[7].referenceActionUnion(), OnUpdate: yyDollar[8].referenceActionUnion()} } @@ -11348,7 +11297,7 @@ yydefault: case 410: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:2432 +//line sql.y:2428 { yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), Match: yyDollar[6].matchActionUnion(), OnUpdate: yyDollar[7].referenceActionUnion(), OnDelete: yyDollar[8].referenceActionUnion()} } @@ -11356,7 +11305,7 @@ yydefault: case 411: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:2437 +//line sql.y:2433 { yyLOCAL = nil } @@ -11364,7 +11313,7 @@ yydefault: case 412: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:2441 +//line sql.y:2437 { yyLOCAL = yyDollar[1].referenceDefinitionUnion() } @@ -11372,7 +11321,7 @@ yydefault: case 413: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:2447 +//line sql.y:2443 { yyLOCAL = &CheckConstraintDefinition{Expr: yyDollar[3].exprUnion(), Enforced: yyDollar[5].booleanUnion()} } @@ -11380,7 +11329,7 @@ yydefault: case 414: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL MatchAction -//line sql.y:2453 +//line sql.y:2449 { yyLOCAL = yyDollar[2].matchActionUnion() } @@ -11388,7 +11337,7 @@ yydefault: case 415: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL MatchAction -//line sql.y:2459 +//line sql.y:2455 { yyLOCAL = Full } @@ -11396,7 +11345,7 @@ yydefault: case 416: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL MatchAction -//line sql.y:2463 +//line sql.y:2459 { yyLOCAL = Partial } @@ -11404,7 +11353,7 @@ yydefault: case 417: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL MatchAction -//line sql.y:2467 +//line sql.y:2463 { yyLOCAL = Simple } @@ -11412,7 +11361,7 @@ yydefault: case 418: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL MatchAction -//line sql.y:2472 +//line sql.y:2468 { yyLOCAL = DefaultMatch } @@ -11420,7 +11369,7 @@ yydefault: case 419: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL MatchAction -//line sql.y:2476 +//line sql.y:2472 { yyLOCAL = yyDollar[1].matchActionUnion() } @@ -11428,7 +11377,7 @@ yydefault: case 420: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:2482 +//line sql.y:2478 { yyLOCAL = yyDollar[3].referenceActionUnion() } @@ -11436,7 +11385,7 @@ yydefault: case 421: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:2488 +//line sql.y:2484 { yyLOCAL = yyDollar[3].referenceActionUnion() } @@ -11444,7 +11393,7 @@ yydefault: case 422: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:2494 +//line sql.y:2490 { yyLOCAL = Restrict } @@ -11452,7 +11401,7 @@ yydefault: case 423: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:2498 +//line sql.y:2494 { yyLOCAL = Cascade } @@ -11460,7 +11409,7 @@ yydefault: case 424: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:2502 +//line sql.y:2498 { yyLOCAL = NoAction } @@ -11468,7 +11417,7 @@ yydefault: case 425: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:2506 +//line sql.y:2502 { yyLOCAL = SetDefault } @@ -11476,33 +11425,33 @@ yydefault: case 426: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:2510 +//line sql.y:2506 { yyLOCAL = SetNull } yyVAL.union = yyLOCAL case 427: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2515 +//line sql.y:2511 { yyVAL.str = "" } case 428: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2519 +//line sql.y:2515 { yyVAL.str = string(yyDollar[1].str) } case 429: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2523 +//line sql.y:2519 { yyVAL.str = string(yyDollar[1].str) } case 430: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2529 +//line sql.y:2525 { yyLOCAL = true } @@ -11510,7 +11459,7 @@ yydefault: case 431: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2533 +//line sql.y:2529 { yyLOCAL = false } @@ -11518,7 +11467,7 @@ yydefault: case 432: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2538 +//line sql.y:2534 { yyLOCAL = true } @@ -11526,7 +11475,7 @@ yydefault: case 433: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2542 +//line sql.y:2538 { yyLOCAL = yyDollar[1].booleanUnion() } @@ -11534,7 +11483,7 @@ yydefault: case 434: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableOptions -//line sql.y:2547 +//line sql.y:2543 { yyLOCAL = nil } @@ -11542,7 +11491,7 @@ yydefault: case 435: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:2551 +//line sql.y:2547 { yyLOCAL = yyDollar[1].tableOptionsUnion() } @@ -11550,21 +11499,21 @@ yydefault: case 436: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:2557 +//line sql.y:2553 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL case 437: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2561 +//line sql.y:2557 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableOptionUnion()) } case 438: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2565 +//line sql.y:2561 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) @@ -11572,14 +11521,14 @@ yydefault: case 439: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:2571 +//line sql.y:2567 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL case 440: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2575 +//line sql.y:2571 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) @@ -11587,7 +11536,7 @@ yydefault: case 441: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2581 +//line sql.y:2577 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -11595,7 +11544,7 @@ yydefault: case 442: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2585 +//line sql.y:2581 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -11603,7 +11552,7 @@ yydefault: case 443: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2589 +//line sql.y:2585 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -11611,7 +11560,7 @@ yydefault: case 444: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2593 +//line sql.y:2589 { yyLOCAL = &TableOption{Name: (string(yyDollar[2].str)), String: yyDollar[4].str, CaseSensitive: true} } @@ -11619,7 +11568,7 @@ yydefault: case 445: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2597 +//line sql.y:2593 { yyLOCAL = &TableOption{Name: string(yyDollar[2].str), String: yyDollar[4].str, CaseSensitive: true} } @@ -11627,7 +11576,7 @@ yydefault: case 446: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2601 +//line sql.y:2597 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -11635,7 +11584,7 @@ yydefault: case 447: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2605 +//line sql.y:2601 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -11643,7 +11592,7 @@ yydefault: case 448: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2609 +//line sql.y:2605 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -11651,7 +11600,7 @@ yydefault: case 449: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2613 +//line sql.y:2609 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -11659,7 +11608,7 @@ yydefault: case 450: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2617 +//line sql.y:2613 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } @@ -11667,7 +11616,7 @@ yydefault: case 451: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2621 +//line sql.y:2617 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } @@ -11675,7 +11624,7 @@ yydefault: case 452: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2625 +//line sql.y:2621 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -11683,7 +11632,7 @@ yydefault: case 453: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2629 +//line sql.y:2625 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -11691,7 +11640,7 @@ yydefault: case 454: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2633 +//line sql.y:2629 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: yyDollar[3].tableIdent.String(), CaseSensitive: true} } @@ -11699,7 +11648,7 @@ yydefault: case 455: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2637 +//line sql.y:2633 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -11707,7 +11656,7 @@ yydefault: case 456: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2641 +//line sql.y:2637 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -11715,7 +11664,7 @@ yydefault: case 457: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2645 +//line sql.y:2641 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -11723,7 +11672,7 @@ yydefault: case 458: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2649 +//line sql.y:2645 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -11731,7 +11680,7 @@ yydefault: case 459: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2653 +//line sql.y:2649 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -11739,7 +11688,7 @@ yydefault: case 460: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2657 +//line sql.y:2653 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -11747,7 +11696,7 @@ yydefault: case 461: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2661 +//line sql.y:2657 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -11755,7 +11704,7 @@ yydefault: case 462: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2665 +//line sql.y:2661 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -11763,7 +11712,7 @@ yydefault: case 463: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2669 +//line sql.y:2665 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -11771,7 +11720,7 @@ yydefault: case 464: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2673 +//line sql.y:2669 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } @@ -11779,7 +11728,7 @@ yydefault: case 465: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2677 +//line sql.y:2673 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -11787,7 +11736,7 @@ yydefault: case 466: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2681 +//line sql.y:2677 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -11795,7 +11744,7 @@ yydefault: case 467: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2685 +//line sql.y:2681 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -11803,7 +11752,7 @@ yydefault: case 468: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2689 +//line sql.y:2685 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } @@ -11811,7 +11760,7 @@ yydefault: case 469: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2693 +//line sql.y:2689 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } @@ -11819,7 +11768,7 @@ yydefault: case 470: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2697 +//line sql.y:2693 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: (yyDollar[3].colIdent.String() + yyDollar[4].str)} } @@ -11827,57 +11776,57 @@ yydefault: case 471: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *TableOption -//line sql.y:2701 +//line sql.y:2697 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Tables: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL case 472: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2706 +//line sql.y:2702 { yyVAL.str = "" } case 473: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2710 +//line sql.y:2706 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 474: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2714 +//line sql.y:2710 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 484: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2733 +//line sql.y:2729 { yyVAL.str = yyDollar[1].colIdent.String() } case 485: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2737 +//line sql.y:2733 { yyVAL.str = encodeSQLString(yyDollar[1].str) } case 486: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2741 +//line sql.y:2737 { yyVAL.str = string(yyDollar[1].str) } case 487: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2746 +//line sql.y:2742 { yyVAL.str = "" } case 489: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2752 +//line sql.y:2748 { yyLOCAL = false } @@ -11885,7 +11834,7 @@ yydefault: case 490: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2756 +//line sql.y:2752 { yyLOCAL = true } @@ -11893,7 +11842,7 @@ yydefault: case 491: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:2761 +//line sql.y:2757 { yyLOCAL = nil } @@ -11901,27 +11850,27 @@ yydefault: case 492: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:2765 +//line sql.y:2761 { yyLOCAL = yyDollar[2].colNameUnion() } yyVAL.union = yyLOCAL case 493: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2770 +//line sql.y:2766 { yyVAL.str = "" } case 494: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2774 +//line sql.y:2770 { yyVAL.str = string(yyDollar[2].str) } case 495: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Literal -//line sql.y:2779 +//line sql.y:2775 { yyLOCAL = nil } @@ -11929,7 +11878,7 @@ yydefault: case 496: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Literal -//line sql.y:2783 +//line sql.y:2779 { yyLOCAL = NewIntLiteral(yyDollar[2].str) } @@ -11937,7 +11886,7 @@ yydefault: case 497: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Literal -//line sql.y:2787 +//line sql.y:2783 { yyLOCAL = NewDecimalLiteral(yyDollar[2].str) } @@ -11945,7 +11894,7 @@ yydefault: case 498: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2792 +//line sql.y:2788 { yyLOCAL = nil } @@ -11953,14 +11902,14 @@ yydefault: case 499: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2796 +//line sql.y:2792 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL case 500: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2800 +//line sql.y:2796 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &OrderByOption{Cols: yyDollar[5].columnsUnion()}) @@ -11968,14 +11917,14 @@ yydefault: case 501: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2804 +//line sql.y:2800 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL case 502: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2808 +//line sql.y:2804 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionsUnion()...) @@ -11983,7 +11932,7 @@ yydefault: case 503: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2812 +//line sql.y:2808 { yyLOCAL = append(append(yyDollar[1].alterOptionsUnion(), yyDollar[3].alterOptionsUnion()...), &OrderByOption{Cols: yyDollar[7].columnsUnion()}) } @@ -11991,21 +11940,21 @@ yydefault: case 504: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2818 +//line sql.y:2814 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL case 505: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2822 +//line sql.y:2818 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } case 506: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2826 +//line sql.y:2822 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) @@ -12013,7 +11962,7 @@ yydefault: case 507: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2832 +//line sql.y:2828 { yyLOCAL = yyDollar[1].tableOptionsUnion() } @@ -12021,7 +11970,7 @@ yydefault: case 508: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2836 +//line sql.y:2832 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } @@ -12029,7 +11978,7 @@ yydefault: case 509: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2840 +//line sql.y:2836 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } @@ -12037,7 +11986,7 @@ yydefault: case 510: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2844 +//line sql.y:2840 { yyLOCAL = &AddIndexDefinition{IndexDefinition: yyDollar[2].indexDefinitionUnion()} } @@ -12045,7 +11994,7 @@ yydefault: case 511: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2848 +//line sql.y:2844 { yyLOCAL = &AddColumns{Columns: yyDollar[4].columnDefinitionsUnion()} } @@ -12053,7 +12002,7 @@ yydefault: case 512: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2852 +//line sql.y:2848 { yyLOCAL = &AddColumns{Columns: []*ColumnDefinition{yyDollar[3].columnDefinitionUnion()}, First: yyDollar[4].booleanUnion(), After: yyDollar[5].colNameUnion()} } @@ -12061,7 +12010,7 @@ yydefault: case 513: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2856 +//line sql.y:2852 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: true} } @@ -12069,7 +12018,7 @@ yydefault: case 514: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2860 +//line sql.y:2856 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[6].exprUnion()} } @@ -12077,7 +12026,7 @@ yydefault: case 515: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2864 +//line sql.y:2860 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[7].exprUnion()} } @@ -12085,7 +12034,7 @@ yydefault: case 516: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2868 +//line sql.y:2864 { val := false yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), Invisible: &val} @@ -12094,7 +12043,7 @@ yydefault: case 517: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2873 +//line sql.y:2869 { val := true yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), Invisible: &val} @@ -12103,7 +12052,7 @@ yydefault: case 518: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2878 +//line sql.y:2874 { yyLOCAL = &AlterCheck{Name: yyDollar[3].colIdent, Enforced: yyDollar[4].booleanUnion()} } @@ -12111,7 +12060,7 @@ yydefault: case 519: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2882 +//line sql.y:2878 { yyLOCAL = &AlterIndex{Name: yyDollar[3].colIdent, Invisible: false} } @@ -12119,7 +12068,7 @@ yydefault: case 520: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2886 +//line sql.y:2882 { yyLOCAL = &AlterIndex{Name: yyDollar[3].colIdent, Invisible: true} } @@ -12127,7 +12076,7 @@ yydefault: case 521: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2890 +//line sql.y:2886 { yyLOCAL = &ChangeColumn{OldColumn: yyDollar[3].colNameUnion(), NewColDefinition: yyDollar[4].columnDefinitionUnion(), First: yyDollar[5].booleanUnion(), After: yyDollar[6].colNameUnion()} } @@ -12135,7 +12084,7 @@ yydefault: case 522: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2894 +//line sql.y:2890 { yyLOCAL = &ModifyColumn{NewColDefinition: yyDollar[3].columnDefinitionUnion(), First: yyDollar[4].booleanUnion(), After: yyDollar[5].colNameUnion()} } @@ -12143,7 +12092,7 @@ yydefault: case 523: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2898 +//line sql.y:2894 { yyLOCAL = &AlterCharset{CharacterSet: yyDollar[4].str, Collate: yyDollar[5].str} } @@ -12151,7 +12100,7 @@ yydefault: case 524: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2902 +//line sql.y:2898 { yyLOCAL = &KeyState{Enable: false} } @@ -12159,7 +12108,7 @@ yydefault: case 525: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2906 +//line sql.y:2902 { yyLOCAL = &KeyState{Enable: true} } @@ -12167,7 +12116,7 @@ yydefault: case 526: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2910 +//line sql.y:2906 { yyLOCAL = &TablespaceOperation{Import: false} } @@ -12175,7 +12124,7 @@ yydefault: case 527: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2914 +//line sql.y:2910 { yyLOCAL = &TablespaceOperation{Import: true} } @@ -12183,7 +12132,7 @@ yydefault: case 528: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2918 +//line sql.y:2914 { yyLOCAL = &DropColumn{Name: yyDollar[3].colNameUnion()} } @@ -12191,7 +12140,7 @@ yydefault: case 529: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2922 +//line sql.y:2918 { yyLOCAL = &DropKey{Type: NormalKeyType, Name: yyDollar[3].colIdent} } @@ -12199,7 +12148,7 @@ yydefault: case 530: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2926 +//line sql.y:2922 { yyLOCAL = &DropKey{Type: PrimaryKeyType} } @@ -12207,7 +12156,7 @@ yydefault: case 531: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2930 +//line sql.y:2926 { yyLOCAL = &DropKey{Type: ForeignKeyType, Name: yyDollar[4].colIdent} } @@ -12215,7 +12164,7 @@ yydefault: case 532: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2934 +//line sql.y:2930 { yyLOCAL = &DropKey{Type: CheckKeyType, Name: yyDollar[3].colIdent} } @@ -12223,7 +12172,7 @@ yydefault: case 533: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2938 +//line sql.y:2934 { yyLOCAL = &DropKey{Type: CheckKeyType, Name: yyDollar[3].colIdent} } @@ -12231,7 +12180,7 @@ yydefault: case 534: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2942 +//line sql.y:2938 { yyLOCAL = &Force{} } @@ -12239,7 +12188,7 @@ yydefault: case 535: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2946 +//line sql.y:2942 { yyLOCAL = &RenameTableName{Table: yyDollar[3].tableName} } @@ -12247,7 +12196,7 @@ yydefault: case 536: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2950 +//line sql.y:2946 { yyLOCAL = &RenameIndex{OldName: yyDollar[3].colIdent, NewName: yyDollar[5].colIdent} } @@ -12255,14 +12204,14 @@ yydefault: case 537: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2956 +//line sql.y:2952 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL case 538: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2960 +//line sql.y:2956 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) @@ -12270,7 +12219,7 @@ yydefault: case 539: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2966 +//line sql.y:2962 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } @@ -12278,7 +12227,7 @@ yydefault: case 540: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2970 +//line sql.y:2966 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } @@ -12286,7 +12235,7 @@ yydefault: case 541: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2974 +//line sql.y:2970 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } @@ -12294,7 +12243,7 @@ yydefault: case 542: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2978 +//line sql.y:2974 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } @@ -12302,7 +12251,7 @@ yydefault: case 543: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2982 +//line sql.y:2978 { yyLOCAL = &LockOption{Type: DefaultType} } @@ -12310,7 +12259,7 @@ yydefault: case 544: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2986 +//line sql.y:2982 { yyLOCAL = &LockOption{Type: NoneType} } @@ -12318,7 +12267,7 @@ yydefault: case 545: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2990 +//line sql.y:2986 { yyLOCAL = &LockOption{Type: SharedType} } @@ -12326,7 +12275,7 @@ yydefault: case 546: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2994 +//line sql.y:2990 { yyLOCAL = &LockOption{Type: ExclusiveType} } @@ -12334,7 +12283,7 @@ yydefault: case 547: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2998 +//line sql.y:2994 { yyLOCAL = &Validation{With: true} } @@ -12342,7 +12291,7 @@ yydefault: case 548: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:3002 +//line sql.y:2998 { yyLOCAL = &Validation{With: false} } @@ -12350,7 +12299,7 @@ yydefault: case 549: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3008 +//line sql.y:3004 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -12361,7 +12310,7 @@ yydefault: case 550: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3015 +//line sql.y:3011 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -12372,7 +12321,7 @@ yydefault: case 551: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3022 +//line sql.y:3018 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -12383,7 +12332,7 @@ yydefault: case 552: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:3029 +//line sql.y:3025 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[2].partSpecUnion() @@ -12393,7 +12342,7 @@ yydefault: case 553: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL Statement -//line sql.y:3035 +//line sql.y:3031 { yyLOCAL = &AlterView{ViewName: yyDollar[7].tableName.ToViewName(), Comments: Comments(yyDollar[2].strs).Parsed(), Algorithm: yyDollar[3].str, Definer: yyDollar[4].definerUnion(), Security: yyDollar[5].str, Columns: yyDollar[8].columnsUnion(), Select: yyDollar[10].selStmtUnion(), CheckOption: yyDollar[11].str} } @@ -12401,7 +12350,7 @@ yydefault: case 554: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3045 +//line sql.y:3041 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -12412,7 +12361,7 @@ yydefault: case 555: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3052 +//line sql.y:3048 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -12423,7 +12372,7 @@ yydefault: case 556: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:3059 +//line sql.y:3055 { yyLOCAL = &AlterVschema{ Action: CreateVindexDDLAction, @@ -12439,7 +12388,7 @@ yydefault: case 557: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3071 +//line sql.y:3067 { yyLOCAL = &AlterVschema{ Action: DropVindexDDLAction, @@ -12453,7 +12402,7 @@ yydefault: case 558: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3081 +//line sql.y:3077 { yyLOCAL = &AlterVschema{Action: AddVschemaTableDDLAction, Table: yyDollar[6].tableName} } @@ -12461,7 +12410,7 @@ yydefault: case 559: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3085 +//line sql.y:3081 { yyLOCAL = &AlterVschema{Action: DropVschemaTableDDLAction, Table: yyDollar[6].tableName} } @@ -12469,7 +12418,7 @@ yydefault: case 560: yyDollar = yyS[yypt-13 : yypt+1] var yyLOCAL Statement -//line sql.y:3089 +//line sql.y:3085 { yyLOCAL = &AlterVschema{ Action: AddColVindexDDLAction, @@ -12486,7 +12435,7 @@ yydefault: case 561: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:3102 +//line sql.y:3098 { yyLOCAL = &AlterVschema{ Action: DropColVindexDDLAction, @@ -12500,7 +12449,7 @@ yydefault: case 562: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3112 +//line sql.y:3108 { yyLOCAL = &AlterVschema{Action: AddSequenceDDLAction, Table: yyDollar[6].tableName} } @@ -12508,7 +12457,7 @@ yydefault: case 563: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Statement -//line sql.y:3116 +//line sql.y:3112 { yyLOCAL = &AlterVschema{ Action: AddAutoIncDDLAction, @@ -12523,7 +12472,7 @@ yydefault: case 564: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3127 +//line sql.y:3123 { yyLOCAL = &AlterMigration{ Type: RetryMigrationType, @@ -12534,7 +12483,7 @@ yydefault: case 565: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3134 +//line sql.y:3130 { yyLOCAL = &AlterMigration{ Type: CleanupMigrationType, @@ -12545,7 +12494,7 @@ yydefault: case 566: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3141 +//line sql.y:3137 { yyLOCAL = &AlterMigration{ Type: CompleteMigrationType, @@ -12556,7 +12505,7 @@ yydefault: case 567: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3148 +//line sql.y:3144 { yyLOCAL = &AlterMigration{ Type: CancelMigrationType, @@ -12567,7 +12516,7 @@ yydefault: case 568: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3155 +//line sql.y:3151 { yyLOCAL = &AlterMigration{ Type: CancelAllMigrationType, @@ -12577,7 +12526,7 @@ yydefault: case 569: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3161 +//line sql.y:3157 { yyLOCAL = &AlterMigration{ Type: ThrottleMigrationType, @@ -12590,7 +12539,7 @@ yydefault: case 570: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3170 +//line sql.y:3166 { yyLOCAL = &AlterMigration{ Type: ThrottleAllMigrationType, @@ -12602,7 +12551,7 @@ yydefault: case 571: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3178 +//line sql.y:3174 { yyLOCAL = &AlterMigration{ Type: UnthrottleMigrationType, @@ -12613,7 +12562,7 @@ yydefault: case 572: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3185 +//line sql.y:3181 { yyLOCAL = &AlterMigration{ Type: UnthrottleAllMigrationType, @@ -12623,7 +12572,7 @@ yydefault: case 573: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3192 +//line sql.y:3188 { yyLOCAL = nil } @@ -12631,7 +12580,7 @@ yydefault: case 574: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3196 +//line sql.y:3192 { yyDollar[3].partitionOptionUnion().Partitions = yyDollar[4].integerUnion() yyDollar[3].partitionOptionUnion().SubPartition = yyDollar[5].subPartitionUnion() @@ -12642,7 +12591,7 @@ yydefault: case 575: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3205 +//line sql.y:3201 { yyLOCAL = &PartitionOption{ IsLinear: yyDollar[1].booleanUnion(), @@ -12654,7 +12603,7 @@ yydefault: case 576: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3213 +//line sql.y:3209 { yyLOCAL = &PartitionOption{ IsLinear: yyDollar[1].booleanUnion(), @@ -12667,7 +12616,7 @@ yydefault: case 577: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3222 +//line sql.y:3218 { yyLOCAL = &PartitionOption{ Type: yyDollar[1].partitionByTypeUnion(), @@ -12678,7 +12627,7 @@ yydefault: case 578: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3229 +//line sql.y:3225 { yyLOCAL = &PartitionOption{ Type: yyDollar[1].partitionByTypeUnion(), @@ -12689,7 +12638,7 @@ yydefault: case 579: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *SubPartition -//line sql.y:3237 +//line sql.y:3233 { yyLOCAL = nil } @@ -12697,7 +12646,7 @@ yydefault: case 580: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *SubPartition -//line sql.y:3241 +//line sql.y:3237 { yyLOCAL = &SubPartition{ IsLinear: yyDollar[3].booleanUnion(), @@ -12710,7 +12659,7 @@ yydefault: case 581: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SubPartition -//line sql.y:3250 +//line sql.y:3246 { yyLOCAL = &SubPartition{ IsLinear: yyDollar[3].booleanUnion(), @@ -12724,7 +12673,7 @@ yydefault: case 582: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:3261 +//line sql.y:3257 { yyLOCAL = nil } @@ -12732,7 +12681,7 @@ yydefault: case 583: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:3265 +//line sql.y:3261 { yyLOCAL = yyDollar[2].partDefsUnion() } @@ -12740,7 +12689,7 @@ yydefault: case 584: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3270 +//line sql.y:3266 { yyLOCAL = false } @@ -12748,7 +12697,7 @@ yydefault: case 585: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3274 +//line sql.y:3270 { yyLOCAL = true } @@ -12756,7 +12705,7 @@ yydefault: case 586: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int -//line sql.y:3279 +//line sql.y:3275 { yyLOCAL = 0 } @@ -12764,7 +12713,7 @@ yydefault: case 587: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int -//line sql.y:3283 +//line sql.y:3279 { yyLOCAL = convertStringToInt(yyDollar[3].str) } @@ -12772,7 +12721,7 @@ yydefault: case 588: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3289 +//line sql.y:3285 { yyLOCAL = &JSONTableExpr{Expr: yyDollar[3].exprUnion(), Filter: yyDollar[5].exprUnion(), Columns: yyDollar[6].jtColumnListUnion(), Alias: yyDollar[8].tableIdent} } @@ -12780,7 +12729,7 @@ yydefault: case 589: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL []*JtColumnDefinition -//line sql.y:3295 +//line sql.y:3291 { yyLOCAL = yyDollar[3].jtColumnListUnion() } @@ -12788,14 +12737,14 @@ yydefault: case 590: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*JtColumnDefinition -//line sql.y:3301 +//line sql.y:3297 { yyLOCAL = []*JtColumnDefinition{yyDollar[1].jtColumnDefinitionUnion()} } yyVAL.union = yyLOCAL case 591: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3305 +//line sql.y:3301 { yySLICE := (*[]*JtColumnDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].jtColumnDefinitionUnion()) @@ -12803,7 +12752,7 @@ yydefault: case 592: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3311 +//line sql.y:3307 { yyLOCAL = &JtColumnDefinition{JtOrdinal: &JtOrdinalColDef{Name: yyDollar[1].colIdent}} } @@ -12811,7 +12760,7 @@ yydefault: case 593: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3315 +//line sql.y:3311 { yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str} jtPath := &JtPathColDef{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion()} @@ -12821,7 +12770,7 @@ yydefault: case 594: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3321 +//line sql.y:3317 { yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str} jtPath := &JtPathColDef{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion()} @@ -12831,7 +12780,7 @@ yydefault: case 595: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3327 +//line sql.y:3323 { yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str} jtPath := &JtPathColDef{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), ErrorOnResponse: yyDollar[7].jtOnResponseUnion()} @@ -12841,7 +12790,7 @@ yydefault: case 596: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3333 +//line sql.y:3329 { yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str} jtPath := &JtPathColDef{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion(), ErrorOnResponse: yyDollar[8].jtOnResponseUnion()} @@ -12851,7 +12800,7 @@ yydefault: case 597: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3339 +//line sql.y:3335 { jtNestedPath := &JtNestedPathColDef{Path: yyDollar[3].exprUnion(), Columns: yyDollar[4].jtColumnListUnion()} yyLOCAL = &JtColumnDefinition{JtNestedPath: jtNestedPath} @@ -12860,7 +12809,7 @@ yydefault: case 598: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3345 +//line sql.y:3341 { yyLOCAL = false } @@ -12868,7 +12817,7 @@ yydefault: case 599: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3349 +//line sql.y:3345 { yyLOCAL = true } @@ -12876,7 +12825,7 @@ yydefault: case 600: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3353 +//line sql.y:3349 { yyLOCAL = false } @@ -12884,7 +12833,7 @@ yydefault: case 601: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3357 +//line sql.y:3353 { yyLOCAL = true } @@ -12892,7 +12841,7 @@ yydefault: case 602: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:3363 +//line sql.y:3359 { yyLOCAL = yyDollar[1].jtOnResponseUnion() } @@ -12900,7 +12849,7 @@ yydefault: case 603: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:3369 +//line sql.y:3365 { yyLOCAL = yyDollar[1].jtOnResponseUnion() } @@ -12908,7 +12857,7 @@ yydefault: case 604: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:3375 +//line sql.y:3371 { yyLOCAL = &JtOnResponse{ResponseType: ErrorJSONType} } @@ -12916,7 +12865,7 @@ yydefault: case 605: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:3379 +//line sql.y:3375 { yyLOCAL = &JtOnResponse{ResponseType: NullJSONType} } @@ -12924,7 +12873,7 @@ yydefault: case 606: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:3383 +//line sql.y:3379 { yyLOCAL = &JtOnResponse{ResponseType: DefaultJSONType, Expr: yyDollar[2].exprUnion()} } @@ -12932,7 +12881,7 @@ yydefault: case 607: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL PartitionByType -//line sql.y:3389 +//line sql.y:3385 { yyLOCAL = RangeType } @@ -12940,7 +12889,7 @@ yydefault: case 608: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL PartitionByType -//line sql.y:3393 +//line sql.y:3389 { yyLOCAL = ListType } @@ -12948,7 +12897,7 @@ yydefault: case 609: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int -//line sql.y:3398 +//line sql.y:3394 { yyLOCAL = -1 } @@ -12956,7 +12905,7 @@ yydefault: case 610: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int -//line sql.y:3402 +//line sql.y:3398 { yyLOCAL = convertStringToInt(yyDollar[2].str) } @@ -12964,7 +12913,7 @@ yydefault: case 611: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int -//line sql.y:3407 +//line sql.y:3403 { yyLOCAL = -1 } @@ -12972,7 +12921,7 @@ yydefault: case 612: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int -//line sql.y:3411 +//line sql.y:3407 { yyLOCAL = convertStringToInt(yyDollar[2].str) } @@ -12980,7 +12929,7 @@ yydefault: case 613: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3417 +//line sql.y:3413 { yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}} } @@ -12988,7 +12937,7 @@ yydefault: case 614: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3421 +//line sql.y:3417 { yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()} } @@ -12996,7 +12945,7 @@ yydefault: case 615: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3425 +//line sql.y:3421 { yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()} } @@ -13004,7 +12953,7 @@ yydefault: case 616: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3429 +//line sql.y:3425 { yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()} } @@ -13012,7 +12961,7 @@ yydefault: case 617: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3433 +//line sql.y:3429 { yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true} } @@ -13020,7 +12969,7 @@ yydefault: case 618: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3437 +//line sql.y:3433 { yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()} } @@ -13028,7 +12977,7 @@ yydefault: case 619: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3441 +//line sql.y:3437 { yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true} } @@ -13036,7 +12985,7 @@ yydefault: case 620: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3445 +//line sql.y:3441 { yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()} } @@ -13044,7 +12993,7 @@ yydefault: case 621: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3449 +//line sql.y:3445 { yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true} } @@ -13052,7 +13001,7 @@ yydefault: case 622: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3453 +//line sql.y:3449 { yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)} } @@ -13060,7 +13009,7 @@ yydefault: case 623: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3457 +//line sql.y:3453 { yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].colIdent}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()} } @@ -13068,7 +13017,7 @@ yydefault: case 624: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3461 +//line sql.y:3457 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()} } @@ -13076,7 +13025,7 @@ yydefault: case 625: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3465 +//line sql.y:3461 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true} } @@ -13084,7 +13033,7 @@ yydefault: case 626: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3469 +//line sql.y:3465 { yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()} } @@ -13092,7 +13041,7 @@ yydefault: case 627: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3473 +//line sql.y:3469 { yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true} } @@ -13100,7 +13049,7 @@ yydefault: case 628: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3477 +//line sql.y:3473 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()} } @@ -13108,7 +13057,7 @@ yydefault: case 629: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3481 +//line sql.y:3477 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true} } @@ -13116,7 +13065,7 @@ yydefault: case 630: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3485 +//line sql.y:3481 { yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()} } @@ -13124,7 +13073,7 @@ yydefault: case 631: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3489 +//line sql.y:3485 { yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true} } @@ -13132,7 +13081,7 @@ yydefault: case 632: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3493 +//line sql.y:3489 { yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()} } @@ -13140,7 +13089,7 @@ yydefault: case 633: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3497 +//line sql.y:3493 { yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true} } @@ -13148,7 +13097,7 @@ yydefault: case 634: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3501 +//line sql.y:3497 { yyLOCAL = &PartitionSpec{Action: UpgradeAction} } @@ -13156,7 +13105,7 @@ yydefault: case 635: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3506 +//line sql.y:3502 { yyLOCAL = false } @@ -13164,7 +13113,7 @@ yydefault: case 636: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3510 +//line sql.y:3506 { yyLOCAL = false } @@ -13172,7 +13121,7 @@ yydefault: case 637: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3514 +//line sql.y:3510 { yyLOCAL = true } @@ -13180,28 +13129,28 @@ yydefault: case 638: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:3521 +//line sql.y:3517 { yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()} } yyVAL.union = yyLOCAL case 639: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3525 +//line sql.y:3521 { yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].partDefUnion()) } case 640: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3531 +//line sql.y:3527 { yyVAL.partDefUnion().Options = yyDollar[2].partitionDefinitionOptionsUnion() } case 641: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3536 +//line sql.y:3532 { yyLOCAL = &PartitionDefinitionOptions{} } @@ -13209,7 +13158,7 @@ yydefault: case 642: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3540 +//line sql.y:3536 { yyDollar[1].partitionDefinitionOptionsUnion().ValueRange = yyDollar[2].partitionValueRangeUnion() yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() @@ -13218,7 +13167,7 @@ yydefault: case 643: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3545 +//line sql.y:3541 { yyDollar[1].partitionDefinitionOptionsUnion().Comment = yyDollar[2].literalUnion() yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() @@ -13227,7 +13176,7 @@ yydefault: case 644: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3550 +//line sql.y:3546 { yyDollar[1].partitionDefinitionOptionsUnion().Engine = yyDollar[2].partitionEngineUnion() yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() @@ -13236,7 +13185,7 @@ yydefault: case 645: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3555 +//line sql.y:3551 { yyDollar[1].partitionDefinitionOptionsUnion().DataDirectory = yyDollar[2].literalUnion() yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() @@ -13245,7 +13194,7 @@ yydefault: case 646: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3560 +//line sql.y:3556 { yyDollar[1].partitionDefinitionOptionsUnion().IndexDirectory = yyDollar[2].literalUnion() yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() @@ -13254,7 +13203,7 @@ yydefault: case 647: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3565 +//line sql.y:3561 { val := yyDollar[2].integerUnion() yyDollar[1].partitionDefinitionOptionsUnion().MaxRows = &val @@ -13264,7 +13213,7 @@ yydefault: case 648: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3571 +//line sql.y:3567 { val := yyDollar[2].integerUnion() yyDollar[1].partitionDefinitionOptionsUnion().MinRows = &val @@ -13274,7 +13223,7 @@ yydefault: case 649: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3577 +//line sql.y:3573 { yyDollar[1].partitionDefinitionOptionsUnion().TableSpace = yyDollar[2].str yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() @@ -13283,7 +13232,7 @@ yydefault: case 650: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3582 +//line sql.y:3578 { yyDollar[1].partitionDefinitionOptionsUnion().SubPartitionDefinitions = yyDollar[2].subPartitionDefinitionsUnion() yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() @@ -13292,7 +13241,7 @@ yydefault: case 651: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SubPartitionDefinitions -//line sql.y:3588 +//line sql.y:3584 { yyLOCAL = yyDollar[2].subPartitionDefinitionsUnion() } @@ -13300,14 +13249,14 @@ yydefault: case 652: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SubPartitionDefinitions -//line sql.y:3594 +//line sql.y:3590 { yyLOCAL = SubPartitionDefinitions{yyDollar[1].subPartitionDefinitionUnion()} } yyVAL.union = yyLOCAL case 653: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3598 +//line sql.y:3594 { yySLICE := (*SubPartitionDefinitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].subPartitionDefinitionUnion()) @@ -13315,7 +13264,7 @@ yydefault: case 654: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SubPartitionDefinition -//line sql.y:3604 +//line sql.y:3600 { yyLOCAL = &SubPartitionDefinition{Name: yyDollar[2].colIdent, Options: yyDollar[3].subPartitionDefinitionOptionsUnion()} } @@ -13323,7 +13272,7 @@ yydefault: case 655: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3609 +//line sql.y:3605 { yyLOCAL = &SubPartitionDefinitionOptions{} } @@ -13331,7 +13280,7 @@ yydefault: case 656: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3613 +//line sql.y:3609 { yyDollar[1].subPartitionDefinitionOptionsUnion().Comment = yyDollar[2].literalUnion() yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() @@ -13340,7 +13289,7 @@ yydefault: case 657: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3618 +//line sql.y:3614 { yyDollar[1].subPartitionDefinitionOptionsUnion().Engine = yyDollar[2].partitionEngineUnion() yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() @@ -13349,7 +13298,7 @@ yydefault: case 658: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3623 +//line sql.y:3619 { yyDollar[1].subPartitionDefinitionOptionsUnion().DataDirectory = yyDollar[2].literalUnion() yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() @@ -13358,7 +13307,7 @@ yydefault: case 659: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3628 +//line sql.y:3624 { yyDollar[1].subPartitionDefinitionOptionsUnion().IndexDirectory = yyDollar[2].literalUnion() yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() @@ -13367,7 +13316,7 @@ yydefault: case 660: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3633 +//line sql.y:3629 { val := yyDollar[2].integerUnion() yyDollar[1].subPartitionDefinitionOptionsUnion().MaxRows = &val @@ -13377,7 +13326,7 @@ yydefault: case 661: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3639 +//line sql.y:3635 { val := yyDollar[2].integerUnion() yyDollar[1].subPartitionDefinitionOptionsUnion().MinRows = &val @@ -13387,7 +13336,7 @@ yydefault: case 662: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3645 +//line sql.y:3641 { yyDollar[1].subPartitionDefinitionOptionsUnion().TableSpace = yyDollar[2].str yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() @@ -13396,7 +13345,7 @@ yydefault: case 663: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionValueRange -//line sql.y:3652 +//line sql.y:3648 { yyLOCAL = &PartitionValueRange{ Type: LessThanType, @@ -13407,7 +13356,7 @@ yydefault: case 664: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionValueRange -//line sql.y:3659 +//line sql.y:3655 { yyLOCAL = &PartitionValueRange{ Type: LessThanType, @@ -13418,7 +13367,7 @@ yydefault: case 665: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionValueRange -//line sql.y:3666 +//line sql.y:3662 { yyLOCAL = &PartitionValueRange{ Type: InType, @@ -13429,7 +13378,7 @@ yydefault: case 666: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3674 +//line sql.y:3670 { yyLOCAL = false } @@ -13437,7 +13386,7 @@ yydefault: case 667: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3678 +//line sql.y:3674 { yyLOCAL = true } @@ -13445,7 +13394,7 @@ yydefault: case 668: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionEngine -//line sql.y:3684 +//line sql.y:3680 { yyLOCAL = &PartitionEngine{Storage: yyDollar[1].booleanUnion(), Name: yyDollar[4].tableIdent.String()} } @@ -13453,7 +13402,7 @@ yydefault: case 669: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Literal -//line sql.y:3690 +//line sql.y:3686 { yyLOCAL = NewStrLiteral(yyDollar[3].str) } @@ -13461,7 +13410,7 @@ yydefault: case 670: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Literal -//line sql.y:3696 +//line sql.y:3692 { yyLOCAL = NewStrLiteral(yyDollar[4].str) } @@ -13469,7 +13418,7 @@ yydefault: case 671: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Literal -//line sql.y:3702 +//line sql.y:3698 { yyLOCAL = NewStrLiteral(yyDollar[4].str) } @@ -13477,7 +13426,7 @@ yydefault: case 672: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int -//line sql.y:3708 +//line sql.y:3704 { yyLOCAL = convertStringToInt(yyDollar[3].str) } @@ -13485,41 +13434,41 @@ yydefault: case 673: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int -//line sql.y:3714 +//line sql.y:3710 { yyLOCAL = convertStringToInt(yyDollar[3].str) } yyVAL.union = yyLOCAL case 674: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3720 +//line sql.y:3716 { yyVAL.str = yyDollar[3].tableIdent.String() } case 675: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:3726 +//line sql.y:3722 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent} } yyVAL.union = yyLOCAL case 676: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3732 +//line sql.y:3728 { yyVAL.str = "" } case 677: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3736 +//line sql.y:3732 { yyVAL.str = "" } case 678: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3742 +//line sql.y:3738 { yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()} } @@ -13527,14 +13476,14 @@ yydefault: case 679: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*RenameTablePair -//line sql.y:3748 +//line sql.y:3744 { yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}} } yyVAL.union = yyLOCAL case 680: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3752 +//line sql.y:3748 { yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName}) @@ -13542,7 +13491,7 @@ yydefault: case 681: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3758 +//line sql.y:3754 { yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs).Parsed(), Temp: yyDollar[3].booleanUnion()} } @@ -13550,7 +13499,7 @@ yydefault: case 682: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3762 +//line sql.y:3758 { // Change this to an alter statement if yyDollar[4].colIdent.Lowered() == "primary" { @@ -13563,7 +13512,7 @@ yydefault: case 683: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3771 +//line sql.y:3767 { yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), Comments: Comments(yyDollar[2].strs).Parsed(), IfExists: yyDollar[4].booleanUnion()} } @@ -13571,7 +13520,7 @@ yydefault: case 684: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3775 +//line sql.y:3771 { yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs).Parsed(), DBName: yyDollar[5].tableIdent, IfExists: yyDollar[4].booleanUnion()} } @@ -13579,7 +13528,7 @@ yydefault: case 685: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3781 +//line sql.y:3777 { yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName} } @@ -13587,7 +13536,7 @@ yydefault: case 686: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:3785 +//line sql.y:3781 { yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName} } @@ -13595,7 +13544,7 @@ yydefault: case 687: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3790 +//line sql.y:3786 { yyLOCAL = &OtherRead{} } @@ -13603,7 +13552,7 @@ yydefault: case 688: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3796 +//line sql.y:3792 { yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}} } @@ -13611,7 +13560,7 @@ yydefault: case 689: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3800 +//line sql.y:3796 { yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}} } @@ -13619,7 +13568,7 @@ yydefault: case 690: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3804 +//line sql.y:3800 { yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } @@ -13627,7 +13576,7 @@ yydefault: case 691: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3808 +//line sql.y:3804 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } @@ -13635,7 +13584,7 @@ yydefault: case 692: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3812 +//line sql.y:3808 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } @@ -13643,7 +13592,7 @@ yydefault: case 693: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3816 +//line sql.y:3812 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } @@ -13651,7 +13600,7 @@ yydefault: case 694: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3820 +//line sql.y:3816 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } @@ -13659,7 +13608,7 @@ yydefault: case 695: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3824 +//line sql.y:3820 { yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}} } @@ -13667,7 +13616,7 @@ yydefault: case 696: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3828 +//line sql.y:3824 { yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } @@ -13675,7 +13624,7 @@ yydefault: case 697: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3832 +//line sql.y:3828 { yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } @@ -13683,7 +13632,7 @@ yydefault: case 698: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:3836 +//line sql.y:3832 { yyLOCAL = &Show{&ShowBasic{Command: Privilege}} } @@ -13691,7 +13640,7 @@ yydefault: case 699: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3840 +//line sql.y:3836 { yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}} } @@ -13699,7 +13648,7 @@ yydefault: case 700: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3844 +//line sql.y:3840 { yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}} } @@ -13707,7 +13656,7 @@ yydefault: case 701: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3848 +//line sql.y:3844 { yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}} } @@ -13715,7 +13664,7 @@ yydefault: case 702: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3852 +//line sql.y:3848 { yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}} } @@ -13723,7 +13672,7 @@ yydefault: case 703: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3856 +//line sql.y:3852 { yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}} } @@ -13731,7 +13680,7 @@ yydefault: case 704: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3860 +//line sql.y:3856 { yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } @@ -13739,7 +13688,7 @@ yydefault: case 705: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3864 +//line sql.y:3860 { yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } @@ -13747,7 +13696,7 @@ yydefault: case 706: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3868 +//line sql.y:3864 { yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].tableIdent, Filter: yyDollar[4].showFilterUnion()}} } @@ -13755,7 +13704,7 @@ yydefault: case 707: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3872 +//line sql.y:3868 { yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}} } @@ -13763,7 +13712,7 @@ yydefault: case 708: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3876 +//line sql.y:3872 { yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}} } @@ -13771,7 +13720,7 @@ yydefault: case 709: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3880 +//line sql.y:3876 { yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}} } @@ -13779,7 +13728,7 @@ yydefault: case 710: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3884 +//line sql.y:3880 { yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}} } @@ -13787,7 +13736,7 @@ yydefault: case 711: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3888 +//line sql.y:3884 { yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}} } @@ -13795,7 +13744,7 @@ yydefault: case 712: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3892 +//line sql.y:3888 { yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}} } @@ -13803,7 +13752,7 @@ yydefault: case 713: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3896 +//line sql.y:3892 { yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}} } @@ -13811,7 +13760,7 @@ yydefault: case 714: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:3900 +//line sql.y:3896 { yyLOCAL = &Show{&ShowBasic{Command: Engines}} } @@ -13819,7 +13768,7 @@ yydefault: case 715: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:3904 +//line sql.y:3900 { yyLOCAL = &Show{&ShowBasic{Command: Plugins}} } @@ -13827,7 +13776,7 @@ yydefault: case 716: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3908 +//line sql.y:3904 { yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].tableIdent}} } @@ -13835,7 +13784,7 @@ yydefault: case 717: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3912 +//line sql.y:3908 { yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].tableIdent}} } @@ -13843,7 +13792,7 @@ yydefault: case 718: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3916 +//line sql.y:3912 { yyLOCAL = &Show{&ShowBasic{Command: VitessVariables, Filter: yyDollar[4].showFilterUnion()}} } @@ -13851,7 +13800,7 @@ yydefault: case 719: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3920 +//line sql.y:3916 { yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].tableIdent}} } @@ -13859,7 +13808,7 @@ yydefault: case 720: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3924 +//line sql.y:3920 { yyLOCAL = &ShowMigrationLogs{UUID: string(yyDollar[3].str)} } @@ -13867,7 +13816,7 @@ yydefault: case 721: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:3928 +//line sql.y:3924 { yyLOCAL = &ShowThrottledApps{} } @@ -13875,7 +13824,7 @@ yydefault: case 722: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3932 +//line sql.y:3928 { yyLOCAL = &Show{&ShowBasic{Command: VitessReplicationStatus, Filter: yyDollar[3].showFilterUnion()}} } @@ -13883,7 +13832,7 @@ yydefault: case 723: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3936 +//line sql.y:3932 { yyLOCAL = &Show{&ShowBasic{Command: VschemaTables}} } @@ -13891,7 +13840,7 @@ yydefault: case 724: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3940 +//line sql.y:3936 { yyLOCAL = &Show{&ShowBasic{Command: VschemaVindexes}} } @@ -13899,7 +13848,7 @@ yydefault: case 725: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3944 +//line sql.y:3940 { yyLOCAL = &Show{&ShowBasic{Command: VschemaVindexes, Tbl: yyDollar[5].tableName}} } @@ -13907,7 +13856,7 @@ yydefault: case 726: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:3948 +//line sql.y:3944 { yyLOCAL = &Show{&ShowBasic{Command: Warnings}} } @@ -13915,7 +13864,7 @@ yydefault: case 727: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3952 +//line sql.y:3948 { yyLOCAL = &Show{&ShowBasic{Command: VitessShards, Filter: yyDollar[3].showFilterUnion()}} } @@ -13923,7 +13872,7 @@ yydefault: case 728: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3956 +//line sql.y:3952 { yyLOCAL = &Show{&ShowBasic{Command: VitessTablets, Filter: yyDollar[3].showFilterUnion()}} } @@ -13931,7 +13880,7 @@ yydefault: case 729: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:3960 +//line sql.y:3956 { yyLOCAL = &Show{&ShowBasic{Command: VitessTarget}} } @@ -13939,7 +13888,7 @@ yydefault: case 730: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3967 +//line sql.y:3963 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].colIdent.String())}} } @@ -13947,7 +13896,7 @@ yydefault: case 731: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3971 +//line sql.y:3967 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str)}} } @@ -13955,7 +13904,7 @@ yydefault: case 732: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3975 +//line sql.y:3971 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + yyDollar[3].colIdent.String()}} } @@ -13963,7 +13912,7 @@ yydefault: case 733: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3979 +//line sql.y:3975 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str)}} } @@ -13971,7 +13920,7 @@ yydefault: case 734: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3983 +//line sql.y:3979 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str)}} } @@ -13979,7 +13928,7 @@ yydefault: case 735: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3987 +//line sql.y:3983 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str) + " " + String(yyDollar[4].tableName)}} } @@ -13987,7 +13936,7 @@ yydefault: case 736: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3991 +//line sql.y:3987 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str) + " " + String(yyDollar[4].tableName)}} } @@ -13995,7 +13944,7 @@ yydefault: case 737: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3995 +//line sql.y:3991 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[3].str)}} } @@ -14003,27 +13952,27 @@ yydefault: case 738: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3999 +//line sql.y:3995 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str)}} } yyVAL.union = yyLOCAL case 739: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4005 +//line sql.y:4001 { yyVAL.str = "" } case 740: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4009 +//line sql.y:4005 { yyVAL.str = "extended " } case 741: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4015 +//line sql.y:4011 { yyLOCAL = false } @@ -14031,45 +13980,45 @@ yydefault: case 742: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4019 +//line sql.y:4015 { yyLOCAL = true } yyVAL.union = yyLOCAL case 743: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4025 +//line sql.y:4021 { yyVAL.str = string(yyDollar[1].str) } case 744: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4029 +//line sql.y:4025 { yyVAL.str = string(yyDollar[1].str) } case 745: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4035 +//line sql.y:4031 { yyVAL.tableIdent = NewTableIdent("") } case 746: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4039 +//line sql.y:4035 { yyVAL.tableIdent = yyDollar[2].tableIdent } case 747: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4043 +//line sql.y:4039 { yyVAL.tableIdent = yyDollar[2].tableIdent } case 748: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4049 +//line sql.y:4045 { yyLOCAL = nil } @@ -14077,7 +14026,7 @@ yydefault: case 749: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4053 +//line sql.y:4049 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } @@ -14085,7 +14034,7 @@ yydefault: case 750: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4057 +//line sql.y:4053 { yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()} } @@ -14093,7 +14042,7 @@ yydefault: case 751: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4063 +//line sql.y:4059 { yyLOCAL = nil } @@ -14101,45 +14050,45 @@ yydefault: case 752: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4067 +//line sql.y:4063 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL case 753: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4073 +//line sql.y:4069 { yyVAL.empty = struct{}{} } case 754: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4077 +//line sql.y:4073 { yyVAL.empty = struct{}{} } case 755: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4081 +//line sql.y:4077 { yyVAL.empty = struct{}{} } case 756: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4087 +//line sql.y:4083 { yyVAL.str = string(yyDollar[1].str) } case 757: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4091 +//line sql.y:4087 { yyVAL.str = string(yyDollar[1].str) } case 758: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4097 +//line sql.y:4093 { yyLOCAL = &Use{DBName: yyDollar[2].tableIdent} } @@ -14147,7 +14096,7 @@ yydefault: case 759: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4101 +//line sql.y:4097 { yyLOCAL = &Use{DBName: TableIdent{v: ""}} } @@ -14155,7 +14104,7 @@ yydefault: case 760: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4105 +//line sql.y:4101 { yyLOCAL = &Use{DBName: NewTableIdent(yyDollar[2].tableIdent.String() + "@" + string(yyDollar[3].str))} } @@ -14163,7 +14112,7 @@ yydefault: case 761: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4111 +//line sql.y:4107 { yyLOCAL = &Begin{} } @@ -14171,7 +14120,7 @@ yydefault: case 762: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4115 +//line sql.y:4111 { yyLOCAL = &Begin{} } @@ -14179,7 +14128,7 @@ yydefault: case 763: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4121 +//line sql.y:4117 { yyLOCAL = &Commit{} } @@ -14187,7 +14136,7 @@ yydefault: case 764: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4127 +//line sql.y:4123 { yyLOCAL = &Rollback{} } @@ -14195,39 +14144,39 @@ yydefault: case 765: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4131 +//line sql.y:4127 { yyLOCAL = &SRollback{Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL case 766: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4136 +//line sql.y:4132 { yyVAL.empty = struct{}{} } case 767: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4138 +//line sql.y:4134 { yyVAL.empty = struct{}{} } case 768: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4141 +//line sql.y:4137 { yyVAL.empty = struct{}{} } case 769: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4143 +//line sql.y:4139 { yyVAL.empty = struct{}{} } case 770: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4148 +//line sql.y:4144 { yyLOCAL = &Savepoint{Name: yyDollar[2].colIdent} } @@ -14235,7 +14184,7 @@ yydefault: case 771: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4154 +//line sql.y:4150 { yyLOCAL = &Release{Name: yyDollar[3].colIdent} } @@ -14243,7 +14192,7 @@ yydefault: case 772: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL ExplainType -//line sql.y:4159 +//line sql.y:4155 { yyLOCAL = EmptyType } @@ -14251,7 +14200,7 @@ yydefault: case 773: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:4163 +//line sql.y:4159 { yyLOCAL = JSONType } @@ -14259,7 +14208,7 @@ yydefault: case 774: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:4167 +//line sql.y:4163 { yyLOCAL = TreeType } @@ -14267,7 +14216,7 @@ yydefault: case 775: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:4171 +//line sql.y:4167 { yyLOCAL = VitessType } @@ -14275,7 +14224,7 @@ yydefault: case 776: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:4175 +//line sql.y:4171 { yyLOCAL = TraditionalType } @@ -14283,33 +14232,33 @@ yydefault: case 777: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ExplainType -//line sql.y:4179 +//line sql.y:4175 { yyLOCAL = AnalyzeType } yyVAL.union = yyLOCAL case 778: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4185 +//line sql.y:4181 { yyVAL.str = yyDollar[1].str } case 779: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4189 +//line sql.y:4185 { yyVAL.str = yyDollar[1].str } case 780: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4193 +//line sql.y:4189 { yyVAL.str = yyDollar[1].str } case 781: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4199 +//line sql.y:4195 { yyLOCAL = yyDollar[1].selStmtUnion() } @@ -14317,7 +14266,7 @@ yydefault: case 782: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4203 +//line sql.y:4199 { yyLOCAL = yyDollar[1].statementUnion() } @@ -14325,7 +14274,7 @@ yydefault: case 783: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4207 +//line sql.y:4203 { yyLOCAL = yyDollar[1].statementUnion() } @@ -14333,33 +14282,33 @@ yydefault: case 784: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4211 +//line sql.y:4207 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL case 785: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4216 +//line sql.y:4212 { yyVAL.str = "" } case 786: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4220 +//line sql.y:4216 { yyVAL.str = yyDollar[1].colIdent.val } case 787: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4224 +//line sql.y:4220 { yyVAL.str = encodeSQLString(yyDollar[1].str) } case 788: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4230 +//line sql.y:4226 { yyLOCAL = &ExplainTab{Table: yyDollar[2].tableName, Wild: yyDollar[3].str} } @@ -14367,7 +14316,7 @@ yydefault: case 789: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4234 +//line sql.y:4230 { yyLOCAL = &ExplainStmt{Type: yyDollar[2].explainTypeUnion(), Statement: yyDollar[3].statementUnion()} } @@ -14375,7 +14324,7 @@ yydefault: case 790: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4240 +//line sql.y:4236 { yyLOCAL = &OtherAdmin{} } @@ -14383,7 +14332,7 @@ yydefault: case 791: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4244 +//line sql.y:4240 { yyLOCAL = &OtherAdmin{} } @@ -14391,7 +14340,7 @@ yydefault: case 792: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4250 +//line sql.y:4246 { yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()} } @@ -14399,14 +14348,14 @@ yydefault: case 793: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableAndLockTypes -//line sql.y:4256 +//line sql.y:4252 { yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()} } yyVAL.union = yyLOCAL case 794: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4260 +//line sql.y:4256 { yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion()) @@ -14414,7 +14363,7 @@ yydefault: case 795: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *TableAndLockType -//line sql.y:4266 +//line sql.y:4262 { yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()} } @@ -14422,7 +14371,7 @@ yydefault: case 796: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:4272 +//line sql.y:4268 { yyLOCAL = Read } @@ -14430,7 +14379,7 @@ yydefault: case 797: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:4276 +//line sql.y:4272 { yyLOCAL = ReadLocal } @@ -14438,7 +14387,7 @@ yydefault: case 798: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:4280 +//line sql.y:4276 { yyLOCAL = Write } @@ -14446,7 +14395,7 @@ yydefault: case 799: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:4284 +//line sql.y:4280 { yyLOCAL = LowPriorityWrite } @@ -14454,7 +14403,7 @@ yydefault: case 800: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4290 +//line sql.y:4286 { yyLOCAL = &UnlockTables{} } @@ -14462,7 +14411,7 @@ yydefault: case 801: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4296 +//line sql.y:4292 { yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs).Parsed(), UUID: string(yyDollar[4].str)} } @@ -14470,7 +14419,7 @@ yydefault: case 802: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4302 +//line sql.y:4298 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs} } @@ -14478,7 +14427,7 @@ yydefault: case 803: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4306 +//line sql.y:4302 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()} } @@ -14486,7 +14435,7 @@ yydefault: case 804: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:4310 +//line sql.y:4306 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true} } @@ -14494,7 +14443,7 @@ yydefault: case 805: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4314 +//line sql.y:4310 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()} } @@ -14502,7 +14451,7 @@ yydefault: case 806: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:4318 +//line sql.y:4314 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true} } @@ -14510,99 +14459,99 @@ yydefault: case 807: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:4322 +//line sql.y:4318 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true} } yyVAL.union = yyLOCAL case 808: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4328 +//line sql.y:4324 { yyVAL.strs = []string{yyDollar[1].str} } case 809: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4332 +//line sql.y:4328 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str) } case 810: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4338 +//line sql.y:4334 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 811: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4342 +//line sql.y:4338 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 812: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4346 +//line sql.y:4342 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 813: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4350 +//line sql.y:4346 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 814: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4354 +//line sql.y:4350 { yyVAL.str = string(yyDollar[1].str) } case 815: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4358 +//line sql.y:4354 { yyVAL.str = string(yyDollar[1].str) } case 816: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4362 +//line sql.y:4358 { yyVAL.str = string(yyDollar[1].str) } case 817: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4366 +//line sql.y:4362 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str } case 818: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4370 +//line sql.y:4366 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 819: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4374 +//line sql.y:4370 { yyVAL.str = string(yyDollar[1].str) } case 820: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4378 +//line sql.y:4374 { yyVAL.str = string(yyDollar[1].str) } case 821: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4382 +//line sql.y:4378 { yyVAL.str = string(yyDollar[1].str) } case 822: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4387 +//line sql.y:4383 { yyLOCAL = false } @@ -14610,7 +14559,7 @@ yydefault: case 823: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4391 +//line sql.y:4387 { yyLOCAL = true } @@ -14618,52 +14567,52 @@ yydefault: case 824: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4395 +//line sql.y:4391 { yyLOCAL = true } yyVAL.union = yyLOCAL case 825: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4400 +//line sql.y:4396 { yyVAL.str = "" } case 826: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4404 +//line sql.y:4400 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].colIdent.String() } case 827: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4409 +//line sql.y:4405 { setAllowComments(yylex, true) } case 828: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4413 +//line sql.y:4409 { yyVAL.strs = yyDollar[2].strs setAllowComments(yylex, false) } case 829: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4419 +//line sql.y:4415 { yyVAL.strs = nil } case 830: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4423 +//line sql.y:4419 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str) } case 831: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4429 +//line sql.y:4425 { yyLOCAL = true } @@ -14671,7 +14620,7 @@ yydefault: case 832: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:4433 +//line sql.y:4429 { yyLOCAL = false } @@ -14679,33 +14628,33 @@ yydefault: case 833: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:4437 +//line sql.y:4433 { yyLOCAL = true } yyVAL.union = yyLOCAL case 834: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4442 +//line sql.y:4438 { yyVAL.str = "" } case 835: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4446 +//line sql.y:4442 { yyVAL.str = SQLNoCacheStr } case 836: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4450 +//line sql.y:4446 { yyVAL.str = SQLCacheStr } case 837: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4455 +//line sql.y:4451 { yyLOCAL = false } @@ -14713,7 +14662,7 @@ yydefault: case 838: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4459 +//line sql.y:4455 { yyLOCAL = true } @@ -14721,7 +14670,7 @@ yydefault: case 839: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4463 +//line sql.y:4459 { yyLOCAL = true } @@ -14729,7 +14678,7 @@ yydefault: case 840: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4469 +//line sql.y:4465 { yyLOCAL = &PrepareStmt{Name: yyDollar[3].colIdent, Comments: Comments(yyDollar[2].strs).Parsed(), Statement: yyDollar[5].exprUnion()} } @@ -14737,7 +14686,7 @@ yydefault: case 841: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4473 +//line sql.y:4469 { yyLOCAL = &PrepareStmt{ Name: yyDollar[3].colIdent, @@ -14751,7 +14700,7 @@ yydefault: case 842: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4485 +//line sql.y:4481 { yyLOCAL = &ExecuteStmt{Name: yyDollar[3].colIdent, Comments: Comments(yyDollar[2].strs).Parsed(), Arguments: yyDollar[4].columnsUnion()} } @@ -14759,7 +14708,7 @@ yydefault: case 843: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Columns -//line sql.y:4490 +//line sql.y:4486 { yyLOCAL = nil } @@ -14767,7 +14716,7 @@ yydefault: case 844: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Columns -//line sql.y:4494 +//line sql.y:4490 { yyLOCAL = yyDollar[2].columnsUnion() } @@ -14775,7 +14724,7 @@ yydefault: case 845: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4500 +//line sql.y:4496 { yyLOCAL = &DeallocateStmt{Type: DeallocateType, Comments: Comments(yyDollar[2].strs).Parsed(), Name: yyDollar[4].colIdent} } @@ -14783,7 +14732,7 @@ yydefault: case 846: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4504 +//line sql.y:4500 { yyLOCAL = &DeallocateStmt{Type: DropType, Comments: Comments(yyDollar[2].strs).Parsed(), Name: yyDollar[4].colIdent} } @@ -14791,7 +14740,7 @@ yydefault: case 847: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:4509 +//line sql.y:4505 { yyLOCAL = nil } @@ -14799,94 +14748,94 @@ yydefault: case 848: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:4513 +//line sql.y:4509 { yyLOCAL = yyDollar[1].selectExprsUnion() } yyVAL.union = yyLOCAL case 849: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4518 +//line sql.y:4514 { yyVAL.strs = nil } case 850: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4522 +//line sql.y:4518 { yyVAL.strs = []string{yyDollar[1].str} } case 851: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4526 +//line sql.y:4522 { // 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 852: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4530 +//line sql.y:4526 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str} } case 853: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4534 +//line sql.y:4530 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str, yyDollar[4].str} } case 854: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4540 +//line sql.y:4536 { yyVAL.str = SQLNoCacheStr } case 855: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4544 +//line sql.y:4540 { yyVAL.str = SQLCacheStr } case 856: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4548 +//line sql.y:4544 { yyVAL.str = DistinctStr } case 857: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4552 +//line sql.y:4548 { yyVAL.str = DistinctStr } case 858: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4556 +//line sql.y:4552 { yyVAL.str = StraightJoinHint } case 859: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4560 +//line sql.y:4556 { yyVAL.str = SQLCalcFoundRowsStr } case 860: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4564 +//line sql.y:4560 { 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 861: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:4570 +//line sql.y:4566 { yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()} } yyVAL.union = yyLOCAL case 862: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4574 +//line sql.y:4570 { yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion()) @@ -14894,7 +14843,7 @@ yydefault: case 863: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:4580 +//line sql.y:4576 { yyLOCAL = &StarExpr{} } @@ -14902,7 +14851,7 @@ yydefault: case 864: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:4584 +//line sql.y:4580 { yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].colIdent} } @@ -14910,7 +14859,7 @@ yydefault: case 865: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:4588 +//line sql.y:4584 { yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } @@ -14918,39 +14867,39 @@ yydefault: case 866: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:4592 +//line sql.y:4588 { yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } yyVAL.union = yyLOCAL case 867: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4597 +//line sql.y:4593 { yyVAL.colIdent = ColIdent{} } case 868: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4601 +//line sql.y:4597 { yyVAL.colIdent = yyDollar[1].colIdent } case 869: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4605 +//line sql.y:4601 { yyVAL.colIdent = yyDollar[2].colIdent } case 871: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4612 +//line sql.y:4608 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } case 872: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableExprs -//line sql.y:4617 +//line sql.y:4613 { yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } @@ -14958,7 +14907,7 @@ yydefault: case 873: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:4621 +//line sql.y:4617 { yyLOCAL = yyDollar[1].tableExprsUnion() } @@ -14966,7 +14915,7 @@ yydefault: case 874: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TableExprs -//line sql.y:4627 +//line sql.y:4623 { yyLOCAL = yyDollar[2].tableExprsUnion() } @@ -14974,14 +14923,14 @@ yydefault: case 875: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:4633 +//line sql.y:4629 { yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()} } yyVAL.union = yyLOCAL case 876: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4637 +//line sql.y:4633 { yySLICE := (*TableExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion()) @@ -14989,7 +14938,7 @@ yydefault: case 879: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExpr -//line sql.y:4647 +//line sql.y:4643 { yyLOCAL = yyDollar[1].aliasedTableNameUnion() } @@ -14997,7 +14946,7 @@ yydefault: case 880: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:4651 +//line sql.y:4647 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].tableIdent, Columns: yyDollar[4].columnsUnion()} } @@ -15005,7 +14954,7 @@ yydefault: case 881: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:4655 +//line sql.y:4651 { yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()} } @@ -15013,7 +14962,7 @@ yydefault: case 882: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExpr -//line sql.y:4659 +//line sql.y:4655 { yyLOCAL = yyDollar[1].tableExprUnion() } @@ -15021,7 +14970,7 @@ yydefault: case 883: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *DerivedTable -//line sql.y:4665 +//line sql.y:4661 { yyLOCAL = &DerivedTable{Lateral: false, Select: yyDollar[2].selStmtUnion()} } @@ -15029,7 +14978,7 @@ yydefault: case 884: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *DerivedTable -//line sql.y:4669 +//line sql.y:4665 { yyLOCAL = &DerivedTable{Lateral: true, Select: yyDollar[3].selStmtUnion()} } @@ -15037,7 +14986,7 @@ yydefault: case 885: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:4675 +//line sql.y:4671 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHintsUnion()} } @@ -15045,7 +14994,7 @@ yydefault: case 886: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:4679 +//line sql.y:4675 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHintsUnion()} } @@ -15053,7 +15002,7 @@ yydefault: case 887: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Columns -//line sql.y:4684 +//line sql.y:4680 { yyLOCAL = nil } @@ -15061,7 +15010,7 @@ yydefault: case 888: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:4688 +//line sql.y:4684 { yyLOCAL = yyDollar[2].columnsUnion() } @@ -15069,14 +15018,14 @@ yydefault: case 889: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:4694 +//line sql.y:4690 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL case 890: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4698 +//line sql.y:4694 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) @@ -15084,14 +15033,14 @@ yydefault: case 891: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:4704 +//line sql.y:4700 { yyLOCAL = Columns{NewColIdentWithAt(string(yyDollar[1].str), SingleAt)} } yyVAL.union = yyLOCAL case 892: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4708 +//line sql.y:4704 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, NewColIdentWithAt(string(yyDollar[3].str), SingleAt)) @@ -15099,7 +15048,7 @@ yydefault: case 893: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:4714 +//line sql.y:4710 { yyLOCAL = Columns{yyDollar[1].colIdent} } @@ -15107,21 +15056,21 @@ yydefault: case 894: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:4718 +//line sql.y:4714 { yyLOCAL = Columns{NewColIdent(string(yyDollar[1].str))} } yyVAL.union = yyLOCAL case 895: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4722 +//line sql.y:4718 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } case 896: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4726 +//line sql.y:4722 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, NewColIdent(string(yyDollar[3].str))) @@ -15129,14 +15078,14 @@ yydefault: case 897: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Partitions -//line sql.y:4732 +//line sql.y:4728 { yyLOCAL = Partitions{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL case 898: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4736 +//line sql.y:4732 { yySLICE := (*Partitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) @@ -15144,7 +15093,7 @@ yydefault: case 899: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:4749 +//line sql.y:4745 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } @@ -15152,7 +15101,7 @@ yydefault: case 900: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:4753 +//line sql.y:4749 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } @@ -15160,7 +15109,7 @@ yydefault: case 901: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:4757 +//line sql.y:4753 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } @@ -15168,87 +15117,87 @@ yydefault: case 902: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:4761 +//line sql.y:4757 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()} } yyVAL.union = yyLOCAL case 903: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4767 +//line sql.y:4763 { yyVAL.joinCondition = &JoinCondition{On: yyDollar[2].exprUnion()} } case 904: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4769 +//line sql.y:4765 { yyVAL.joinCondition = &JoinCondition{Using: yyDollar[3].columnsUnion()} } case 905: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4773 +//line sql.y:4769 { yyVAL.joinCondition = &JoinCondition{} } case 906: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4775 +//line sql.y:4771 { yyVAL.joinCondition = yyDollar[1].joinCondition } case 907: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4779 +//line sql.y:4775 { yyVAL.joinCondition = &JoinCondition{} } case 908: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4781 +//line sql.y:4777 { yyVAL.joinCondition = &JoinCondition{On: yyDollar[2].exprUnion()} } case 909: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4784 +//line sql.y:4780 { yyVAL.empty = struct{}{} } case 910: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4786 +//line sql.y:4782 { yyVAL.empty = struct{}{} } case 911: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4789 +//line sql.y:4785 { yyVAL.tableIdent = NewTableIdent("") } case 912: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4793 +//line sql.y:4789 { yyVAL.tableIdent = yyDollar[1].tableIdent } case 913: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4797 +//line sql.y:4793 { yyVAL.tableIdent = yyDollar[2].tableIdent } case 915: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4804 +//line sql.y:4800 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } case 916: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:4810 +//line sql.y:4806 { yyLOCAL = NormalJoinType } @@ -15256,7 +15205,7 @@ yydefault: case 917: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:4814 +//line sql.y:4810 { yyLOCAL = NormalJoinType } @@ -15264,7 +15213,7 @@ yydefault: case 918: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:4818 +//line sql.y:4814 { yyLOCAL = NormalJoinType } @@ -15272,7 +15221,7 @@ yydefault: case 919: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:4824 +//line sql.y:4820 { yyLOCAL = StraightJoinType } @@ -15280,7 +15229,7 @@ yydefault: case 920: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:4830 +//line sql.y:4826 { yyLOCAL = LeftJoinType } @@ -15288,7 +15237,7 @@ yydefault: case 921: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:4834 +//line sql.y:4830 { yyLOCAL = LeftJoinType } @@ -15296,7 +15245,7 @@ yydefault: case 922: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:4838 +//line sql.y:4834 { yyLOCAL = RightJoinType } @@ -15304,7 +15253,7 @@ yydefault: case 923: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:4842 +//line sql.y:4838 { yyLOCAL = RightJoinType } @@ -15312,7 +15261,7 @@ yydefault: case 924: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:4848 +//line sql.y:4844 { yyLOCAL = NaturalJoinType } @@ -15320,7 +15269,7 @@ yydefault: case 925: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:4852 +//line sql.y:4848 { if yyDollar[2].joinTypeUnion() == LeftJoinType { yyLOCAL = NaturalLeftJoinType @@ -15331,38 +15280,38 @@ yydefault: yyVAL.union = yyLOCAL case 926: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4862 +//line sql.y:4858 { yyVAL.tableName = yyDollar[2].tableName } case 927: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4866 +//line sql.y:4862 { yyVAL.tableName = yyDollar[1].tableName } case 928: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4872 +//line sql.y:4868 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } case 929: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4876 +//line sql.y:4872 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } case 930: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4882 +//line sql.y:4878 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } case 931: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL IndexHints -//line sql.y:4887 +//line sql.y:4883 { yyLOCAL = nil } @@ -15370,7 +15319,7 @@ yydefault: case 932: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IndexHints -//line sql.y:4891 +//line sql.y:4887 { yyLOCAL = yyDollar[1].indexHintsUnion() } @@ -15378,14 +15327,14 @@ yydefault: case 933: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IndexHints -//line sql.y:4897 +//line sql.y:4893 { yyLOCAL = IndexHints{yyDollar[1].indexHintUnion()} } yyVAL.union = yyLOCAL case 934: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4901 +//line sql.y:4897 { yySLICE := (*IndexHints)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].indexHintUnion()) @@ -15393,7 +15342,7 @@ yydefault: case 935: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:4907 +//line sql.y:4903 { yyLOCAL = &IndexHint{Type: UseOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()} } @@ -15401,7 +15350,7 @@ yydefault: case 936: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:4911 +//line sql.y:4907 { yyLOCAL = &IndexHint{Type: UseOp, ForType: yyDollar[3].indexHintForTypeUnion()} } @@ -15409,7 +15358,7 @@ yydefault: case 937: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:4915 +//line sql.y:4911 { yyLOCAL = &IndexHint{Type: IgnoreOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()} } @@ -15417,7 +15366,7 @@ yydefault: case 938: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:4919 +//line sql.y:4915 { yyLOCAL = &IndexHint{Type: ForceOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()} } @@ -15425,7 +15374,7 @@ yydefault: case 939: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL IndexHintForType -//line sql.y:4924 +//line sql.y:4920 { yyLOCAL = NoForType } @@ -15433,7 +15382,7 @@ yydefault: case 940: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IndexHintForType -//line sql.y:4928 +//line sql.y:4924 { yyLOCAL = JoinForType } @@ -15441,7 +15390,7 @@ yydefault: case 941: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL IndexHintForType -//line sql.y:4932 +//line sql.y:4928 { yyLOCAL = OrderByForType } @@ -15449,7 +15398,7 @@ yydefault: case 942: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL IndexHintForType -//line sql.y:4936 +//line sql.y:4932 { yyLOCAL = GroupByForType } @@ -15457,7 +15406,7 @@ yydefault: case 943: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4942 +//line sql.y:4938 { yyLOCAL = nil } @@ -15465,7 +15414,7 @@ yydefault: case 944: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4946 +//line sql.y:4942 { yyLOCAL = yyDollar[2].exprUnion() } @@ -15473,7 +15422,7 @@ yydefault: case 945: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:4953 +//line sql.y:4949 { yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } @@ -15481,7 +15430,7 @@ yydefault: case 946: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:4957 +//line sql.y:4953 { yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } @@ -15489,7 +15438,7 @@ yydefault: case 947: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:4961 +//line sql.y:4957 { yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } @@ -15497,7 +15446,7 @@ yydefault: case 948: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4965 +//line sql.y:4961 { yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()} } @@ -15505,7 +15454,7 @@ yydefault: case 949: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:4969 +//line sql.y:4965 { yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].isExprOperatorUnion()} } @@ -15513,7 +15462,7 @@ yydefault: case 950: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4973 +//line sql.y:4969 { yyLOCAL = yyDollar[1].exprUnion() } @@ -15521,7 +15470,7 @@ yydefault: case 951: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:4977 +//line sql.y:4973 { yyLOCAL = &MemberOfExpr{Value: yyDollar[1].exprUnion(), JSONArr: yyDollar[5].exprUnion()} } @@ -15529,7 +15478,7 @@ yydefault: case 952: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:4983 +//line sql.y:4979 { yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: IsNullOp} } @@ -15537,7 +15486,7 @@ yydefault: case 953: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:4987 +//line sql.y:4983 { yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: IsNotNullOp} } @@ -15545,7 +15494,7 @@ yydefault: case 954: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:4991 +//line sql.y:4987 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()} } @@ -15553,7 +15502,7 @@ yydefault: case 955: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4995 +//line sql.y:4991 { yyLOCAL = yyDollar[1].exprUnion() } @@ -15561,7 +15510,7 @@ yydefault: case 956: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5001 +//line sql.y:4997 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()} } @@ -15569,7 +15518,7 @@ yydefault: case 957: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5005 +//line sql.y:5001 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()} } @@ -15577,7 +15526,7 @@ yydefault: case 958: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5009 +//line sql.y:5005 { yyLOCAL = &BetweenExpr{Left: yyDollar[1].exprUnion(), IsBetween: true, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()} } @@ -15585,7 +15534,7 @@ yydefault: case 959: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5013 +//line sql.y:5009 { yyLOCAL = &BetweenExpr{Left: yyDollar[1].exprUnion(), IsBetween: false, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()} } @@ -15593,7 +15542,7 @@ yydefault: case 960: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5017 +//line sql.y:5013 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion()} } @@ -15601,7 +15550,7 @@ yydefault: case 961: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5021 +//line sql.y:5017 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion()} } @@ -15609,7 +15558,7 @@ yydefault: case 962: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5025 +//line sql.y:5021 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[5].exprUnion()} } @@ -15617,7 +15566,7 @@ yydefault: case 963: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5029 +//line sql.y:5025 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[6].exprUnion()} } @@ -15625,7 +15574,7 @@ yydefault: case 964: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5033 +//line sql.y:5029 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()} } @@ -15633,7 +15582,7 @@ yydefault: case 965: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5037 +//line sql.y:5033 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()} } @@ -15641,25 +15590,25 @@ yydefault: case 966: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5041 +//line sql.y:5037 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL case 967: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5047 +//line sql.y:5043 { } case 968: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5050 +//line sql.y:5046 { } case 969: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5056 +//line sql.y:5052 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()} } @@ -15667,7 +15616,7 @@ yydefault: case 970: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5060 +//line sql.y:5056 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()} } @@ -15675,7 +15624,7 @@ yydefault: case 971: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5064 +//line sql.y:5060 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()} } @@ -15683,7 +15632,7 @@ yydefault: case 972: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5068 +//line sql.y:5064 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()} } @@ -15691,7 +15640,7 @@ yydefault: case 973: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5072 +//line sql.y:5068 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()} } @@ -15699,7 +15648,7 @@ yydefault: case 974: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5076 +//line sql.y:5072 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()} } @@ -15707,7 +15656,7 @@ yydefault: case 975: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5080 +//line sql.y:5076 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()} } @@ -15715,7 +15664,7 @@ yydefault: case 976: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5084 +//line sql.y:5080 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()} } @@ -15723,7 +15672,7 @@ yydefault: case 977: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5088 +//line sql.y:5084 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } @@ -15731,7 +15680,7 @@ yydefault: case 978: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5092 +//line sql.y:5088 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()} } @@ -15739,7 +15688,7 @@ yydefault: case 979: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5096 +//line sql.y:5092 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } @@ -15747,7 +15696,7 @@ yydefault: case 980: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5100 +//line sql.y:5096 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()} } @@ -15755,7 +15704,7 @@ yydefault: case 981: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5104 +//line sql.y:5100 { yyLOCAL = yyDollar[1].exprUnion() } @@ -15763,7 +15712,7 @@ yydefault: case 982: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5110 +//line sql.y:5106 { yyLOCAL = yyDollar[1].exprUnion() } @@ -15771,7 +15720,7 @@ yydefault: case 983: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5114 +//line sql.y:5110 { yyLOCAL = yyDollar[1].exprUnion() } @@ -15779,7 +15728,7 @@ yydefault: case 984: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5118 +//line sql.y:5114 { yyLOCAL = yyDollar[1].exprUnion() } @@ -15787,7 +15736,7 @@ yydefault: case 985: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5122 +//line sql.y:5118 { yyLOCAL = yyDollar[1].exprUnion() } @@ -15795,7 +15744,7 @@ yydefault: case 986: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5126 +//line sql.y:5122 { yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Collation: yyDollar[3].str} } @@ -15803,7 +15752,7 @@ yydefault: case 987: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5130 +//line sql.y:5126 { yyLOCAL = yyDollar[1].exprUnion() } @@ -15811,7 +15760,7 @@ yydefault: case 988: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5134 +//line sql.y:5130 { yyLOCAL = yyDollar[1].colNameUnion() } @@ -15819,7 +15768,7 @@ yydefault: case 989: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5138 +//line sql.y:5134 { yyLOCAL = yyDollar[2].exprUnion() // TODO: do we really want to ignore unary '+' before any kind of literals? } @@ -15827,7 +15776,7 @@ yydefault: case 990: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5142 +//line sql.y:5138 { yyLOCAL = &UnaryExpr{Operator: UMinusOp, Expr: yyDollar[2].exprUnion()} } @@ -15835,7 +15784,7 @@ yydefault: case 991: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5146 +//line sql.y:5142 { yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()} } @@ -15843,7 +15792,7 @@ yydefault: case 992: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5150 +//line sql.y:5146 { yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()} } @@ -15851,7 +15800,7 @@ yydefault: case 993: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5154 +//line sql.y:5150 { yyLOCAL = yyDollar[1].subqueryUnion() } @@ -15859,7 +15808,7 @@ yydefault: case 994: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5158 +//line sql.y:5154 { yyLOCAL = yyDollar[1].exprUnion() } @@ -15867,7 +15816,7 @@ yydefault: case 995: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5162 +//line sql.y:5158 { yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()} } @@ -15875,7 +15824,7 @@ yydefault: case 996: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:5166 +//line sql.y:5162 { yyLOCAL = &MatchExpr{Columns: yyDollar[3].selectExprsUnion(), Expr: yyDollar[7].exprUnion(), Option: yyDollar[8].matchExprOptionUnion()} } @@ -15883,7 +15832,7 @@ yydefault: case 997: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Expr -//line sql.y:5170 +//line sql.y:5166 { yyLOCAL = &CastExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion(), Array: yyDollar[6].booleanUnion()} } @@ -15891,7 +15840,7 @@ yydefault: case 998: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5174 +//line sql.y:5170 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } @@ -15899,7 +15848,7 @@ yydefault: case 999: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5178 +//line sql.y:5174 { yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str} } @@ -15907,7 +15856,7 @@ yydefault: case 1000: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5182 +//line sql.y:5178 { // From: https://dev.mysql.com/doc/refman/8.0/en/cast-functions.html#operator_binary // To convert a string expression to a binary string, these constructs are equivalent: @@ -15919,7 +15868,7 @@ yydefault: case 1001: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5190 +//line sql.y:5186 { yyLOCAL = &Default{ColName: yyDollar[2].str} } @@ -15927,7 +15876,7 @@ yydefault: case 1002: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5194 +//line sql.y:5190 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -15939,7 +15888,7 @@ yydefault: case 1003: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5202 +//line sql.y:5198 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONExtractOp, Right: yyDollar[3].exprUnion()} } @@ -15947,7 +15896,7 @@ yydefault: case 1004: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5206 +//line sql.y:5202 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONUnquoteExtractOp, Right: yyDollar[3].exprUnion()} } @@ -15955,7 +15904,7 @@ yydefault: case 1005: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5212 +//line sql.y:5208 { yyLOCAL = &IntervalExpr{Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].colIdent.String()} } @@ -15963,7 +15912,7 @@ yydefault: case 1006: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TrimType -//line sql.y:5218 +//line sql.y:5214 { yyLOCAL = BothTrimType } @@ -15971,7 +15920,7 @@ yydefault: case 1007: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TrimType -//line sql.y:5222 +//line sql.y:5218 { yyLOCAL = LeadingTrimType } @@ -15979,7 +15928,7 @@ yydefault: case 1008: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TrimType -//line sql.y:5226 +//line sql.y:5222 { yyLOCAL = TrailingTrimType } @@ -15987,7 +15936,7 @@ yydefault: case 1009: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL FrameUnitType -//line sql.y:5232 +//line sql.y:5228 { yyLOCAL = FrameRowsType } @@ -15995,7 +15944,7 @@ yydefault: case 1010: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL FrameUnitType -//line sql.y:5236 +//line sql.y:5232 { yyLOCAL = FrameRangeType } @@ -16003,7 +15952,7 @@ yydefault: case 1011: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:5243 +//line sql.y:5239 { yyLOCAL = CumeDistExprType } @@ -16011,7 +15960,7 @@ yydefault: case 1012: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:5247 +//line sql.y:5243 { yyLOCAL = DenseRankExprType } @@ -16019,7 +15968,7 @@ yydefault: case 1013: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:5251 +//line sql.y:5247 { yyLOCAL = PercentRankExprType } @@ -16027,7 +15976,7 @@ yydefault: case 1014: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:5255 +//line sql.y:5251 { yyLOCAL = RankExprType } @@ -16035,7 +15984,7 @@ yydefault: case 1015: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:5259 +//line sql.y:5255 { yyLOCAL = RowNumberExprType } @@ -16043,7 +15992,7 @@ yydefault: case 1016: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5265 +//line sql.y:5261 { yyLOCAL = &FramePoint{Type: CurrentRowType} } @@ -16051,7 +16000,7 @@ yydefault: case 1017: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5269 +//line sql.y:5265 { yyLOCAL = &FramePoint{Type: UnboundedPrecedingType} } @@ -16059,7 +16008,7 @@ yydefault: case 1018: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5273 +//line sql.y:5269 { yyLOCAL = &FramePoint{Type: UnboundedFollowingType} } @@ -16067,7 +16016,7 @@ yydefault: case 1019: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5277 +//line sql.y:5273 { yyLOCAL = &FramePoint{Type: ExprPrecedingType, Expr: yyDollar[1].exprUnion()} } @@ -16075,7 +16024,7 @@ yydefault: case 1020: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5281 +//line sql.y:5277 { yyLOCAL = &FramePoint{Type: ExprFollowingType, Expr: yyDollar[1].exprUnion()} } @@ -16083,7 +16032,7 @@ yydefault: case 1021: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5287 +//line sql.y:5283 { yyLOCAL = yyDollar[1].exprUnion() } @@ -16091,7 +16040,7 @@ yydefault: case 1022: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5291 +//line sql.y:5287 { yyLOCAL = yyDollar[1].exprUnion() } @@ -16099,7 +16048,7 @@ yydefault: case 1023: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *FrameClause -//line sql.y:5296 +//line sql.y:5292 { yyLOCAL = nil } @@ -16107,7 +16056,7 @@ yydefault: case 1024: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *FrameClause -//line sql.y:5300 +//line sql.y:5296 { yyLOCAL = yyDollar[1].frameClauseUnion() } @@ -16115,7 +16064,7 @@ yydefault: case 1025: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FrameClause -//line sql.y:5306 +//line sql.y:5302 { yyLOCAL = &FrameClause{Unit: yyDollar[1].frameUnitTypeUnion(), Start: yyDollar[2].framePointUnion()} } @@ -16123,7 +16072,7 @@ yydefault: case 1026: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *FrameClause -//line sql.y:5310 +//line sql.y:5306 { yyLOCAL = &FrameClause{Unit: yyDollar[1].frameUnitTypeUnion(), Start: yyDollar[3].framePointUnion(), End: yyDollar[5].framePointUnion()} } @@ -16131,7 +16080,7 @@ yydefault: case 1027: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:5315 +//line sql.y:5311 { yyLOCAL = nil } @@ -16139,26 +16088,26 @@ yydefault: case 1028: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Exprs -//line sql.y:5319 +//line sql.y:5315 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL case 1029: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5324 +//line sql.y:5320 { } case 1030: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5327 +//line sql.y:5323 { yyVAL.colIdent = yyDollar[1].colIdent } case 1031: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *WindowSpecification -//line sql.y:5333 +//line sql.y:5329 { yyLOCAL = &WindowSpecification{Name: yyDollar[1].colIdent, PartitionClause: yyDollar[2].exprsUnion(), OrderClause: yyDollar[3].orderByUnion(), FrameClause: yyDollar[4].frameClauseUnion()} } @@ -16166,7 +16115,7 @@ yydefault: case 1032: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *OverClause -//line sql.y:5339 +//line sql.y:5335 { yyLOCAL = &OverClause{WindowSpec: yyDollar[3].windowSpecificationUnion()} } @@ -16174,7 +16123,7 @@ yydefault: case 1033: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *OverClause -//line sql.y:5343 +//line sql.y:5339 { yyLOCAL = &OverClause{WindowName: yyDollar[2].colIdent} } @@ -16182,7 +16131,7 @@ yydefault: case 1034: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *NullTreatmentClause -//line sql.y:5348 +//line sql.y:5344 { yyLOCAL = nil } @@ -16190,7 +16139,7 @@ yydefault: case 1036: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *NullTreatmentClause -//line sql.y:5355 +//line sql.y:5351 { yyLOCAL = &NullTreatmentClause{yyDollar[1].nullTreatmentTypeUnion()} } @@ -16198,7 +16147,7 @@ yydefault: case 1037: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL NullTreatmentType -//line sql.y:5361 +//line sql.y:5357 { yyLOCAL = RespectNullsType } @@ -16206,7 +16155,7 @@ yydefault: case 1038: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL NullTreatmentType -//line sql.y:5365 +//line sql.y:5361 { yyLOCAL = IgnoreNullsType } @@ -16214,7 +16163,7 @@ yydefault: case 1039: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL FirstOrLastValueExprType -//line sql.y:5371 +//line sql.y:5367 { yyLOCAL = FirstValueExprType } @@ -16222,7 +16171,7 @@ yydefault: case 1040: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL FirstOrLastValueExprType -//line sql.y:5375 +//line sql.y:5371 { yyLOCAL = LastValueExprType } @@ -16230,7 +16179,7 @@ yydefault: case 1041: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL FromFirstLastType -//line sql.y:5381 +//line sql.y:5377 { yyLOCAL = FromFirstType } @@ -16238,7 +16187,7 @@ yydefault: case 1042: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL FromFirstLastType -//line sql.y:5385 +//line sql.y:5381 { yyLOCAL = FromLastType } @@ -16246,7 +16195,7 @@ yydefault: case 1043: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *FromFirstLastClause -//line sql.y:5390 +//line sql.y:5386 { yyLOCAL = nil } @@ -16254,7 +16203,7 @@ yydefault: case 1045: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *FromFirstLastClause -//line sql.y:5397 +//line sql.y:5393 { yyLOCAL = &FromFirstLastClause{yyDollar[1].fromFirstLastTypeUnion()} } @@ -16262,7 +16211,7 @@ yydefault: case 1046: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LagLeadExprType -//line sql.y:5403 +//line sql.y:5399 { yyLOCAL = LagExprType } @@ -16270,7 +16219,7 @@ yydefault: case 1047: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LagLeadExprType -//line sql.y:5407 +//line sql.y:5403 { yyLOCAL = LeadExprType } @@ -16278,7 +16227,7 @@ yydefault: case 1048: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *WindowDefinition -//line sql.y:5413 +//line sql.y:5409 { yyLOCAL = &WindowDefinition{Name: yyDollar[1].colIdent, WindowSpec: yyDollar[4].windowSpecificationUnion()} } @@ -16286,34 +16235,34 @@ yydefault: case 1049: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL WindowDefinitions -//line sql.y:5419 +//line sql.y:5415 { yyLOCAL = WindowDefinitions{yyDollar[1].windowDefinitionUnion()} } yyVAL.union = yyLOCAL case 1050: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5423 +//line sql.y:5419 { yySLICE := (*WindowDefinitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].windowDefinitionUnion()) } case 1051: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5429 +//line sql.y:5425 { yyVAL.str = "" } case 1052: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5433 +//line sql.y:5429 { yyVAL.str = string(yyDollar[2].colIdent.String()) } case 1053: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:5439 +//line sql.y:5435 { yyLOCAL = BoolVal(true) } @@ -16321,7 +16270,7 @@ yydefault: case 1054: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:5443 +//line sql.y:5439 { yyLOCAL = BoolVal(false) } @@ -16329,7 +16278,7 @@ yydefault: case 1055: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:5450 +//line sql.y:5446 { yyLOCAL = IsTrueOp } @@ -16337,7 +16286,7 @@ yydefault: case 1056: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:5454 +//line sql.y:5450 { yyLOCAL = IsNotTrueOp } @@ -16345,7 +16294,7 @@ yydefault: case 1057: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:5458 +//line sql.y:5454 { yyLOCAL = IsFalseOp } @@ -16353,7 +16302,7 @@ yydefault: case 1058: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:5462 +//line sql.y:5458 { yyLOCAL = IsNotFalseOp } @@ -16361,7 +16310,7 @@ yydefault: case 1059: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5468 +//line sql.y:5464 { yyLOCAL = EqualOp } @@ -16369,7 +16318,7 @@ yydefault: case 1060: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5472 +//line sql.y:5468 { yyLOCAL = LessThanOp } @@ -16377,7 +16326,7 @@ yydefault: case 1061: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5476 +//line sql.y:5472 { yyLOCAL = GreaterThanOp } @@ -16385,7 +16334,7 @@ yydefault: case 1062: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5480 +//line sql.y:5476 { yyLOCAL = LessEqualOp } @@ -16393,7 +16342,7 @@ yydefault: case 1063: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5484 +//line sql.y:5480 { yyLOCAL = GreaterEqualOp } @@ -16401,7 +16350,7 @@ yydefault: case 1064: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5488 +//line sql.y:5484 { yyLOCAL = NotEqualOp } @@ -16409,7 +16358,7 @@ yydefault: case 1065: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5492 +//line sql.y:5488 { yyLOCAL = NullSafeEqualOp } @@ -16417,7 +16366,7 @@ yydefault: case 1066: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:5498 +//line sql.y:5494 { yyLOCAL = yyDollar[1].valTupleUnion() } @@ -16425,7 +16374,7 @@ yydefault: case 1067: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:5502 +//line sql.y:5498 { yyLOCAL = yyDollar[1].subqueryUnion() } @@ -16433,7 +16382,7 @@ yydefault: case 1068: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:5506 +//line sql.y:5502 { yyLOCAL = ListArg(yyDollar[1].str[2:]) bindVariable(yylex, yyDollar[1].str[2:]) @@ -16442,7 +16391,7 @@ yydefault: case 1069: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Subquery -//line sql.y:5513 +//line sql.y:5509 { yyLOCAL = &Subquery{yyDollar[1].selStmtUnion()} } @@ -16450,14 +16399,14 @@ yydefault: case 1070: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:5519 +//line sql.y:5515 { yyLOCAL = Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL case 1071: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5523 +//line sql.y:5519 { yySLICE := (*Exprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].exprUnion()) @@ -16465,7 +16414,7 @@ yydefault: case 1072: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5533 +//line sql.y:5529 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprsUnion()} } @@ -16473,7 +16422,7 @@ yydefault: case 1073: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5537 +//line sql.y:5533 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } @@ -16481,7 +16430,7 @@ yydefault: case 1074: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5541 +//line sql.y:5537 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } @@ -16489,7 +16438,7 @@ yydefault: case 1075: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5545 +//line sql.y:5541 { yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprsUnion()} } @@ -16497,7 +16446,7 @@ yydefault: case 1076: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5555 +//line sql.y:5551 { yyLOCAL = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -16505,7 +16454,7 @@ yydefault: case 1077: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5559 +//line sql.y:5555 { yyLOCAL = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -16513,7 +16462,7 @@ yydefault: case 1078: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:5563 +//line sql.y:5559 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } @@ -16521,7 +16470,7 @@ yydefault: case 1079: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5567 +//line sql.y:5563 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion()} } @@ -16529,7 +16478,7 @@ yydefault: case 1080: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:5571 +//line sql.y:5567 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } @@ -16537,7 +16486,7 @@ yydefault: case 1081: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5575 +//line sql.y:5571 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion()} } @@ -16545,7 +16494,7 @@ yydefault: case 1082: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:5579 +//line sql.y:5575 { yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].selectExprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()} } @@ -16553,7 +16502,7 @@ yydefault: case 1083: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5583 +//line sql.y:5579 { yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()} } @@ -16561,7 +16510,7 @@ yydefault: case 1084: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5587 +//line sql.y:5583 { yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()} } @@ -16569,7 +16518,7 @@ yydefault: case 1085: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5591 +//line sql.y:5587 { yyLOCAL = &FuncExpr{Name: NewColIdent(yyDollar[1].str)} } @@ -16577,7 +16526,7 @@ yydefault: case 1086: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5602 +//line sql.y:5598 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_date")} } @@ -16585,7 +16534,7 @@ yydefault: case 1087: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5606 +//line sql.y:5602 { yyLOCAL = yyDollar[1].exprUnion() } @@ -16593,7 +16542,7 @@ yydefault: case 1088: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5612 +//line sql.y:5608 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_date")} } @@ -16601,7 +16550,7 @@ yydefault: case 1089: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5616 +//line sql.y:5612 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].exprUnion()} } @@ -16609,7 +16558,7 @@ yydefault: case 1090: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5621 +//line sql.y:5617 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].exprUnion()} } @@ -16617,7 +16566,7 @@ yydefault: case 1091: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:5625 +//line sql.y:5621 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } @@ -16625,7 +16574,7 @@ yydefault: case 1092: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:5629 +//line sql.y:5625 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } @@ -16633,7 +16582,7 @@ yydefault: case 1093: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5633 +//line sql.y:5629 { yyLOCAL = &ExtractFuncExpr{IntervalTypes: yyDollar[3].intervalTypeUnion(), Expr: yyDollar[5].exprUnion()} } @@ -16641,7 +16590,7 @@ yydefault: case 1094: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5637 +//line sql.y:5633 { yyLOCAL = &WeightStringFuncExpr{Expr: yyDollar[3].exprUnion(), As: yyDollar[4].convertTypeUnion()} } @@ -16649,7 +16598,7 @@ yydefault: case 1095: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5641 +//line sql.y:5637 { yyLOCAL = &JSONPrettyExpr{JSONVal: yyDollar[3].exprUnion()} } @@ -16657,7 +16606,7 @@ yydefault: case 1096: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5645 +//line sql.y:5641 { yyLOCAL = &JSONStorageFreeExpr{JSONVal: yyDollar[3].exprUnion()} } @@ -16665,7 +16614,7 @@ yydefault: case 1097: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5649 +//line sql.y:5645 { yyLOCAL = &JSONStorageSizeExpr{JSONVal: yyDollar[3].exprUnion()} } @@ -16673,7 +16622,7 @@ yydefault: case 1098: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5653 +//line sql.y:5649 { yyLOCAL = &TrimFuncExpr{TrimFuncType: LTrimType, StringArg: yyDollar[3].exprUnion()} } @@ -16681,7 +16630,7 @@ yydefault: case 1099: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5657 +//line sql.y:5653 { yyLOCAL = &TrimFuncExpr{TrimFuncType: RTrimType, StringArg: yyDollar[3].exprUnion()} } @@ -16689,7 +16638,7 @@ yydefault: case 1100: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Expr -//line sql.y:5661 +//line sql.y:5657 { yyLOCAL = &TrimFuncExpr{Type: yyDollar[3].trimTypeUnion(), TrimArg: yyDollar[4].exprUnion(), StringArg: yyDollar[6].exprUnion()} } @@ -16697,7 +16646,7 @@ yydefault: case 1101: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5665 +//line sql.y:5661 { yyLOCAL = &TrimFuncExpr{StringArg: yyDollar[3].exprUnion()} } @@ -16705,7 +16654,7 @@ yydefault: case 1102: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5669 +//line sql.y:5665 { yyLOCAL = &TrimFuncExpr{TrimArg: yyDollar[3].exprUnion(), StringArg: yyDollar[5].exprUnion()} } @@ -16713,7 +16662,7 @@ yydefault: case 1103: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5673 +//line sql.y:5669 { yyLOCAL = &LockingFunc{Type: GetLock, Name: yyDollar[3].exprUnion(), Timeout: yyDollar[5].exprUnion()} } @@ -16721,7 +16670,7 @@ yydefault: case 1104: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5677 +//line sql.y:5673 { yyLOCAL = &LockingFunc{Type: IsFreeLock, Name: yyDollar[3].exprUnion()} } @@ -16729,7 +16678,7 @@ yydefault: case 1105: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5681 +//line sql.y:5677 { yyLOCAL = &LockingFunc{Type: IsUsedLock, Name: yyDollar[3].exprUnion()} } @@ -16737,7 +16686,7 @@ yydefault: case 1106: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5685 +//line sql.y:5681 { yyLOCAL = &LockingFunc{Type: ReleaseAllLocks} } @@ -16745,7 +16694,7 @@ yydefault: case 1107: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5689 +//line sql.y:5685 { yyLOCAL = &LockingFunc{Type: ReleaseLock, Name: yyDollar[3].exprUnion()} } @@ -16753,7 +16702,7 @@ yydefault: case 1108: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5693 +//line sql.y:5689 { yyLOCAL = &JSONSchemaValidFuncExpr{Schema: yyDollar[3].exprUnion(), Document: yyDollar[5].exprUnion()} } @@ -16761,7 +16710,7 @@ yydefault: case 1109: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5697 +//line sql.y:5693 { yyLOCAL = &JSONSchemaValidationReportFuncExpr{Schema: yyDollar[3].exprUnion(), Document: yyDollar[5].exprUnion()} } @@ -16769,7 +16718,7 @@ yydefault: case 1110: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5701 +//line sql.y:5697 { yyLOCAL = &JSONArrayExpr{Params: yyDollar[3].exprsUnion()} } @@ -16777,7 +16726,7 @@ yydefault: case 1111: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5705 +//line sql.y:5701 { yyLOCAL = &JSONObjectExpr{Params: yyDollar[3].jsonObjectParamsUnion()} } @@ -16785,52 +16734,60 @@ yydefault: case 1112: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5709 +//line sql.y:5705 { yyLOCAL = &JSONQuoteExpr{StringArg: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL case 1113: - yyDollar = yyS[yypt-7 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5713 +//line sql.y:5709 { - yyLOCAL = &JSONContainsExpr{Target: yyDollar[3].exprUnion(), Candidate: yyDollar[5].exprUnion(), PathList: yyDollar[6].jsonPathParamsUnion()} + yyLOCAL = &JSONContainsExpr{Target: yyDollar[3].exprUnion(), Candidate: yyDollar[5].exprsUnion()[0], PathList: yyDollar[5].exprsUnion()[1:]} } yyVAL.union = yyLOCAL case 1114: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:5717 +//line sql.y:5713 { - yyLOCAL = &JSONContainsPathExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), PathList: yyDollar[7].jsonPathParamsUnion()} + yyLOCAL = &JSONContainsPathExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), PathList: yyDollar[7].exprsUnion()} } yyVAL.union = yyLOCAL case 1115: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5721 +//line sql.y:5717 { - yyLOCAL = &JSONExtractExpr{JSONDoc: yyDollar[3].exprUnion(), PathList: yyDollar[5].jsonPathParamsUnion()} + yyLOCAL = &JSONExtractExpr{JSONDoc: yyDollar[3].exprUnion(), PathList: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL case 1116: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5725 +//line sql.y:5721 { - yyLOCAL = &JSONKeysExpr{JSONDoc: yyDollar[3].exprUnion(), PathList: yyDollar[4].jsonPathParamsUnion()} + yyLOCAL = &JSONKeysExpr{JSONDoc: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL case 1117: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr +//line sql.y:5725 + { + yyLOCAL = &JSONKeysExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion()} + } + yyVAL.union = yyLOCAL + case 1118: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Expr //line sql.y:5729 { yyLOCAL = &JSONOverlapsExpr{JSONDoc1: yyDollar[3].exprUnion(), JSONDoc2: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1118: + case 1119: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr //line sql.y:5733 @@ -16838,47 +16795,47 @@ yydefault: yyLOCAL = &JSONSearchExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), SearchStr: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1119: - yyDollar = yyS[yypt-11 : yypt+1] + case 1120: + yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr //line sql.y:5737 { - yyLOCAL = &JSONSearchExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), SearchStr: yyDollar[7].exprUnion(), EscapeChar: yyDollar[9].exprUnion(), PathList: yyDollar[10].jsonPathParamsUnion()} + yyLOCAL = &JSONSearchExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), SearchStr: yyDollar[7].exprUnion(), EscapeChar: yyDollar[9].exprsUnion()[0], PathList: yyDollar[9].exprsUnion()[1:]} } yyVAL.union = yyLOCAL - case 1120: + case 1121: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Expr //line sql.y:5741 { - yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].jsonPathParam, ReturningType: yyDollar[6].convertTypeUnion()} + yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 1121: + case 1122: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr //line sql.y:5745 { - yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].jsonPathParam, ReturningType: yyDollar[6].convertTypeUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion()} + yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion()} } yyVAL.union = yyLOCAL - case 1122: + case 1123: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr //line sql.y:5749 { - yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].jsonPathParam, ReturningType: yyDollar[6].convertTypeUnion(), ErrorOnResponse: yyDollar[7].jtOnResponseUnion()} + yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion(), ErrorOnResponse: yyDollar[7].jtOnResponseUnion()} } yyVAL.union = yyLOCAL - case 1123: + case 1124: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr //line sql.y:5753 { - yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].jsonPathParam, ReturningType: yyDollar[6].convertTypeUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion(), ErrorOnResponse: yyDollar[8].jtOnResponseUnion()} + yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion(), ErrorOnResponse: yyDollar[8].jtOnResponseUnion()} } yyVAL.union = yyLOCAL - case 1124: + case 1125: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr //line sql.y:5757 @@ -16886,7 +16843,7 @@ yydefault: yyLOCAL = &JSONAttributesExpr{Type: DepthAttributeType, JSONDoc: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1125: + case 1126: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr //line sql.y:5761 @@ -16894,7 +16851,7 @@ yydefault: yyLOCAL = &JSONAttributesExpr{Type: ValidAttributeType, JSONDoc: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1126: + case 1127: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr //line sql.y:5765 @@ -16902,7 +16859,7 @@ yydefault: yyLOCAL = &JSONAttributesExpr{Type: TypeAttributeType, JSONDoc: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1127: + case 1128: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr //line sql.y:5769 @@ -16910,15 +16867,15 @@ yydefault: yyLOCAL = &JSONAttributesExpr{Type: LengthAttributeType, JSONDoc: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1128: + case 1129: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr //line sql.y:5773 { - yyLOCAL = &JSONAttributesExpr{Type: LengthAttributeType, JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].jsonPathParam} + yyLOCAL = &JSONAttributesExpr{Type: LengthAttributeType, JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1129: + case 1130: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr //line sql.y:5777 @@ -16926,7 +16883,7 @@ yydefault: yyLOCAL = &JSONValueModifierExpr{Type: JSONArrayAppendType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()} } yyVAL.union = yyLOCAL - case 1130: + case 1131: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr //line sql.y:5781 @@ -16934,7 +16891,7 @@ yydefault: yyLOCAL = &JSONValueModifierExpr{Type: JSONArrayInsertType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()} } yyVAL.union = yyLOCAL - case 1131: + case 1132: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr //line sql.y:5785 @@ -16942,7 +16899,7 @@ yydefault: yyLOCAL = &JSONValueModifierExpr{Type: JSONInsertType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()} } yyVAL.union = yyLOCAL - case 1132: + case 1133: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr //line sql.y:5789 @@ -16950,7 +16907,7 @@ yydefault: yyLOCAL = &JSONValueModifierExpr{Type: JSONReplaceType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()} } yyVAL.union = yyLOCAL - case 1133: + case 1134: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr //line sql.y:5793 @@ -16958,7 +16915,7 @@ yydefault: yyLOCAL = &JSONValueModifierExpr{Type: JSONSetType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()} } yyVAL.union = yyLOCAL - case 1134: + case 1135: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr //line sql.y:5797 @@ -16966,7 +16923,7 @@ yydefault: yyLOCAL = &JSONValueMergeExpr{Type: JSONMergeType, JSONDoc: yyDollar[3].exprUnion(), JSONDocList: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 1135: + case 1136: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr //line sql.y:5801 @@ -16974,7 +16931,7 @@ yydefault: yyLOCAL = &JSONValueMergeExpr{Type: JSONMergePatchType, JSONDoc: yyDollar[3].exprUnion(), JSONDocList: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 1136: + case 1137: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr //line sql.y:5805 @@ -16982,7 +16939,7 @@ yydefault: yyLOCAL = &JSONValueMergeExpr{Type: JSONMergePreserveType, JSONDoc: yyDollar[3].exprUnion(), JSONDocList: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 1137: + case 1138: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr //line sql.y:5809 @@ -16990,7 +16947,7 @@ yydefault: yyLOCAL = &JSONRemoveExpr{JSONDoc: yyDollar[3].exprUnion(), PathList: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 1138: + case 1139: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr //line sql.y:5813 @@ -16998,7 +16955,7 @@ yydefault: yyLOCAL = &JSONUnquoteExpr{JSONValue: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1139: + case 1140: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr //line sql.y:5817 @@ -17006,7 +16963,7 @@ yydefault: yyLOCAL = &ArgumentLessWindowExpr{Type: yyDollar[1].argumentLessWindowExprTypeUnion(), OverClause: yyDollar[4].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1140: + case 1141: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr //line sql.y:5821 @@ -17014,7 +16971,7 @@ yydefault: yyLOCAL = &FirstOrLastValueExpr{Type: yyDollar[1].firstOrLastValueExprTypeUnion(), Expr: yyDollar[3].exprUnion(), NullTreatmentClause: yyDollar[5].nullTreatmentClauseUnion(), OverClause: yyDollar[6].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1141: + case 1142: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr //line sql.y:5825 @@ -17022,7 +16979,7 @@ yydefault: yyLOCAL = &NtileExpr{N: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1142: + case 1143: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr //line sql.y:5829 @@ -17030,7 +16987,7 @@ yydefault: yyLOCAL = &NTHValueExpr{Expr: yyDollar[3].exprUnion(), N: yyDollar[5].exprUnion(), FromFirstLastClause: yyDollar[7].fromFirstLastClauseUnion(), NullTreatmentClause: yyDollar[8].nullTreatmentClauseUnion(), OverClause: yyDollar[9].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1143: + case 1144: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr //line sql.y:5833 @@ -17038,7 +16995,7 @@ yydefault: yyLOCAL = &LagLeadExpr{Type: yyDollar[1].lagLeadExprTypeUnion(), Expr: yyDollar[3].exprUnion(), NullTreatmentClause: yyDollar[5].nullTreatmentClauseUnion(), OverClause: yyDollar[6].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1144: + case 1145: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr //line sql.y:5837 @@ -17046,7 +17003,7 @@ yydefault: yyLOCAL = &LagLeadExpr{Type: yyDollar[1].lagLeadExprTypeUnion(), Expr: yyDollar[3].exprUnion(), N: yyDollar[5].exprUnion(), Default: yyDollar[6].exprUnion(), NullTreatmentClause: yyDollar[8].nullTreatmentClauseUnion(), OverClause: yyDollar[9].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1147: + case 1148: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr //line sql.y:5845 @@ -17054,7 +17011,7 @@ yydefault: yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1148: + case 1149: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr //line sql.y:5849 @@ -17062,7 +17019,7 @@ yydefault: yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1149: + case 1150: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr //line sql.y:5854 @@ -17070,7 +17027,7 @@ yydefault: yyLOCAL = &ColName{Name: yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 1150: + case 1151: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr //line sql.y:5858 @@ -17079,7 +17036,7 @@ yydefault: bindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 1151: + case 1152: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr //line sql.y:5864 @@ -17087,7 +17044,7 @@ yydefault: yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1152: + case 1153: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr //line sql.y:5868 @@ -17095,7 +17052,7 @@ yydefault: yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1153: + case 1154: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr //line sql.y:5875 @@ -17103,7 +17060,7 @@ yydefault: yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1154: + case 1155: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr //line sql.y:5879 @@ -17111,7 +17068,7 @@ yydefault: yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1155: + case 1156: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr //line sql.y:5883 @@ -17119,7 +17076,7 @@ yydefault: yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion()} } yyVAL.union = yyLOCAL - case 1156: + case 1157: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL Expr //line sql.y:5887 @@ -17127,7 +17084,7 @@ yydefault: yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion(), ReturnOption: yyDollar[11].exprUnion()} } yyVAL.union = yyLOCAL - case 1157: + case 1158: yyDollar = yyS[yypt-14 : yypt+1] var yyLOCAL Expr //line sql.y:5891 @@ -17136,7 +17093,7 @@ yydefault: yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion(), ReturnOption: yyDollar[11].exprUnion(), MatchType: yyDollar[13].exprUnion()} } yyVAL.union = yyLOCAL - case 1158: + case 1159: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr //line sql.y:5896 @@ -17144,7 +17101,7 @@ yydefault: yyLOCAL = &RegexpLikeExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1159: + case 1160: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr //line sql.y:5900 @@ -17152,7 +17109,7 @@ yydefault: yyLOCAL = &RegexpLikeExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), MatchType: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1160: + case 1161: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr //line sql.y:5904 @@ -17160,7 +17117,7 @@ yydefault: yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1161: + case 1162: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr //line sql.y:5908 @@ -17168,7 +17125,7 @@ yydefault: yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion(), Position: yyDollar[9].exprUnion()} } yyVAL.union = yyLOCAL - case 1162: + case 1163: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL Expr //line sql.y:5912 @@ -17176,7 +17133,7 @@ yydefault: yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion(), Position: yyDollar[9].exprUnion(), Occurrence: yyDollar[11].exprUnion()} } yyVAL.union = yyLOCAL - case 1163: + case 1164: yyDollar = yyS[yypt-14 : yypt+1] var yyLOCAL Expr //line sql.y:5916 @@ -17185,7 +17142,7 @@ yydefault: yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion(), Position: yyDollar[9].exprUnion(), Occurrence: yyDollar[11].exprUnion(), MatchType: yyDollar[13].exprUnion()} } yyVAL.union = yyLOCAL - case 1164: + case 1165: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr //line sql.y:5921 @@ -17193,7 +17150,7 @@ yydefault: yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1165: + case 1166: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr //line sql.y:5925 @@ -17201,7 +17158,7 @@ yydefault: yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1166: + case 1167: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr //line sql.y:5929 @@ -17209,7 +17166,7 @@ yydefault: yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion()} } yyVAL.union = yyLOCAL - case 1167: + case 1168: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL Expr //line sql.y:5933 @@ -17218,7 +17175,7 @@ yydefault: yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion(), MatchType: yyDollar[11].exprUnion()} } yyVAL.union = yyLOCAL - case 1168: + case 1169: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr //line sql.y:5940 @@ -17226,7 +17183,7 @@ yydefault: yyLOCAL = &ExtractValueExpr{Fragment: yyDollar[3].exprUnion(), XPathExpr: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1169: + case 1170: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr //line sql.y:5944 @@ -17234,7 +17191,7 @@ yydefault: yyLOCAL = &UpdateXMLExpr{Target: yyDollar[3].exprUnion(), XPathExpr: yyDollar[5].exprUnion(), NewXML: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1170: + case 1171: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ConvertType //line sql.y:5949 @@ -17242,7 +17199,7 @@ yydefault: yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1171: + case 1172: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType //line sql.y:5953 @@ -17250,602 +17207,559 @@ yydefault: yyLOCAL = yyDollar[2].convertTypeUnion() } yyVAL.union = yyLOCAL - case 1172: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL []JSONPathParam -//line sql.y:5958 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 1173: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL []JSONPathParam -//line sql.y:5962 - { - yyLOCAL = yyDollar[2].jsonPathParamsUnion() - } - yyVAL.union = yyLOCAL - case 1174: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []JSONPathParam -//line sql.y:5968 - { - yyLOCAL = []JSONPathParam{yyDollar[1].jsonPathParam} - } - yyVAL.union = yyLOCAL - case 1175: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5972 - { - yySLICE := (*[]JSONPathParam)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].jsonPathParam) - } - case 1176: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5978 - { - yyVAL.jsonPathParam = JSONPathParam(yyDollar[1].exprUnion()) - } - case 1177: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5982 - { - yyVAL.jsonPathParam = JSONPathParam(yyDollar[1].colNameUnion()) - } - case 1178: + case 1173: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5988 +//line sql.y:5959 { } - case 1179: + case 1174: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:5990 +//line sql.y:5961 { yyLOCAL = IntervalDayHour } yyVAL.union = yyLOCAL - case 1180: + case 1175: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:5994 +//line sql.y:5965 { yyLOCAL = IntervalDayMicrosecond } yyVAL.union = yyLOCAL - case 1181: + case 1176: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:5998 +//line sql.y:5969 { yyLOCAL = IntervalDayMinute } yyVAL.union = yyLOCAL - case 1182: + case 1177: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:6002 +//line sql.y:5973 { yyLOCAL = IntervalDaySecond } yyVAL.union = yyLOCAL - case 1183: + case 1178: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:6006 +//line sql.y:5977 { yyLOCAL = IntervalHourMicrosecond } yyVAL.union = yyLOCAL - case 1184: + case 1179: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:6010 +//line sql.y:5981 { yyLOCAL = IntervalHourMinute } yyVAL.union = yyLOCAL - case 1185: + case 1180: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:6014 +//line sql.y:5985 { yyLOCAL = IntervalHourSecond } yyVAL.union = yyLOCAL - case 1186: + case 1181: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:6018 +//line sql.y:5989 { yyLOCAL = IntervalMinuteMicrosecond } yyVAL.union = yyLOCAL - case 1187: + case 1182: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:6022 +//line sql.y:5993 { yyLOCAL = IntervalMinuteSecond } yyVAL.union = yyLOCAL - case 1188: + case 1183: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:6026 +//line sql.y:5997 { yyLOCAL = IntervalSecondMicrosecond } yyVAL.union = yyLOCAL - case 1189: + case 1184: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:6030 +//line sql.y:6001 { yyLOCAL = IntervalYearMonth } yyVAL.union = yyLOCAL - case 1190: + case 1185: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:6036 +//line sql.y:6007 { yyLOCAL = IntervalDay } yyVAL.union = yyLOCAL - case 1191: + case 1186: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:6040 +//line sql.y:6011 { yyLOCAL = IntervalWeek } yyVAL.union = yyLOCAL - case 1192: + case 1187: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:6044 +//line sql.y:6015 { yyLOCAL = IntervalHour } yyVAL.union = yyLOCAL - case 1193: + case 1188: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:6048 +//line sql.y:6019 { yyLOCAL = IntervalMinute } yyVAL.union = yyLOCAL - case 1194: + case 1189: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:6052 +//line sql.y:6023 { yyLOCAL = IntervalMonth } yyVAL.union = yyLOCAL - case 1195: + case 1190: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:6056 +//line sql.y:6027 { yyLOCAL = IntervalQuarter } yyVAL.union = yyLOCAL - case 1196: + case 1191: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:6060 +//line sql.y:6031 { yyLOCAL = IntervalSecond } yyVAL.union = yyLOCAL - case 1197: + case 1192: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:6064 +//line sql.y:6035 { yyLOCAL = IntervalMicrosecond } yyVAL.union = yyLOCAL - case 1198: + case 1193: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalTypes -//line sql.y:6068 +//line sql.y:6039 { yyLOCAL = IntervalYear } yyVAL.union = yyLOCAL - case 1201: + case 1196: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:6078 +//line sql.y:6049 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1202: + case 1197: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6082 +//line sql.y:6053 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1203: + case 1198: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6086 +//line sql.y:6057 { yyLOCAL = NewIntLiteral(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 1204: + case 1199: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6090 +//line sql.y:6061 { yyLOCAL = NewArgument(yyDollar[2].str[1:]) bindVariable(yylex, yyDollar[2].str[1:]) } yyVAL.union = yyLOCAL - case 1205: + case 1200: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6101 +//line sql.y:6072 { yyLOCAL = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 1206: + case 1201: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6105 +//line sql.y:6076 { yyLOCAL = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 1207: + case 1202: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6109 +//line sql.y:6080 { yyLOCAL = &FuncExpr{Name: NewColIdent("schema"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 1208: + case 1203: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6113 +//line sql.y:6084 { yyLOCAL = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 1209: + case 1204: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6117 +//line sql.y:6088 { yyLOCAL = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 1210: + case 1205: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:6123 +//line sql.y:6094 { yyLOCAL = NoOption } yyVAL.union = yyLOCAL - case 1211: + case 1206: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:6127 +//line sql.y:6098 { yyLOCAL = BooleanModeOpt } yyVAL.union = yyLOCAL - case 1212: + case 1207: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:6131 +//line sql.y:6102 { yyLOCAL = NaturalLanguageModeOpt } yyVAL.union = yyLOCAL - case 1213: + case 1208: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:6135 +//line sql.y:6106 { yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt } yyVAL.union = yyLOCAL - case 1214: + case 1209: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:6139 +//line sql.y:6110 { yyLOCAL = QueryExpansionOpt } yyVAL.union = yyLOCAL - case 1215: + case 1210: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6145 +//line sql.y:6116 { yyVAL.str = string(yyDollar[1].colIdent.String()) } - case 1216: + case 1211: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6149 +//line sql.y:6120 { yyVAL.str = string(yyDollar[1].str) } - case 1217: + case 1212: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6153 +//line sql.y:6124 { yyVAL.str = string(yyDollar[1].str) } - case 1218: + case 1213: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6159 +//line sql.y:6130 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1219: + case 1214: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6163 +//line sql.y:6134 { yyLOCAL = &ConvertType{Type: string(yyDollar[2].str), Length: NewIntLiteral(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 1220: + case 1215: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6167 +//line sql.y:6138 { yyLOCAL = &ConvertType{Type: string(yyDollar[2].str), Length: NewIntLiteral(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 1221: + case 1216: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6173 +//line sql.y:6144 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 1222: + case 1217: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6177 +//line sql.y:6148 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].columnCharset} } yyVAL.union = yyLOCAL - case 1223: + case 1218: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6181 +//line sql.y:6152 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1224: + case 1219: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6185 +//line sql.y:6156 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 1225: + case 1220: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6189 +//line sql.y:6160 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length yyLOCAL.Scale = yyDollar[2].LengthScaleOption.Scale } yyVAL.union = yyLOCAL - case 1226: + case 1221: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6195 +//line sql.y:6166 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1227: + case 1222: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6199 +//line sql.y:6170 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 1228: + case 1223: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6203 +//line sql.y:6174 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1229: + case 1224: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6207 +//line sql.y:6178 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1230: + case 1225: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6211 +//line sql.y:6182 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 1231: + case 1226: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6215 +//line sql.y:6186 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1232: + case 1227: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6219 +//line sql.y:6190 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1233: + case 1228: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6223 +//line sql.y:6194 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 1234: + case 1229: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6227 +//line sql.y:6198 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1235: + case 1230: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6231 +//line sql.y:6202 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1236: + case 1231: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:6237 +//line sql.y:6208 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1237: + case 1232: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:6241 +//line sql.y:6212 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1238: + case 1233: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:6246 +//line sql.y:6217 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1239: + case 1234: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6250 +//line sql.y:6221 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1240: + case 1235: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:6255 +//line sql.y:6226 { yyVAL.str = string("") } - case 1241: + case 1236: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:6259 +//line sql.y:6230 { yyVAL.str = " separator " + encodeSQLString(yyDollar[2].str) } - case 1242: + case 1237: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*When -//line sql.y:6265 +//line sql.y:6236 { yyLOCAL = []*When{yyDollar[1].whenUnion()} } yyVAL.union = yyLOCAL - case 1243: + case 1238: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:6269 +//line sql.y:6240 { yySLICE := (*[]*When)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].whenUnion()) } - case 1244: + case 1239: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *When -//line sql.y:6275 +//line sql.y:6246 { yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 1245: + case 1240: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:6280 +//line sql.y:6251 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1246: + case 1241: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6284 +//line sql.y:6255 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1247: + case 1242: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ColName -//line sql.y:6290 +//line sql.y:6261 { yyLOCAL = &ColName{Name: yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 1248: + case 1243: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColName -//line sql.y:6294 +//line sql.y:6265 { yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 1249: + case 1244: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ColName -//line sql.y:6298 +//line sql.y:6269 { yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 1250: + case 1245: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6304 +//line sql.y:6275 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -17855,427 +17769,427 @@ yydefault: yyLOCAL = NewIntLiteral("1") } yyVAL.union = yyLOCAL - case 1251: + case 1246: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6313 +//line sql.y:6284 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1252: + case 1247: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6317 +//line sql.y:6288 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 1253: + case 1248: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:6323 +//line sql.y:6294 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1254: + case 1249: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Exprs -//line sql.y:6327 +//line sql.y:6298 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 1255: + case 1250: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:6332 +//line sql.y:6303 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1256: + case 1251: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6336 +//line sql.y:6307 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1257: + case 1252: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *NamedWindow -//line sql.y:6342 +//line sql.y:6313 { yyLOCAL = &NamedWindow{yyDollar[2].windowDefinitionsUnion()} } yyVAL.union = yyLOCAL - case 1258: + case 1253: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL NamedWindows -//line sql.y:6348 +//line sql.y:6319 { yyLOCAL = NamedWindows{yyDollar[1].namedWindowUnion()} } yyVAL.union = yyLOCAL - case 1259: + case 1254: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:6352 +//line sql.y:6323 { yySLICE := (*NamedWindows)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].namedWindowUnion()) } - case 1260: + case 1255: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL NamedWindows -//line sql.y:6357 +//line sql.y:6328 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1261: + case 1256: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL NamedWindows -//line sql.y:6361 +//line sql.y:6332 { yyLOCAL = yyDollar[1].namedWindowsUnion() } yyVAL.union = yyLOCAL - case 1262: + case 1257: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderBy -//line sql.y:6366 +//line sql.y:6337 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1263: + case 1258: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:6370 +//line sql.y:6341 { yyLOCAL = yyDollar[1].orderByUnion() } yyVAL.union = yyLOCAL - case 1264: + case 1259: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL OrderBy -//line sql.y:6376 +//line sql.y:6347 { yyLOCAL = yyDollar[3].orderByUnion() } yyVAL.union = yyLOCAL - case 1265: + case 1260: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:6382 +//line sql.y:6353 { yyLOCAL = OrderBy{yyDollar[1].orderUnion()} } yyVAL.union = yyLOCAL - case 1266: + case 1261: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:6386 +//line sql.y:6357 { yySLICE := (*OrderBy)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].orderUnion()) } - case 1267: + case 1262: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Order -//line sql.y:6392 +//line sql.y:6363 { yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()} } yyVAL.union = yyLOCAL - case 1268: + case 1263: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:6397 +//line sql.y:6368 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 1269: + case 1264: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:6401 +//line sql.y:6372 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 1270: + case 1265: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:6405 +//line sql.y:6376 { yyLOCAL = DescOrder } yyVAL.union = yyLOCAL - case 1271: + case 1266: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Limit -//line sql.y:6410 +//line sql.y:6381 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1272: + case 1267: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Limit -//line sql.y:6414 +//line sql.y:6385 { yyLOCAL = yyDollar[1].limitUnion() } yyVAL.union = yyLOCAL - case 1273: + case 1268: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Limit -//line sql.y:6420 +//line sql.y:6391 { yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 1274: + case 1269: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:6424 +//line sql.y:6395 { yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 1275: + case 1270: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:6428 +//line sql.y:6399 { yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 1276: + case 1271: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:6433 +//line sql.y:6404 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1277: + case 1272: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:6437 +//line sql.y:6408 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 1278: + case 1273: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:6441 +//line sql.y:6412 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 1279: + case 1274: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:6445 +//line sql.y:6416 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 1280: + case 1275: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:6449 +//line sql.y:6420 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 1281: + case 1276: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:6456 +//line sql.y:6427 { yyLOCAL = &LockOption{Type: DefaultType} } yyVAL.union = yyLOCAL - case 1282: + case 1277: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:6460 +//line sql.y:6431 { yyLOCAL = &LockOption{Type: NoneType} } yyVAL.union = yyLOCAL - case 1283: + case 1278: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:6464 +//line sql.y:6435 { yyLOCAL = &LockOption{Type: SharedType} } yyVAL.union = yyLOCAL - case 1284: + case 1279: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:6468 +//line sql.y:6439 { yyLOCAL = &LockOption{Type: ExclusiveType} } yyVAL.union = yyLOCAL - case 1285: + case 1280: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:6474 +//line sql.y:6445 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1286: + case 1281: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:6478 +//line sql.y:6449 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1287: + case 1282: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:6482 +//line sql.y:6453 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1288: + case 1283: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:6486 +//line sql.y:6457 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1289: + case 1284: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:6491 +//line sql.y:6462 { yyVAL.str = "" } - case 1290: + case 1285: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:6495 +//line sql.y:6466 { yyVAL.str = string(yyDollar[3].str) } - case 1291: + case 1286: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:6499 +//line sql.y:6470 { yyVAL.str = string(yyDollar[3].str) } - case 1292: + case 1287: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:6503 +//line sql.y:6474 { yyVAL.str = string(yyDollar[3].str) } - case 1293: + case 1288: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:6508 +//line sql.y:6479 { yyVAL.str = "" } - case 1294: + case 1289: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:6512 +//line sql.y:6483 { yyVAL.str = yyDollar[3].str } - case 1295: + case 1290: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6518 +//line sql.y:6489 { yyVAL.str = string(yyDollar[1].str) } - case 1296: + case 1291: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6522 +//line sql.y:6493 { yyVAL.str = string(yyDollar[1].str) } - case 1297: + case 1292: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:6527 +//line sql.y:6498 { yyVAL.str = "" } - case 1298: + case 1293: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:6531 +//line sql.y:6502 { yyVAL.str = yyDollar[2].str } - case 1299: + case 1294: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:6536 +//line sql.y:6507 { yyVAL.str = "cascaded" } - case 1300: + case 1295: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6540 +//line sql.y:6511 { yyVAL.str = string(yyDollar[1].str) } - case 1301: + case 1296: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6544 +//line sql.y:6515 { yyVAL.str = string(yyDollar[1].str) } - case 1302: + case 1297: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Definer -//line sql.y:6549 +//line sql.y:6520 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1303: + case 1298: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Definer -//line sql.y:6553 +//line sql.y:6524 { yyLOCAL = yyDollar[3].definerUnion() } yyVAL.union = yyLOCAL - case 1304: + case 1299: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Definer -//line sql.y:6559 +//line sql.y:6530 { yyLOCAL = &Definer{ Name: string(yyDollar[1].str), } } yyVAL.union = yyLOCAL - case 1305: + case 1300: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Definer -//line sql.y:6565 +//line sql.y:6536 { yyLOCAL = &Definer{ Name: string(yyDollar[1].str), } } yyVAL.union = yyLOCAL - case 1306: + case 1301: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Definer -//line sql.y:6571 +//line sql.y:6542 { yyLOCAL = &Definer{ Name: yyDollar[1].str, @@ -18283,369 +18197,369 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1307: + case 1302: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6580 +//line sql.y:6551 { yyVAL.str = encodeSQLString(yyDollar[1].str) } - case 1308: + case 1303: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6584 +//line sql.y:6555 { yyVAL.str = formatIdentifier(yyDollar[1].str) } - case 1309: + case 1304: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:6589 +//line sql.y:6560 { yyVAL.str = "" } - case 1310: + case 1305: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6593 +//line sql.y:6564 { yyVAL.str = formatAddress(yyDollar[1].str) } - case 1311: + case 1306: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Lock -//line sql.y:6599 +//line sql.y:6570 { yyLOCAL = ForUpdateLock } yyVAL.union = yyLOCAL - case 1312: + case 1307: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:6603 +//line sql.y:6574 { yyLOCAL = ShareModeLock } yyVAL.union = yyLOCAL - case 1313: + case 1308: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:6609 +//line sql.y:6580 { yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].columnCharset, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str} } yyVAL.union = yyLOCAL - case 1314: + case 1309: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:6613 +//line sql.y:6584 { yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: ColumnCharset{}, FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 1315: + case 1310: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:6617 +//line sql.y:6588 { yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].columnCharset, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 1316: + case 1311: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:6622 +//line sql.y:6593 { yyVAL.str = "" } - case 1317: + case 1312: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:6626 +//line sql.y:6597 { yyVAL.str = " format csv" + yyDollar[3].str } - case 1318: + case 1313: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:6630 +//line sql.y:6601 { yyVAL.str = " format text" + yyDollar[3].str } - case 1319: + case 1314: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:6635 +//line sql.y:6606 { yyVAL.str = "" } - case 1320: + case 1315: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6639 +//line sql.y:6610 { yyVAL.str = " header" } - case 1321: + case 1316: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:6644 +//line sql.y:6615 { yyVAL.str = "" } - case 1322: + case 1317: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:6648 +//line sql.y:6619 { yyVAL.str = " manifest on" } - case 1323: + case 1318: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:6652 +//line sql.y:6623 { yyVAL.str = " manifest off" } - case 1324: + case 1319: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:6657 +//line sql.y:6628 { yyVAL.str = "" } - case 1325: + case 1320: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:6661 +//line sql.y:6632 { yyVAL.str = " overwrite on" } - case 1326: + case 1321: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:6665 +//line sql.y:6636 { yyVAL.str = " overwrite off" } - case 1327: + case 1322: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:6671 +//line sql.y:6642 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 1328: + case 1323: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:6676 +//line sql.y:6647 { yyVAL.str = "" } - case 1329: + case 1324: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:6680 +//line sql.y:6651 { yyVAL.str = " lines" + yyDollar[2].str } - case 1330: + case 1325: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6686 +//line sql.y:6657 { yyVAL.str = yyDollar[1].str } - case 1331: + case 1326: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:6690 +//line sql.y:6661 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 1332: + case 1327: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:6696 +//line sql.y:6667 { yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str) } - case 1333: + case 1328: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:6700 +//line sql.y:6671 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 1334: + case 1329: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:6705 +//line sql.y:6676 { yyVAL.str = "" } - case 1335: + case 1330: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:6709 +//line sql.y:6680 { yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str } - case 1336: + case 1331: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6715 +//line sql.y:6686 { yyVAL.str = yyDollar[1].str } - case 1337: + case 1332: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:6719 +//line sql.y:6690 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 1338: + case 1333: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:6725 +//line sql.y:6696 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 1339: + case 1334: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:6729 +//line sql.y:6700 { yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str) } - case 1340: + case 1335: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:6733 +//line sql.y:6704 { yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str) } - case 1341: + case 1336: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:6738 +//line sql.y:6709 { yyVAL.str = "" } - case 1342: + case 1337: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6742 +//line sql.y:6713 { yyVAL.str = " optionally" } - case 1343: + case 1338: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Insert -//line sql.y:6755 +//line sql.y:6726 { yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion()} } yyVAL.union = yyLOCAL - case 1344: + case 1339: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Insert -//line sql.y:6759 +//line sql.y:6730 { yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()} } yyVAL.union = yyLOCAL - case 1345: + case 1340: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *Insert -//line sql.y:6763 +//line sql.y:6734 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion()} } yyVAL.union = yyLOCAL - case 1346: + case 1341: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:6767 +//line sql.y:6738 { yyLOCAL = &Insert{Columns: []ColIdent{}, Rows: yyDollar[4].valuesUnion()} } yyVAL.union = yyLOCAL - case 1347: + case 1342: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:6771 +//line sql.y:6742 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()} } yyVAL.union = yyLOCAL - case 1348: + case 1343: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:6777 +//line sql.y:6748 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 1349: + case 1344: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:6781 +//line sql.y:6752 { yyLOCAL = Columns{yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 1350: + case 1345: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:6785 +//line sql.y:6756 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 1351: + case 1346: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:6789 +//line sql.y:6760 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[5].colIdent) } - case 1352: + case 1347: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:6794 +//line sql.y:6765 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1353: + case 1348: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:6798 +//line sql.y:6769 { yyLOCAL = yyDollar[5].updateExprsUnion() } yyVAL.union = yyLOCAL - case 1354: + case 1349: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Values -//line sql.y:6804 +//line sql.y:6775 { yyLOCAL = Values{yyDollar[1].valTupleUnion()} } yyVAL.union = yyLOCAL - case 1355: + case 1350: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:6808 +//line sql.y:6779 { yySLICE := (*Values)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion()) } - case 1356: + case 1351: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ValTuple -//line sql.y:6814 +//line sql.y:6785 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 1357: + case 1352: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ValTuple -//line sql.y:6818 +//line sql.y:6789 { yyLOCAL = ValTuple{} } yyVAL.union = yyLOCAL - case 1358: + case 1353: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ValTuple -//line sql.y:6824 +//line sql.y:6795 { yyLOCAL = ValTuple(yyDollar[2].exprsUnion()) } yyVAL.union = yyLOCAL - case 1359: + case 1354: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL ValTuple -//line sql.y:6828 +//line sql.y:6799 { yyLOCAL = ValTuple(yyDollar[3].exprsUnion()) } yyVAL.union = yyLOCAL - case 1360: + case 1355: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6833 +//line sql.y:6804 { if len(yyDollar[1].valTupleUnion()) == 1 { yyLOCAL = yyDollar[1].valTupleUnion()[0] @@ -18654,329 +18568,329 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1361: + case 1356: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:6843 +//line sql.y:6814 { yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()} } yyVAL.union = yyLOCAL - case 1362: + case 1357: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:6847 +//line sql.y:6818 { yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion()) } - case 1363: + case 1358: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *UpdateExpr -//line sql.y:6853 +//line sql.y:6824 { yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1364: + case 1359: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SetExprs -//line sql.y:6859 +//line sql.y:6830 { yyLOCAL = SetExprs{yyDollar[1].setExprUnion()} } yyVAL.union = yyLOCAL - case 1365: + case 1360: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:6863 +//line sql.y:6834 { yySLICE := (*SetExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].setExprUnion()) } - case 1366: + case 1361: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:6869 +//line sql.y:6840 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("on")} } yyVAL.union = yyLOCAL - case 1367: + case 1362: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:6873 +//line sql.y:6844 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("off")} } yyVAL.union = yyLOCAL - case 1368: + case 1363: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:6877 +//line sql.y:6848 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1369: + case 1364: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:6881 +//line sql.y:6852 { yyLOCAL = &SetExpr{Name: NewColIdent(string(yyDollar[1].str)), Scope: ImplicitScope, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 1370: + case 1365: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:6885 +//line sql.y:6856 { yyDollar[2].setExprUnion().Scope = yyDollar[1].scopeUnion() yyLOCAL = yyDollar[2].setExprUnion() } yyVAL.union = yyLOCAL - case 1372: + case 1367: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:6893 +//line sql.y:6864 { yyVAL.str = "charset" } - case 1375: + case 1370: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6903 +//line sql.y:6874 { yyLOCAL = NewStrLiteral(yyDollar[1].colIdent.String()) } yyVAL.union = yyLOCAL - case 1376: + case 1371: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6907 +//line sql.y:6878 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1377: + case 1372: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6911 +//line sql.y:6882 { yyLOCAL = &Default{} } yyVAL.union = yyLOCAL - case 1380: + case 1375: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:6920 +//line sql.y:6891 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1381: + case 1376: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:6922 +//line sql.y:6893 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1382: + case 1377: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:6925 +//line sql.y:6896 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1383: + case 1378: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:6927 +//line sql.y:6898 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1384: + case 1379: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:6930 +//line sql.y:6901 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1385: + case 1380: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line sql.y:6932 +//line sql.y:6903 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1386: + case 1381: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Ignore -//line sql.y:6935 +//line sql.y:6906 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1387: + case 1382: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Ignore -//line sql.y:6937 +//line sql.y:6908 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1388: + case 1383: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:6940 +//line sql.y:6911 { yyVAL.empty = struct{}{} } - case 1389: + case 1384: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6942 +//line sql.y:6913 { yyVAL.empty = struct{}{} } - case 1390: + case 1385: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6944 +//line sql.y:6915 { yyVAL.empty = struct{}{} } - case 1391: + case 1386: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:6948 +//line sql.y:6919 { yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()} } yyVAL.union = yyLOCAL - case 1392: + case 1387: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:6953 +//line sql.y:6924 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1393: + case 1388: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:6957 +//line sql.y:6928 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 1394: + case 1389: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:6962 +//line sql.y:6933 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1395: + case 1390: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:6964 +//line sql.y:6935 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL - case 1396: + case 1391: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:6968 +//line sql.y:6939 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].colIdent.String())} } yyVAL.union = yyLOCAL - case 1397: + case 1392: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6974 +//line sql.y:6945 { yyVAL.colIdent = yyDollar[1].colIdent } - case 1398: + case 1393: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6978 +//line sql.y:6949 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 1400: + case 1395: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6985 +//line sql.y:6956 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 1401: + case 1396: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6991 +//line sql.y:6962 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].colIdent.String())) } - case 1402: + case 1397: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6995 +//line sql.y:6966 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 1403: + case 1398: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7001 +//line sql.y:6972 { yyVAL.tableIdent = NewTableIdent("") } - case 1404: + case 1399: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7005 +//line sql.y:6976 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 1406: + case 1401: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7012 +//line sql.y:6983 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 1921: + case 1916: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7551 +//line sql.y:7522 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 1922: + case 1917: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7560 +//line sql.y:7531 { decNesting(yylex) } - case 1923: + case 1918: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7565 +//line sql.y:7536 { skipToEnd(yylex) } - case 1924: + case 1919: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7570 +//line sql.y:7541 { skipToEnd(yylex) } - case 1925: + case 1920: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7574 +//line sql.y:7545 { skipToEnd(yylex) } - case 1926: + case 1921: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7578 +//line sql.y:7549 { skipToEnd(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index 8b53b717a1a..880e6e7a2b5 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -68,7 +68,6 @@ func bindVariable(yylex yyLexer, bvar string) { databaseOption DatabaseOption columnType ColumnType columnCharset ColumnCharset - jsonPathParam JSONPathParam } %union { @@ -154,7 +153,6 @@ func bindVariable(yylex yyLexer, bvar string) { renameTablePairs []*RenameTablePair alterOptions []AlterOption vindexParams []VindexParam - jsonPathParams []JSONPathParam jsonObjectParams []*JSONObjectParam partDefs []*PartitionDefinition partitionValueRange *PartitionValueRange @@ -546,8 +544,6 @@ func bindVariable(yylex yyLexer, bvar string) { %type partition_operation %type vindex_param %type vindex_param_list vindex_params_opt -%type json_path_param -%type json_path_param_list json_path_param_list_opt %type json_object_param %type json_object_param_list json_object_param_opt %type id_or_var vindex_type vindex_type_opt id_or_var_opt @@ -5709,21 +5705,25 @@ UTC_DATE func_paren_opt { $$ = &JSONQuoteExpr{ StringArg:$3 } } -| JSON_CONTAINS openb expression ',' expression json_path_param_list_opt closeb +| JSON_CONTAINS openb expression ',' expression_list closeb { - $$ = &JSONContainsExpr{Target: $3, Candidate: $5, PathList: $6} + $$ = &JSONContainsExpr{Target: $3, Candidate: $5[0], PathList: $5[1:]} } -| JSON_CONTAINS_PATH openb expression ',' expression ',' json_path_param_list closeb +| JSON_CONTAINS_PATH openb expression ',' expression ',' expression_list closeb { $$ = &JSONContainsPathExpr{JSONDoc: $3, OneOrAll: $5, PathList: $7} } -| JSON_EXTRACT openb expression ',' json_path_param_list closeb +| JSON_EXTRACT openb expression ',' expression_list closeb { $$ = &JSONExtractExpr{JSONDoc: $3, PathList: $5} } -| JSON_KEYS openb expression json_path_param_list_opt closeb +| JSON_KEYS openb expression closeb { - $$ = &JSONKeysExpr{JSONDoc: $3, PathList: $4} + $$ = &JSONKeysExpr{JSONDoc: $3} + } +| JSON_KEYS openb expression ',' expression closeb + { + $$ = &JSONKeysExpr{JSONDoc: $3, Path: $5} } | JSON_OVERLAPS openb expression ',' expression closeb { @@ -5733,23 +5733,23 @@ UTC_DATE func_paren_opt { $$ = &JSONSearchExpr{JSONDoc: $3, OneOrAll: $5, SearchStr: $7 } } -| JSON_SEARCH openb expression ',' expression ',' expression ',' expression json_path_param_list_opt closeb +| JSON_SEARCH openb expression ',' expression ',' expression ',' expression_list closeb { - $$ = &JSONSearchExpr{JSONDoc: $3, OneOrAll: $5, SearchStr: $7, EscapeChar: $9, PathList:$10 } + $$ = &JSONSearchExpr{JSONDoc: $3, OneOrAll: $5, SearchStr: $7, EscapeChar: $9[0], PathList:$9[1:] } } -| JSON_VALUE openb expression ',' json_path_param returning_type_opt closeb +| JSON_VALUE openb expression ',' expression returning_type_opt closeb { $$ = &JSONValueExpr{JSONDoc: $3, Path: $5, ReturningType: $6} } -| JSON_VALUE openb expression ',' json_path_param returning_type_opt on_empty closeb +| JSON_VALUE openb expression ',' expression returning_type_opt on_empty closeb { $$ = &JSONValueExpr{JSONDoc: $3, Path: $5, ReturningType: $6, EmptyOnResponse: $7} } -| JSON_VALUE openb expression ',' json_path_param returning_type_opt on_error closeb +| JSON_VALUE openb expression ',' expression returning_type_opt on_error closeb { $$ = &JSONValueExpr{JSONDoc: $3, Path: $5, ReturningType: $6, ErrorOnResponse: $7} } -| JSON_VALUE openb expression ',' json_path_param returning_type_opt on_empty on_error closeb +| JSON_VALUE openb expression ',' expression returning_type_opt on_empty on_error closeb { $$ = &JSONValueExpr{JSONDoc: $3, Path: $5, ReturningType: $6, EmptyOnResponse: $7, ErrorOnResponse: $8} } @@ -5769,7 +5769,7 @@ UTC_DATE func_paren_opt { $$ = &JSONAttributesExpr{Type:LengthAttributeType, JSONDoc:$3 } } -| JSON_LENGTH openb expression ',' json_path_param closeb +| JSON_LENGTH openb expression ',' expression closeb { $$ = &JSONAttributesExpr{Type:LengthAttributeType, JSONDoc:$3, Path: $5 } } @@ -5954,35 +5954,6 @@ returning_type_opt: $$ = $2 } -json_path_param_list_opt: - { - $$ = nil - } -| ',' json_path_param_list - { - $$ = $2 - } - -json_path_param_list: - json_path_param - { - $$ = []JSONPathParam{$1} - } -| json_path_param_list ',' json_path_param - { - $$ = append($$, $3) - } - -json_path_param: - text_literal_or_arg - { - $$ = JSONPathParam($1) - } -| column_name - { - $$ = JSONPathParam($1) - } - interval: interval_time_stamp {}