diff --git a/pkg/frontend/session.go b/pkg/frontend/session.go index 5bf5cb6821fb1a6a11b07bf4f5c31bb50e299cf9..116221ce22710ed46cd9f7bdfb00831452af8178 100644 --- a/pkg/frontend/session.go +++ b/pkg/frontend/session.go @@ -894,9 +894,10 @@ func (tcc *TxnCompilerContext) Resolve(dbName string, tableName string) (*plan2. Precision: attr.Attr.Type.Precision, Scale: attr.Attr.Type.Scale, }, - Primary: attr.Attr.Primary, - Default: attr.Attr.Default, - Comment: attr.Attr.Comment, + Primary: attr.Attr.Primary, + Default: attr.Attr.Default, + Comment: attr.Attr.Comment, + AutoIncrement: attr.Attr.AutoIncrement, }) } else if pro, ok := def.(*engine.PropertiesDef); ok { for _, p := range pro.Properties { diff --git a/pkg/frontend/test/engine_mock.go b/pkg/frontend/test/engine_mock.go index 13abf49f9e354f7fa7a4e7f7c9c33352f8c56b22..a779275e9aaab9efd4cc5ae28e7ba2a56f9dcab8 100644 --- a/pkg/frontend/test/engine_mock.go +++ b/pkg/frontend/test/engine_mock.go @@ -198,6 +198,20 @@ func (mr *MockRelationMockRecorder) GetPrimaryKeys(arg0 interface{}) *gomock.Cal return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPrimaryKeys", reflect.TypeOf((*MockRelation)(nil).GetPrimaryKeys), arg0) } +// GetTableID mocks base method. +func (m *MockRelation) GetTableID(arg0 context.Context) string { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTableID", arg0) + ret0, _ := ret[0].(string) + return ret0 +} + +// GetTableID indicates an expected call of GetTableID. +func (mr *MockRelationMockRecorder) GetTableID(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTableID", reflect.TypeOf((*MockRelation)(nil).GetTableID), arg0) +} + // NewReader mocks base method. func (m *MockRelation) NewReader(arg0 context.Context, arg1 int, arg2 *plan.Expr, arg3 [][]byte) ([]engine.Reader, error) { m.ctrl.T.Helper() diff --git a/pkg/pb/plan/plan.pb.go b/pkg/pb/plan/plan.pb.go index 483ff2f16d7ab562772752e91b2cd08ec4c34acf..8b46652f3efd6ab4f1c84d1e24ab6b2f693ea7c3 100644 --- a/pkg/pb/plan/plan.pb.go +++ b/pkg/pb/plan/plan.pb.go @@ -1956,8 +1956,9 @@ type ColDef struct { Typ *Type `protobuf:"bytes,3,opt,name=typ,proto3" json:"typ,omitempty"` Default *Default `protobuf:"bytes,4,opt,name=default,proto3" json:"default,omitempty"` Primary bool `protobuf:"varint,5,opt,name=primary,proto3" json:"primary,omitempty"` - Pkidx int32 `protobuf:"varint,6,opt,name=pkidx,proto3" json:"pkidx,omitempty"` - Comment string `protobuf:"bytes,7,opt,name=comment,proto3" json:"comment,omitempty"` + AutoIncrement bool `protobuf:"varint,6,opt,name=auto_increment,json=autoIncrement,proto3" json:"auto_increment,omitempty"` + Pkidx int32 `protobuf:"varint,7,opt,name=pkidx,proto3" json:"pkidx,omitempty"` + Comment string `protobuf:"bytes,8,opt,name=comment,proto3" json:"comment,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2031,6 +2032,13 @@ func (m *ColDef) GetPrimary() bool { return false } +func (m *ColDef) GetAutoIncrement() bool { + if m != nil { + return m.AutoIncrement + } + return false +} + func (m *ColDef) GetPkidx() int32 { if m != nil { return m.Pkidx @@ -3366,12 +3374,13 @@ type Node struct { Limit *Expr `protobuf:"bytes,15,opt,name=limit,proto3" json:"limit,omitempty"` Offset *Expr `protobuf:"bytes,16,opt,name=offset,proto3" json:"offset,omitempty"` TableDef *TableDef `protobuf:"bytes,17,opt,name=table_def,json=tableDef,proto3" json:"table_def,omitempty"` - ObjRef *ObjectRef `protobuf:"bytes,18,opt,name=obj_ref,json=objRef,proto3" json:"obj_ref,omitempty"` - RowsetData *RowsetData `protobuf:"bytes,19,opt,name=rowset_data,json=rowsetData,proto3" json:"rowset_data,omitempty"` - ExtraOptions string `protobuf:"bytes,20,opt,name=extra_options,json=extraOptions,proto3" json:"extra_options,omitempty"` - DeleteTablesCtx []*DeleteTableCtx `protobuf:"bytes,21,rep,name=deleteTablesCtx,proto3" json:"deleteTablesCtx,omitempty"` - BindingTags []int32 `protobuf:"varint,22,rep,packed,name=binding_tags,json=bindingTags,proto3" json:"binding_tags,omitempty"` - AnalyzeInfo *AnalyzeInfo `protobuf:"bytes,23,opt,name=analyze_info,json=analyzeInfo,proto3" json:"analyze_info,omitempty"` + TableDefVec []*TableDef `protobuf:"bytes,18,rep,name=table_def_vec,json=tableDefVec,proto3" json:"table_def_vec,omitempty"` + ObjRef *ObjectRef `protobuf:"bytes,19,opt,name=obj_ref,json=objRef,proto3" json:"obj_ref,omitempty"` + RowsetData *RowsetData `protobuf:"bytes,20,opt,name=rowset_data,json=rowsetData,proto3" json:"rowset_data,omitempty"` + ExtraOptions string `protobuf:"bytes,21,opt,name=extra_options,json=extraOptions,proto3" json:"extra_options,omitempty"` + DeleteTablesCtx []*DeleteTableCtx `protobuf:"bytes,22,rep,name=deleteTablesCtx,proto3" json:"deleteTablesCtx,omitempty"` + BindingTags []int32 `protobuf:"varint,23,rep,packed,name=binding_tags,json=bindingTags,proto3" json:"binding_tags,omitempty"` + AnalyzeInfo *AnalyzeInfo `protobuf:"bytes,24,opt,name=analyze_info,json=analyzeInfo,proto3" json:"analyze_info,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -3529,6 +3538,13 @@ func (m *Node) GetTableDef() *TableDef { return nil } +func (m *Node) GetTableDefVec() []*TableDef { + if m != nil { + return m.TableDefVec + } + return nil +} + func (m *Node) GetObjRef() *ObjectRef { if m != nil { return m.ObjRef @@ -5590,312 +5606,314 @@ func init() { func init() { proto.RegisterFile("plan.proto", fileDescriptor_2d655ab2f7683c23) } var fileDescriptor_2d655ab2f7683c23 = []byte{ - // 4870 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x7a, 0xcd, 0x8f, 0x1b, 0xc9, - 0x75, 0x38, 0x9b, 0x9f, 0xcd, 0x47, 0x72, 0xa6, 0x55, 0xd2, 0x4a, 0x94, 0xac, 0xd5, 0x8e, 0x5a, - 0x1f, 0x1e, 0x6b, 0xbd, 0xda, 0xdd, 0x91, 0x2c, 0xcb, 0x86, 0x7f, 0xb6, 0x39, 0x9c, 0xd6, 0x90, - 0x2b, 0x0e, 0x39, 0x2e, 0x72, 0xa4, 0xdd, 0x35, 0x7e, 0x20, 0x9a, 0xec, 0x26, 0xa7, 0xa5, 0x66, - 0x37, 0xb7, 0xbb, 0xa9, 0x99, 0x59, 0x20, 0x80, 0x0f, 0x49, 0x80, 0x9c, 0xe2, 0x43, 0x80, 0xe4, - 0x68, 0x04, 0x81, 0xef, 0xf9, 0x13, 0x72, 0x09, 0x72, 0x0c, 0x10, 0xe4, 0x10, 0xe4, 0x92, 0x6c, - 0x8e, 0xce, 0x2d, 0xc7, 0xe4, 0x10, 0xbc, 0x57, 0xd5, 0xcd, 0xe6, 0x70, 0xb4, 0xbb, 0x58, 0xe4, - 0x42, 0xd4, 0xfb, 0xa8, 0x57, 0xaf, 0xaa, 0xde, 0x67, 0x35, 0x01, 0xe6, 0xae, 0xe9, 0x3d, 0x9c, - 0x07, 0x7e, 0xe4, 0xb3, 0x3c, 0x8e, 0x6f, 0x7c, 0x30, 0x75, 0xa2, 0xe3, 0xc5, 0xe8, 0xe1, 0xd8, - 0x9f, 0x7d, 0x38, 0xf5, 0xa7, 0xfe, 0x87, 0x44, 0x1c, 0x2d, 0x26, 0x04, 0x11, 0x40, 0x23, 0x31, - 0x49, 0xff, 0xad, 0x02, 0xf9, 0xc1, 0xd9, 0xdc, 0x66, 0x1b, 0x90, 0x75, 0xac, 0xba, 0xb2, 0xa5, - 0x6c, 0x17, 0x78, 0xd6, 0xb1, 0xd8, 0x0d, 0x50, 0xbd, 0x85, 0xeb, 0x9a, 0x23, 0xd7, 0xae, 0x67, - 0xb7, 0x94, 0x6d, 0x95, 0x27, 0x30, 0xbb, 0x02, 0x85, 0x13, 0xc7, 0x8a, 0x8e, 0xeb, 0x39, 0x62, - 0x17, 0x00, 0xbb, 0x09, 0xe5, 0x79, 0x60, 0x8f, 0x9d, 0xd0, 0xf1, 0xbd, 0x7a, 0x9e, 0x28, 0x4b, - 0x04, 0x63, 0x90, 0x0f, 0x9d, 0x2f, 0xed, 0x7a, 0x81, 0x08, 0x34, 0x46, 0x39, 0xe1, 0xd8, 0x74, - 0xed, 0x7a, 0x51, 0xc8, 0x21, 0x40, 0xff, 0xbb, 0x1c, 0x14, 0x9a, 0xbe, 0x17, 0x46, 0xec, 0x2a, - 0x14, 0x9d, 0x10, 0x57, 0x25, 0xbd, 0x54, 0x2e, 0x21, 0x76, 0x05, 0xf2, 0xce, 0x1b, 0xd3, 0x25, - 0xbd, 0x72, 0xad, 0x0c, 0x27, 0x08, 0xb1, 0x16, 0x62, 0x51, 0x29, 0x05, 0xb1, 0x96, 0xc4, 0x86, - 0x88, 0x45, 0x85, 0xca, 0x88, 0x0d, 0x25, 0x76, 0x84, 0x58, 0xd4, 0x46, 0x45, 0xec, 0x48, 0x62, - 0x17, 0x88, 0x45, 0x75, 0xf2, 0x88, 0x5d, 0x48, 0xec, 0x04, 0xb1, 0xa5, 0x2d, 0x65, 0x3b, 0x8b, - 0x58, 0x84, 0xd8, 0x0d, 0x28, 0x59, 0x66, 0x64, 0x23, 0x41, 0x45, 0xed, 0x5b, 0x19, 0x1e, 0x23, - 0x98, 0x0e, 0x15, 0x1c, 0x46, 0xce, 0x8c, 0xe8, 0x65, 0xa9, 0x66, 0x1a, 0xc9, 0x7e, 0x04, 0x55, - 0xcb, 0x1e, 0x3b, 0x33, 0xd3, 0x7d, 0xf2, 0x18, 0x99, 0x60, 0x4b, 0xd9, 0xae, 0xec, 0x6c, 0x3e, - 0xa4, 0x0b, 0x4d, 0x28, 0xad, 0x0c, 0x5f, 0x61, 0x63, 0x4f, 0xa1, 0x26, 0xe1, 0x8f, 0x77, 0x9e, - 0xe2, 0xbc, 0x0a, 0xcd, 0xd3, 0x56, 0xe6, 0x7d, 0xbc, 0xf3, 0xb4, 0x95, 0xe1, 0xab, 0x8c, 0xec, - 0x2e, 0x54, 0x71, 0xed, 0x30, 0x32, 0x67, 0x73, 0x9c, 0x58, 0x95, 0x5a, 0xad, 0x60, 0x71, 0x5b, - 0xaf, 0x42, 0xdf, 0x43, 0x86, 0x9a, 0x3c, 0xb1, 0x18, 0xc1, 0xb6, 0x00, 0x2c, 0x7b, 0x62, 0x2e, - 0xdc, 0x08, 0xc9, 0x1b, 0xf2, 0xe8, 0x52, 0xb8, 0xdd, 0x12, 0x14, 0xde, 0x98, 0xee, 0xc2, 0xd6, - 0x6f, 0x82, 0x7a, 0x68, 0x06, 0xe6, 0x8c, 0xdb, 0x13, 0xa6, 0x41, 0x6e, 0xee, 0x87, 0xd2, 0xb4, - 0x70, 0xa8, 0x77, 0xa0, 0xf8, 0xc2, 0x0c, 0x90, 0xc6, 0x20, 0xef, 0x99, 0x33, 0x9b, 0x88, 0x65, - 0x4e, 0x63, 0xbc, 0xf5, 0xf0, 0x2c, 0x8c, 0xec, 0x99, 0xb4, 0x3b, 0x09, 0x21, 0x7e, 0xea, 0xfa, - 0x23, 0x79, 0xc3, 0x2a, 0x97, 0x90, 0xde, 0x85, 0x62, 0xd3, 0x77, 0x51, 0xda, 0x35, 0x28, 0x05, - 0xb6, 0x3b, 0x5c, 0xae, 0x56, 0x0c, 0x6c, 0xf7, 0xd0, 0x0f, 0x91, 0x30, 0xf6, 0x05, 0x21, 0x2b, - 0x08, 0x63, 0x9f, 0x08, 0xf1, 0xfa, 0xb9, 0xe5, 0xfa, 0xfa, 0x00, 0xa0, 0xe9, 0x07, 0xc1, 0x77, - 0x96, 0x79, 0x05, 0x0a, 0x96, 0x3d, 0x5f, 0x7a, 0x07, 0x01, 0xfa, 0x03, 0x50, 0x8d, 0xd3, 0x79, - 0xd0, 0x71, 0xc2, 0x88, 0xdd, 0x82, 0xbc, 0xeb, 0x84, 0x51, 0x5d, 0xd9, 0xca, 0x6d, 0x57, 0x76, - 0x40, 0xdc, 0x1d, 0x52, 0x39, 0xe1, 0xf5, 0x2d, 0x50, 0x0f, 0xcc, 0xd3, 0x17, 0x78, 0x92, 0x28, - 0x8d, 0x8e, 0x54, 0x1e, 0x91, 0x3c, 0xdf, 0x07, 0x00, 0x03, 0x33, 0x98, 0xda, 0x11, 0xf9, 0xee, - 0x4d, 0xc8, 0x45, 0x67, 0x73, 0xe2, 0x48, 0xc4, 0x21, 0x81, 0x23, 0x5a, 0xff, 0x2f, 0x05, 0x2a, - 0xfd, 0xc5, 0xe8, 0x8b, 0x85, 0x1d, 0x9c, 0xe1, 0x8e, 0xb6, 0x97, 0xdc, 0x1b, 0x3b, 0x57, 0x05, - 0x77, 0x8a, 0xbe, 0x9c, 0x89, 0x5b, 0xf4, 0x7c, 0xcb, 0x1e, 0x3a, 0x56, 0xbc, 0x45, 0x04, 0xdb, - 0x16, 0x06, 0x0b, 0x7f, 0x2e, 0x0f, 0x2d, 0xeb, 0xcf, 0xd9, 0x16, 0x14, 0xc6, 0xc7, 0x8e, 0x6b, - 0x91, 0x97, 0xad, 0xee, 0x48, 0x10, 0xd8, 0x75, 0x50, 0x03, 0xff, 0x64, 0x98, 0x0a, 0x01, 0xa5, - 0xc0, 0x3f, 0xe9, 0x3b, 0x5f, 0xe2, 0x79, 0x8b, 0x08, 0x04, 0x50, 0xec, 0x37, 0x1b, 0x9d, 0x06, - 0xd7, 0x32, 0x38, 0x36, 0x3e, 0x6d, 0xf7, 0x07, 0x7d, 0x4d, 0x61, 0x1b, 0x00, 0xdd, 0xde, 0x60, - 0x28, 0xe1, 0x2c, 0x2b, 0x42, 0xb6, 0xdd, 0xd5, 0x72, 0xc8, 0x83, 0xf8, 0x76, 0x57, 0xcb, 0xb3, - 0x12, 0xe4, 0x1a, 0xdd, 0xcf, 0xb4, 0x02, 0x0d, 0x3a, 0x1d, 0xad, 0xa8, 0xff, 0x93, 0x02, 0xe5, - 0xde, 0xe8, 0x95, 0x3d, 0x8e, 0x70, 0xcf, 0x68, 0x53, 0x76, 0xf0, 0xc6, 0x0e, 0x68, 0xdb, 0x39, - 0x2e, 0x21, 0xdc, 0x88, 0x35, 0x12, 0x71, 0x84, 0x67, 0xad, 0x11, 0xf1, 0x8d, 0x8f, 0xed, 0x99, - 0x49, 0x9b, 0x43, 0x3e, 0x82, 0xd0, 0x86, 0xfd, 0xd1, 0x2b, 0xda, 0x5e, 0x8e, 0xe3, 0x90, 0xbd, - 0x07, 0x15, 0x21, 0x63, 0x48, 0x06, 0x54, 0xa0, 0xb3, 0x00, 0x81, 0xea, 0xa2, 0x19, 0x5f, 0x83, - 0x92, 0x35, 0x12, 0xc4, 0x22, 0x11, 0x8b, 0xd6, 0x88, 0x08, 0x38, 0x93, 0xa4, 0x0a, 0x62, 0x49, - 0xce, 0x24, 0x14, 0x31, 0x5c, 0x07, 0xd5, 0x1f, 0xbd, 0x12, 0x54, 0x95, 0xa8, 0x25, 0x7f, 0xf4, - 0x0a, 0x49, 0xfa, 0xbf, 0x2b, 0xa0, 0x3e, 0x5b, 0x78, 0xe3, 0x08, 0x43, 0xea, 0x1d, 0xc8, 0x4f, - 0x16, 0xde, 0x58, 0xde, 0xbb, 0x0c, 0x1d, 0xc9, 0x9e, 0x39, 0x11, 0xd1, 0xd6, 0xcc, 0x60, 0x8a, - 0x36, 0xba, 0x66, 0x6b, 0x88, 0xd7, 0xff, 0x5c, 0x4a, 0x7c, 0xe6, 0x9a, 0x53, 0xa6, 0x42, 0xbe, - 0xdb, 0xeb, 0x1a, 0x5a, 0x86, 0x55, 0x41, 0x6d, 0x77, 0x07, 0x06, 0xef, 0x36, 0x3a, 0x9a, 0x42, - 0x57, 0x33, 0x68, 0xec, 0x76, 0x0c, 0x2d, 0x8b, 0x94, 0x17, 0xbd, 0x4e, 0x63, 0xd0, 0xee, 0x18, - 0x5a, 0x5e, 0x50, 0x78, 0xbb, 0x39, 0xd0, 0x54, 0xa6, 0x41, 0xf5, 0x90, 0xf7, 0xf6, 0x8e, 0x9a, - 0xc6, 0xb0, 0x7b, 0xd4, 0xe9, 0x68, 0x1a, 0xbb, 0x0c, 0x9b, 0x09, 0xa6, 0x27, 0x90, 0x5b, 0x38, - 0xe5, 0x45, 0x83, 0x37, 0xf8, 0xbe, 0xf6, 0x4b, 0xa6, 0x42, 0xae, 0xb1, 0xbf, 0xaf, 0xfd, 0x46, - 0xc1, 0xd1, 0xcb, 0x76, 0x57, 0xfb, 0x4d, 0x56, 0xff, 0xe3, 0x1c, 0xe4, 0x51, 0xc1, 0xaf, 0x37, - 0x6b, 0xf6, 0x3d, 0x50, 0xc6, 0x74, 0x73, 0x95, 0x9d, 0x8a, 0xa0, 0x51, 0xd2, 0x68, 0x65, 0xb8, - 0x82, 0xbb, 0x56, 0x84, 0x7d, 0x56, 0x76, 0x36, 0x04, 0x31, 0x0e, 0x47, 0x48, 0x9f, 0xb3, 0x9b, - 0xa0, 0xbc, 0x91, 0xc6, 0x5a, 0x15, 0x74, 0x11, 0x90, 0x90, 0xfa, 0x86, 0x6d, 0x41, 0x6e, 0xec, - 0x8b, 0xe4, 0x90, 0xd0, 0x45, 0x38, 0x68, 0x65, 0x38, 0x92, 0x50, 0xfe, 0x84, 0xae, 0x35, 0x91, - 0x1f, 0xdf, 0x0a, 0x4a, 0x98, 0xb0, 0x7b, 0x90, 0x0b, 0x17, 0x23, 0xba, 0xdb, 0xca, 0xce, 0xa5, - 0x35, 0x1f, 0x43, 0x31, 0xe1, 0x62, 0xc4, 0xee, 0x43, 0x7e, 0xec, 0x07, 0x01, 0xdd, 0x72, 0x12, - 0xc4, 0x97, 0xc1, 0x07, 0x93, 0x0d, 0xd2, 0xd9, 0x16, 0x28, 0x11, 0xa5, 0x91, 0x84, 0x69, 0xe9, - 0xfd, 0xb8, 0x60, 0xc4, 0xee, 0xca, 0x90, 0x02, 0x69, 0x9d, 0xe2, 0x80, 0x83, 0x72, 0x90, 0xca, - 0x74, 0xc8, 0xcd, 0xcc, 0x53, 0x99, 0x33, 0x24, 0x53, 0x1c, 0x69, 0x50, 0xa7, 0x99, 0x79, 0xba, - 0x5b, 0x84, 0xbc, 0x7d, 0x3a, 0x0f, 0xf4, 0xeb, 0x50, 0x4e, 0x32, 0x0f, 0xab, 0x82, 0x62, 0x4a, - 0xd7, 0x51, 0x4c, 0x7d, 0x1b, 0x13, 0x41, 0x9c, 0x5b, 0x56, 0x69, 0x08, 0xc5, 0x0e, 0xa5, 0x8c, - 0xd0, 0x0b, 0x31, 0x38, 0xef, 0xbd, 0x25, 0xd4, 0xdf, 0x85, 0x9c, 0xe9, 0x4e, 0x89, 0x7d, 0x63, - 0x87, 0xc5, 0xdb, 0x9f, 0xcd, 0x03, 0x3b, 0x0c, 0xc5, 0x4d, 0x9b, 0xee, 0x34, 0xb6, 0x83, 0xdc, - 0xc5, 0x76, 0xf0, 0x7d, 0x28, 0xc9, 0x0c, 0x24, 0x2f, 0xb4, 0x26, 0x38, 0xf6, 0x04, 0x92, 0xc7, - 0x54, 0x56, 0x87, 0xd2, 0x3c, 0x70, 0x66, 0x66, 0x70, 0x26, 0xd2, 0x3e, 0x8f, 0x41, 0x8c, 0xb1, - 0xf3, 0xd7, 0x8e, 0x75, 0x1a, 0xd7, 0x21, 0x04, 0x20, 0xff, 0xd8, 0x9f, 0xcd, 0x6c, 0x2f, 0x92, - 0x3e, 0x1a, 0x83, 0xfa, 0x17, 0x50, 0x92, 0xd2, 0xd9, 0x6d, 0xa8, 0x62, 0x49, 0x32, 0x34, 0x47, - 0x8e, 0xeb, 0x44, 0x67, 0xb2, 0x50, 0xa9, 0x20, 0xae, 0x21, 0x50, 0xe8, 0x81, 0x78, 0xa0, 0xd2, - 0x56, 0x57, 0x3c, 0x10, 0xf1, 0xec, 0x0e, 0xd4, 0xfc, 0xc0, 0x99, 0x3a, 0xde, 0x30, 0x8c, 0x02, - 0xc7, 0x9b, 0xca, 0xb8, 0x5a, 0x15, 0xc8, 0x3e, 0xe1, 0xf4, 0xbf, 0x54, 0x40, 0x6d, 0x7b, 0x96, - 0x7d, 0x8a, 0x47, 0xf9, 0x20, 0x1d, 0xc1, 0xeb, 0x42, 0x60, 0x4c, 0x14, 0x83, 0xe5, 0xf1, 0xc4, - 0xc7, 0x9e, 0x4d, 0x1d, 0xfb, 0xf7, 0xa0, 0x8c, 0xa9, 0x0b, 0xc7, 0x61, 0x3d, 0xb7, 0x95, 0xdb, - 0x2e, 0x73, 0x75, 0xec, 0xbb, 0x18, 0x61, 0x42, 0xfd, 0x21, 0x94, 0x13, 0x11, 0xac, 0x02, 0xa5, - 0x76, 0xf7, 0x45, 0xa3, 0xdd, 0xd9, 0xd3, 0x32, 0x08, 0x7c, 0xde, 0xeb, 0x1a, 0x07, 0x8d, 0x43, - 0x4d, 0xc1, 0x40, 0xbb, 0xdb, 0x6f, 0x6b, 0x59, 0xfd, 0x1e, 0xd4, 0x0e, 0xc5, 0x39, 0x3e, 0xb7, - 0xcf, 0x50, 0xbb, 0x2b, 0x50, 0x10, 0x92, 0x15, 0x92, 0x2c, 0x00, 0x7d, 0x07, 0xd4, 0xc3, 0xc0, - 0x9f, 0xdb, 0x41, 0x74, 0x86, 0xd1, 0xf4, 0xb5, 0x7d, 0x26, 0x2d, 0x01, 0x87, 0xcb, 0x2c, 0x97, - 0x4d, 0x67, 0xb9, 0x5f, 0xa0, 0x68, 0x9a, 0xe3, 0xd8, 0x21, 0x8a, 0x7e, 0x08, 0x30, 0x4f, 0x10, - 0x32, 0x7d, 0xc6, 0xfe, 0x2d, 0x85, 0xf3, 0x14, 0x87, 0xfe, 0xdf, 0x59, 0xa8, 0x1d, 0x9a, 0x41, - 0xe4, 0xa0, 0x67, 0xb6, 0xbd, 0x89, 0xcf, 0xbe, 0x0f, 0xf9, 0xe8, 0x6c, 0x6e, 0xcb, 0xb3, 0xbb, - 0x9c, 0xc4, 0x06, 0xc1, 0x42, 0xc7, 0x46, 0x0c, 0x78, 0x6b, 0xc6, 0x5b, 0x6e, 0x8d, 0x82, 0xd3, - 0x47, 0x70, 0x79, 0x1e, 0x4f, 0x43, 0x84, 0x1d, 0x52, 0xdd, 0x2b, 0xee, 0xee, 0x22, 0x12, 0xbb, - 0x0b, 0xa5, 0xa6, 0xef, 0x2e, 0x66, 0x5e, 0x58, 0xcf, 0xaf, 0x05, 0xe3, 0x98, 0xc4, 0x1e, 0x80, - 0x96, 0x4c, 0x8e, 0xd9, 0x0b, 0x74, 0x90, 0x6b, 0x78, 0xa6, 0x43, 0x35, 0xc1, 0x75, 0x17, 0x33, - 0x51, 0xb7, 0xf2, 0x15, 0x1c, 0x7b, 0x04, 0x90, 0xc0, 0x61, 0xbd, 0x44, 0x0b, 0x9f, 0xdf, 0x76, - 0x3b, 0xb2, 0x67, 0x3c, 0xc5, 0x86, 0xa5, 0xbc, 0xe9, 0x4e, 0xfd, 0xc0, 0x89, 0x8e, 0x67, 0x14, - 0x9c, 0x72, 0x7c, 0x89, 0x60, 0xf7, 0x61, 0xc3, 0x09, 0xfb, 0x8b, 0x51, 0x32, 0x9f, 0x42, 0x93, - 0xca, 0xcf, 0x61, 0xf5, 0x3f, 0x28, 0xe9, 0xd3, 0xc7, 0x12, 0xee, 0x2e, 0xd4, 0x96, 0xca, 0x2d, - 0x83, 0xc1, 0x2a, 0x92, 0x6d, 0xc3, 0xa6, 0x1f, 0x58, 0x8e, 0x67, 0x62, 0x39, 0x25, 0x16, 0xc0, - 0x5b, 0xa8, 0xf1, 0xf3, 0x68, 0xb6, 0x05, 0x15, 0xcb, 0x0e, 0xc7, 0x81, 0x33, 0x8f, 0x96, 0x87, - 0x9f, 0x46, 0xa5, 0x9d, 0x38, 0xbf, 0xe2, 0xc4, 0xec, 0x3e, 0xa8, 0x2e, 0x86, 0x99, 0x63, 0xd3, - 0xa3, 0x03, 0x5e, 0xbd, 0x8f, 0x84, 0x86, 0x7c, 0x8e, 0x47, 0x11, 0x32, 0xac, 0x17, 0xd7, 0xf9, - 0x62, 0x9a, 0xfe, 0x2e, 0x94, 0x5e, 0x38, 0xf6, 0x89, 0x0c, 0x75, 0x6f, 0x1c, 0xfb, 0x24, 0x0e, - 0x75, 0x38, 0xd6, 0xff, 0x26, 0x0f, 0xea, 0x00, 0xbb, 0xa7, 0xb7, 0xc5, 0xc2, 0x2d, 0xcc, 0x05, - 0x6e, 0x9c, 0xa8, 0x97, 0x59, 0x67, 0x0f, 0x53, 0x39, 0x52, 0xd8, 0x03, 0xc8, 0x5b, 0xf6, 0x44, - 0x78, 0x6c, 0x25, 0xae, 0xdc, 0x62, 0x99, 0x18, 0xef, 0x84, 0xf9, 0x22, 0x0f, 0x7b, 0x17, 0x20, - 0x42, 0xca, 0x90, 0xac, 0x5d, 0x6c, 0xbd, 0x4c, 0x18, 0x59, 0x31, 0x96, 0xc7, 0x81, 0x6d, 0x46, - 0x76, 0xf8, 0x85, 0x2b, 0x6b, 0x97, 0x25, 0x82, 0xb5, 0x60, 0x03, 0x55, 0xda, 0xc1, 0x20, 0xe1, - 0x60, 0x2c, 0x90, 0x1b, 0xbf, 0x7d, 0x6e, 0xc9, 0xae, 0x64, 0xa2, 0x78, 0x61, 0x78, 0x51, 0x70, - 0xc6, 0x6b, 0x5e, 0x1a, 0x77, 0xe3, 0x3f, 0x15, 0x0a, 0x95, 0xb4, 0xe6, 0x3d, 0xc8, 0xce, 0x5f, - 0xcb, 0x6c, 0x1e, 0x5b, 0x60, 0x3a, 0x70, 0xb4, 0x32, 0x3c, 0x3b, 0x7f, 0x8d, 0x39, 0x0a, 0x43, - 0x71, 0x36, 0x9d, 0xa3, 0xe2, 0xe0, 0x86, 0x39, 0x0a, 0x43, 0xf3, 0x8f, 0x56, 0xe2, 0x40, 0x6e, - 0x55, 0x64, 0x2a, 0x60, 0x60, 0x7b, 0xb2, 0x64, 0xc4, 0x82, 0x89, 0xee, 0x65, 0x25, 0x4f, 0xc8, - 0x4b, 0xc3, 0x1c, 0x89, 0x44, 0xf6, 0x08, 0xca, 0x89, 0x39, 0xca, 0x12, 0x60, 0xcd, 0x5f, 0xbc, - 0x89, 0xdf, 0xca, 0xf0, 0x25, 0xdf, 0x6e, 0x01, 0x72, 0x96, 0x3d, 0xb9, 0xf1, 0x4b, 0x60, 0xeb, - 0x67, 0xf2, 0x4d, 0xe1, 0xae, 0x20, 0xc3, 0xdd, 0x4f, 0xb3, 0x4f, 0x15, 0x3d, 0x80, 0x7c, 0xd3, - 0x0f, 0x23, 0xb4, 0x90, 0xb1, 0x19, 0x88, 0x86, 0x5c, 0xe1, 0x34, 0x46, 0x5b, 0x0e, 0xfc, 0x13, - 0x2a, 0xa1, 0xb3, 0x84, 0x8e, 0x41, 0x5c, 0xc1, 0xb3, 0xde, 0x88, 0xce, 0x97, 0xe3, 0x90, 0x5a, - 0xeb, 0xc8, 0x0c, 0x84, 0xd5, 0x2b, 0x5c, 0x00, 0x88, 0x8d, 0xfc, 0x48, 0xf6, 0xbd, 0x0a, 0x17, - 0x80, 0xfe, 0xb7, 0x0a, 0x45, 0xa6, 0x3d, 0x33, 0x32, 0x31, 0x35, 0x60, 0x9d, 0x3e, 0xf6, 0x17, - 0x5e, 0x24, 0x1b, 0x1e, 0x2c, 0xdc, 0x9b, 0x08, 0xa3, 0x51, 0x51, 0xb2, 0x13, 0x54, 0xa1, 0x7b, - 0x19, 0x31, 0x82, 0x8c, 0x81, 0x7f, 0xe1, 0xba, 0xc2, 0x40, 0x55, 0x2e, 0x00, 0xd4, 0xcd, 0x79, - 0xb4, 0x43, 0x21, 0xaf, 0xc0, 0x71, 0x48, 0x98, 0x27, 0x8f, 0xc9, 0xe9, 0x72, 0x1c, 0x87, 0x88, - 0x99, 0x3c, 0xda, 0x21, 0x2b, 0xcb, 0x72, 0x1c, 0x12, 0xe6, 0xc9, 0x63, 0x8a, 0x57, 0x0a, 0xc7, - 0x21, 0x16, 0x16, 0x61, 0x5d, 0xa5, 0x48, 0xa8, 0x84, 0xfa, 0x4b, 0x00, 0xee, 0x9f, 0x84, 0x76, - 0x44, 0x5a, 0xdf, 0x4f, 0xca, 0x76, 0x25, 0x6d, 0x36, 0xb1, 0xa1, 0x26, 0x65, 0xfc, 0xed, 0x15, - 0x1f, 0xab, 0x2d, 0x7d, 0xcc, 0x8c, 0x4c, 0xe1, 0x64, 0xfa, 0xbf, 0x2a, 0x50, 0xe9, 0x05, 0x96, - 0x1d, 0xec, 0x9e, 0xf5, 0xe7, 0xf6, 0x38, 0xc9, 0xde, 0xca, 0x5b, 0xb2, 0xf7, 0x4d, 0xca, 0xa5, - 0xae, 0x99, 0x84, 0x29, 0xf4, 0xa4, 0x18, 0xc1, 0x3e, 0x86, 0xfc, 0xc4, 0x35, 0x45, 0x4a, 0xdf, - 0xd8, 0x79, 0x57, 0x96, 0xe8, 0x4b, 0xf1, 0xf1, 0x18, 0xab, 0x6f, 0x4e, 0xac, 0xfa, 0xaf, 0x93, - 0xf5, 0xa9, 0x24, 0xc7, 0x86, 0xa6, 0xdf, 0xd4, 0x32, 0x58, 0x9b, 0xef, 0x19, 0xfd, 0xa6, 0xa6, - 0xb0, 0x4d, 0xa8, 0x60, 0x29, 0xdd, 0x1f, 0x3e, 0x6b, 0xf3, 0xfe, 0x40, 0xcb, 0x52, 0x87, 0x44, - 0x88, 0x4e, 0xa3, 0x3f, 0x10, 0x45, 0xf9, 0x51, 0xb7, 0xfd, 0xab, 0x23, 0x43, 0x53, 0x57, 0x0a, - 0x79, 0x0d, 0xab, 0x7d, 0x78, 0xe9, 0x78, 0x96, 0x7f, 0x42, 0x9b, 0xfb, 0x20, 0x95, 0x40, 0x86, - 0xa3, 0xb3, 0x0b, 0x1a, 0xd2, 0xca, 0xd2, 0xc6, 0xcf, 0xd8, 0x0f, 0x41, 0xf5, 0x51, 0x35, 0x64, - 0x15, 0x47, 0x78, 0x69, 0x6d, 0x47, 0xbc, 0xe4, 0x0b, 0x00, 0x4d, 0xd8, 0xb5, 0x4d, 0x4b, 0xb6, - 0xc1, 0x34, 0xc6, 0x6b, 0xc5, 0xe3, 0x10, 0xaf, 0x43, 0x38, 0xd4, 0x7f, 0x9f, 0x85, 0xf2, 0xd1, - 0xdc, 0x32, 0x23, 0xbb, 0x19, 0x9d, 0xa6, 0x9b, 0x26, 0x65, 0xa5, 0x69, 0xba, 0x0e, 0x6a, 0x34, - 0x12, 0x25, 0x8b, 0x3c, 0xe5, 0x52, 0x34, 0x72, 0xe3, 0x46, 0x6b, 0x1e, 0x38, 0x43, 0x74, 0x31, - 0x91, 0x00, 0x8a, 0xf3, 0xc0, 0x79, 0x6e, 0x63, 0xe1, 0x55, 0x91, 0x84, 0x21, 0x46, 0x94, 0xe4, - 0x49, 0x0a, 0x89, 0x6d, 0xeb, 0x14, 0x65, 0x1e, 0x3b, 0x96, 0x4d, 0x33, 0x45, 0x0c, 0x2c, 0x21, - 0x8c, 0x53, 0xb7, 0xa0, 0x1a, 0x93, 0x86, 0xcb, 0xc2, 0x10, 0x24, 0x19, 0x27, 0x7f, 0x00, 0x95, - 0x05, 0xa9, 0x3d, 0x24, 0x8b, 0x2a, 0x5d, 0x10, 0xb5, 0x41, 0x30, 0x34, 0x31, 0x76, 0xbf, 0x07, - 0x15, 0x3f, 0x3a, 0xb6, 0x83, 0xa1, 0x19, 0x45, 0x41, 0x6c, 0xc7, 0x40, 0xa8, 0x06, 0x62, 0x88, - 0x81, 0xce, 0x56, 0x30, 0x94, 0x25, 0x03, 0xa2, 0x88, 0x01, 0x4b, 0xe9, 0x4a, 0xc3, 0x33, 0xdd, - 0xb3, 0x2f, 0x6d, 0xaa, 0x64, 0xde, 0x05, 0x70, 0xbc, 0xf9, 0x22, 0x1a, 0x62, 0x10, 0x90, 0xf5, - 0x77, 0x99, 0x30, 0xe8, 0x18, 0x24, 0x6f, 0x11, 0x25, 0x74, 0x51, 0x91, 0x83, 0x40, 0x11, 0x43, - 0x32, 0x9f, 0x02, 0x4a, 0x2e, 0x35, 0x1f, 0xbb, 0xf2, 0xd4, 0x7c, 0xa2, 0xe7, 0xd3, 0xf3, 0x89, - 0xe1, 0x0e, 0xd4, 0x22, 0x67, 0x86, 0xdb, 0xf7, 0xc2, 0xc5, 0xcc, 0xb6, 0xe8, 0x08, 0x73, 0xe2, - 0x39, 0xa9, 0x29, 0x71, 0x28, 0x65, 0x66, 0xcf, 0xfc, 0xe0, 0x4c, 0x48, 0x29, 0x0a, 0x29, 0x02, - 0x45, 0xcd, 0xff, 0xdf, 0x57, 0x21, 0xdf, 0xf5, 0x2d, 0x9b, 0x7d, 0x04, 0x65, 0x7a, 0x6b, 0x58, - 0xaf, 0xce, 0x90, 0x4c, 0x3f, 0x94, 0xde, 0x54, 0x4f, 0x8e, 0xde, 0xfe, 0x3a, 0x71, 0x0b, 0xbd, - 0x3c, 0x8c, 0x56, 0x1b, 0x06, 0x8c, 0xaa, 0x9c, 0xf0, 0x64, 0xf5, 0x81, 0x8f, 0x6d, 0xf2, 0x90, - 0x7a, 0xa6, 0xfc, 0x05, 0x56, 0x2f, 0xe8, 0xf4, 0x5a, 0x73, 0x03, 0x54, 0x7a, 0xc3, 0x08, 0x6c, - 0x51, 0x28, 0x14, 0x78, 0x02, 0xa3, 0xd6, 0xaf, 0x7c, 0xc7, 0x13, 0x5a, 0x17, 0xd7, 0xb4, 0xfe, - 0xc4, 0x77, 0x3c, 0x72, 0x6d, 0x15, 0xb9, 0x48, 0xeb, 0x3b, 0x50, 0xf2, 0x3d, 0xb1, 0x6e, 0x69, - 0x6d, 0xdd, 0xa2, 0xef, 0xd1, 0x92, 0xef, 0x43, 0x65, 0xe2, 0xb8, 0x91, 0x1d, 0x08, 0x46, 0x75, - 0x8d, 0x11, 0x04, 0x99, 0x98, 0xef, 0x81, 0x3a, 0x0d, 0xfc, 0xc5, 0x1c, 0xbd, 0xb2, 0xbc, 0x5e, - 0x58, 0x12, 0x6d, 0xf7, 0x0c, 0x77, 0x4d, 0x43, 0xc7, 0x9b, 0x0e, 0x43, 0x1b, 0x3b, 0xc5, 0xb5, - 0x5d, 0xc7, 0xf4, 0xbe, 0x4d, 0x52, 0xcd, 0xe9, 0x54, 0xac, 0x5f, 0x59, 0x97, 0x6a, 0x4e, 0xa7, - 0xb4, 0x78, 0x3a, 0x24, 0x54, 0xbf, 0x31, 0x24, 0x7c, 0xb4, 0x74, 0x9a, 0xe8, 0x34, 0xac, 0xd7, - 0x68, 0x82, 0x7c, 0xb8, 0x48, 0x82, 0x40, 0xe2, 0x37, 0xd1, 0x69, 0xc8, 0xde, 0x07, 0xf5, 0x04, - 0x3b, 0xa3, 0xb9, 0x3d, 0xa6, 0x17, 0xc7, 0xa4, 0x01, 0x5e, 0x46, 0x31, 0x5e, 0x3a, 0x71, 0x3c, - 0x0a, 0x67, 0x5b, 0x50, 0x70, 0x9d, 0x99, 0x13, 0xd5, 0x37, 0xd7, 0x9f, 0xa1, 0x88, 0xc0, 0x74, - 0x28, 0xfa, 0x93, 0x09, 0x6e, 0x5f, 0x5b, 0x63, 0x91, 0x14, 0xf6, 0x3e, 0x88, 0x42, 0x69, 0x68, - 0xd9, 0x93, 0xfa, 0xa5, 0x0b, 0xf3, 0x89, 0x1a, 0xc5, 0x95, 0xdc, 0x36, 0x94, 0xfc, 0xd1, 0xab, - 0x61, 0x60, 0x4f, 0xea, 0xec, 0xe2, 0x67, 0x98, 0xa2, 0x3f, 0x7a, 0xc5, 0xed, 0x09, 0xfb, 0x18, - 0x2a, 0x01, 0x65, 0xac, 0xa1, 0x65, 0x46, 0x66, 0xfd, 0x72, 0x7a, 0x33, 0xcb, 0x54, 0xc6, 0x21, - 0x58, 0xa6, 0xb5, 0x3b, 0x50, 0xb3, 0x4f, 0xa3, 0xc0, 0x1c, 0xfa, 0x73, 0x51, 0xbe, 0x5f, 0x11, - 0x9d, 0x21, 0x21, 0x7b, 0x02, 0xc7, 0x7e, 0x0e, 0x9b, 0x96, 0xed, 0xda, 0x91, 0x4d, 0xda, 0x85, - 0xcd, 0xe8, 0xb4, 0xfe, 0x0e, 0x9d, 0xeb, 0x95, 0xb8, 0x0f, 0x4e, 0x88, 0x78, 0xb8, 0xe7, 0x99, - 0xb1, 0x83, 0x1d, 0x39, 0x9e, 0x85, 0x66, 0x11, 0x99, 0xd3, 0xb0, 0x7e, 0x95, 0x4c, 0xbc, 0x22, - 0x71, 0x03, 0x73, 0x1a, 0xb2, 0xc7, 0x50, 0x35, 0x45, 0xe4, 0x19, 0x3a, 0xde, 0xc4, 0xaf, 0x5f, - 0x4b, 0x3f, 0x6b, 0xa4, 0x62, 0x12, 0xaf, 0x98, 0x4b, 0x40, 0xff, 0xe7, 0x1c, 0xa8, 0xb1, 0xdb, - 0x62, 0xef, 0x78, 0xd4, 0x7d, 0xde, 0xed, 0xbd, 0xec, 0x6a, 0x19, 0xcc, 0x57, 0x2f, 0x1a, 0x9d, - 0x23, 0x63, 0xd8, 0x6f, 0x36, 0xba, 0xe2, 0x85, 0x8f, 0x5e, 0x97, 0x04, 0x9c, 0x65, 0x97, 0xa0, - 0xf6, 0xec, 0xa8, 0xdb, 0x1c, 0xb4, 0x7b, 0x5d, 0x81, 0xca, 0x21, 0xca, 0xf8, 0x54, 0xa4, 0x31, - 0x81, 0xca, 0x23, 0xea, 0xa0, 0x31, 0x30, 0x78, 0x3b, 0x46, 0x15, 0x70, 0x95, 0x43, 0xde, 0xfb, - 0xc4, 0x68, 0x0e, 0x34, 0x60, 0xef, 0xc0, 0xa5, 0x64, 0x4a, 0x2c, 0x4e, 0xab, 0x60, 0x42, 0x8c, - 0xa7, 0x69, 0x57, 0x50, 0x08, 0x37, 0x9a, 0x47, 0xbc, 0xdf, 0x7e, 0x61, 0x0c, 0x9b, 0x03, 0x43, - 0x7b, 0x07, 0x13, 0x6d, 0xbf, 0xdd, 0x7d, 0xae, 0x5d, 0x65, 0x35, 0x28, 0xe3, 0x48, 0x48, 0xbf, - 0x46, 0xa9, 0x78, 0x7f, 0x5f, 0xbb, 0x85, 0x22, 0xf6, 0xda, 0xfd, 0x41, 0xbb, 0xdb, 0x1c, 0x68, - 0xef, 0x61, 0xb6, 0x7d, 0xd6, 0xee, 0x0c, 0x0c, 0xae, 0x6d, 0xe1, 0xdc, 0x4f, 0x7a, 0xed, 0xae, - 0x76, 0x9b, 0x1e, 0xc6, 0x1a, 0x07, 0x87, 0x1d, 0x43, 0xd3, 0x49, 0x62, 0x8f, 0x0f, 0xb4, 0x3b, - 0xac, 0x0c, 0x85, 0xa3, 0x2e, 0xea, 0x71, 0x17, 0x85, 0xd3, 0x70, 0xd8, 0xe8, 0x74, 0xb4, 0x7b, - 0xa9, 0x9c, 0x7d, 0x1f, 0xc7, 0x2f, 0xdb, 0xdd, 0xbd, 0xde, 0x4b, 0xed, 0xfb, 0xc8, 0xb6, 0xcb, - 0x7b, 0x8d, 0xbd, 0x26, 0xa6, 0xf6, 0x6d, 0x14, 0xd0, 0x3f, 0xec, 0xb4, 0x07, 0xda, 0x0f, 0x90, - 0x6b, 0xbf, 0x31, 0x68, 0x19, 0x5c, 0x7b, 0x80, 0xe3, 0x46, 0xbf, 0x6f, 0xf0, 0x81, 0xb6, 0x83, - 0xe3, 0x76, 0x97, 0xc6, 0x8f, 0x48, 0xea, 0xe1, 0x5e, 0x63, 0x60, 0x68, 0x8f, 0x71, 0xbc, 0x67, - 0x74, 0x8c, 0x81, 0xa1, 0xfd, 0x08, 0xa5, 0x52, 0x55, 0xd0, 0xc7, 0xa3, 0x7a, 0x82, 0xa7, 0x90, - 0x80, 0xa4, 0xcf, 0x8f, 0x71, 0xa1, 0x83, 0x76, 0xf7, 0xa8, 0xaf, 0x3d, 0x45, 0x66, 0x1a, 0x12, - 0xe5, 0x27, 0xfa, 0x2b, 0x50, 0xe3, 0xb8, 0x86, 0x5c, 0xed, 0x6e, 0xd7, 0xe0, 0xa2, 0x3e, 0xe9, - 0x18, 0xcf, 0x06, 0x9a, 0x82, 0x48, 0xde, 0xde, 0x6f, 0x61, 0x65, 0x52, 0x86, 0x42, 0xef, 0x08, - 0x8f, 0x26, 0x47, 0x87, 0x60, 0x1c, 0xb4, 0xb5, 0x3c, 0x8e, 0x1a, 0xdd, 0x41, 0x5b, 0x2b, 0xd0, - 0x21, 0xb5, 0xbb, 0xfb, 0x1d, 0x43, 0x2b, 0x22, 0xf6, 0xa0, 0xc1, 0x9f, 0x6b, 0x25, 0x9c, 0xd4, - 0x38, 0x3c, 0xec, 0x7c, 0xa6, 0xa9, 0xfa, 0x36, 0x94, 0x1a, 0xd3, 0xe9, 0x01, 0x26, 0x08, 0x15, - 0xf2, 0xcf, 0x8e, 0x3a, 0x1d, 0xf1, 0x38, 0xbc, 0xdb, 0x1b, 0x0c, 0x7a, 0x07, 0xe2, 0x19, 0x62, - 0xd0, 0x3b, 0xd4, 0xb2, 0xfa, 0xef, 0x15, 0xd8, 0x58, 0x35, 0x75, 0x76, 0x15, 0x64, 0xf5, 0x70, - 0xae, 0x96, 0xa8, 0x43, 0x5c, 0x3b, 0x9c, 0x2f, 0x25, 0x74, 0xa8, 0x2e, 0x42, 0x5b, 0x88, 0x79, - 0x9e, 0xd4, 0x13, 0x2b, 0x38, 0xec, 0x39, 0xc7, 0xa6, 0x37, 0x08, 0x16, 0xde, 0xd8, 0x8c, 0x44, - 0x62, 0x54, 0x79, 0x1a, 0x85, 0x25, 0xa1, 0x13, 0xb6, 0x44, 0xa9, 0x20, 0x9f, 0x9a, 0x96, 0x08, - 0xfd, 0xb7, 0x59, 0x28, 0xfc, 0x6a, 0x61, 0x07, 0x67, 0xec, 0x09, 0x94, 0xc3, 0x68, 0x16, 0xa5, - 0x53, 0xde, 0x75, 0xe1, 0x53, 0x44, 0x7f, 0xd8, 0x8f, 0xcc, 0xc8, 0xc6, 0x5e, 0x55, 0x24, 0x3e, - 0xe4, 0x25, 0x5f, 0xa2, 0xda, 0xde, 0x9e, 0x8b, 0x32, 0xb6, 0xc0, 0x05, 0x80, 0xc1, 0x0f, 0xf3, - 0x5f, 0xdc, 0x1e, 0xc2, 0x32, 0x0d, 0x71, 0x41, 0xc0, 0xe0, 0x37, 0x37, 0x03, 0x73, 0x76, 0xd1, - 0xfb, 0x83, 0xa4, 0x60, 0xb2, 0x3b, 0xb6, 0x4d, 0xf4, 0xfc, 0xf8, 0xd9, 0x21, 0x81, 0xf5, 0x97, - 0x50, 0x5b, 0x51, 0x69, 0xd5, 0xa9, 0xf1, 0x2e, 0x8d, 0x0e, 0xda, 0x93, 0x92, 0x32, 0xc1, 0x6c, - 0xca, 0xec, 0x72, 0x29, 0x73, 0xcc, 0x93, 0x81, 0x19, 0x7c, 0xdf, 0xd0, 0x0a, 0xfa, 0x5f, 0x67, - 0xe1, 0xd2, 0x20, 0x30, 0xbd, 0xd0, 0x14, 0xaf, 0x1b, 0x5e, 0x14, 0xf8, 0x2e, 0xfb, 0x29, 0xa8, - 0xd1, 0xd8, 0x4d, 0x9f, 0xce, 0x7b, 0x32, 0x0c, 0x9f, 0x67, 0x7d, 0x38, 0x18, 0xbb, 0x74, 0x46, - 0xa5, 0x48, 0x0c, 0xd8, 0x07, 0x50, 0x18, 0xd9, 0x53, 0xc7, 0x93, 0x6d, 0xe4, 0x3b, 0xe7, 0x27, - 0xee, 0x22, 0xb1, 0x95, 0xe1, 0x82, 0x8b, 0x7d, 0x04, 0xc5, 0xb1, 0x3f, 0xc3, 0xcc, 0x21, 0x6a, - 0x86, 0xab, 0xeb, 0x0b, 0x21, 0xb5, 0x95, 0xe1, 0x92, 0x8f, 0x3d, 0x01, 0x35, 0xf0, 0x5d, 0x77, - 0x64, 0x8e, 0x5f, 0xcb, 0x76, 0xb2, 0x7e, 0x7e, 0x0e, 0x97, 0xf4, 0x56, 0x86, 0x27, 0xbc, 0xfa, - 0x43, 0x28, 0x49, 0x65, 0xf1, 0x00, 0x76, 0x8d, 0xfd, 0xb6, 0x3c, 0xbb, 0x66, 0xef, 0xe0, 0xa0, - 0x8d, 0x67, 0x57, 0x05, 0x95, 0xf7, 0x3a, 0x9d, 0xdd, 0x46, 0xf3, 0xb9, 0x96, 0xdd, 0x55, 0xa1, - 0x68, 0xd2, 0xbb, 0xb2, 0xfe, 0xa7, 0x0a, 0x6c, 0x9e, 0xdb, 0x00, 0x7b, 0x0a, 0xf9, 0x99, 0x6f, - 0xc5, 0xc7, 0x73, 0xf7, 0xc2, 0x5d, 0xa6, 0x60, 0xf4, 0x23, 0x4e, 0x33, 0xf4, 0x9f, 0xc0, 0xc6, - 0x2a, 0x3e, 0xf5, 0xf6, 0x5f, 0x83, 0x32, 0x37, 0x1a, 0x7b, 0xc3, 0x5e, 0xb7, 0xf3, 0x99, 0x88, - 0xce, 0x04, 0xbe, 0xe4, 0xed, 0x81, 0xa1, 0x65, 0xf5, 0x5f, 0x83, 0x76, 0xfe, 0x60, 0xd8, 0x3e, - 0x6c, 0x8e, 0xfd, 0xd9, 0xdc, 0xb5, 0xa9, 0x93, 0x48, 0x5d, 0xd9, 0xad, 0x0b, 0x4e, 0x52, 0xb2, - 0xd1, 0x8d, 0x6d, 0x8c, 0x57, 0x60, 0xfd, 0xff, 0x03, 0x5b, 0x3f, 0xc1, 0xff, 0x3b, 0xf1, 0xff, - 0xa2, 0x40, 0xfe, 0xd0, 0x35, 0x3d, 0x76, 0x07, 0x0a, 0xf4, 0x18, 0x2f, 0xfb, 0xba, 0x4a, 0xca, - 0xef, 0xd0, 0x2c, 0x88, 0xc6, 0xde, 0x87, 0x5c, 0x34, 0x76, 0xa5, 0x0d, 0x5d, 0x7b, 0x8b, 0xf1, - 0xb5, 0x32, 0x1c, 0xb9, 0xd8, 0x36, 0xe4, 0x2c, 0xcb, 0x95, 0x06, 0x14, 0xe7, 0x5e, 0x33, 0x32, - 0xf7, 0xec, 0x89, 0xe3, 0x39, 0xf2, 0xd3, 0x00, 0xb2, 0xb0, 0x7b, 0x90, 0xb3, 0xc6, 0xae, 0x34, - 0x9b, 0x4b, 0x4b, 0xce, 0x94, 0x40, 0x6b, 0xec, 0xb2, 0xfb, 0x90, 0x73, 0xe8, 0xf1, 0x0f, 0xd9, - 0x58, 0xfc, 0x10, 0x12, 0xda, 0x41, 0x24, 0x5e, 0x9c, 0xe8, 0x31, 0xc4, 0x0b, 0x77, 0x8b, 0x40, - 0x5f, 0xfe, 0xf5, 0x3f, 0x28, 0x50, 0x4d, 0xd3, 0xbf, 0x53, 0x33, 0xf5, 0x31, 0x96, 0x1c, 0x73, - 0xd7, 0x19, 0x3b, 0x91, 0x68, 0x6c, 0x72, 0x17, 0x34, 0x36, 0xd5, 0x98, 0x85, 0x5a, 0x9b, 0xf7, - 0x41, 0xf4, 0x31, 0x82, 0x3f, 0x7f, 0x01, 0x7f, 0x99, 0xe8, 0x49, 0x1f, 0x94, 0x6a, 0x73, 0x0a, - 0xe7, 0xdb, 0x1c, 0x76, 0x9f, 0x3e, 0xab, 0xd2, 0xb3, 0x67, 0x31, 0x2d, 0x4a, 0x20, 0x79, 0x4c, - 0xd4, 0x7f, 0x88, 0x2e, 0x8b, 0x43, 0x0c, 0x6b, 0x62, 0x74, 0x41, 0xfb, 0x2a, 0x29, 0xfa, 0xff, - 0x64, 0xa1, 0x92, 0x3a, 0x62, 0xf6, 0x18, 0x54, 0x6b, 0x35, 0xb6, 0x5c, 0x5f, 0xbb, 0x87, 0x87, - 0x7b, 0x71, 0x54, 0xb1, 0xa4, 0xc7, 0xfe, 0x04, 0x6a, 0x58, 0xbf, 0xbd, 0x31, 0x03, 0x87, 0xca, - 0x27, 0x69, 0x19, 0xf2, 0x6e, 0xfa, 0x76, 0xf4, 0x22, 0xa6, 0xb4, 0x32, 0xbc, 0x1a, 0xa6, 0x60, - 0xf6, 0x03, 0x6c, 0x52, 0xed, 0xb9, 0x19, 0xd8, 0xd2, 0x42, 0x6a, 0xf1, 0x73, 0x15, 0x21, 0x5b, - 0x19, 0x1e, 0xd3, 0x91, 0xd5, 0x3e, 0xb5, 0xc7, 0x0b, 0x99, 0x5c, 0x12, 0x56, 0x43, 0x20, 0x91, - 0x55, 0xd2, 0xd9, 0x0e, 0x80, 0x65, 0x9b, 0xae, 0xeb, 0x53, 0x2a, 0x2a, 0xa4, 0x4b, 0xca, 0xbd, - 0x04, 0x2f, 0xbe, 0xd1, 0xc7, 0x90, 0x3e, 0x85, 0x92, 0xdc, 0x18, 0xa6, 0xfd, 0xbe, 0x31, 0x18, - 0xbe, 0x68, 0xf0, 0x36, 0x96, 0x5f, 0x7d, 0x2d, 0x83, 0x41, 0x69, 0x9f, 0x37, 0xba, 0x32, 0x88, - 0x73, 0xe3, 0x45, 0xef, 0xb9, 0xa1, 0x65, 0xc5, 0xe3, 0x43, 0xf7, 0x33, 0x2d, 0x27, 0x4a, 0x2c, - 0xe3, 0xb0, 0xc1, 0x31, 0x86, 0x57, 0xa0, 0x64, 0x7c, 0x6a, 0x34, 0x8f, 0x06, 0x86, 0x56, 0xc0, - 0x38, 0xb1, 0x67, 0x34, 0x3a, 0x9d, 0x5e, 0x13, 0x03, 0x7c, 0x71, 0xb7, 0x8c, 0x37, 0x49, 0x27, - 0xa9, 0xff, 0x49, 0x19, 0x36, 0x56, 0x7d, 0x81, 0xfd, 0x18, 0x54, 0xcb, 0x5a, 0xb9, 0x81, 0x9b, - 0x17, 0xf9, 0xcc, 0xc3, 0x3d, 0x2b, 0xbe, 0x04, 0x31, 0x60, 0xb7, 0x63, 0xcf, 0xcd, 0xae, 0x79, - 0x6e, 0xec, 0xb7, 0xbf, 0x80, 0x4d, 0xf1, 0x98, 0x49, 0xa5, 0xf6, 0xc8, 0x0c, 0xed, 0x55, 0xb7, - 0x6c, 0x12, 0x71, 0x4f, 0xd2, 0x5a, 0x19, 0xbe, 0x31, 0x5e, 0xc1, 0xb0, 0x9f, 0xc1, 0x86, 0x49, - 0xed, 0x57, 0x32, 0x3f, 0x9f, 0x7e, 0x08, 0x6c, 0x20, 0x2d, 0x35, 0xbd, 0x66, 0xa6, 0x11, 0x68, - 0x26, 0x56, 0xe0, 0xcf, 0x97, 0x93, 0x57, 0x5c, 0x78, 0x2f, 0xf0, 0xe7, 0xa9, 0xb9, 0x55, 0x2b, - 0x05, 0xb3, 0x27, 0x50, 0x95, 0x9a, 0x53, 0x87, 0x21, 0x3f, 0x31, 0x5e, 0x4a, 0xab, 0x4d, 0xe5, - 0x4d, 0x2b, 0xc3, 0x2b, 0xe3, 0x25, 0xc8, 0x1e, 0x41, 0x45, 0x28, 0x2c, 0xa6, 0x95, 0xd2, 0x96, - 0x40, 0xda, 0xc6, 0xb3, 0xc0, 0x4c, 0x20, 0xf6, 0x11, 0x00, 0xe9, 0x29, 0xe6, 0xa8, 0xe9, 0xf6, - 0x05, 0x95, 0x8c, 0xa7, 0x94, 0xad, 0x18, 0x48, 0xa9, 0x27, 0x9e, 0x85, 0xcb, 0xeb, 0xea, 0xd1, - 0xbb, 0xe7, 0x52, 0x3d, 0x02, 0x97, 0xea, 0x89, 0x69, 0xb0, 0xa6, 0x5e, 0x3c, 0x4b, 0xa8, 0x27, - 0x26, 0xc5, 0xea, 0x89, 0x39, 0x95, 0xf3, 0xea, 0xc5, 0x53, 0x48, 0x3d, 0x31, 0xe3, 0x67, 0xb0, - 0x11, 0xc9, 0x22, 0x4c, 0x6e, 0xaa, 0x9a, 0xbe, 0xb6, 0xb8, 0x40, 0x8b, 0x37, 0x56, 0x8b, 0xd2, - 0x08, 0x9c, 0x1d, 0x1e, 0xfb, 0x27, 0x29, 0xf7, 0xae, 0xa5, 0x67, 0xf7, 0x8f, 0xfd, 0x93, 0xb4, - 0x7f, 0xd7, 0xc2, 0x34, 0x42, 0xff, 0x8b, 0x1c, 0x94, 0xa4, 0xad, 0xb2, 0xcb, 0xb0, 0xd9, 0xe4, - 0x46, 0x63, 0x60, 0x0c, 0xf7, 0x1a, 0x83, 0xc6, 0x6e, 0xa3, 0x8f, 0x59, 0x95, 0xc1, 0x46, 0x03, - 0xbb, 0x84, 0x25, 0x4e, 0x41, 0x07, 0xdc, 0xe3, 0xbd, 0xc3, 0x25, 0x2a, 0xcb, 0x34, 0xa8, 0xca, - 0xb9, 0xe2, 0x83, 0x7b, 0x8e, 0x6d, 0x42, 0x45, 0x4c, 0x14, 0x88, 0x3c, 0x39, 0x1a, 0xce, 0x12, - 0x70, 0x21, 0x35, 0xa5, 0xdd, 0xdd, 0x33, 0x3e, 0xd5, 0x8a, 0xcb, 0x29, 0x02, 0x51, 0x4a, 0xa6, - 0x08, 0x58, 0x45, 0x65, 0x06, 0xfc, 0xa8, 0xdb, 0x5c, 0xae, 0x53, 0x66, 0xd7, 0xe0, 0x72, 0xbf, - 0xd5, 0x7b, 0x39, 0x14, 0xb2, 0x12, 0x95, 0x80, 0x5d, 0x01, 0x2d, 0x45, 0x10, 0xec, 0x15, 0x14, - 0x41, 0xd8, 0x98, 0xb1, 0xaf, 0x55, 0x71, 0x5d, 0xc2, 0x0d, 0x44, 0x38, 0xa9, 0xa1, 0x6a, 0x62, - 0x6a, 0xaf, 0x73, 0x74, 0xd0, 0xed, 0x6b, 0x1b, 0xa8, 0x09, 0x61, 0x84, 0x26, 0x9b, 0x89, 0x98, - 0x65, 0x10, 0xd2, 0x28, 0x2e, 0x21, 0xee, 0x65, 0x83, 0x77, 0xdb, 0xdd, 0xfd, 0xbe, 0x76, 0x29, - 0x91, 0x6c, 0x70, 0xde, 0xe3, 0x7d, 0x8d, 0x25, 0x88, 0xfe, 0xa0, 0x31, 0x38, 0xea, 0x6b, 0x97, - 0x13, 0x2d, 0x0f, 0x79, 0xaf, 0x69, 0xf4, 0xfb, 0x9d, 0x76, 0x7f, 0xa0, 0x5d, 0xd9, 0xad, 0xd2, - 0x7f, 0x96, 0x64, 0x30, 0xd1, 0x0f, 0x61, 0x63, 0xd5, 0xf7, 0x99, 0x0e, 0x35, 0x67, 0x32, 0xf4, - 0xfc, 0x68, 0x68, 0x9f, 0x3a, 0x61, 0x14, 0xc6, 0x1f, 0x70, 0x9d, 0x49, 0xd7, 0x8f, 0x0c, 0x42, - 0x61, 0x4d, 0x9c, 0xb8, 0xb2, 0x48, 0x97, 0x09, 0xac, 0xb7, 0xa0, 0xb6, 0x12, 0x0d, 0xd8, 0xf7, - 0xa0, 0xec, 0x4c, 0x56, 0x85, 0xa9, 0xce, 0xe4, 0x5b, 0x48, 0xda, 0x87, 0x6a, 0x3a, 0x34, 0x7c, - 0x77, 0x41, 0x7f, 0xa5, 0x40, 0x25, 0x15, 0x2a, 0xbe, 0xd5, 0x16, 0x6f, 0x42, 0x39, 0xb2, 0x67, - 0x73, 0x3f, 0x30, 0x65, 0x60, 0x55, 0xf9, 0x12, 0xb1, 0xb2, 0x5a, 0x6e, 0x75, 0xb5, 0xd5, 0xd7, - 0x92, 0xfc, 0xd7, 0xbf, 0x96, 0xe8, 0x3d, 0x80, 0x65, 0x34, 0xa2, 0xaf, 0x11, 0xe4, 0xa5, 0xf2, - 0xaf, 0x4d, 0x04, 0xac, 0x0a, 0xcc, 0x7e, 0x83, 0xc0, 0xcf, 0xa1, 0x9c, 0x84, 0xaa, 0xef, 0x7c, - 0x62, 0x4b, 0x45, 0x72, 0x29, 0x45, 0xf4, 0xfd, 0xf8, 0x18, 0x45, 0x70, 0xf9, 0x36, 0xc7, 0x78, - 0x05, 0x0a, 0x22, 0x5a, 0xc9, 0xcf, 0xd8, 0x04, 0xe8, 0xba, 0xdc, 0xb5, 0x90, 0x93, 0xf0, 0x28, - 0x69, 0x9e, 0x9f, 0x8b, 0x8d, 0x08, 0x96, 0xaf, 0xdd, 0xc8, 0xc5, 0x6b, 0xdc, 0x83, 0xda, 0x4a, - 0x78, 0xbb, 0xf8, 0x70, 0xf5, 0x36, 0xd4, 0x56, 0xe2, 0x58, 0xea, 0x4f, 0x75, 0x4a, 0xfa, 0x4f, - 0x75, 0xd8, 0x4d, 0x9e, 0x1c, 0xdb, 0x81, 0x7d, 0xc1, 0xff, 0x86, 0x04, 0x41, 0xff, 0x19, 0x54, - 0xd3, 0x15, 0x0f, 0xfb, 0x21, 0x14, 0x9c, 0xc8, 0x9e, 0xc5, 0x9f, 0xe5, 0xaf, 0xae, 0x17, 0x45, - 0xf4, 0x99, 0x59, 0x30, 0xe9, 0xbf, 0x53, 0x40, 0x3b, 0x4f, 0x4b, 0xfd, 0xf3, 0x4f, 0x79, 0xcb, - 0x3f, 0xff, 0xb2, 0x2b, 0x4a, 0x5e, 0xf0, 0xef, 0x3d, 0x54, 0x5c, 0x7c, 0x5a, 0xbb, 0xe0, 0xaf, - 0x68, 0x44, 0x60, 0xf7, 0x41, 0x0d, 0x6c, 0xfa, 0xa3, 0x96, 0x25, 0x33, 0xf3, 0xca, 0x07, 0xdd, - 0x98, 0xa6, 0xff, 0x99, 0x02, 0x25, 0x59, 0x9e, 0x5d, 0xf8, 0xc1, 0xf6, 0x07, 0x50, 0x12, 0x9f, - 0x95, 0xe2, 0xef, 0x49, 0x6b, 0x4f, 0x7f, 0x31, 0x9d, 0xdd, 0x12, 0x25, 0xfa, 0xea, 0x8b, 0x34, - 0xf6, 0x21, 0x9c, 0xf0, 0x58, 0x15, 0x53, 0xff, 0x4d, 0xe5, 0x50, 0x28, 0xbf, 0x95, 0x01, 0xa1, - 0x30, 0xa1, 0x84, 0xfa, 0xff, 0x83, 0x92, 0x2c, 0xff, 0x2e, 0x54, 0xe5, 0x9b, 0xfe, 0xe4, 0xb5, - 0x05, 0xb0, 0xac, 0x07, 0x2f, 0x92, 0xf0, 0xe0, 0x36, 0x54, 0xd3, 0x7f, 0xbc, 0xa1, 0x6e, 0xd0, - 0xf7, 0x6c, 0x2d, 0xc3, 0x4a, 0x90, 0xeb, 0x7c, 0xf9, 0x58, 0x53, 0x1e, 0xfc, 0x51, 0xea, 0x6b, - 0x3e, 0xf1, 0x94, 0x20, 0xf7, 0xdc, 0xf8, 0x4c, 0xbc, 0xe7, 0x75, 0xda, 0x5d, 0xa3, 0xc1, 0x87, - 0x08, 0x2b, 0x38, 0xb9, 0xd5, 0xe8, 0xb7, 0xb4, 0x2c, 0x46, 0x69, 0x49, 0x21, 0x44, 0x8e, 0xde, - 0x86, 0x1a, 0xdd, 0x7d, 0x43, 0xbc, 0xdf, 0xd1, 0x30, 0x49, 0x0e, 0x05, 0x7a, 0x43, 0xc2, 0xb8, - 0x5d, 0xc4, 0xc4, 0x81, 0xa3, 0x84, 0x56, 0x7a, 0xf0, 0x4b, 0xa8, 0xbf, 0xad, 0xcd, 0x43, 0xa9, - 0xcd, 0x56, 0x83, 0x5a, 0xe9, 0x2a, 0xa8, 0xdd, 0xde, 0x50, 0x40, 0x0a, 0x16, 0xa8, 0xdc, 0xe8, - 0x18, 0x94, 0x5a, 0x77, 0x7f, 0xf1, 0x0f, 0x5f, 0xdd, 0x52, 0xfe, 0xf1, 0xab, 0x5b, 0xca, 0xbf, - 0x7d, 0x75, 0x2b, 0xf3, 0xbb, 0xff, 0xb8, 0xa5, 0x7c, 0x9e, 0xfe, 0xb3, 0xf4, 0xcc, 0x8c, 0x02, - 0xe7, 0x54, 0xfc, 0xe9, 0x26, 0x06, 0x3c, 0xfb, 0xc3, 0xf9, 0xeb, 0xe9, 0x87, 0xf3, 0xd1, 0x87, - 0x78, 0xa2, 0xa3, 0x22, 0xfd, 0x67, 0xfa, 0xd1, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x98, 0xf8, - 0x20, 0x41, 0x76, 0x2d, 0x00, 0x00, + // 4911 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x3a, 0x4d, 0x8f, 0x1b, 0xc9, + 0x75, 0x6c, 0x7e, 0x36, 0x1f, 0xc9, 0x99, 0x56, 0x49, 0x2b, 0x51, 0xb2, 0x56, 0x3b, 0x6a, 0x7d, + 0x78, 0xac, 0xf5, 0x6a, 0x77, 0x47, 0xb2, 0x2c, 0x1b, 0x8e, 0x6d, 0x0e, 0xa7, 0x35, 0xa4, 0xc5, + 0x21, 0xc7, 0x45, 0xce, 0x68, 0xd7, 0x46, 0x40, 0x34, 0xd9, 0x4d, 0x4e, 0x4b, 0xcd, 0x6e, 0xba, + 0xbb, 0xa9, 0x99, 0x59, 0x20, 0x80, 0x0f, 0x49, 0x80, 0x9c, 0xe2, 0x43, 0x80, 0xe4, 0x68, 0x04, + 0x81, 0xef, 0xf9, 0x09, 0xb9, 0xe5, 0x18, 0x20, 0xc8, 0x21, 0xc8, 0x25, 0x71, 0x8e, 0xce, 0x2d, + 0x37, 0x27, 0x87, 0xe0, 0xbd, 0xaa, 0x6e, 0x36, 0x87, 0x23, 0xef, 0x62, 0x91, 0x0b, 0x51, 0xef, + 0xb3, 0x5e, 0x55, 0xbd, 0x7a, 0x1f, 0xc5, 0x06, 0x98, 0xbb, 0xa6, 0xf7, 0x78, 0x1e, 0xf8, 0x91, + 0xcf, 0xf2, 0x38, 0xbe, 0xf5, 0xd1, 0xd4, 0x89, 0x4e, 0x16, 0xa3, 0xc7, 0x63, 0x7f, 0xf6, 0xf1, + 0xd4, 0x9f, 0xfa, 0x1f, 0x13, 0x71, 0xb4, 0x98, 0x10, 0x44, 0x00, 0x8d, 0x84, 0x90, 0xfe, 0x2b, + 0x05, 0xf2, 0x83, 0xf3, 0xb9, 0xcd, 0x36, 0x20, 0xeb, 0x58, 0x75, 0x65, 0x4b, 0xd9, 0x2e, 0xf0, + 0xac, 0x63, 0xb1, 0x5b, 0xa0, 0x7a, 0x0b, 0xd7, 0x35, 0x47, 0xae, 0x5d, 0xcf, 0x6e, 0x29, 0xdb, + 0x2a, 0x4f, 0x60, 0x76, 0x0d, 0x0a, 0xa7, 0x8e, 0x15, 0x9d, 0xd4, 0x73, 0xc4, 0x2e, 0x00, 0x76, + 0x1b, 0xca, 0xf3, 0xc0, 0x1e, 0x3b, 0xa1, 0xe3, 0x7b, 0xf5, 0x3c, 0x51, 0x96, 0x08, 0xc6, 0x20, + 0x1f, 0x3a, 0x5f, 0xd8, 0xf5, 0x02, 0x11, 0x68, 0x8c, 0x7a, 0xc2, 0xb1, 0xe9, 0xda, 0xf5, 0xa2, + 0xd0, 0x43, 0x80, 0xfe, 0x0f, 0x39, 0x28, 0x34, 0x7d, 0x2f, 0x8c, 0xd8, 0x75, 0x28, 0x3a, 0x21, + 0xce, 0x4a, 0x76, 0xa9, 0x5c, 0x42, 0xec, 0x1a, 0xe4, 0x9d, 0xb7, 0xa6, 0x4b, 0x76, 0xe5, 0x5a, + 0x19, 0x4e, 0x10, 0x62, 0x2d, 0xc4, 0xa2, 0x51, 0x0a, 0x62, 0x2d, 0x89, 0x0d, 0x11, 0x8b, 0x06, + 0x95, 0x11, 0x1b, 0x4a, 0xec, 0x08, 0xb1, 0x68, 0x8d, 0x8a, 0xd8, 0x91, 0xc4, 0x2e, 0x10, 0x8b, + 0xe6, 0xe4, 0x11, 0xbb, 0x90, 0xd8, 0x09, 0x62, 0x4b, 0x5b, 0xca, 0x76, 0x16, 0xb1, 0x08, 0xb1, + 0x5b, 0x50, 0xb2, 0xcc, 0xc8, 0x46, 0x82, 0x8a, 0xd6, 0xb7, 0x32, 0x3c, 0x46, 0x30, 0x1d, 0x2a, + 0x38, 0x8c, 0x9c, 0x19, 0xd1, 0xcb, 0xd2, 0xcc, 0x34, 0x92, 0x7d, 0x07, 0xaa, 0x96, 0x3d, 0x76, + 0x66, 0xa6, 0xfb, 0xec, 0x29, 0x32, 0xc1, 0x96, 0xb2, 0x5d, 0xd9, 0xd9, 0x7c, 0x4c, 0x07, 0x9a, + 0x50, 0x5a, 0x19, 0xbe, 0xc2, 0xc6, 0x9e, 0x43, 0x4d, 0xc2, 0x9f, 0xee, 0x3c, 0x47, 0xb9, 0x0a, + 0xc9, 0x69, 0x2b, 0x72, 0x9f, 0xee, 0x3c, 0x6f, 0x65, 0xf8, 0x2a, 0x23, 0xbb, 0x0f, 0x55, 0x9c, + 0x3b, 0x8c, 0xcc, 0xd9, 0x1c, 0x05, 0xab, 0xd2, 0xaa, 0x15, 0x2c, 0x2e, 0xeb, 0x75, 0xe8, 0x7b, + 0xc8, 0x50, 0x93, 0x3b, 0x16, 0x23, 0xd8, 0x16, 0x80, 0x65, 0x4f, 0xcc, 0x85, 0x1b, 0x21, 0x79, + 0x43, 0x6e, 0x5d, 0x0a, 0xb7, 0x5b, 0x82, 0xc2, 0x5b, 0xd3, 0x5d, 0xd8, 0xfa, 0x6d, 0x50, 0x0f, + 0xcd, 0xc0, 0x9c, 0x71, 0x7b, 0xc2, 0x34, 0xc8, 0xcd, 0xfd, 0x50, 0xba, 0x16, 0x0e, 0xf5, 0x0e, + 0x14, 0x8f, 0xcd, 0x00, 0x69, 0x0c, 0xf2, 0x9e, 0x39, 0xb3, 0x89, 0x58, 0xe6, 0x34, 0xc6, 0x53, + 0x0f, 0xcf, 0xc3, 0xc8, 0x9e, 0x49, 0xbf, 0x93, 0x10, 0xe2, 0xa7, 0xae, 0x3f, 0x92, 0x27, 0xac, + 0x72, 0x09, 0xe9, 0x5d, 0x28, 0x36, 0x7d, 0x17, 0xb5, 0xdd, 0x80, 0x52, 0x60, 0xbb, 0xc3, 0xe5, + 0x6c, 0xc5, 0xc0, 0x76, 0x0f, 0xfd, 0x10, 0x09, 0x63, 0x5f, 0x10, 0xb2, 0x82, 0x30, 0xf6, 0x89, + 0x10, 0xcf, 0x9f, 0x5b, 0xce, 0xaf, 0x0f, 0x00, 0x9a, 0x7e, 0x10, 0x7c, 0x6d, 0x9d, 0xd7, 0xa0, + 0x60, 0xd9, 0xf3, 0xe5, 0xed, 0x20, 0x40, 0x7f, 0x04, 0xaa, 0x71, 0x36, 0x0f, 0x3a, 0x4e, 0x18, + 0xb1, 0x3b, 0x90, 0x77, 0x9d, 0x30, 0xaa, 0x2b, 0x5b, 0xb9, 0xed, 0xca, 0x0e, 0x88, 0xb3, 0x43, + 0x2a, 0x27, 0xbc, 0xbe, 0x05, 0xea, 0x81, 0x79, 0x76, 0x8c, 0x3b, 0x89, 0xda, 0x68, 0x4b, 0xe5, + 0x16, 0xc9, 0xfd, 0x7d, 0x04, 0x30, 0x30, 0x83, 0xa9, 0x1d, 0xd1, 0xdd, 0xbd, 0x0d, 0xb9, 0xe8, + 0x7c, 0x4e, 0x1c, 0x89, 0x3a, 0x24, 0x70, 0x44, 0xeb, 0xff, 0xad, 0x40, 0xa5, 0xbf, 0x18, 0xfd, + 0x62, 0x61, 0x07, 0xe7, 0xb8, 0xa2, 0xed, 0x25, 0xf7, 0xc6, 0xce, 0x75, 0xc1, 0x9d, 0xa2, 0x2f, + 0x25, 0x71, 0x89, 0x9e, 0x6f, 0xd9, 0x43, 0xc7, 0x8a, 0x97, 0x88, 0x60, 0xdb, 0xc2, 0x60, 0xe1, + 0xcf, 0xe5, 0xa6, 0x65, 0xfd, 0x39, 0xdb, 0x82, 0xc2, 0xf8, 0xc4, 0x71, 0x2d, 0xba, 0x65, 0xab, + 0x2b, 0x12, 0x04, 0x76, 0x13, 0xd4, 0xc0, 0x3f, 0x1d, 0xa6, 0x42, 0x40, 0x29, 0xf0, 0x4f, 0xfb, + 0xce, 0x17, 0xb8, 0xdf, 0x22, 0x02, 0x01, 0x14, 0xfb, 0xcd, 0x46, 0xa7, 0xc1, 0xb5, 0x0c, 0x8e, + 0x8d, 0xcf, 0xda, 0xfd, 0x41, 0x5f, 0x53, 0xd8, 0x06, 0x40, 0xb7, 0x37, 0x18, 0x4a, 0x38, 0xcb, + 0x8a, 0x90, 0x6d, 0x77, 0xb5, 0x1c, 0xf2, 0x20, 0xbe, 0xdd, 0xd5, 0xf2, 0xac, 0x04, 0xb9, 0x46, + 0xf7, 0x73, 0xad, 0x40, 0x83, 0x4e, 0x47, 0x2b, 0xea, 0xff, 0xac, 0x40, 0xb9, 0x37, 0x7a, 0x6d, + 0x8f, 0x23, 0x5c, 0x33, 0xfa, 0x94, 0x1d, 0xbc, 0xb5, 0x03, 0x5a, 0x76, 0x8e, 0x4b, 0x08, 0x17, + 0x62, 0x8d, 0x44, 0x1c, 0xe1, 0x59, 0x6b, 0x44, 0x7c, 0xe3, 0x13, 0x7b, 0x66, 0xd2, 0xe2, 0x90, + 0x8f, 0x20, 0xf4, 0x61, 0x7f, 0xf4, 0x9a, 0x96, 0x97, 0xe3, 0x38, 0x64, 0x1f, 0x40, 0x45, 0xe8, + 0x18, 0x92, 0x03, 0x15, 0x68, 0x2f, 0x40, 0xa0, 0xba, 0xe8, 0xc6, 0x37, 0xa0, 0x64, 0x8d, 0x04, + 0xb1, 0x48, 0xc4, 0xa2, 0x35, 0x22, 0x02, 0x4a, 0x92, 0x56, 0x41, 0x2c, 0x49, 0x49, 0x42, 0x11, + 0xc3, 0x4d, 0x50, 0xfd, 0xd1, 0x6b, 0x41, 0x55, 0x89, 0x5a, 0xf2, 0x47, 0xaf, 0x91, 0xa4, 0xff, + 0x87, 0x02, 0xea, 0x8b, 0x85, 0x37, 0x8e, 0x30, 0xa4, 0xde, 0x83, 0xfc, 0x64, 0xe1, 0x8d, 0xe5, + 0xb9, 0xcb, 0xd0, 0x91, 0xac, 0x99, 0x13, 0x11, 0x7d, 0xcd, 0x0c, 0xa6, 0xe8, 0xa3, 0x6b, 0xbe, + 0x86, 0x78, 0xfd, 0x2f, 0xa5, 0xc6, 0x17, 0xae, 0x39, 0x65, 0x2a, 0xe4, 0xbb, 0xbd, 0xae, 0xa1, + 0x65, 0x58, 0x15, 0xd4, 0x76, 0x77, 0x60, 0xf0, 0x6e, 0xa3, 0xa3, 0x29, 0x74, 0x34, 0x83, 0xc6, + 0x6e, 0xc7, 0xd0, 0xb2, 0x48, 0x39, 0xee, 0x75, 0x1a, 0x83, 0x76, 0xc7, 0xd0, 0xf2, 0x82, 0xc2, + 0xdb, 0xcd, 0x81, 0xa6, 0x32, 0x0d, 0xaa, 0x87, 0xbc, 0xb7, 0x77, 0xd4, 0x34, 0x86, 0xdd, 0xa3, + 0x4e, 0x47, 0xd3, 0xd8, 0x55, 0xd8, 0x4c, 0x30, 0x3d, 0x81, 0xdc, 0x42, 0x91, 0xe3, 0x06, 0x6f, + 0xf0, 0x7d, 0xed, 0xc7, 0x4c, 0x85, 0x5c, 0x63, 0x7f, 0x5f, 0xfb, 0xa5, 0x82, 0xa3, 0x57, 0xed, + 0xae, 0xf6, 0xcb, 0xac, 0xfe, 0xa7, 0x39, 0xc8, 0xa3, 0x81, 0x7f, 0xd8, 0xad, 0xd9, 0x37, 0x40, + 0x19, 0xd3, 0xc9, 0x55, 0x76, 0x2a, 0x82, 0x46, 0x49, 0xa3, 0x95, 0xe1, 0x0a, 0xae, 0x5a, 0x11, + 0xfe, 0x59, 0xd9, 0xd9, 0x10, 0xc4, 0x38, 0x1c, 0x21, 0x7d, 0xce, 0x6e, 0x83, 0xf2, 0x56, 0x3a, + 0x6b, 0x55, 0xd0, 0x45, 0x40, 0x42, 0xea, 0x5b, 0xb6, 0x05, 0xb9, 0xb1, 0x2f, 0x92, 0x43, 0x42, + 0x17, 0xe1, 0xa0, 0x95, 0xe1, 0x48, 0x42, 0xfd, 0x13, 0x3a, 0xd6, 0x44, 0x7f, 0x7c, 0x2a, 0xa8, + 0x61, 0xc2, 0x1e, 0x40, 0x2e, 0x5c, 0x8c, 0xe8, 0x6c, 0x2b, 0x3b, 0x57, 0xd6, 0xee, 0x18, 0xaa, + 0x09, 0x17, 0x23, 0xf6, 0x10, 0xf2, 0x63, 0x3f, 0x08, 0xe8, 0x94, 0x93, 0x20, 0xbe, 0x0c, 0x3e, + 0x98, 0x6c, 0x90, 0xce, 0xb6, 0x40, 0x89, 0x28, 0x8d, 0x24, 0x4c, 0xcb, 0xdb, 0x8f, 0x13, 0x46, + 0xec, 0xbe, 0x0c, 0x29, 0x90, 0xb6, 0x29, 0x0e, 0x38, 0xa8, 0x07, 0xa9, 0x4c, 0x87, 0xdc, 0xcc, + 0x3c, 0x93, 0x39, 0x43, 0x32, 0xc5, 0x91, 0x06, 0x6d, 0x9a, 0x99, 0x67, 0xbb, 0x45, 0xc8, 0xdb, + 0x67, 0xf3, 0x40, 0xbf, 0x09, 0xe5, 0x24, 0xf3, 0xb0, 0x2a, 0x28, 0xa6, 0xbc, 0x3a, 0x8a, 0xa9, + 0x6f, 0x63, 0x22, 0x88, 0x73, 0xcb, 0x2a, 0x0d, 0xa1, 0xf8, 0x42, 0x29, 0x23, 0xfd, 0xf7, 0x0a, + 0x05, 0xe7, 0xbd, 0x77, 0x84, 0xfa, 0xfb, 0x90, 0x33, 0xdd, 0x29, 0xb1, 0x6f, 0xec, 0xb0, 0x78, + 0xf9, 0xb3, 0x79, 0x60, 0x87, 0xa1, 0x38, 0x69, 0xd3, 0x9d, 0xc6, 0x7e, 0x90, 0xbb, 0xdc, 0x0f, + 0xbe, 0x09, 0x25, 0x99, 0x81, 0xe4, 0x81, 0xd6, 0x04, 0xc7, 0x9e, 0x40, 0xf2, 0x98, 0xca, 0xea, + 0x50, 0x9a, 0x07, 0xce, 0xcc, 0x0c, 0xce, 0x45, 0xda, 0xe7, 0x31, 0xc8, 0x1e, 0xc0, 0x86, 0xb9, + 0x88, 0xfc, 0xa1, 0xe3, 0x8d, 0x03, 0x7b, 0x66, 0x7b, 0x11, 0x1d, 0xad, 0xca, 0x6b, 0x88, 0x6d, + 0xc7, 0x48, 0x0c, 0xc5, 0xf3, 0x37, 0x8e, 0x75, 0x46, 0xc7, 0x5a, 0xe0, 0x02, 0x40, 0xb5, 0x63, + 0x7f, 0x46, 0x52, 0xf2, 0xb2, 0x4a, 0x50, 0xff, 0x05, 0x94, 0xa4, 0x11, 0xec, 0x2e, 0x54, 0xb1, + 0x72, 0x19, 0x9a, 0x23, 0xc7, 0x75, 0xa2, 0x73, 0x59, 0xcf, 0x54, 0x10, 0xd7, 0x10, 0x28, 0xbc, + 0xa8, 0xb8, 0xef, 0xd2, 0xa5, 0x57, 0x2e, 0x2a, 0xe2, 0xd9, 0x3d, 0xa8, 0xf9, 0x81, 0x33, 0x75, + 0xbc, 0x61, 0x18, 0x05, 0x8e, 0x37, 0x95, 0xe1, 0xb7, 0x2a, 0x90, 0x7d, 0xc2, 0xe9, 0x7f, 0xad, + 0x80, 0xda, 0xf6, 0x2c, 0xfb, 0x0c, 0x77, 0xfc, 0x51, 0x3a, 0xd0, 0xd7, 0x85, 0xc2, 0x98, 0x28, + 0x06, 0xcb, 0x5d, 0x8c, 0x4f, 0x27, 0x9b, 0x3a, 0x9d, 0x6f, 0x40, 0x19, 0x33, 0x1c, 0x8e, 0xc3, + 0x7a, 0x6e, 0x2b, 0xb7, 0x5d, 0xe6, 0xea, 0xd8, 0x77, 0x31, 0x10, 0x85, 0xfa, 0x63, 0x28, 0x27, + 0x2a, 0x58, 0x05, 0x4a, 0xed, 0xee, 0x71, 0xa3, 0xdd, 0xd9, 0xd3, 0x32, 0x08, 0xfc, 0xac, 0xd7, + 0x35, 0x0e, 0x1a, 0x87, 0x9a, 0x82, 0xf1, 0x78, 0xb7, 0xdf, 0xd6, 0xb2, 0xfa, 0x03, 0xa8, 0x1d, + 0x8a, 0xed, 0x7e, 0x69, 0x9f, 0xa3, 0x75, 0xd7, 0xa0, 0x20, 0x34, 0x2b, 0xa4, 0x59, 0x00, 0xfa, + 0x0e, 0xa8, 0x87, 0x81, 0x3f, 0xb7, 0x83, 0xe8, 0x1c, 0x83, 0xee, 0x1b, 0xfb, 0x5c, 0x3a, 0x0c, + 0x0e, 0x97, 0xc9, 0x30, 0x9b, 0x4e, 0x86, 0x3f, 0x42, 0xd5, 0x24, 0xe3, 0xd8, 0x21, 0xaa, 0x7e, + 0x0c, 0x30, 0x4f, 0x10, 0x32, 0xcb, 0xc6, 0x61, 0x40, 0x2a, 0xe7, 0x29, 0x0e, 0xfd, 0x7f, 0xb2, + 0x50, 0x3b, 0x34, 0x83, 0xc8, 0xc1, 0x0b, 0xdc, 0xf6, 0x26, 0x3e, 0xfb, 0x26, 0xe4, 0xa3, 0xf3, + 0xb9, 0x2d, 0xf7, 0xee, 0x6a, 0x12, 0x42, 0x04, 0x0b, 0x6d, 0x1b, 0x31, 0xe0, 0xa9, 0x19, 0xef, + 0x38, 0x35, 0x8a, 0x61, 0x9f, 0xc0, 0xd5, 0x79, 0x2c, 0x86, 0x08, 0x3b, 0xa4, 0xf2, 0x58, 0x9c, + 0xdd, 0x65, 0x24, 0x76, 0x1f, 0x4a, 0x4d, 0xdf, 0x5d, 0xcc, 0xbc, 0xb0, 0x9e, 0x5f, 0x8b, 0xd9, + 0x31, 0x89, 0x3d, 0x02, 0x2d, 0x11, 0x8e, 0xd9, 0x0b, 0xb4, 0x91, 0x6b, 0x78, 0xa6, 0x43, 0x35, + 0xc1, 0x75, 0x17, 0x33, 0x51, 0xde, 0xf2, 0x15, 0x1c, 0x7b, 0x02, 0x90, 0xc0, 0x61, 0xbd, 0x44, + 0x13, 0x5f, 0x5c, 0x76, 0x3b, 0xb2, 0x67, 0x3c, 0xc5, 0x86, 0x15, 0xbf, 0xe9, 0x4e, 0xfd, 0xc0, + 0x89, 0x4e, 0x66, 0xe4, 0xfc, 0x39, 0xbe, 0x44, 0xb0, 0x87, 0xb0, 0xe1, 0x84, 0xfd, 0xc5, 0x28, + 0x91, 0xa7, 0x08, 0xa6, 0xf2, 0x0b, 0x58, 0xfd, 0x77, 0x4a, 0x7a, 0xf7, 0xb1, 0xd2, 0xbb, 0x0f, + 0xb5, 0xa5, 0x71, 0xcb, 0x98, 0xb1, 0x8a, 0x64, 0xdb, 0xb0, 0xe9, 0x07, 0x96, 0xe3, 0x99, 0x58, + 0x75, 0x89, 0x09, 0xf0, 0x14, 0x6a, 0xfc, 0x22, 0x9a, 0x6d, 0x41, 0xc5, 0xb2, 0xc3, 0x71, 0xe0, + 0xcc, 0xa3, 0xe5, 0xe6, 0xa7, 0x51, 0xe9, 0x4b, 0x9c, 0x5f, 0xb9, 0xc4, 0xec, 0x21, 0xa8, 0x2e, + 0x46, 0xa3, 0x13, 0xd3, 0xa3, 0x0d, 0x5e, 0x3d, 0x8f, 0x84, 0x86, 0x7c, 0x8e, 0x47, 0x81, 0x34, + 0xac, 0x17, 0xd7, 0xf9, 0x62, 0x9a, 0xfe, 0x3e, 0x94, 0x8e, 0x1d, 0xfb, 0x54, 0x46, 0xc4, 0xb7, + 0x8e, 0x7d, 0x1a, 0x47, 0x44, 0x1c, 0xeb, 0x7f, 0x97, 0x07, 0x75, 0x80, 0x4d, 0xd6, 0xbb, 0x42, + 0xe6, 0x16, 0xa6, 0x0c, 0x37, 0xce, 0xe7, 0xcb, 0xe4, 0xb4, 0x87, 0x19, 0x1f, 0x29, 0xec, 0x11, + 0xe4, 0x2d, 0x7b, 0x22, 0x6e, 0x6c, 0x25, 0x2e, 0xf0, 0x62, 0x9d, 0x18, 0x16, 0x85, 0xfb, 0x22, + 0x0f, 0x7b, 0x1f, 0x20, 0x42, 0xca, 0x90, 0xbc, 0x5d, 0x2c, 0xbd, 0x4c, 0x18, 0x59, 0x58, 0x96, + 0xc7, 0x81, 0x6d, 0x46, 0x76, 0xf8, 0x0b, 0x57, 0x96, 0x38, 0x4b, 0x04, 0x6b, 0xc1, 0x06, 0x9a, + 0xb4, 0x83, 0x41, 0xc2, 0xc1, 0x58, 0x20, 0x17, 0x7e, 0xf7, 0xc2, 0x94, 0x5d, 0xc9, 0x44, 0xf1, + 0xc2, 0xf0, 0xa2, 0xe0, 0x9c, 0xd7, 0xbc, 0x34, 0xee, 0xd6, 0x7f, 0x29, 0x14, 0x2a, 0x69, 0xce, + 0x07, 0x90, 0x9d, 0xbf, 0x91, 0x49, 0x3f, 0xf6, 0xc0, 0x74, 0xe0, 0x68, 0x65, 0x78, 0x76, 0xfe, + 0x06, 0x53, 0x19, 0x86, 0xe2, 0x6c, 0x3a, 0x95, 0xc5, 0xc1, 0x0d, 0x53, 0x19, 0x86, 0xe6, 0xef, + 0xac, 0xc4, 0x81, 0xdc, 0xaa, 0xca, 0x54, 0xc0, 0xc0, 0x2e, 0x66, 0xc9, 0x88, 0x75, 0x15, 0x9d, + 0xcb, 0x4a, 0x3a, 0x91, 0x87, 0x86, 0xa9, 0x14, 0x89, 0xec, 0x09, 0x94, 0x13, 0x77, 0x94, 0x95, + 0xc2, 0xda, 0x7d, 0xf1, 0x26, 0x7e, 0x2b, 0xc3, 0x97, 0x7c, 0xbb, 0x05, 0xc8, 0x59, 0xf6, 0xe4, + 0xd6, 0x8f, 0x81, 0xad, 0xef, 0xc9, 0x97, 0x85, 0xbb, 0x82, 0x0c, 0x77, 0xdf, 0xcf, 0x3e, 0x57, + 0xf4, 0x00, 0xf2, 0x4d, 0x3f, 0x8c, 0xd0, 0x43, 0xc6, 0x66, 0x20, 0xfa, 0x76, 0x85, 0xd3, 0x18, + 0x7d, 0x39, 0xf0, 0x4f, 0xa9, 0xd2, 0xce, 0x12, 0x3a, 0x06, 0x71, 0x06, 0xcf, 0x7a, 0x2b, 0x1a, + 0x64, 0x8e, 0x43, 0xea, 0xc0, 0x23, 0x33, 0x10, 0x5e, 0xaf, 0x70, 0x01, 0x20, 0x36, 0xf2, 0x23, + 0xd9, 0x1e, 0x2b, 0x5c, 0x00, 0xfa, 0xdf, 0x2b, 0x14, 0x99, 0xf6, 0xcc, 0xc8, 0xc4, 0xd4, 0x80, + 0xe5, 0xfc, 0xd8, 0x5f, 0x78, 0x91, 0xec, 0x8b, 0xb0, 0xbe, 0x6f, 0x22, 0x8c, 0x4e, 0x45, 0xc9, + 0x4e, 0x50, 0x85, 0xed, 0x65, 0xc4, 0x08, 0x32, 0x06, 0xfe, 0x85, 0xeb, 0x0a, 0x07, 0x55, 0xb9, + 0x00, 0xd0, 0x36, 0xe7, 0xc9, 0x0e, 0x85, 0xbc, 0x02, 0xc7, 0x21, 0x61, 0x9e, 0x3d, 0xa5, 0x4b, + 0x97, 0xe3, 0x38, 0x44, 0xcc, 0xe4, 0xc9, 0x0e, 0x79, 0x59, 0x96, 0xe3, 0x90, 0x30, 0xcf, 0x9e, + 0x52, 0xbc, 0x52, 0x38, 0x0e, 0xb1, 0xfe, 0x08, 0xeb, 0x2a, 0x45, 0x42, 0x25, 0xd4, 0x5f, 0x01, + 0x70, 0xff, 0x34, 0xb4, 0x23, 0xb2, 0xfa, 0x61, 0x52, 0xdd, 0x2b, 0x69, 0xb7, 0x89, 0x1d, 0x35, + 0xa9, 0xf6, 0xef, 0xae, 0xdc, 0xb1, 0xda, 0xf2, 0x8e, 0x99, 0x91, 0x29, 0x2e, 0x99, 0xfe, 0x6f, + 0x0a, 0x54, 0x7a, 0x81, 0x65, 0x07, 0xbb, 0xe7, 0xfd, 0xb9, 0x3d, 0x4e, 0xb2, 0xb7, 0xf2, 0x8e, + 0xec, 0x7d, 0x9b, 0x72, 0xa9, 0x6b, 0x26, 0x61, 0x0a, 0x6f, 0x52, 0x8c, 0x60, 0x9f, 0x42, 0x7e, + 0xe2, 0x9a, 0x22, 0xa5, 0x6f, 0xec, 0xbc, 0x2f, 0x2b, 0xf9, 0xa5, 0xfa, 0x78, 0x8c, 0x45, 0x3a, + 0x27, 0x56, 0xfd, 0xe7, 0xc9, 0xfc, 0x54, 0xb9, 0x63, 0xdf, 0xd3, 0x6f, 0x6a, 0x19, 0x2c, 0xe1, + 0xf7, 0x8c, 0x7e, 0x53, 0x53, 0xd8, 0x26, 0x54, 0xb0, 0xe2, 0xee, 0x0f, 0x5f, 0xb4, 0x79, 0x7f, + 0xa0, 0x65, 0xa9, 0x91, 0x22, 0x44, 0xa7, 0xd1, 0x1f, 0x88, 0xda, 0xfd, 0xa8, 0xdb, 0xfe, 0xe9, + 0x91, 0xa1, 0xa9, 0x2b, 0xf5, 0xbe, 0x86, 0x4d, 0x01, 0xbc, 0x72, 0x3c, 0xcb, 0x3f, 0xa5, 0xc5, + 0x7d, 0x94, 0x4a, 0x20, 0xc3, 0xd1, 0xf9, 0x25, 0x7d, 0x6b, 0x65, 0xe9, 0xe3, 0xe7, 0xec, 0xdb, + 0xa0, 0xfa, 0x68, 0x1a, 0xb2, 0x8a, 0x2d, 0xbc, 0xb2, 0xb6, 0x22, 0x5e, 0xf2, 0x05, 0x80, 0x2e, + 0xec, 0xda, 0xa6, 0x25, 0xbb, 0x65, 0x1a, 0xe3, 0xb1, 0xe2, 0x76, 0x88, 0x47, 0x24, 0x1c, 0xea, + 0xbf, 0xc9, 0x42, 0xf9, 0x68, 0x6e, 0x99, 0x91, 0xdd, 0x8c, 0xce, 0xd2, 0xbd, 0x95, 0xb2, 0xd2, + 0x5b, 0xdd, 0x04, 0x35, 0x1a, 0x89, 0x92, 0x45, 0xee, 0x72, 0x29, 0x1a, 0xb9, 0x71, 0x3f, 0x36, + 0x0f, 0x9c, 0x21, 0x5e, 0x31, 0x91, 0x00, 0x8a, 0xf3, 0xc0, 0x79, 0x69, 0x63, 0xe1, 0x55, 0x91, + 0x84, 0x21, 0x46, 0x94, 0xe4, 0xe5, 0x0a, 0x89, 0x6d, 0xeb, 0x0c, 0x75, 0x9e, 0x38, 0x96, 0x4d, + 0x92, 0x22, 0x06, 0x96, 0x10, 0x46, 0xd1, 0x2d, 0xa8, 0xc6, 0x24, 0x92, 0x15, 0xef, 0x58, 0x20, + 0xc9, 0x28, 0xfc, 0x11, 0x54, 0x16, 0x64, 0xf6, 0x90, 0x3c, 0xaa, 0x74, 0x49, 0xd4, 0x06, 0xc1, + 0xd0, 0xc4, 0xd8, 0xfd, 0x01, 0x54, 0xfc, 0xe8, 0xc4, 0x0e, 0x86, 0x66, 0x14, 0x05, 0xb1, 0x1f, + 0x03, 0xa1, 0x1a, 0x88, 0x21, 0x06, 0xda, 0x5b, 0xc1, 0x50, 0x96, 0x0c, 0x88, 0x22, 0x06, 0xec, + 0x7b, 0x2b, 0x0d, 0xcf, 0x74, 0xcf, 0xbf, 0xb0, 0xa9, 0x92, 0x79, 0x1f, 0xc0, 0xf1, 0xe6, 0x8b, + 0x68, 0x88, 0x41, 0x40, 0x96, 0xe9, 0x65, 0xc2, 0xe0, 0xc5, 0x20, 0x7d, 0x8b, 0x28, 0xa1, 0x8b, + 0xc2, 0x1d, 0x04, 0x8a, 0x18, 0x12, 0x79, 0x0a, 0x28, 0xb9, 0x94, 0x3c, 0x36, 0xef, 0x29, 0x79, + 0xa2, 0xe7, 0xd3, 0xf2, 0xc4, 0x70, 0x0f, 0x6a, 0x91, 0x33, 0xc3, 0xe5, 0x7b, 0xe1, 0x62, 0x66, + 0x5b, 0xb4, 0x85, 0x39, 0xf1, 0xea, 0xd4, 0x94, 0x38, 0xd4, 0x32, 0xb3, 0x67, 0x7e, 0x70, 0x2e, + 0xb4, 0x14, 0x85, 0x16, 0x81, 0xa2, 0x37, 0x82, 0xdf, 0x57, 0x21, 0xdf, 0xf5, 0x2d, 0x9b, 0x7d, + 0x02, 0x65, 0x7a, 0x92, 0x58, 0xaf, 0xce, 0x90, 0x4c, 0x3f, 0x94, 0xde, 0x54, 0x4f, 0x8e, 0xde, + 0xfd, 0x88, 0x71, 0x07, 0x6f, 0x79, 0x18, 0xad, 0xf6, 0x15, 0x18, 0x55, 0x39, 0xe1, 0xc9, 0xeb, + 0x03, 0x1f, 0xbb, 0xe9, 0x21, 0xb5, 0x56, 0xf9, 0x4b, 0xbc, 0x5e, 0xd0, 0xe9, 0x51, 0xe7, 0x16, + 0xa8, 0xf4, 0xd4, 0x11, 0xd8, 0xa2, 0x50, 0x28, 0xf0, 0x04, 0x46, 0xab, 0x5f, 0xfb, 0x8e, 0x27, + 0xac, 0x2e, 0xae, 0x59, 0xfd, 0x13, 0xdf, 0xf1, 0xe8, 0x6a, 0xab, 0xc8, 0x45, 0x56, 0xdf, 0x83, + 0x92, 0xef, 0x89, 0x79, 0x4b, 0x6b, 0xf3, 0x16, 0x7d, 0x8f, 0xa6, 0xfc, 0x10, 0x2a, 0x13, 0xc7, + 0x8d, 0xec, 0x40, 0x30, 0xaa, 0x6b, 0x8c, 0x20, 0xc8, 0xc4, 0xfc, 0x00, 0xd4, 0x69, 0xe0, 0x2f, + 0xe6, 0x78, 0x2b, 0xcb, 0xeb, 0x85, 0x25, 0xd1, 0x76, 0xcf, 0x71, 0xd5, 0x34, 0x74, 0xbc, 0xe9, + 0x30, 0xb4, 0xb1, 0xa1, 0x5c, 0x5b, 0x75, 0x4c, 0xef, 0xdb, 0xa4, 0xd5, 0x9c, 0x4e, 0xc5, 0xfc, + 0x95, 0x75, 0xad, 0xe6, 0x74, 0x4a, 0x93, 0xa7, 0x43, 0x42, 0xf5, 0x4b, 0x43, 0xc2, 0x27, 0xcb, + 0x4b, 0x13, 0x9d, 0x85, 0xf5, 0x1a, 0x09, 0xc8, 0xf7, 0x8d, 0x24, 0x08, 0x24, 0xf7, 0x26, 0x3a, + 0x0b, 0xd9, 0x87, 0xa0, 0x9e, 0x62, 0x67, 0x34, 0xb7, 0xc7, 0xf4, 0x30, 0x99, 0xf4, 0xc9, 0xcb, + 0x28, 0xc6, 0x4b, 0xa7, 0x8e, 0x47, 0xe1, 0x6c, 0x0b, 0x0a, 0xae, 0x33, 0x73, 0xa2, 0xfa, 0xe6, + 0xfa, 0x6b, 0x15, 0x11, 0x98, 0x0e, 0x45, 0x7f, 0x32, 0xc1, 0xe5, 0x6b, 0x6b, 0x2c, 0x92, 0xc2, + 0x3e, 0x04, 0x51, 0x28, 0x0d, 0x2d, 0x7b, 0x52, 0xbf, 0x72, 0x69, 0x3e, 0x51, 0xa3, 0xb8, 0x92, + 0xdb, 0x81, 0x5a, 0xc2, 0x3c, 0x7c, 0x6b, 0x8f, 0xeb, 0x2c, 0xdd, 0x94, 0x24, 0x02, 0x95, 0x58, + 0xe0, 0xd8, 0x1e, 0xb3, 0x6d, 0x28, 0xf9, 0xa3, 0xd7, 0xc3, 0xc0, 0x9e, 0xd4, 0xaf, 0x5e, 0xfe, + 0xc2, 0x53, 0xf4, 0x47, 0xaf, 0xb9, 0x3d, 0x61, 0x9f, 0x42, 0x25, 0xa0, 0x2c, 0x37, 0xb4, 0xcc, + 0xc8, 0xac, 0x5f, 0x4b, 0x6f, 0xc0, 0x32, 0xfd, 0x71, 0x08, 0x96, 0xa9, 0xf0, 0x1e, 0xd4, 0xec, + 0xb3, 0x28, 0x30, 0x87, 0xfe, 0x5c, 0x94, 0xfc, 0xef, 0x89, 0x6e, 0x92, 0x90, 0x3d, 0x81, 0x63, + 0x3f, 0x84, 0x4d, 0xcb, 0x76, 0xed, 0xc8, 0x26, 0x03, 0xc3, 0x66, 0x74, 0x56, 0xbf, 0x4e, 0x76, + 0x5f, 0x8b, 0x5b, 0xec, 0x84, 0x88, 0x07, 0x72, 0x91, 0x19, 0xbb, 0xde, 0x91, 0xe3, 0x59, 0xe8, + 0x4a, 0x91, 0x39, 0x0d, 0xeb, 0x37, 0xe8, 0x5a, 0x54, 0x24, 0x6e, 0x60, 0x4e, 0x43, 0xf6, 0x14, + 0xaa, 0xa6, 0x88, 0x56, 0x43, 0xc7, 0x9b, 0xf8, 0xf5, 0x7a, 0xfa, 0xc5, 0x24, 0x15, 0xc7, 0x78, + 0xc5, 0x5c, 0x02, 0xfa, 0xbf, 0xe4, 0x40, 0x8d, 0xaf, 0x3a, 0xf6, 0x9b, 0x47, 0xdd, 0x97, 0xdd, + 0xde, 0xab, 0xae, 0x96, 0xc1, 0x1c, 0x77, 0xdc, 0xe8, 0x1c, 0x19, 0xc3, 0x7e, 0xb3, 0xd1, 0x15, + 0x8f, 0x87, 0xf4, 0x70, 0x25, 0xe0, 0x2c, 0xbb, 0x02, 0xb5, 0x17, 0x47, 0xdd, 0xe6, 0xa0, 0xdd, + 0xeb, 0x0a, 0x54, 0x0e, 0x51, 0xc6, 0x67, 0x22, 0xf5, 0x09, 0x54, 0x1e, 0x51, 0x07, 0x8d, 0x81, + 0xc1, 0xdb, 0x31, 0xaa, 0x80, 0xb3, 0x1c, 0xf2, 0xde, 0x4f, 0x8c, 0xe6, 0x40, 0x03, 0xf6, 0x1e, + 0x5c, 0x49, 0x44, 0x62, 0x75, 0x5a, 0x05, 0x93, 0x68, 0x2c, 0xa6, 0x5d, 0x43, 0x25, 0xdc, 0x68, + 0x1e, 0xf1, 0x7e, 0xfb, 0xd8, 0x18, 0x36, 0x07, 0x86, 0xf6, 0x1e, 0x26, 0xe7, 0x7e, 0xbb, 0xfb, + 0x52, 0xbb, 0xce, 0x6a, 0x50, 0xc6, 0x91, 0xd0, 0x7e, 0x83, 0xd2, 0xf7, 0xfe, 0xbe, 0x76, 0x07, + 0x55, 0xec, 0xb5, 0xfb, 0x83, 0x76, 0xb7, 0x39, 0xd0, 0x3e, 0xc0, 0x0c, 0xfd, 0xa2, 0xdd, 0x19, + 0x18, 0x5c, 0xdb, 0x42, 0xd9, 0x9f, 0xf4, 0xda, 0x5d, 0xed, 0x2e, 0xbd, 0xb9, 0x35, 0x0e, 0x0e, + 0x3b, 0x86, 0xa6, 0x93, 0xc6, 0x1e, 0x1f, 0x68, 0xf7, 0x58, 0x19, 0x0a, 0x47, 0x5d, 0xb4, 0xe3, + 0x3e, 0x2a, 0xa7, 0xe1, 0xb0, 0xd1, 0xe9, 0x68, 0x0f, 0x52, 0x79, 0xfe, 0x21, 0x8e, 0x5f, 0xb5, + 0xbb, 0x7b, 0xbd, 0x57, 0xda, 0x37, 0x91, 0x6d, 0x97, 0xf7, 0x1a, 0x7b, 0x4d, 0x2c, 0x07, 0xb6, + 0x51, 0x41, 0xff, 0xb0, 0xd3, 0x1e, 0x68, 0xdf, 0x42, 0xae, 0xfd, 0xc6, 0xa0, 0x65, 0x70, 0xed, + 0x11, 0x8e, 0x1b, 0xfd, 0xbe, 0xc1, 0x07, 0xda, 0x0e, 0x8e, 0xdb, 0x5d, 0x1a, 0x3f, 0x21, 0xad, + 0x87, 0x7b, 0x8d, 0x81, 0xa1, 0x3d, 0xc5, 0xf1, 0x9e, 0xd1, 0x31, 0x06, 0x86, 0xf6, 0x1d, 0xd4, + 0x4a, 0x95, 0x44, 0x1f, 0xb7, 0xea, 0x19, 0xee, 0x42, 0x02, 0x92, 0x3d, 0xdf, 0xc5, 0x89, 0x0e, + 0xda, 0xdd, 0xa3, 0xbe, 0xf6, 0x1c, 0x99, 0x69, 0x48, 0x94, 0xef, 0xe9, 0xaf, 0x41, 0x8d, 0x63, + 0x21, 0x72, 0xb5, 0xbb, 0x5d, 0x83, 0x8b, 0x9a, 0xa6, 0x63, 0xbc, 0x18, 0x68, 0x0a, 0x22, 0x79, + 0x7b, 0xbf, 0x85, 0xd5, 0x4c, 0x19, 0x0a, 0xbd, 0x23, 0xdc, 0x9a, 0x1c, 0x6d, 0x82, 0x71, 0xd0, + 0xd6, 0xf2, 0x38, 0x6a, 0x74, 0x07, 0x6d, 0xad, 0x40, 0x9b, 0xd4, 0xee, 0xee, 0x77, 0x0c, 0xad, + 0x88, 0xd8, 0x83, 0x06, 0x7f, 0xa9, 0x95, 0x50, 0xa8, 0x71, 0x78, 0xd8, 0xf9, 0x5c, 0x53, 0xf5, + 0x6d, 0x28, 0x35, 0xa6, 0xd3, 0x03, 0x4c, 0x2a, 0x2a, 0xe4, 0x5f, 0x1c, 0x75, 0x3a, 0xe2, 0xdd, + 0x79, 0xb7, 0x37, 0x18, 0xf4, 0x0e, 0xc4, 0xd3, 0xc5, 0xa0, 0x77, 0xa8, 0x65, 0xf5, 0xdf, 0x28, + 0xb0, 0xb1, 0xea, 0xea, 0xec, 0x3a, 0xc8, 0x8a, 0xe3, 0x42, 0xfd, 0x51, 0x87, 0xb8, 0xde, 0xb8, + 0x58, 0x7e, 0xe8, 0x50, 0x5d, 0x84, 0xb6, 0x50, 0xf3, 0x32, 0xa9, 0x41, 0x56, 0x70, 0xd8, 0xa7, + 0x8e, 0x4d, 0x6f, 0x10, 0x2c, 0xbc, 0xb1, 0x19, 0x89, 0x64, 0xaa, 0xf2, 0x34, 0x0a, 0xcb, 0x48, + 0x27, 0x6c, 0x89, 0xf2, 0x42, 0xbe, 0x62, 0x2d, 0x11, 0xfa, 0xaf, 0xb2, 0x50, 0xf8, 0xe9, 0xc2, + 0x0e, 0xce, 0xd9, 0x33, 0x28, 0x87, 0xd1, 0x2c, 0x4a, 0xa7, 0xc9, 0x9b, 0xe2, 0x4e, 0x11, 0xfd, + 0x71, 0x3f, 0x32, 0x23, 0x7a, 0xd4, 0x12, 0xc9, 0x12, 0x79, 0xe9, 0x2e, 0x51, 0x3f, 0x60, 0xcf, + 0x45, 0xe9, 0x5b, 0xe0, 0x02, 0xc0, 0x80, 0x89, 0x39, 0x33, 0x6e, 0x29, 0x61, 0x99, 0xba, 0xb8, + 0x20, 0x60, 0xc0, 0x9c, 0x9b, 0x81, 0x39, 0xbb, 0xec, 0xcd, 0x42, 0x52, 0x30, 0x41, 0x9e, 0xd8, + 0x26, 0xde, 0xfc, 0xf8, 0xa9, 0x22, 0x81, 0xf5, 0x57, 0x50, 0x5b, 0x31, 0x69, 0xf5, 0x52, 0xe3, + 0x59, 0x1a, 0x1d, 0xf4, 0x27, 0x25, 0xe5, 0x82, 0xd9, 0x94, 0xdb, 0xe5, 0x52, 0xee, 0x98, 0x27, + 0x07, 0x33, 0xf8, 0xbe, 0xa1, 0x15, 0xf4, 0xbf, 0xcd, 0xc2, 0x95, 0x41, 0x60, 0x7a, 0xa1, 0x29, + 0x5e, 0x44, 0xbc, 0x28, 0xf0, 0x5d, 0xf6, 0x7d, 0x50, 0xa3, 0xb1, 0x9b, 0xde, 0x9d, 0x0f, 0x64, + 0x24, 0xbe, 0xc8, 0xfa, 0x78, 0x30, 0x76, 0x69, 0x8f, 0x4a, 0x91, 0x18, 0xb0, 0x8f, 0xa0, 0x30, + 0xb2, 0xa7, 0x8e, 0x27, 0x5b, 0xcf, 0xf7, 0x2e, 0x0a, 0xee, 0x22, 0xb1, 0x95, 0xe1, 0x82, 0x8b, + 0x7d, 0x02, 0xc5, 0xb1, 0x3f, 0xc3, 0x6c, 0x23, 0xea, 0x8c, 0xeb, 0xeb, 0x13, 0x21, 0xb5, 0x95, + 0xe1, 0x92, 0x8f, 0x3d, 0x03, 0x35, 0xf0, 0x5d, 0x77, 0x64, 0x8e, 0xdf, 0xc8, 0x16, 0xb4, 0x7e, + 0x51, 0x86, 0x4b, 0x7a, 0x2b, 0xc3, 0x13, 0x5e, 0xfd, 0x31, 0x94, 0xa4, 0xb1, 0xb8, 0x01, 0xbb, + 0xc6, 0x7e, 0x5b, 0xee, 0x5d, 0xb3, 0x77, 0x70, 0xd0, 0xc6, 0xbd, 0xab, 0x82, 0xca, 0x7b, 0x9d, + 0xce, 0x6e, 0xa3, 0xf9, 0x52, 0xcb, 0xee, 0xaa, 0x50, 0x34, 0xe9, 0xc9, 0x5a, 0xff, 0x73, 0x05, + 0x36, 0x2f, 0x2c, 0x80, 0x3d, 0x87, 0xfc, 0xcc, 0xb7, 0xe2, 0xed, 0xb9, 0x7f, 0xe9, 0x2a, 0x53, + 0x30, 0xde, 0x23, 0x4e, 0x12, 0xfa, 0xf7, 0x60, 0x63, 0x15, 0x9f, 0xfa, 0x5b, 0xa1, 0x06, 0x65, + 0x6e, 0x34, 0xf6, 0x86, 0xbd, 0x6e, 0xe7, 0x73, 0x11, 0x9d, 0x09, 0x7c, 0xc5, 0xdb, 0x03, 0x43, + 0xcb, 0xea, 0x3f, 0x07, 0xed, 0xe2, 0xc6, 0xb0, 0x7d, 0xd8, 0x1c, 0xfb, 0xb3, 0xb9, 0x6b, 0x53, + 0xf7, 0x91, 0x3a, 0xb2, 0x3b, 0x97, 0xec, 0xa4, 0x64, 0xa3, 0x13, 0xdb, 0x18, 0xaf, 0xc0, 0xfa, + 0x1f, 0x03, 0x5b, 0xdf, 0xc1, 0xff, 0x3f, 0xf5, 0xff, 0xaa, 0x40, 0xfe, 0xd0, 0x35, 0x3d, 0x76, + 0x0f, 0x0a, 0xf4, 0xce, 0x2f, 0x7b, 0xc1, 0x4a, 0xea, 0xde, 0xa1, 0x5b, 0x10, 0x8d, 0x7d, 0x08, + 0xb9, 0x68, 0xec, 0x4a, 0x1f, 0xba, 0xf1, 0x0e, 0xe7, 0x6b, 0x65, 0x38, 0x72, 0xb1, 0x6d, 0xc8, + 0x59, 0x96, 0x2b, 0x1d, 0x28, 0xce, 0xbd, 0x66, 0x64, 0xee, 0xd9, 0x13, 0xc7, 0x73, 0xe4, 0xbf, + 0x0e, 0xc8, 0xc2, 0x1e, 0x40, 0xce, 0x1a, 0xbb, 0xd2, 0x6d, 0xae, 0x2c, 0x39, 0x53, 0x0a, 0xad, + 0xb1, 0xcb, 0x1e, 0x42, 0xce, 0xa1, 0x07, 0x43, 0x64, 0x63, 0xf1, 0xe3, 0x49, 0x68, 0x07, 0x91, + 0x78, 0xa5, 0xa2, 0x07, 0x14, 0x2f, 0xdc, 0x2d, 0x02, 0x7d, 0x54, 0xa0, 0xff, 0x4e, 0x81, 0x6a, + 0x9a, 0xfe, 0xb5, 0x1a, 0xb0, 0x4f, 0xb1, 0xe4, 0x98, 0xbb, 0xce, 0xd8, 0x89, 0x44, 0x33, 0x94, + 0xbb, 0xa4, 0x19, 0xaa, 0xc6, 0x2c, 0xd4, 0x0e, 0x7d, 0x08, 0xa2, 0xf7, 0x11, 0xfc, 0xf9, 0x4b, + 0xf8, 0xcb, 0x44, 0x4f, 0x7a, 0xa7, 0x54, 0x6b, 0x54, 0xb8, 0xd8, 0x1a, 0xb1, 0x87, 0xf4, 0x8f, + 0x2d, 0x3d, 0x95, 0x16, 0xd3, 0xaa, 0x04, 0x92, 0xc7, 0x44, 0xfd, 0xdb, 0x78, 0x65, 0x71, 0x88, + 0x61, 0x4d, 0x8c, 0x2e, 0x69, 0x79, 0x25, 0x45, 0xff, 0xdf, 0x2c, 0x54, 0x52, 0x5b, 0xcc, 0x9e, + 0x82, 0x6a, 0xad, 0xc6, 0x96, 0x9b, 0x6b, 0xe7, 0xf0, 0x78, 0x2f, 0x8e, 0x2a, 0x96, 0xbc, 0xb1, + 0xdf, 0x83, 0x1a, 0xd6, 0x6f, 0x6f, 0xcd, 0xc0, 0xa1, 0xf2, 0x49, 0x7a, 0x86, 0x3c, 0x9b, 0xbe, + 0x1d, 0x1d, 0xc7, 0x94, 0x56, 0x86, 0x57, 0xc3, 0x14, 0xcc, 0xbe, 0x85, 0x8d, 0xad, 0x3d, 0x37, + 0x03, 0x5b, 0x7a, 0x48, 0x2d, 0x7e, 0xe2, 0x22, 0x64, 0x2b, 0xc3, 0x63, 0x3a, 0xb2, 0xda, 0x67, + 0xf6, 0x78, 0x21, 0x93, 0x4b, 0xc2, 0x6a, 0x08, 0x24, 0xb2, 0x4a, 0x3a, 0xdb, 0x01, 0xb0, 0x6c, + 0xd3, 0x75, 0x7d, 0x4a, 0x45, 0x85, 0x74, 0x49, 0xb9, 0x97, 0xe0, 0xc5, 0xdf, 0xff, 0x31, 0xa4, + 0x4f, 0xa1, 0x24, 0x17, 0x86, 0x69, 0xbf, 0x6f, 0x0c, 0x86, 0xc7, 0x0d, 0xde, 0xc6, 0xf2, 0xab, + 0xaf, 0x65, 0x30, 0x28, 0xed, 0xf3, 0x46, 0x57, 0x06, 0x71, 0x6e, 0x1c, 0xf7, 0x5e, 0x1a, 0x5a, + 0x56, 0x3c, 0x58, 0x74, 0x3f, 0xd7, 0x72, 0xa2, 0xc4, 0x32, 0x0e, 0x1b, 0x1c, 0x63, 0x78, 0x05, + 0x4a, 0xc6, 0x67, 0x46, 0xf3, 0x68, 0x60, 0x68, 0x05, 0x8c, 0x13, 0x7b, 0x46, 0xa3, 0xd3, 0xe9, + 0x35, 0x31, 0xc0, 0x17, 0x77, 0xcb, 0x78, 0x92, 0xb4, 0x93, 0xfa, 0x9f, 0x95, 0x61, 0x63, 0xf5, + 0x2e, 0xb0, 0xef, 0x82, 0x6a, 0x59, 0x2b, 0x27, 0x70, 0xfb, 0xb2, 0x3b, 0xf3, 0x78, 0xcf, 0x8a, + 0x0f, 0x41, 0x0c, 0xd8, 0xdd, 0xf8, 0xe6, 0x66, 0xd7, 0x6e, 0x6e, 0x7c, 0x6f, 0x7f, 0x04, 0x9b, + 0xe2, 0x01, 0x94, 0x4a, 0xed, 0x91, 0x19, 0xda, 0xab, 0xd7, 0xb2, 0x49, 0xc4, 0x3d, 0x49, 0x6b, + 0x65, 0xf8, 0xc6, 0x78, 0x05, 0xc3, 0x7e, 0x00, 0x1b, 0x26, 0xb5, 0x6c, 0x89, 0x7c, 0x3e, 0xfd, + 0x78, 0xd8, 0x40, 0x5a, 0x4a, 0xbc, 0x66, 0xa6, 0x11, 0xe8, 0x26, 0x56, 0xe0, 0xcf, 0x97, 0xc2, + 0x2b, 0x57, 0x78, 0x2f, 0xf0, 0xe7, 0x29, 0xd9, 0xaa, 0x95, 0x82, 0xd9, 0x33, 0xa8, 0x4a, 0xcb, + 0xa9, 0xc9, 0x90, 0xff, 0x5e, 0x5e, 0x49, 0x9b, 0x4d, 0xe5, 0x4d, 0x2b, 0xc3, 0x2b, 0xe3, 0x25, + 0xc8, 0x9e, 0x40, 0x45, 0x18, 0x2c, 0xc4, 0x4a, 0x69, 0x4f, 0x20, 0x6b, 0x63, 0x29, 0x30, 0x13, + 0x88, 0x7d, 0x02, 0x40, 0x76, 0x0a, 0x19, 0x35, 0xdd, 0xbe, 0xa0, 0x91, 0xb1, 0x48, 0xd9, 0x8a, + 0x81, 0x94, 0x79, 0xe2, 0x29, 0xb9, 0xbc, 0x6e, 0x1e, 0xbd, 0x95, 0x2e, 0xcd, 0x23, 0x70, 0x69, + 0x9e, 0x10, 0x83, 0x35, 0xf3, 0x62, 0x29, 0x61, 0x9e, 0x10, 0x8a, 0xcd, 0x13, 0x32, 0x95, 0x8b, + 0xe6, 0xc5, 0x22, 0x64, 0x9e, 0x90, 0xf8, 0x01, 0x6c, 0x44, 0xb2, 0x08, 0x93, 0x8b, 0xaa, 0xa6, + 0x8f, 0x2d, 0x2e, 0xd0, 0xe2, 0x85, 0xd5, 0xa2, 0x34, 0x02, 0xa5, 0xc3, 0x13, 0xff, 0x34, 0x75, + 0xbd, 0x6b, 0x69, 0xe9, 0xfe, 0x89, 0x7f, 0x9a, 0xbe, 0xdf, 0xb5, 0x30, 0x8d, 0xd0, 0xff, 0x2a, + 0x07, 0x25, 0xe9, 0xab, 0xec, 0x2a, 0x6c, 0x36, 0xb9, 0xd1, 0x18, 0x18, 0xc3, 0xbd, 0xc6, 0xa0, + 0xb1, 0xdb, 0xe8, 0x63, 0x56, 0x65, 0xb0, 0xd1, 0xc0, 0x2e, 0x61, 0x89, 0x53, 0xf0, 0x02, 0xee, + 0xf1, 0xde, 0xe1, 0x12, 0x95, 0x65, 0x1a, 0x54, 0xa5, 0xac, 0xf8, 0x2f, 0x3f, 0xc7, 0x36, 0xa1, + 0x22, 0x04, 0x05, 0x22, 0x4f, 0x17, 0x0d, 0xa5, 0x04, 0x5c, 0x48, 0x89, 0xb4, 0xbb, 0x7b, 0xc6, + 0x67, 0x5a, 0x71, 0x29, 0x22, 0x10, 0xa5, 0x44, 0x44, 0xc0, 0x2a, 0x1a, 0x33, 0xe0, 0x47, 0xdd, + 0xe6, 0x72, 0x9e, 0x32, 0xbb, 0x01, 0x57, 0xfb, 0xad, 0xde, 0xab, 0xa1, 0xd0, 0x95, 0x98, 0x04, + 0xec, 0x1a, 0x68, 0x29, 0x82, 0x60, 0xaf, 0xa0, 0x0a, 0xc2, 0xc6, 0x8c, 0x7d, 0xad, 0x8a, 0xf3, + 0x12, 0x6e, 0x20, 0xc2, 0x49, 0x0d, 0x4d, 0x13, 0xa2, 0xbd, 0xce, 0xd1, 0x41, 0xb7, 0xaf, 0x6d, + 0xa0, 0x25, 0x84, 0x11, 0x96, 0x6c, 0x26, 0x6a, 0x96, 0x41, 0x48, 0xa3, 0xb8, 0x84, 0xb8, 0x57, + 0x0d, 0xde, 0x6d, 0x77, 0xf7, 0xfb, 0xda, 0x95, 0x44, 0xb3, 0xc1, 0x79, 0x8f, 0xf7, 0x35, 0x96, + 0x20, 0xfa, 0x83, 0xc6, 0xe0, 0xa8, 0xaf, 0x5d, 0x4d, 0xac, 0x3c, 0xe4, 0xbd, 0xa6, 0xd1, 0xef, + 0x77, 0xda, 0xfd, 0x81, 0x76, 0x6d, 0xb7, 0x4a, 0x9f, 0x43, 0xc9, 0x60, 0xa2, 0x1f, 0xc2, 0xc6, + 0xea, 0xdd, 0x67, 0x3a, 0xd4, 0x9c, 0xc9, 0xd0, 0xf3, 0xa3, 0xa1, 0x7d, 0xe6, 0x84, 0x51, 0x18, + 0xff, 0xe9, 0xeb, 0x4c, 0xba, 0x7e, 0x64, 0x10, 0x0a, 0x6b, 0xe2, 0xe4, 0x2a, 0x8b, 0x74, 0x99, + 0xc0, 0x7a, 0x0b, 0x6a, 0x2b, 0xd1, 0x80, 0x7d, 0x03, 0xca, 0xce, 0x64, 0x55, 0x99, 0xea, 0x4c, + 0xbe, 0x82, 0xa6, 0x7d, 0xa8, 0xa6, 0x43, 0xc3, 0xd7, 0x57, 0xf4, 0x37, 0x0a, 0x54, 0x52, 0xa1, + 0xe2, 0x2b, 0x2d, 0xf1, 0x36, 0x94, 0x23, 0x7b, 0x36, 0xf7, 0x03, 0x53, 0x06, 0x56, 0x95, 0x2f, + 0x11, 0x2b, 0xb3, 0xe5, 0x56, 0x67, 0x5b, 0x7d, 0x61, 0xc9, 0xff, 0xe1, 0x17, 0x16, 0xbd, 0x07, + 0xb0, 0x8c, 0x46, 0xf4, 0x0f, 0x06, 0xdd, 0x52, 0xf9, 0xd5, 0x14, 0x01, 0xab, 0x0a, 0xb3, 0x5f, + 0xa2, 0xf0, 0x67, 0x50, 0x4e, 0x42, 0xd5, 0xd7, 0xde, 0xb1, 0xa5, 0x21, 0xb9, 0x94, 0x21, 0xfa, + 0x7e, 0xbc, 0x8d, 0x22, 0xb8, 0x7c, 0x95, 0x6d, 0xbc, 0x06, 0x05, 0x11, 0xad, 0xe4, 0x5f, 0xdf, + 0x04, 0xe8, 0xba, 0x5c, 0xb5, 0xd0, 0x93, 0xf0, 0x28, 0x69, 0x9e, 0x1f, 0x8a, 0x85, 0x08, 0x96, + 0x3f, 0xb8, 0x90, 0xcb, 0xe7, 0x78, 0x00, 0xb5, 0x95, 0xf0, 0x76, 0xf9, 0xe6, 0xea, 0x6d, 0xa8, + 0xad, 0xc4, 0xb1, 0xd4, 0xf7, 0x7a, 0x4a, 0xfa, 0x7b, 0x3d, 0xec, 0x26, 0x4f, 0x4f, 0xec, 0xc0, + 0xbe, 0xe4, 0x93, 0x24, 0x41, 0xd0, 0x7f, 0x00, 0xd5, 0x74, 0xc5, 0xc3, 0xbe, 0x0d, 0x05, 0x27, + 0xb2, 0x67, 0xf1, 0x5f, 0xf9, 0xd7, 0xd7, 0x8b, 0x22, 0xfa, 0x6b, 0x5a, 0x30, 0xe9, 0xbf, 0x56, + 0x40, 0xbb, 0x48, 0x4b, 0x7d, 0x54, 0xa8, 0xbc, 0xe3, 0xa3, 0xc2, 0xec, 0x8a, 0x91, 0x97, 0x7c, + 0x18, 0x88, 0x86, 0x8b, 0xbf, 0xe3, 0x2e, 0xf9, 0xca, 0x8d, 0x08, 0xec, 0x21, 0xa8, 0x81, 0x4d, + 0xdf, 0x80, 0x59, 0x32, 0x33, 0xaf, 0xfc, 0x09, 0x1c, 0xd3, 0xf4, 0xbf, 0x50, 0xa0, 0x24, 0xcb, + 0xb3, 0x4b, 0xff, 0xe4, 0xfd, 0x16, 0x94, 0xc4, 0x5f, 0x51, 0xf1, 0x7f, 0x50, 0x6b, 0x4f, 0x7f, + 0x31, 0x9d, 0xdd, 0x11, 0x25, 0xfa, 0xea, 0x2b, 0x36, 0xf6, 0x21, 0x9c, 0xf0, 0x58, 0x15, 0x53, + 0xff, 0x4d, 0xe5, 0x50, 0x28, 0xff, 0x5f, 0x03, 0x42, 0x61, 0x42, 0x09, 0xf5, 0x3f, 0x82, 0x92, + 0x2c, 0xff, 0x2e, 0x35, 0xe5, 0xcb, 0xbe, 0x1f, 0xdb, 0x02, 0x58, 0xd6, 0x83, 0x97, 0x69, 0x78, + 0x74, 0x17, 0xaa, 0xe9, 0x6f, 0x7a, 0xa8, 0x1b, 0xf4, 0x3d, 0x5b, 0xcb, 0xb0, 0x12, 0xe4, 0x3a, + 0x5f, 0x3c, 0xd5, 0x94, 0x47, 0x7f, 0x92, 0xfa, 0x02, 0x80, 0x78, 0x4a, 0x90, 0x7b, 0x69, 0x7c, + 0x2e, 0xde, 0xf3, 0x3a, 0xed, 0xae, 0xd1, 0xe0, 0x43, 0x84, 0x15, 0x14, 0x6e, 0x35, 0xfa, 0x2d, + 0x2d, 0x8b, 0x51, 0x5a, 0x52, 0x08, 0x91, 0xa3, 0xb7, 0xa1, 0x46, 0x77, 0xdf, 0x10, 0xef, 0x77, + 0x34, 0x4c, 0x92, 0x43, 0x81, 0xde, 0x90, 0x30, 0x6e, 0x17, 0x31, 0x71, 0xe0, 0x28, 0xa1, 0x95, + 0x1e, 0xfd, 0x18, 0xea, 0xef, 0x6a, 0xf3, 0x50, 0x6b, 0xb3, 0xd5, 0xa0, 0x56, 0xba, 0x0a, 0x6a, + 0xb7, 0x37, 0x14, 0x90, 0x82, 0x05, 0x2a, 0x37, 0x3a, 0x06, 0xa5, 0xd6, 0xdd, 0x1f, 0xfd, 0xe3, + 0x6f, 0xef, 0x28, 0xff, 0xf4, 0xdb, 0x3b, 0xca, 0xbf, 0xff, 0xf6, 0x4e, 0xe6, 0xd7, 0xff, 0x79, + 0x47, 0xf9, 0x59, 0xfa, 0x3b, 0xec, 0x99, 0x19, 0x05, 0xce, 0x99, 0xf8, 0x50, 0x27, 0x06, 0x3c, + 0xfb, 0xe3, 0xf9, 0x9b, 0xe9, 0xc7, 0xf3, 0xd1, 0xc7, 0xb8, 0xa3, 0xa3, 0x22, 0x7d, 0x8e, 0xfd, + 0xe4, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x98, 0x7b, 0x09, 0x98, 0xd1, 0x2d, 0x00, 0x00, } func (m *Type) Marshal() (dAtA []byte, err error) { @@ -7027,11 +7045,21 @@ func (m *ColDef) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.Comment) i = encodeVarintPlan(dAtA, i, uint64(len(m.Comment))) i-- - dAtA[i] = 0x3a + dAtA[i] = 0x42 } if m.Pkidx != 0 { i = encodeVarintPlan(dAtA, i, uint64(m.Pkidx)) i-- + dAtA[i] = 0x38 + } + if m.AutoIncrement { + i-- + if m.AutoIncrement { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- dAtA[i] = 0x30 } if m.Primary { @@ -8295,7 +8323,7 @@ func (m *Node) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xba + dAtA[i] = 0xc2 } if len(m.BindingTags) > 0 { dAtA36 := make([]byte, len(m.BindingTags)*10) @@ -8316,7 +8344,7 @@ func (m *Node) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xb2 + dAtA[i] = 0xba } if len(m.DeleteTablesCtx) > 0 { for iNdEx := len(m.DeleteTablesCtx) - 1; iNdEx >= 0; iNdEx-- { @@ -8331,7 +8359,7 @@ func (m *Node) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xaa + dAtA[i] = 0xb2 } } if len(m.ExtraOptions) > 0 { @@ -8341,7 +8369,7 @@ func (m *Node) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xa2 + dAtA[i] = 0xaa } if m.RowsetData != nil { { @@ -8355,7 +8383,7 @@ func (m *Node) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0x9a + dAtA[i] = 0xa2 } if m.ObjRef != nil { { @@ -8369,7 +8397,23 @@ func (m *Node) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0x92 + dAtA[i] = 0x9a + } + if len(m.TableDefVec) > 0 { + for iNdEx := len(m.TableDefVec) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.TableDefVec[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPlan(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + } } if m.TableDef != nil { { @@ -11006,6 +11050,9 @@ func (m *ColDef) ProtoSize() (n int) { if m.Primary { n += 2 } + if m.AutoIncrement { + n += 2 + } if m.Pkidx != 0 { n += 1 + sovPlan(uint64(m.Pkidx)) } @@ -11668,6 +11715,12 @@ func (m *Node) ProtoSize() (n int) { l = m.TableDef.ProtoSize() n += 2 + l + sovPlan(uint64(l)) } + if len(m.TableDefVec) > 0 { + for _, e := range m.TableDefVec { + l = e.ProtoSize() + n += 2 + l + sovPlan(uint64(l)) + } + } if m.ObjRef != nil { l = m.ObjRef.ProtoSize() n += 2 + l + sovPlan(uint64(l)) @@ -15104,6 +15157,26 @@ func (m *ColDef) Unmarshal(dAtA []byte) error { } m.Primary = bool(v != 0) case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AutoIncrement", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPlan + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.AutoIncrement = bool(v != 0) + case 7: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Pkidx", wireType) } @@ -15122,7 +15195,7 @@ func (m *ColDef) Unmarshal(dAtA []byte) error { break } } - case 7: + case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Comment", wireType) } @@ -18967,6 +19040,40 @@ func (m *Node) Unmarshal(dAtA []byte) error { } iNdEx = postIndex case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TableDefVec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPlan + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPlan + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPlan + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TableDefVec = append(m.TableDefVec, &TableDef{}) + if err := m.TableDefVec[len(m.TableDefVec)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 19: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ObjRef", wireType) } @@ -19002,7 +19109,7 @@ func (m *Node) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 19: + case 20: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field RowsetData", wireType) } @@ -19038,7 +19145,7 @@ func (m *Node) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 20: + case 21: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ExtraOptions", wireType) } @@ -19070,7 +19177,7 @@ func (m *Node) Unmarshal(dAtA []byte) error { } m.ExtraOptions = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 21: + case 22: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field DeleteTablesCtx", wireType) } @@ -19104,7 +19211,7 @@ func (m *Node) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 22: + case 23: if wireType == 0 { var v int32 for shift := uint(0); ; shift += 7 { @@ -19180,7 +19287,7 @@ func (m *Node) Unmarshal(dAtA []byte) error { } else { return fmt.Errorf("proto: wrong wireType = %d for field BindingTags", wireType) } - case 23: + case 24: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field AnalyzeInfo", wireType) } diff --git a/pkg/sql/colexec/auto_incr.go b/pkg/sql/colexec/auto_incr.go new file mode 100644 index 0000000000000000000000000000000000000000..956b726e3cd182cbecee57f34bc921a2a3305628 --- /dev/null +++ b/pkg/sql/colexec/auto_incr.go @@ -0,0 +1,400 @@ +// Copyright 2022 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package colexec + +import ( + "context" + "fmt" + "math" + + "github.com/matrixorigin/matrixone/pkg/container/batch" + "github.com/matrixorigin/matrixone/pkg/container/nulls" + "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/matrixorigin/matrixone/pkg/container/vector" + "github.com/matrixorigin/matrixone/pkg/pb/plan" + "github.com/matrixorigin/matrixone/pkg/sql/errors" + "github.com/matrixorigin/matrixone/pkg/vm/engine" + "github.com/matrixorigin/matrixone/pkg/vm/engine/tae/moengine" + "github.com/matrixorigin/matrixone/pkg/vm/process" +) + +var AUTO_INCR_TABLE = "%!%mo_increment_columns" +var AUTO_INCR_TABLE_COLNAME []string = []string{"name", "offset", "step"} + +type AutoIncrParam struct { + eg engine.Engine + db engine.Database + rel engine.Relation + ctx context.Context + proc *process.Process + colDefs []*plan.ColDef +} + +func UpdateInsertBatch(e engine.Engine, db engine.Database, ctx context.Context, proc *process.Process, ColDefs []*plan.ColDef, bat *batch.Batch, tableID string) error { + incrParam := &AutoIncrParam{ + eg: e, + db: db, + ctx: ctx, + proc: proc, + colDefs: ColDefs, + } + + offset, step, err := getRangeFromAutoIncrTable(incrParam, bat, tableID) + if err != nil { + return err + } + + if err = updateBatchImpl(ColDefs, bat, offset, step); err != nil { + return err + } + return nil +} + +func UpdateInsertValueBatch(e engine.Engine, ctx context.Context, proc *process.Process, p *plan.InsertValues, bat *batch.Batch) error { + ColDefs := p.ExplicitCols + orderColDefs(p.OrderAttrs, ColDefs) + db, err := e.Database(ctx, p.DbName, proc.TxnOperator) + if err != nil { + return err + } + rel, err := db.Relation(ctx, p.TblName) + if err != nil { + return err + } + return UpdateInsertBatch(e, db, ctx, proc, ColDefs, bat, rel.GetTableID(ctx)) +} + +func getRangeFromAutoIncrTable(param *AutoIncrParam, bat *batch.Batch, tableID string) ([]int64, []int64, error) { + offset, step := make([]int64, 0), make([]int64, 0) + var err error + for i, col := range param.colDefs { + if !col.AutoIncrement { + continue + } + var d, s int64 + param.rel, err = param.db.Relation(param.ctx, AUTO_INCR_TABLE) + if err != nil { + return nil, nil, err + } + if d, s, err = getOneColRangeFromAutoIncrTable(param, bat, tableID+"_"+col.Name, i); err != nil { + return nil, nil, err + } + offset = append(offset, d) + step = append(step, s) + } + return offset, step, nil +} + +func getOneColRangeFromAutoIncrTable(param *AutoIncrParam, bat *batch.Batch, name string, pos int) (int64, int64, error) { + taeEngine, ok := param.eg.(moengine.TxnEngine) + if !ok { + return 0, 0, errors.New("", "the engine is not tae") + } + + txnCtx, err := taeEngine.StartTxn(nil) + if err != nil { + return 0, 0, err + } + + oriNum, step := getCurrentIndex(param, name) + if oriNum < 0 { + if err2 := txnCtx.Rollback(); err2 != nil { + return 0, 0, err2 + } + return 0, 0, errors.New("", "GetIndex from auto_increment table fail") + } + + vec := bat.Vecs[pos] + maxNum := oriNum + switch vec.Typ.Oid { + case types.T_int32: + vs := vec.Col.([]int32) + for rowIndex := 0; rowIndex < bat.Length(); rowIndex++ { + if nulls.Contains(vec.Nsp, uint64(rowIndex)) { + maxNum += step + } else { + if int64(vs[rowIndex]) > maxNum { + maxNum = int64(vs[rowIndex]) + } + } + } + case types.T_int64: + vs := vec.Col.([]int64) + for rowIndex := 0; rowIndex < bat.Length(); rowIndex++ { + if nulls.Contains(vec.Nsp, uint64(rowIndex)) { + maxNum += step + } else { + if vs[rowIndex] > maxNum { + maxNum = vs[rowIndex] + } + } + } + } + + if maxNum < 0 { + return 0, 0, errors.New("", "auto_incrment column constant value overflows bigint") + } + if err := updateAutoIncrTable(param, maxNum, name); err != nil { + if err2 := txnCtx.Rollback(); err2 != nil { + return 0, 0, err2 + } + return 0, 0, err + } + err = txnCtx.Commit() + if err != nil { + return 0, 0, err + } + return oriNum, step, nil +} + +func updateBatchImpl(ColDefs []*plan.ColDef, bat *batch.Batch, offset, step []int64) error { + pos := 0 + for i, col := range ColDefs { + if !col.AutoIncrement { + continue + } + vec := bat.Vecs[i] + curNum := offset[pos] + stepNum := step[pos] + pos++ + switch vec.Typ.Oid { + case types.T_int32: + vs := vec.Col.([]int32) + for rowIndex := 0; rowIndex < bat.Length(); rowIndex++ { + if nulls.Contains(vec.Nsp, uint64(rowIndex)) { + nulls.Del(vec.Nsp, uint64(rowIndex)) + curNum += stepNum + if curNum > math.MaxInt32 { + return fmt.Errorf("auto_incrment column '%s' constant value %d overflows int", col.Name, curNum) + } + vs[rowIndex] = int32(curNum) + } else if vs[rowIndex] >= int32(curNum) { + curNum = int64(vs[rowIndex]) + } + } + case types.T_int64: + vs := vec.Col.([]int64) + for rowIndex := 0; rowIndex < bat.Length(); rowIndex++ { + if nulls.Contains(vec.Nsp, uint64(rowIndex)) { + nulls.Del(vec.Nsp, uint64(rowIndex)) + curNum += stepNum + vs[rowIndex] = curNum + } else if vs[rowIndex] >= curNum { + curNum = int64(vs[rowIndex]) + } + } + default: + return errors.New("", "the auto_incr col is not int32 or int64 type") + } + } + return nil +} + +func getCurrentIndex(param *AutoIncrParam, colName string) (int64, int64) { + rds, _ := param.rel.NewReader(param.ctx, 1, nil, nil) + for { + bat, err := rds[0].Read(AUTO_INCR_TABLE_COLNAME, nil, param.proc.Mp) + if err != nil || bat == nil { + return -1, 0 + } + if len(bat.Vecs) < 2 { + panic(errors.New("", "the mo_increment_columns col num is not two")) + } + vs := bat.Vecs[0].Col.(*types.Bytes) + vs2 := bat.Vecs[1].Col.([]int64) + vs3 := bat.Vecs[2].Col.([]int64) + var rowIndex int64 + for rowIndex = 0; rowIndex < int64(bat.Length()); rowIndex++ { + str := string(vs.Get(rowIndex)) + if str == colName { + break + } + } + if rowIndex < int64(bat.Length()) { + return vs2[rowIndex], vs3[rowIndex] + } + } +} + +func updateAutoIncrTable(param *AutoIncrParam, curNum int64, name string) error { + bat := makeAutoIncrBatch(name, curNum, 1) + err := param.rel.Delete(param.ctx, bat.GetVector(0), AUTO_INCR_TABLE_COLNAME[0]) + if err != nil { + return err + } + + if err = param.rel.Write(param.ctx, bat); err != nil { + return err + } + return nil +} + +func makeAutoIncrBatch(name string, num, step int64) *batch.Batch { + vBytes := &types.Bytes{ + Offsets: make([]uint32, 1), + Lengths: make([]uint32, 1), + Data: nil, + } + vec := &vector.Vector{ + Typ: types.T_varchar.ToType(), + Col: vBytes, + Data: make([]byte, 0), + Nsp: &nulls.Nulls{}, + } + + vec.Data = append(vec.Data, name...) + vBytes.Offsets[0] = uint32(0) + vBytes.Data = append(vBytes.Data, name...) + vBytes.Lengths[0] = uint32(len(name)) + + vec2 := &vector.Vector{ + Typ: types.T_int64.ToType(), + Nsp: &nulls.Nulls{}, + } + vec2.Data = make([]byte, 8) + vec2.Col = types.DecodeInt64Slice(vec2.Data) + vec2.Col.([]int64)[0] = num + + vec3 := &vector.Vector{ + Typ: types.T_int64.ToType(), + Nsp: &nulls.Nulls{}, + } + vec3.Data = make([]byte, 8) + vec3.Col = types.DecodeInt64Slice(vec3.Data) + vec3.Col.([]int64)[0] = step + + bat := &batch.Batch{ + Attrs: AUTO_INCR_TABLE_COLNAME, + Vecs: []*vector.Vector{vec, vec2, vec3}, + } + return bat +} + +// for create database operation, add col in mo_increment_columns table +func CreateAutoIncrTable(e engine.Engine, ctx context.Context, proc *process.Process, dbName string) error { + dbSource, err := e.Database(ctx, dbName, proc.TxnOperator) + if err != nil { + return err + } + if err = dbSource.Create(ctx, AUTO_INCR_TABLE, getAutoIncrTableDef()); err != nil { + return err + } + return nil +} + +// for create table operation, add col in mo_increment_columns table +func CreateAutoIncrCol(db engine.Database, ctx context.Context, proc *process.Process, cols []*plan.ColDef, tblName string) error { + rel, err := db.Relation(ctx, tblName) + if err != nil { + return err + } + + name := rel.GetTableID(ctx) + "_" + for _, attr := range cols { + if !attr.AutoIncrement { + continue + } + if rel, err = db.Relation(ctx, AUTO_INCR_TABLE); err != nil { + return err + } + bat := makeAutoIncrBatch(name+attr.Name, 0, 1) + if err = rel.Write(ctx, bat); err != nil { + return err + } + } + return nil +} + +// for delete table operation, delete col in mo_increment_columns table +func DeleteAutoIncrCol(rel engine.Relation, db engine.Database, ctx context.Context, proc *process.Process, tableID string) error { + rel2, err := db.Relation(ctx, AUTO_INCR_TABLE) + if err != nil { + return err + } + + defs, err := rel.TableDefs(ctx) + if err != nil { + return err + } + + for _, def := range defs { + switch d := def.(type) { + case *engine.AttributeDef: + if !d.Attr.AutoIncrement { + continue + } + bat := makeAutoIncrBatch(tableID+"_"+d.Attr.Name, 0, 1) + if err = rel2.Delete(ctx, bat.GetVector(0), AUTO_INCR_TABLE_COLNAME[0]); err != nil { + return err + } + } + } + return nil +} + +func orderColDefs(attrs []string, ColDefs []*plan.ColDef) { + for i, name := range attrs { + for j, def := range ColDefs { + if name == def.Name { + ColDefs[i], ColDefs[j] = ColDefs[j], ColDefs[i] + } + } + } +} + +func getAutoIncrTableDef() []engine.TableDef { + /* + mo_increment_columns schema + | Attribute | Type | Primary Key | Note | + | ------- | ------------ | ----------- | ------------------------ | + | name | varchar(770) | | Name of the db_table_col | + | offset | int64 | | current index number | + | step | int64 | | every increase step | + */ + + nameAttr := &engine.AttributeDef{Attr: engine.Attribute{ + Name: AUTO_INCR_TABLE_COLNAME[0], + Alg: 0, + Type: types.T_varchar.ToType(), + Default: &plan.Default{}, + Primary: true, + }} + + numAttr := &engine.AttributeDef{Attr: engine.Attribute{ + Name: AUTO_INCR_TABLE_COLNAME[1], + Alg: 0, + Type: types.T_int64.ToType(), + Default: &plan.Default{}, + Primary: false, + }} + + stepAttr := &engine.AttributeDef{Attr: engine.Attribute{ + Name: AUTO_INCR_TABLE_COLNAME[2], + Alg: 0, + Type: types.T_int64.ToType(), + Default: &plan.Default{}, + Primary: false, + }} + + defs := make([]engine.TableDef, 0, 3) + defs = append(defs, nameAttr) + defs = append(defs, numAttr) + defs = append(defs, stepAttr) + defs = append(defs, &engine.PrimaryIndexDef{ + Names: []string{AUTO_INCR_TABLE_COLNAME[0]}, + }) + + return defs +} diff --git a/pkg/sql/colexec/auto_incr_test.go b/pkg/sql/colexec/auto_incr_test.go new file mode 100644 index 0000000000000000000000000000000000000000..3e62c009e70c591c3b15817aa153e2f7ea83d5e0 --- /dev/null +++ b/pkg/sql/colexec/auto_incr_test.go @@ -0,0 +1,64 @@ +// Copyright 2022 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package colexec + +import ( + "testing" + + "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/matrixorigin/matrixone/pkg/vm/engine" + "github.com/smartystreets/goconvey/convey" +) + +func Test_makeAutoIncrBatch(t *testing.T) { + convey.Convey("Test makeAutoIncrBatch succ", t, func() { + name := "a" + num, step := 0, 1 + bat := makeAutoIncrBatch(name, int64(num), int64(step)) + convey.So(bat.Attrs, convey.ShouldResemble, AUTO_INCR_TABLE_COLNAME) + convey.So(len(bat.Vecs), convey.ShouldEqual, 3) + convey.So(bat.Vecs[0].Data, convey.ShouldResemble, []byte(name)) + convey.So(bat.Vecs[1].Col, convey.ShouldResemble, []int64{int64(num)}) + convey.So(bat.Vecs[2].Col, convey.ShouldResemble, []int64{int64(step)}) + }) +} + +func Test_getAutoIncrTableDef(t *testing.T) { + convey.Convey("Test getAutoIncrTableDef succ", t, func() { + def := getAutoIncrTableDef() + convey.So(len(def), convey.ShouldEqual, 4) + nameAttr, ok := def[0].(*engine.AttributeDef) + convey.So(ok, convey.ShouldBeTrue) + convey.So(nameAttr.Attr.Name, convey.ShouldEqual, AUTO_INCR_TABLE_COLNAME[0]) + convey.So(nameAttr.Attr.Type, convey.ShouldResemble, types.T_varchar.ToType()) + convey.So(nameAttr.Attr.Primary, convey.ShouldBeTrue) + + numAttr, ok := def[1].(*engine.AttributeDef) + convey.So(ok, convey.ShouldBeTrue) + convey.So(numAttr.Attr.Name, convey.ShouldEqual, AUTO_INCR_TABLE_COLNAME[1]) + convey.So(numAttr.Attr.Type, convey.ShouldResemble, types.T_int64.ToType()) + convey.So(numAttr.Attr.Primary, convey.ShouldBeFalse) + + stepAttr, ok := def[2].(*engine.AttributeDef) + convey.So(ok, convey.ShouldBeTrue) + convey.So(stepAttr.Attr.Name, convey.ShouldEqual, AUTO_INCR_TABLE_COLNAME[2]) + convey.So(stepAttr.Attr.Type, convey.ShouldResemble, types.T_int64.ToType()) + convey.So(stepAttr.Attr.Primary, convey.ShouldBeFalse) + + pri, ok := def[3].(*engine.PrimaryIndexDef) + convey.So(ok, convey.ShouldBeTrue) + convey.So(pri.Names, convey.ShouldResemble, []string{AUTO_INCR_TABLE_COLNAME[0]}) + }) +} diff --git a/pkg/sql/colexec/insert/insert.go b/pkg/sql/colexec/insert/insert.go index 510996450632c244345d2f09ab96f7aae80a0132..f9ab97e1853d43cc613ef7d08466bbdf69ba8cfd 100644 --- a/pkg/sql/colexec/insert/insert.go +++ b/pkg/sql/colexec/insert/insert.go @@ -24,6 +24,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/container/vector" "github.com/matrixorigin/matrixone/pkg/errno" "github.com/matrixorigin/matrixone/pkg/pb/plan" + "github.com/matrixorigin/matrixone/pkg/sql/colexec" "github.com/matrixorigin/matrixone/pkg/sql/errors" "github.com/matrixorigin/matrixone/pkg/vm/engine" "github.com/matrixorigin/matrixone/pkg/vm/process" @@ -34,6 +35,9 @@ type Argument struct { TargetTable engine.Relation TargetColDefs []*plan.ColDef Affected uint64 + Engine engine.Engine + DB engine.Database + TableID string } func String(_ any, buf *bytes.Buffer) { @@ -91,6 +95,9 @@ func Call(_ int, proc *process.Process, arg any) (bool, error) { } } ctx := context.TODO() + if err := colexec.UpdateInsertBatch(n.Engine, n.DB, ctx, proc, n.TargetColDefs, bat, n.TableID); err != nil { + return false, err + } err := n.TargetTable.Write(ctx, bat) n.Affected += uint64(len(bat.Zs)) return false, err diff --git a/pkg/sql/colexec/update/types.go b/pkg/sql/colexec/update/types.go index a74c28c1156efb0f0ad182c807a6d98fdc13ab47..6af52b32f325fa1143541e5a95024a16fbedd168 100644 --- a/pkg/sql/colexec/update/types.go +++ b/pkg/sql/colexec/update/types.go @@ -14,12 +14,19 @@ package update -import "github.com/matrixorigin/matrixone/pkg/vm/engine" +import ( + "github.com/matrixorigin/matrixone/pkg/sql/plan" + "github.com/matrixorigin/matrixone/pkg/vm/engine" +) type Argument struct { Ts uint64 AffectedRows uint64 UpdateCtxs []*UpdateCtx + TableDefVec []*plan.TableDef + Engine engine.Engine + DB []engine.Database + TableID []string } type UpdateCtx struct { diff --git a/pkg/sql/colexec/update/update.go b/pkg/sql/colexec/update/update.go index 76d4fd8f84fa72d56904d39fc59507fea360d84c..2f1141357fc90e6f5a61964746c7f3ffd9f3c43a 100644 --- a/pkg/sql/colexec/update/update.go +++ b/pkg/sql/colexec/update/update.go @@ -25,6 +25,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/container/vector" "github.com/matrixorigin/matrixone/pkg/container/batch" + "github.com/matrixorigin/matrixone/pkg/sql/colexec" "github.com/matrixorigin/matrixone/pkg/vm/process" ) @@ -42,6 +43,7 @@ func Call(_ int, proc *process.Process, arg any) (bool, error) { if bat == nil || len(bat.Zs) == 0 { return false, nil } + defer bat.Clean(proc.Mp) var affectedRows uint64 = 0 batLen := batch.Length(bat) @@ -51,7 +53,7 @@ func Call(_ int, proc *process.Process, arg any) (bool, error) { } ctx := context.TODO() - for _, updateCtx := range p.UpdateCtxs { + for i, updateCtx := range p.UpdateCtxs { tmpBat := &batch.Batch{} @@ -61,6 +63,7 @@ func Call(_ int, proc *process.Process, arg any) (bool, error) { tmpBat.Vecs = bat.Vecs[int(idx)+1 : int(idx)+len(updateCtx.OrderAttrs)+1] tmpBat.Attrs = append(tmpBat.Attrs, updateCtx.UpdateAttrs...) tmpBat.Attrs = append(tmpBat.Attrs, updateCtx.OtherAttrs...) + tmpBat.Zs = bat.Zs for i := range tmpBat.Vecs { if tmpBat.Vecs[i].IsScalarNull() { @@ -77,6 +80,9 @@ func Call(_ int, proc *process.Process, arg any) (bool, error) { } batch.Reorder(tmpBat, updateCtx.OrderAttrs) + if err := colexec.UpdateInsertBatch(p.Engine, p.DB[i], ctx, proc, p.TableDefVec[i].Cols, tmpBat, p.TableID[i]); err != nil { + return false, err + } err = updateCtx.TableSource.Write(ctx, tmpBat) if err != nil { return false, err @@ -107,6 +113,9 @@ func Call(_ int, proc *process.Process, arg any) (bool, error) { tmpBat.Attrs = append(tmpBat.Attrs, updateCtx.OtherAttrs...) batch.Reorder(tmpBat, updateCtx.OrderAttrs) + if err := colexec.UpdateInsertBatch(p.Engine, p.DB[i], ctx, proc, p.TableDefVec[i].Cols, tmpBat, p.TableID[i]); err != nil { + return false, err + } err = updateCtx.TableSource.Write(ctx, tmpBat) if err != nil { tmpBat.Clean(proc.Mp) @@ -156,6 +165,7 @@ func FilterBatch(bat *batch.Batch, batLen int, proc *process.Process) (*batch.Ba } } } + newBat.Zs = make([]int64, batLen) return newBat, cnt } diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index 55152d11da22c346e69d1f203effda2bc02aaf26..00ed737471da5e53eea7ea172ca2fced60bffbba 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -21,6 +21,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/container/types" "github.com/matrixorigin/matrixone/pkg/errno" "github.com/matrixorigin/matrixone/pkg/pb/plan" + "github.com/matrixorigin/matrixone/pkg/sql/colexec" "github.com/matrixorigin/matrixone/pkg/sql/errors" "github.com/matrixorigin/matrixone/pkg/vm/engine" ) @@ -33,7 +34,11 @@ func (s *Scope) CreateDatabase(c *Compile) error { } return errors.New(errno.SyntaxErrororAccessRuleViolation, fmt.Sprintf("database %s already exists", dbName)) } - return c.e.Create(c.ctx, dbName, c.proc.TxnOperator) + err := c.e.Create(c.ctx, dbName, c.proc.TxnOperator) + if err != nil { + return err + } + return colexec.CreateAutoIncrTable(c.e, c.ctx, c.proc, dbName) } func (s *Scope) DropDatabase(c *Compile) error { @@ -72,7 +77,10 @@ func (s *Scope) CreateTable(c *Compile) error { } return errors.New(errno.SyntaxErrororAccessRuleViolation, fmt.Sprintf("table '%s' already exists", tblName)) } - return dbSource.Create(c.ctx, tblName, append(exeCols, exeDefs...)) + if err := dbSource.Create(c.ctx, tblName, append(exeCols, exeDefs...)); err != nil { + return err + } + return colexec.CreateAutoIncrCol(dbSource, c.ctx, c.proc, planCols, tblName) } func (s *Scope) DropTable(c *Compile) error { @@ -87,13 +95,17 @@ func (s *Scope) DropTable(c *Compile) error { return err } tblName := qry.GetTable() - if _, err := dbSource.Relation(c.ctx, tblName); err != nil { + var rel engine.Relation + if rel, err = dbSource.Relation(c.ctx, tblName); err != nil { if qry.GetIfExists() { return nil } return err } - return dbSource.Delete(c.ctx, tblName) + if err := dbSource.Delete(c.ctx, tblName); err != nil { + return err + } + return colexec.DeleteAutoIncrCol(rel, dbSource, c.ctx, c.proc, rel.GetTableID(c.ctx)) } func planDefsToExeDefs(planDefs []*plan.TableDef_DefType) []engine.TableDef { @@ -151,9 +163,10 @@ func planColsToExeCols(planCols []*plan.ColDef) []engine.TableDef { Scale: colTyp.GetScale(), Size: colTyp.GetSize(), }, - Default: planCols[i].GetDefault(), - Primary: col.GetPrimary(), - Comment: col.GetComment(), + Default: planCols[i].GetDefault(), + Primary: col.GetPrimary(), + Comment: col.GetComment(), + AutoIncrement: col.GetAutoIncrement(), }, } } diff --git a/pkg/sql/compile/dml.go b/pkg/sql/compile/dml.go index 9865568813cab145d3c92f337083f7cd4ac6a634..9bbed6fc312def446e98c058e683804a872341e0 100644 --- a/pkg/sql/compile/dml.go +++ b/pkg/sql/compile/dml.go @@ -85,6 +85,10 @@ func (s *Scope) InsertValues(c *Compile, stmt *tree.Insert) (uint64, error) { return 0, err } batch.Reorder(bat, p.OrderAttrs) + + if err = colexec.UpdateInsertValueBatch(c.e, c.ctx, c.proc, p, bat); err != nil { + return 0, err + } if err := relation.Write(c.ctx, bat); err != nil { return 0, err } @@ -428,6 +432,10 @@ func fillBatch(bat *batch.Batch, p *plan.InsertValues, rows []tree.Exprs, proc * return fmt.Errorf("data truncation: type of '%v' doesn't implement", v.Typ) } } + bat.Zs = make([]int64, len(rows)) + for i := 0; i < len(rows); i++ { + bat.Zs[i] = 1 + } return nil } diff --git a/pkg/sql/compile/operator.go b/pkg/sql/compile/operator.go index 6858bc1e754dec81e138695ce4d7f9c5e58a84f5..bea24dfb5e9c8a658acdfd909d785dbe2277cdf8 100644 --- a/pkg/sql/compile/operator.go +++ b/pkg/sql/compile/operator.go @@ -279,23 +279,29 @@ func constructInsert(n *plan.Node, eg engine.Engine, txnOperator TxnOperator) (* return &insert.Argument{ TargetTable: relation, TargetColDefs: n.TableDef.Cols, + Engine: eg, + DB: db, + TableID: relation.GetTableID(ctx), }, nil } func constructUpdate(n *plan.Node, eg engine.Engine, txnOperator TxnOperator) (*update.Argument, error) { ctx := context.TODO() us := make([]*update.UpdateCtx, len(n.UpdateCtxs)) + tableID := make([]string, len(n.UpdateCtxs)) + db := make([]engine.Database, len(n.UpdateCtxs)) for i, updateCtx := range n.UpdateCtxs { - dbSource, err := eg.Database(ctx, updateCtx.DbName, txnOperator) if err != nil { return nil, err } + db[i] = dbSource relation, err := dbSource.Relation(ctx, updateCtx.TblName) if err != nil { return nil, err } + tableID[i] = relation.GetTableID(ctx) colNames := make([]string, 0, len(updateCtx.UpdateCols)) for _, col := range updateCtx.UpdateCols { colNames = append(colNames, col.Name) @@ -313,7 +319,11 @@ func constructUpdate(n *plan.Node, eg engine.Engine, txnOperator TxnOperator) (* } } return &update.Argument{ - UpdateCtxs: us, + UpdateCtxs: us, + Engine: eg, + DB: db, + TableID: tableID, + TableDefVec: n.TableDefVec, }, nil } diff --git a/pkg/sql/parsers/dialect/mysql/keywords.go b/pkg/sql/parsers/dialect/mysql/keywords.go index c2e3787437b8c0420412945033d38a5aedaa0d4e..81c833cb1be2284816a134e3dca13cd1203aaa6e 100644 --- a/pkg/sql/parsers/dialect/mysql/keywords.go +++ b/pkg/sql/parsers/dialect/mysql/keywords.go @@ -218,6 +218,7 @@ func init() { "limit": LIMIT, "linear": LINEAR, "lines": LINES, + "rows": ROWS, "linestring": LINESTRING, "load": LOAD, "localtime": LOCALTIME, diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql.go b/pkg/sql/parsers/dialect/mysql/mysql_sql.go index d814d2e2e80b2c31c61328d943ab10046d008d79..e7433ddbeb89f223c5d23f0f333ac928813d1eb0 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql.go +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql.go @@ -370,116 +370,117 @@ const ENCLOSED = 57692 const ESCAPED = 57693 const STARTING = 57694 const LINES = 57695 -const DATABASES = 57696 -const TABLES = 57697 -const EXTENDED = 57698 -const FULL = 57699 -const PROCESSLIST = 57700 -const FIELDS = 57701 -const COLUMNS = 57702 -const OPEN = 57703 -const ERRORS = 57704 -const WARNINGS = 57705 -const INDEXES = 57706 -const SCHEMAS = 57707 -const NAMES = 57708 -const GLOBAL = 57709 -const SESSION = 57710 -const ISOLATION = 57711 -const LEVEL = 57712 -const READ = 57713 -const WRITE = 57714 -const ONLY = 57715 -const REPEATABLE = 57716 -const COMMITTED = 57717 -const UNCOMMITTED = 57718 -const SERIALIZABLE = 57719 -const LOCAL = 57720 -const CURRENT_TIMESTAMP = 57721 -const DATABASE = 57722 -const CURRENT_TIME = 57723 -const LOCALTIME = 57724 -const LOCALTIMESTAMP = 57725 -const UTC_DATE = 57726 -const UTC_TIME = 57727 -const UTC_TIMESTAMP = 57728 -const REPLACE = 57729 -const CONVERT = 57730 -const SEPARATOR = 57731 -const CURRENT_DATE = 57732 -const CURRENT_USER = 57733 -const CURRENT_ROLE = 57734 -const SECOND_MICROSECOND = 57735 -const MINUTE_MICROSECOND = 57736 -const MINUTE_SECOND = 57737 -const HOUR_MICROSECOND = 57738 -const HOUR_SECOND = 57739 -const HOUR_MINUTE = 57740 -const DAY_MICROSECOND = 57741 -const DAY_SECOND = 57742 -const DAY_MINUTE = 57743 -const DAY_HOUR = 57744 -const YEAR_MONTH = 57745 -const SQL_TSI_HOUR = 57746 -const SQL_TSI_DAY = 57747 -const SQL_TSI_WEEK = 57748 -const SQL_TSI_MONTH = 57749 -const SQL_TSI_QUARTER = 57750 -const SQL_TSI_YEAR = 57751 -const SQL_TSI_SECOND = 57752 -const SQL_TSI_MINUTE = 57753 -const RECURSIVE = 57754 -const CONFIG = 57755 -const MATCH = 57756 -const AGAINST = 57757 -const BOOLEAN = 57758 -const LANGUAGE = 57759 -const WITH = 57760 -const QUERY = 57761 -const EXPANSION = 57762 -const ADDDATE = 57763 -const BIT_AND = 57764 -const BIT_OR = 57765 -const BIT_XOR = 57766 -const CAST = 57767 -const COUNT = 57768 -const APPROX_COUNT_DISTINCT = 57769 -const APPROX_PERCENTILE = 57770 -const CURDATE = 57771 -const CURTIME = 57772 -const DATE_ADD = 57773 -const DATE_SUB = 57774 -const EXTRACT = 57775 -const GROUP_CONCAT = 57776 -const MAX = 57777 -const MID = 57778 -const MIN = 57779 -const NOW = 57780 -const POSITION = 57781 -const SESSION_USER = 57782 -const STD = 57783 -const STDDEV = 57784 -const STDDEV_POP = 57785 -const STDDEV_SAMP = 57786 -const SUBDATE = 57787 -const SUBSTR = 57788 -const SUBSTRING = 57789 -const SUM = 57790 -const SYSDATE = 57791 -const SYSTEM_USER = 57792 -const TRANSLATE = 57793 -const TRIM = 57794 -const VARIANCE = 57795 -const VAR_POP = 57796 -const VAR_SAMP = 57797 -const AVG = 57798 -const JSON_EXTRACT = 57799 -const ROW = 57800 -const OUTFILE = 57801 -const HEADER = 57802 -const MAX_FILE_SIZE = 57803 -const FORCE_QUOTE = 57804 -const UNUSED = 57805 +const ROWS = 57696 +const DATABASES = 57697 +const TABLES = 57698 +const EXTENDED = 57699 +const FULL = 57700 +const PROCESSLIST = 57701 +const FIELDS = 57702 +const COLUMNS = 57703 +const OPEN = 57704 +const ERRORS = 57705 +const WARNINGS = 57706 +const INDEXES = 57707 +const SCHEMAS = 57708 +const NAMES = 57709 +const GLOBAL = 57710 +const SESSION = 57711 +const ISOLATION = 57712 +const LEVEL = 57713 +const READ = 57714 +const WRITE = 57715 +const ONLY = 57716 +const REPEATABLE = 57717 +const COMMITTED = 57718 +const UNCOMMITTED = 57719 +const SERIALIZABLE = 57720 +const LOCAL = 57721 +const CURRENT_TIMESTAMP = 57722 +const DATABASE = 57723 +const CURRENT_TIME = 57724 +const LOCALTIME = 57725 +const LOCALTIMESTAMP = 57726 +const UTC_DATE = 57727 +const UTC_TIME = 57728 +const UTC_TIMESTAMP = 57729 +const REPLACE = 57730 +const CONVERT = 57731 +const SEPARATOR = 57732 +const CURRENT_DATE = 57733 +const CURRENT_USER = 57734 +const CURRENT_ROLE = 57735 +const SECOND_MICROSECOND = 57736 +const MINUTE_MICROSECOND = 57737 +const MINUTE_SECOND = 57738 +const HOUR_MICROSECOND = 57739 +const HOUR_SECOND = 57740 +const HOUR_MINUTE = 57741 +const DAY_MICROSECOND = 57742 +const DAY_SECOND = 57743 +const DAY_MINUTE = 57744 +const DAY_HOUR = 57745 +const YEAR_MONTH = 57746 +const SQL_TSI_HOUR = 57747 +const SQL_TSI_DAY = 57748 +const SQL_TSI_WEEK = 57749 +const SQL_TSI_MONTH = 57750 +const SQL_TSI_QUARTER = 57751 +const SQL_TSI_YEAR = 57752 +const SQL_TSI_SECOND = 57753 +const SQL_TSI_MINUTE = 57754 +const RECURSIVE = 57755 +const CONFIG = 57756 +const MATCH = 57757 +const AGAINST = 57758 +const BOOLEAN = 57759 +const LANGUAGE = 57760 +const WITH = 57761 +const QUERY = 57762 +const EXPANSION = 57763 +const ADDDATE = 57764 +const BIT_AND = 57765 +const BIT_OR = 57766 +const BIT_XOR = 57767 +const CAST = 57768 +const COUNT = 57769 +const APPROX_COUNT_DISTINCT = 57770 +const APPROX_PERCENTILE = 57771 +const CURDATE = 57772 +const CURTIME = 57773 +const DATE_ADD = 57774 +const DATE_SUB = 57775 +const EXTRACT = 57776 +const GROUP_CONCAT = 57777 +const MAX = 57778 +const MID = 57779 +const MIN = 57780 +const NOW = 57781 +const POSITION = 57782 +const SESSION_USER = 57783 +const STD = 57784 +const STDDEV = 57785 +const STDDEV_POP = 57786 +const STDDEV_SAMP = 57787 +const SUBDATE = 57788 +const SUBSTR = 57789 +const SUBSTRING = 57790 +const SUM = 57791 +const SYSDATE = 57792 +const SYSTEM_USER = 57793 +const TRANSLATE = 57794 +const TRIM = 57795 +const VARIANCE = 57796 +const VAR_POP = 57797 +const VAR_SAMP = 57798 +const AVG = 57799 +const JSON_EXTRACT = 57800 +const ROW = 57801 +const OUTFILE = 57802 +const HEADER = 57803 +const MAX_FILE_SIZE = 57804 +const FORCE_QUOTE = 57805 +const UNUSED = 57806 var yyToknames = [...]string{ "$end", @@ -852,6 +853,7 @@ var yyToknames = [...]string{ "ESCAPED", "STARTING", "LINES", + "ROWS", "DATABASES", "TABLES", "EXTENDED", @@ -974,7 +976,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line mysql_sql.y:7217 +//line mysql_sql.y:7222 //line yacctab:1 var yyExca = [...]int{ @@ -982,488 +984,582 @@ var yyExca = [...]int{ 1, -1, -2, 0, -1, 63, - 21, 432, - -2, 413, + 21, 433, + -2, 414, -1, 68, - 199, 587, - -2, 629, + 199, 588, + -2, 630, -1, 85, - 226, 290, - 227, 290, - -2, 311, + 226, 291, + 227, 291, + -2, 312, -1, 366, - 21, 433, - -2, 396, + 21, 434, + -2, 397, -1, 442, - 94, 1312, - 105, 1312, - 124, 1312, - -2, 1124, + 94, 1314, + 105, 1314, + 124, 1314, + -2, 1125, -1, 472, - 21, 433, - -2, 396, + 21, 434, + -2, 397, -1, 633, - 58, 1463, - -2, 1470, + 58, 1465, + -2, 1472, -1, 641, - 58, 1464, - -2, 1478, - -1, 643, - 58, 1460, + 58, 1466, -2, 1480, + -1, 643, + 58, 1462, + -2, 1482, -1, 644, - 58, 1461, - -2, 1481, + 58, 1463, + -2, 1483, -1, 649, - 58, 1462, - -2, 1487, + 58, 1464, + -2, 1489, -1, 650, - 58, 1465, - -2, 1488, + 58, 1467, + -2, 1490, -1, 651, - 58, 1466, - -2, 1489, + 58, 1468, + -2, 1491, -1, 652, - 58, 886, - -2, 1490, - -1, 653, 58, 887, - -2, 1491, - -1, 654, - 58, 888, -2, 1492, - -1, 656, - 58, 1467, + -1, 653, + 58, 888, + -2, 1493, + -1, 654, + 58, 889, -2, 1494, + -1, 656, + 58, 1469, + -2, 1496, -1, 657, - 58, 906, - -2, 1495, + 58, 907, + -2, 1497, -1, 658, - 58, 905, - -2, 1496, + 58, 906, + -2, 1498, -1, 661, - 58, 1468, - -2, 1499, + 58, 1470, + -2, 1501, -1, 662, - 58, 1469, - -2, 1500, + 58, 1471, + -2, 1502, -1, 668, - 58, 968, - -2, 1312, + 58, 969, + -2, 1314, -1, 669, - 58, 977, - -2, 1337, + 58, 978, + -2, 1339, -1, 670, - 58, 981, - -2, 1376, + 58, 982, + -2, 1378, -1, 671, - 58, 992, - -2, 1436, + 58, 993, + -2, 1438, -1, 672, - 58, 994, - -2, 1446, + 58, 995, + -2, 1448, -1, 673, - 58, 982, - -2, 1451, + 58, 983, + -2, 1453, -1, 674, - 58, 990, - -2, 1455, + 58, 991, + -2, 1457, -1, 675, - 58, 971, - -2, 1456, + 58, 972, + -2, 1458, -1, 833, - 1, 613, - 60, 613, - 481, 613, - -2, 620, + 1, 614, + 60, 614, + 482, 614, + -2, 621, -1, 973, - 21, 432, - -2, 814, + 21, 433, + -2, 815, -1, 1020, - 124, 1134, - -2, 1132, + 124, 1135, + -2, 1133, -1, 1022, - 124, 531, - -2, 1129, - -1, 1023, 124, 532, -2, 1130, - -1, 1233, - 1, 614, - 60, 614, - 481, 614, - -2, 620, - -1, 1321, - 58, 1036, - -2, 1453, + -1, 1023, + 124, 533, + -2, 1131, + -1, 1234, + 1, 615, + 60, 615, + 482, 615, + -2, 621, -1, 1322, 58, 1037, - -2, 1454, - -1, 1490, - 56, 353, - 59, 353, - -2, 720, - -1, 1810, - 79, 620, - 120, 620, - 156, 620, - 159, 620, - -2, 668, - -1, 1812, - 260, 781, - -2, 762, - -1, 1842, - 56, 353, - 59, 353, + -2, 1455, + -1, 1323, + 58, 1038, + -2, 1456, + -1, 1491, + 56, 354, + 59, 354, -2, 721, - -1, 1919, - 79, 620, - 120, 620, - 156, 620, - 159, 620, + -1, 1811, + 79, 621, + 120, 621, + 156, 621, + 159, 621, -2, 669, - -1, 1947, - 260, 781, + -1, 1813, + 260, 782, -2, 763, - -1, 2344, - 59, 641, - 60, 641, - -2, 620, - -1, 2348, - 59, 641, - 60, 641, - -2, 620, - -1, 2362, - 59, 645, - 60, 645, - -2, 620, - -1, 2367, + -1, 1843, + 56, 354, + 59, 354, + -2, 722, + -1, 1920, + 79, 621, + 120, 621, + 156, 621, + 159, 621, + -2, 670, + -1, 1948, + 260, 782, + -2, 764, + -1, 2346, + 59, 642, + 60, 642, + -2, 621, + -1, 2350, + 59, 642, + 60, 642, + -2, 621, + -1, 2364, 59, 646, 60, 646, - -2, 620, + -2, 621, + -1, 2369, + 59, 647, + 60, 647, + -2, 621, } const yyPrivate = 57344 -const yyLast = 21431 +const yyLast = 21474 var yyAct = [...]int{ - 816, 1324, 2350, 2356, 2348, 2347, 2325, 808, 2194, 678, - 1984, 2314, 2274, 1281, 1959, 697, 2258, 2166, 2232, 2170, - 2147, 2259, 1907, 1915, 1217, 1982, 903, 600, 102, 1983, - 1804, 2154, 2007, 319, 325, 609, 325, 1325, 1277, 1905, - 367, 1863, 804, 366, 676, 1967, 1835, 1633, 868, 105, - 1466, 1948, 329, 1996, 838, 1493, 440, 811, 1966, 1629, - 550, 323, 22, 1856, 1874, 1866, 632, 539, 1505, 888, - 862, 395, 1276, 709, 63, 1878, 101, 1638, 1634, 1816, - 1706, 1196, 1191, 1002, 1696, 1714, 1568, 677, 1685, 1648, - 1240, 467, 1017, 441, 1644, 335, 1020, 1627, 1192, 1011, - 1003, 102, 1408, 881, 311, 1394, 63, 62, 1531, 1312, - 687, 865, 1012, 1504, 847, 1263, 863, 1468, 322, 15, - 320, 6, 552, 1463, 1923, 1234, 1239, 3, 321, 5, - 1193, 802, 807, 818, 443, 1323, 679, 445, 826, 1326, - 1338, 624, 397, 849, 848, 312, 482, 909, 906, 469, - 1203, 885, 1226, 794, 1223, 432, 521, 1279, 940, 822, - 22, 801, 448, 30, 1303, 855, 825, 315, 447, 394, - 576, 338, 63, 12, 7, 337, 2239, 4, 1909, 1210, - 1200, 98, 2014, 1911, 592, 1803, 813, 1005, 501, 840, - 623, 610, 1975, 1441, 324, 30, 1449, 96, 2211, 1197, - 537, 93, 446, 1208, 520, 1455, 332, 2221, 402, 97, - 416, 27, 87, 69, 2246, 578, 569, 15, 570, 6, - 97, 97, 392, 27, 87, 69, 466, 5, 97, 2244, - 327, 851, 310, 870, 871, 810, 92, 518, 1465, 514, - 453, 452, 454, 81, 2236, 97, 2005, 27, 87, 69, - 433, 97, 97, 27, 87, 69, 795, 94, 799, 563, - 564, 30, 579, 97, 51, 2262, 2263, 759, 94, 94, - 451, 1621, 2103, 2100, 561, 2017, 94, 560, 563, 564, - 756, 1464, 798, 2008, 2009, 2010, 2011, 1622, 1805, 1623, - 812, 1594, 1436, 94, 476, 485, 882, 2169, 1799, 94, - 758, 1824, 1657, 790, 1204, 417, 779, 1659, 1831, 1980, - 1224, 94, 1993, 475, 2075, 1649, 1615, 456, 1862, 1861, - 505, 1964, 334, 474, 516, 517, 1613, 325, 515, 102, - 1446, 504, 2272, 449, 2078, 2248, 88, 89, 1977, 90, - 91, 326, 2069, 509, 1536, 1316, 1317, 2341, 2220, 1654, - 1655, 471, 473, 2357, 445, 472, 2281, 2192, 2193, 418, - 2196, 584, 2243, 2196, 1656, 2288, 2218, 797, 368, 2168, - 585, 510, 878, 1315, 1316, 1317, 2063, 492, 2335, 2032, - 365, 2261, 2031, 2202, 1313, 1653, 1477, 450, 588, 384, - 63, 63, 447, 512, 395, 2352, 2058, 363, 2250, 2251, - 364, 494, 68, 86, 95, 1209, 49, 2358, 363, 2326, - 513, 364, 2020, 485, 2098, 571, 1471, 2223, 2224, 1569, - 559, 558, 85, 80, 79, 562, 446, 2364, 496, 468, - 540, 538, 68, 333, 95, 441, 441, 441, 577, 455, - 604, 604, 526, 1642, 541, 542, 1442, 544, 1479, 1480, - 1481, 1482, 85, 501, 507, 796, 1290, 325, 627, 627, - 487, 486, 444, 2317, 1201, 820, 508, 511, 606, 543, - 1618, 761, 1524, 1651, 2155, 2156, 2157, 2159, 2158, 30, - 30, 424, 602, 602, 478, 479, 82, 83, 506, 777, - 545, 328, 2054, 1858, 1857, 626, 626, 547, 389, 390, - 391, 604, 493, 604, 475, 1286, 386, 762, 1288, 1287, - 582, 580, 581, 2351, 809, 873, 383, 382, 612, 59, - 554, 490, 311, 84, 587, 60, 423, 566, 567, 757, - 426, 425, 563, 564, 874, 1285, 2249, 377, 872, 420, - 421, 63, 604, 555, 2167, 833, 2323, 563, 564, 395, - 2278, 786, 839, 1845, 63, 1670, 102, 829, 1535, 523, - 480, 1643, 815, 63, 1198, 819, 525, 1624, 1533, 1198, - 856, 856, 2318, 2222, 61, 1198, 604, 102, 487, 486, - 1660, 380, 1650, 2076, 1494, 1616, 883, 1314, 2363, 1444, - 441, 854, 604, 2059, 2060, 500, 1443, 1211, 1435, 1199, - 375, 806, 1430, 1908, 844, 821, 1255, 1976, 785, 897, - 782, 1450, 565, 834, 1981, 568, 549, 604, 781, 902, - 102, 102, 598, 599, 574, 575, 1215, 918, 788, 763, - 889, 791, 381, 803, 70, 907, 889, 889, 828, 858, - 2132, 842, 611, 30, 1652, 70, 70, 905, 768, 754, - 310, 622, 30, 70, 376, 495, 615, 616, 617, 618, + 816, 1325, 2352, 2358, 2350, 2349, 2327, 808, 2195, 678, + 1985, 2316, 2276, 1282, 1960, 697, 2260, 2167, 2233, 2171, + 2148, 2261, 1908, 1916, 1218, 1983, 903, 600, 102, 1984, + 1805, 2155, 2008, 319, 325, 609, 325, 1326, 1278, 1906, + 367, 1864, 804, 366, 676, 1968, 1836, 1634, 868, 105, + 1467, 1949, 329, 1997, 838, 1494, 440, 811, 1967, 1630, + 550, 323, 22, 1857, 1875, 1867, 632, 539, 1506, 888, + 862, 395, 1277, 709, 63, 1879, 101, 1639, 1635, 1817, + 1707, 1197, 1192, 1002, 1697, 1715, 1569, 677, 1686, 1649, + 1241, 467, 1017, 441, 1645, 335, 1020, 1628, 1193, 1011, + 1003, 102, 1409, 881, 311, 1395, 63, 62, 1532, 1313, + 687, 865, 1012, 1505, 847, 1264, 863, 1469, 322, 15, + 320, 6, 552, 1464, 1924, 1235, 1240, 3, 321, 5, + 1194, 802, 807, 818, 443, 1324, 679, 445, 826, 1327, + 1339, 624, 397, 849, 848, 312, 482, 909, 906, 469, + 1204, 885, 1227, 794, 1224, 432, 521, 1280, 940, 822, + 22, 801, 448, 30, 1304, 855, 825, 315, 447, 394, + 576, 338, 63, 12, 7, 337, 1910, 4, 2241, 1211, + 98, 2015, 1912, 1201, 592, 1804, 813, 1005, 324, 840, + 623, 610, 578, 2222, 2212, 30, 1976, 96, 501, 1450, + 537, 1442, 446, 520, 93, 97, 332, 27, 87, 69, + 1198, 1456, 1209, 384, 97, 870, 871, 15, 97, 6, + 27, 87, 69, 416, 327, 97, 466, 5, 97, 97, + 27, 87, 69, 851, 569, 310, 570, 1466, 795, 579, + 799, 810, 1595, 92, 97, 518, 27, 87, 69, 514, + 81, 433, 97, 94, 2248, 453, 452, 454, 563, 564, + 779, 30, 94, 2246, 798, 561, 94, 759, 560, 563, + 564, 51, 402, 94, 2237, 2238, 94, 94, 392, 2006, + 756, 1465, 2264, 2265, 1622, 451, 2009, 2010, 2011, 2012, + 2104, 2101, 94, 1623, 2018, 1624, 1806, 812, 485, 1437, + 758, 476, 2170, 882, 1800, 1825, 584, 1205, 417, 1981, + 1832, 1658, 1225, 475, 1994, 585, 1660, 1650, 790, 2076, + 1863, 1862, 505, 474, 1965, 1616, 1614, 325, 509, 102, + 386, 515, 456, 1447, 2221, 504, 516, 517, 2079, 1978, + 383, 382, 363, 88, 89, 364, 90, 91, 449, 797, + 2274, 471, 473, 326, 445, 472, 510, 878, 1655, 1656, + 334, 377, 418, 2250, 2070, 2343, 368, 2156, 2157, 2158, + 2160, 2159, 2359, 1657, 2283, 2193, 2194, 492, 2197, 2064, + 2197, 1537, 1317, 1318, 2245, 2290, 68, 2219, 95, 2337, + 63, 63, 447, 363, 395, 2033, 364, 2169, 2032, 2263, + 365, 2203, 450, 2224, 2225, 380, 85, 2252, 2253, 68, + 86, 95, 1478, 49, 485, 1210, 1480, 1481, 1482, 1483, + 588, 513, 512, 2360, 375, 562, 446, 494, 496, 85, + 80, 79, 538, 1472, 571, 441, 441, 441, 796, 507, + 604, 604, 526, 2354, 541, 542, 1654, 544, 559, 558, + 2366, 508, 511, 2328, 1570, 455, 381, 325, 627, 627, + 444, 2021, 540, 487, 486, 468, 333, 2099, 606, 577, + 1443, 761, 1291, 506, 501, 543, 1202, 820, 376, 30, + 30, 2055, 602, 602, 478, 479, 1619, 545, 1643, 777, + 424, 328, 547, 82, 83, 626, 626, 1316, 1317, 1318, + 1525, 604, 493, 604, 475, 873, 2059, 762, 1314, 389, + 390, 391, 1859, 1858, 809, 490, 1287, 2319, 612, 582, + 554, 874, 311, 1286, 587, 872, 59, 566, 567, 757, + 84, 385, 60, 420, 1652, 423, 1289, 1288, 2325, 426, + 425, 63, 604, 555, 421, 833, 580, 581, 2280, 395, + 1846, 786, 839, 1671, 63, 1625, 102, 829, 1534, 523, + 2223, 2353, 815, 63, 2251, 819, 525, 1495, 1445, 480, + 856, 856, 2168, 563, 564, 1199, 604, 102, 1199, 487, + 486, 61, 563, 564, 1651, 1444, 1436, 1199, 2077, 1661, + 441, 854, 604, 883, 1617, 1536, 1431, 1256, 1212, 1216, + 1188, 806, 1909, 1200, 844, 821, 1644, 921, 785, 897, + 782, 2365, 1977, 834, 1982, 1451, 500, 604, 781, 902, + 102, 102, 598, 599, 574, 575, 2320, 918, 788, 763, + 889, 70, 765, 803, 586, 907, 889, 889, 828, 858, + 70, 842, 611, 30, 70, 622, 791, 905, 768, 754, + 608, 70, 30, 310, 70, 70, 615, 616, 617, 618, 619, 620, 621, 784, 783, 764, 922, 780, 904, 904, - 70, 908, 1470, 805, 827, 800, 70, 70, 1187, 444, - 814, 845, 846, 975, 879, 595, 596, 597, 70, 586, - 884, 772, 773, 2315, 2316, 921, 765, 608, 1779, 488, - 877, 1639, 1642, 470, 1830, 2056, 385, 850, 827, 2055, - 896, 958, 1612, 901, 1328, 1327, 1674, 835, 836, 974, - 1610, 1474, 1475, 1753, 1750, 1751, 1752, 982, 408, 1784, - 553, 1783, 1782, 1780, 859, 1473, 857, 1195, 2312, 556, - 591, 861, 860, 1409, 843, 880, 984, 408, 2301, 803, - 894, 895, 593, 1467, 2206, 973, 852, 853, 2106, 1009, - 1009, 1014, 1611, 594, 1683, 1619, 898, 1951, 1432, 1485, - 976, 977, 978, 979, 1292, 899, 477, 776, 900, 1022, - 891, 892, 893, 1774, 1409, 775, 1574, 1194, 2026, 446, - 839, 1781, 422, 1461, 604, 915, 916, 917, 914, 980, - 1333, 1954, 917, 914, 1776, 410, 413, 1949, 409, 998, - 2065, 590, 1962, 1963, 824, 1023, 914, 2064, 1950, 948, - 1643, 102, 102, 1820, 410, 1636, 387, 409, 557, 1637, - 1640, 1401, 447, 1815, 2049, 102, 1241, 961, 962, 963, - 964, 965, 958, 63, 1189, 1399, 1400, 1398, 408, 1645, - 2143, 319, 1955, 2133, 2135, 2136, 2137, 2134, 1336, 1257, - 2334, 2346, 907, 2362, 2141, 2331, 446, 2298, 1337, 1220, - 1222, 1008, 2282, 2180, 992, 915, 916, 917, 914, 1245, - 2139, 1641, 2177, 1237, 427, 2142, 2176, 2149, 1486, 959, - 960, 961, 962, 963, 964, 965, 958, 604, 908, 2140, - 2333, 2127, 1001, 459, 464, 465, 2126, 1785, 1786, 1359, - 2129, 627, 1556, 102, 419, 2138, 1978, 1186, 1282, 1015, - 1308, 1016, 1310, 1021, 1828, 410, 2125, 2122, 409, 889, - 889, 889, 30, 2116, 2113, 2112, 1961, 1185, 1635, 1297, - 1334, 1335, 2015, 1284, 2001, 2128, 1190, 2271, 626, 2000, - 1999, 1979, 1304, 1305, 1306, 1307, 1995, 1555, 1235, 1829, - 407, 1994, 1827, 1957, 1251, 1658, 1253, 2339, 411, 1606, - 1249, 1289, 766, 363, 1331, 998, 364, 1283, 1229, 915, - 916, 917, 914, 1302, 2254, 1956, 1958, 1373, 830, 831, - 832, 1318, 2148, 1916, 2237, 1418, 1252, 1250, 1254, 850, - 2200, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, - 1391, 1392, 1393, 1259, 1258, 2255, 1403, 1404, 2199, 2187, - 1662, 1410, 2175, 1413, 966, 967, 959, 960, 961, 962, - 963, 964, 965, 958, 1246, 1247, 1248, 915, 916, 917, - 914, 1420, 2130, 1293, 1294, 1295, 2123, 1355, 1964, 1352, - 2119, 2118, 1301, 1354, 1351, 1353, 1357, 1358, 1402, 823, - 1952, 1356, 461, 462, 463, 925, 926, 927, 928, 929, - 930, 931, 923, 2117, 1329, 1330, 1900, 1332, 2077, 1396, - 969, 2051, 972, 1368, 1369, 1370, 1371, 1372, 2016, 2012, - 1378, 1379, 1380, 1381, 2173, 1997, 970, 971, 968, 1300, + 70, 908, 549, 805, 827, 800, 565, 444, 70, 568, + 814, 845, 846, 975, 879, 877, 595, 596, 597, 1471, + 884, 772, 773, 495, 2057, 1780, 488, 470, 2056, 1831, + 896, 1640, 1643, 2060, 2061, 1653, 958, 850, 827, 1675, + 1611, 1315, 553, 901, 1329, 1328, 556, 835, 836, 974, + 1754, 1751, 1752, 1753, 1613, 591, 1785, 982, 1784, 1783, + 1781, 459, 464, 465, 859, 2314, 857, 2303, 1475, 1476, + 1468, 861, 860, 1196, 843, 880, 984, 2317, 2318, 803, + 894, 895, 1474, 593, 408, 973, 852, 853, 2207, 1009, + 1009, 1014, 408, 2107, 594, 1684, 898, 1952, 1620, 1775, + 976, 977, 978, 979, 1612, 899, 1433, 776, 900, 1022, + 891, 892, 893, 1293, 477, 775, 1410, 2336, 1782, 446, + 839, 914, 387, 1195, 604, 1486, 590, 422, 2066, 980, + 1334, 1955, 1410, 2027, 1575, 557, 413, 1950, 1462, 998, + 824, 2133, 1963, 1964, 2065, 1023, 1821, 1816, 1951, 948, + 1644, 102, 102, 917, 914, 1637, 1764, 2335, 2050, 1638, + 1641, 410, 447, 2144, 409, 102, 1242, 2142, 2348, 410, + 1337, 2333, 409, 63, 1190, 2300, 1646, 2140, 408, 1402, + 1338, 319, 1956, 961, 962, 963, 964, 965, 958, 1258, + 2284, 2181, 907, 1400, 1401, 1399, 446, 2178, 2143, 1221, + 1223, 1008, 2141, 2130, 992, 915, 916, 917, 914, 1246, + 419, 1642, 2139, 1238, 1777, 915, 916, 917, 914, 427, + 461, 462, 463, 915, 916, 917, 914, 604, 908, 1979, + 1829, 2177, 1001, 2150, 1786, 1787, 2128, 2127, 2129, 1360, + 2126, 627, 1557, 102, 1487, 2123, 2117, 1187, 1283, 1015, + 1309, 1016, 1311, 1021, 2114, 410, 2113, 2016, 409, 889, + 889, 889, 30, 2002, 1980, 1830, 1962, 1186, 1636, 1298, + 1335, 1336, 2001, 1285, 2000, 1996, 1191, 1995, 626, 1828, + 1659, 1607, 1305, 1306, 1307, 1308, 766, 1556, 1236, 2273, + 407, 2256, 1580, 1958, 1252, 2149, 1254, 1917, 411, 363, + 1250, 1290, 364, 2239, 1332, 998, 2201, 1284, 1230, 915, + 916, 917, 914, 1303, 1544, 1957, 1959, 1374, 830, 831, + 832, 1319, 2200, 2188, 2176, 1419, 1253, 1251, 1255, 850, + 2131, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, + 1392, 1393, 1394, 1260, 1259, 1586, 1404, 1405, 2124, 2120, + 2364, 1411, 2119, 1414, 2134, 2136, 2137, 2138, 2135, 915, + 916, 917, 914, 2118, 1247, 1248, 1249, 915, 916, 917, + 914, 1421, 2078, 1294, 1295, 1296, 2052, 1356, 1965, 1353, + 2017, 2013, 1302, 1355, 1352, 1354, 1358, 1359, 1403, 2341, + 1953, 1357, 957, 956, 966, 967, 959, 960, 961, 962, + 963, 964, 965, 958, 1330, 1331, 1998, 1333, 1915, 1397, + 969, 1913, 972, 1369, 1370, 1371, 1372, 1373, 1839, 1827, + 1379, 1380, 1381, 1382, 1826, 1823, 970, 971, 968, 1301, 957, 956, 966, 967, 959, 960, 961, 962, 963, 964, - 965, 958, 1914, 1899, 1912, 1838, 915, 916, 917, 914, - 1826, 1412, 1414, 1415, 1214, 1411, 1825, 1822, 1801, 1577, - 1792, 1419, 1576, 1421, 1647, 915, 916, 917, 914, 1422, - 404, 1617, 406, 416, 1527, 1453, 1423, 403, 401, 400, - 412, 405, 1212, 414, 415, 915, 916, 917, 914, 1218, - 1219, 1213, 725, 724, 1340, 1341, 1342, 1343, 1344, 1345, - 1346, 1347, 1348, 1349, 1350, 1362, 1363, 1364, 1365, 1366, - 1367, 1360, 1361, 994, 915, 916, 917, 914, 1437, 955, - 954, 1424, 767, 1543, 1539, 2370, 2096, 2227, 604, 396, - 604, 2074, 604, 1539, 2369, 2361, 2360, 475, 2002, 2226, - 915, 916, 917, 914, 1206, 2342, 1458, 1451, 915, 916, - 917, 914, 2207, 915, 916, 917, 914, 2091, 604, 2087, - 915, 916, 917, 914, 1583, 1886, 2086, 1539, 1582, 1490, - 2338, 2337, 1447, 1903, 1885, 1496, 915, 916, 917, 914, - 841, 1456, 1457, 1901, 819, 1884, 1501, 915, 916, 917, - 914, 475, 102, 102, 102, 102, 915, 916, 917, 914, - 1898, 1506, 1791, 475, 102, 1521, 1890, 915, 916, 917, - 914, 1460, 1855, 1506, 1448, 1206, 2329, 1488, 1839, 2332, - 1810, 604, 1484, 1273, 915, 916, 917, 914, 1794, 102, - 102, 1206, 2328, 1695, 22, 956, 966, 967, 959, 960, - 961, 962, 963, 964, 965, 958, 63, 1522, 2277, 2276, - 1675, 1440, 1763, 2080, 2269, 1438, 2080, 2264, 1282, 1445, - 803, 1773, 1299, 2252, 1544, 957, 956, 966, 967, 959, - 960, 961, 962, 963, 964, 965, 958, 1529, 1530, 1586, - 1459, 2241, 2240, 915, 916, 917, 914, 1584, 1235, 1483, - 827, 15, 1581, 6, 1540, 1489, 1476, 1541, 1542, 1500, - 1495, 5, 841, 1525, 1498, 1580, 1499, 1503, 1507, 1508, - 1509, 1510, 1502, 2080, 2216, 1520, 1519, 1518, 1578, 915, - 916, 917, 914, 2080, 2215, 1548, 1528, 2080, 2214, 1563, - 2080, 2213, 1767, 2205, 2204, 30, 1550, 1551, 1552, 1553, - 1554, 1545, 1558, 2095, 2094, 1682, 1559, 1560, 1561, 1562, - 2093, 2092, 1538, 1534, 915, 916, 917, 914, 1766, 1009, - 1537, 1598, 1009, 1765, 1523, 1601, 2089, 2090, 1417, 1497, - 2089, 2088, 604, 1416, 1571, 1566, 1567, 1575, 613, 1604, - 915, 916, 917, 914, 1228, 915, 916, 917, 914, 1764, - 1587, 1244, 2085, 475, 889, 2080, 2079, 2359, 2309, 1669, - 889, 973, 1492, 1632, 1539, 1768, 1539, 1754, 1227, 102, - 2300, 915, 916, 917, 914, 1605, 1539, 1565, 475, 1595, - 1579, 1441, 102, 1241, 1425, 1673, 1593, 2307, 1632, 1539, - 1547, 63, 1600, 1811, 1564, 446, 1539, 1546, 1795, 1396, - 1573, 1244, 1439, 1597, 957, 956, 966, 967, 959, 960, - 961, 962, 963, 964, 965, 958, 1590, 1663, 1602, 1588, - 1614, 1599, 1603, 1589, 1699, 1664, 1665, 1666, 1609, 1273, - 1608, 1596, 1770, 957, 956, 966, 967, 959, 960, 961, - 962, 963, 964, 965, 958, 1434, 1433, 915, 916, 917, - 914, 501, 1671, 957, 956, 966, 967, 959, 960, 961, - 962, 963, 964, 965, 958, 1428, 1427, 1701, 604, 1760, - 1668, 1431, 1694, 1672, 604, 1667, 1406, 1755, 1244, 1243, - 1272, 1759, 1902, 1680, 1761, 1762, 1299, 1679, 1690, 1206, - 1205, 915, 916, 917, 914, 1787, 770, 769, 604, 1758, - 1491, 1789, 1775, 915, 916, 917, 914, 1788, 792, 102, - 602, 1197, 499, 1678, 1273, 1699, 602, 102, 1216, 1188, - 1790, 915, 916, 917, 914, 548, 1814, 1772, 957, 956, + 965, 958, 959, 960, 961, 962, 963, 964, 965, 958, + 1802, 1413, 1415, 1416, 1793, 1412, 1648, 2302, 1618, 1528, + 1454, 1420, 1424, 1422, 1219, 1220, 725, 724, 1663, 1423, + 1213, 404, 994, 406, 416, 955, 954, 767, 403, 401, + 400, 412, 405, 1901, 414, 415, 925, 926, 927, 928, + 929, 930, 931, 923, 823, 1341, 1342, 1343, 1344, 1345, + 1346, 1347, 1348, 1349, 1350, 1351, 1363, 1364, 1365, 1366, + 1367, 1368, 1361, 1362, 2228, 915, 916, 917, 914, 1438, + 1900, 1425, 2227, 370, 371, 372, 373, 2208, 1215, 604, + 396, 604, 2092, 604, 1578, 2088, 369, 1577, 475, 1540, + 2372, 2087, 915, 916, 917, 914, 1904, 1459, 1452, 966, + 967, 959, 960, 961, 962, 963, 964, 965, 958, 604, + 915, 916, 917, 914, 1584, 1214, 1540, 1540, 1583, 1902, + 1491, 1540, 2371, 1448, 1899, 2257, 1497, 614, 2363, 2362, + 1207, 2344, 1457, 1458, 1891, 819, 2174, 1502, 915, 916, + 917, 914, 475, 102, 102, 102, 102, 915, 916, 917, + 914, 1856, 1507, 2097, 475, 102, 1522, 1840, 915, 916, + 917, 914, 1461, 1811, 1507, 1449, 2340, 2339, 1489, 1795, + 2334, 1696, 604, 1485, 1676, 915, 916, 917, 914, 1587, + 102, 102, 1207, 2331, 1585, 22, 956, 966, 967, 959, + 960, 961, 962, 963, 964, 965, 958, 63, 1523, 1207, + 2330, 1582, 1441, 2279, 2278, 1581, 1439, 2081, 2271, 1283, + 1446, 803, 2075, 2081, 2266, 1545, 957, 956, 966, 967, + 959, 960, 961, 962, 963, 964, 965, 958, 1530, 1531, + 1579, 1460, 1300, 2254, 915, 916, 917, 914, 1549, 1236, + 1484, 827, 15, 1546, 6, 1541, 1490, 1477, 1542, 1543, + 1501, 1496, 5, 841, 1526, 1499, 1539, 1500, 1504, 1508, + 1509, 1510, 1511, 1503, 2243, 2242, 1521, 1520, 1519, 2081, + 2217, 2081, 2216, 2081, 2215, 2081, 2214, 1529, 2206, 2205, + 1564, 2096, 2095, 2003, 2094, 2093, 30, 1551, 1552, 1553, + 1554, 1555, 841, 1559, 2090, 2091, 1274, 1560, 1561, 1562, + 1563, 2090, 2089, 1524, 1535, 915, 916, 917, 914, 1887, + 1009, 1538, 1599, 1009, 1886, 1492, 1602, 1245, 2086, 1418, + 1498, 2081, 2080, 604, 1417, 1572, 1567, 1568, 1576, 613, + 1605, 915, 916, 917, 914, 1683, 915, 916, 917, 914, + 1885, 1588, 1540, 1769, 475, 889, 1540, 1755, 2361, 2311, + 1670, 889, 973, 1493, 1633, 1540, 1548, 1540, 1547, 1493, + 102, 1442, 915, 916, 917, 914, 1606, 1426, 1566, 475, + 1596, 1245, 1440, 102, 1242, 1812, 1674, 1594, 2309, 1633, + 1435, 1434, 63, 1601, 1796, 1565, 446, 1429, 1428, 1589, + 1397, 1574, 1245, 1244, 1598, 957, 956, 966, 967, 959, + 960, 961, 962, 963, 964, 965, 958, 1591, 1664, 1603, + 1274, 1615, 1600, 1604, 1590, 1700, 1665, 1666, 1667, 1610, + 501, 1609, 1597, 1771, 957, 956, 966, 967, 959, 960, + 961, 962, 963, 964, 965, 958, 1207, 1206, 770, 769, + 1432, 1407, 1300, 1672, 957, 956, 966, 967, 959, 960, + 961, 962, 963, 964, 965, 958, 1229, 1273, 1702, 604, + 1792, 1669, 1198, 1695, 1673, 604, 1668, 1217, 1756, 1189, + 548, 2069, 1774, 1903, 1681, 1762, 1763, 792, 1680, 1691, + 1228, 499, 915, 916, 917, 914, 1788, 912, 793, 604, + 1768, 1274, 1790, 1776, 915, 916, 917, 914, 1789, 498, + 102, 602, 97, 499, 1679, 589, 1700, 602, 102, 2313, + 2307, 1791, 915, 916, 917, 914, 2291, 1815, 1773, 957, + 956, 966, 967, 959, 960, 961, 962, 963, 964, 965, + 958, 910, 501, 1770, 2288, 2286, 2180, 2165, 1772, 2153, + 2151, 2146, 2108, 1779, 1866, 2073, 604, 604, 1801, 2072, + 94, 102, 1843, 2071, 1767, 1794, 1810, 2068, 1232, 1797, + 1766, 2063, 2048, 97, 475, 551, 87, 69, 1809, 1677, + 1678, 1798, 1799, 1835, 1507, 1682, 915, 916, 917, 914, + 63, 1855, 915, 916, 917, 914, 1876, 1819, 602, 1837, + 1694, 1868, 1880, 1814, 1813, 1765, 1818, 1883, 1818, 1283, + 1820, 1761, 889, 1848, 1873, 1851, 445, 1872, 1853, 1852, + 1845, 94, 1834, 1822, 1398, 94, 1854, 915, 916, 917, + 914, 1842, 1841, 915, 916, 917, 914, 1488, 1463, 1427, + 1292, 1243, 1849, 1000, 1850, 350, 999, 349, 353, 345, + 1870, 1871, 997, 1571, 996, 995, 993, 941, 990, 989, + 987, 341, 986, 1860, 1874, 985, 983, 1878, 953, 952, + 951, 360, 950, 1869, 957, 956, 966, 967, 959, 960, + 961, 962, 963, 964, 965, 958, 949, 947, 946, 1877, + 945, 944, 1888, 2347, 943, 942, 939, 363, 938, 937, + 364, 936, 935, 475, 1921, 1890, 934, 1969, 1971, 1760, + 1969, 1969, 1892, 1633, 933, 1894, 932, 1896, 1881, 789, + 1884, 760, 1759, 503, 889, 475, 1687, 1688, 1889, 491, + 2296, 915, 916, 917, 914, 2294, 2262, 1893, 1690, 1895, + 1897, 1898, 1758, 839, 915, 916, 917, 914, 1757, 1479, + 1975, 1966, 1844, 1970, 1299, 502, 1905, 1693, 1705, 1847, + 1692, 1918, 1946, 1513, 915, 916, 917, 914, 1972, 1973, + 915, 916, 917, 914, 1991, 1518, 1512, 1270, 1271, 1974, + 915, 916, 917, 914, 1430, 1516, 1514, 1237, 1988, 1845, + 1517, 1515, 1219, 1220, 50, 1453, 1704, 1992, 957, 956, 966, 967, 959, 960, 961, 962, 963, 964, 965, 958, - 589, 498, 1769, 2068, 1492, 499, 2311, 1771, 2305, 2289, - 2286, 912, 1778, 97, 2284, 604, 604, 1800, 2179, 2164, - 102, 1842, 793, 1757, 1793, 1809, 2152, 1231, 1796, 1756, - 2150, 2145, 97, 475, 2107, 87, 69, 1808, 1676, 1677, - 1797, 1798, 1834, 1506, 1681, 915, 916, 917, 914, 63, - 1854, 915, 916, 917, 914, 910, 1818, 602, 1836, 1693, - 1865, 94, 1813, 1812, 2072, 1817, 501, 1817, 1282, 1819, - 1704, 889, 1847, 2071, 1850, 445, 2070, 1852, 2067, 1844, - 94, 2062, 2047, 551, 1875, 1853, 1585, 491, 1867, 1703, - 1841, 1840, 915, 916, 917, 914, 1879, 1882, 1872, 1871, - 1851, 1848, 1833, 1849, 350, 1821, 349, 353, 345, 1869, - 1870, 915, 916, 917, 914, 1397, 94, 1487, 1462, 1426, - 341, 1291, 1859, 1873, 1242, 1000, 1877, 999, 997, 996, - 360, 995, 1868, 957, 956, 966, 967, 959, 960, 961, - 962, 963, 964, 965, 958, 993, 941, 990, 1876, 989, - 987, 1887, 2345, 986, 985, 983, 363, 953, 952, 364, - 951, 950, 475, 1920, 1889, 949, 1968, 1970, 1702, 1968, - 1968, 1891, 1632, 947, 1893, 946, 1895, 1880, 945, 1883, - 944, 1405, 943, 889, 475, 942, 939, 1888, 938, 937, - 915, 916, 917, 914, 936, 935, 1892, 934, 1894, 1896, - 1897, 933, 839, 915, 916, 917, 914, 932, 789, 1974, - 1965, 1843, 1969, 760, 503, 1904, 1686, 1687, 1846, 2294, - 1917, 1945, 2292, 2260, 1689, 1478, 1298, 1971, 1972, 370, - 371, 372, 373, 1990, 502, 1515, 1570, 1692, 1973, 1513, - 1516, 1691, 369, 1517, 1514, 1269, 1270, 1987, 1844, 1512, - 1511, 1429, 1236, 1218, 1219, 1626, 1991, 957, 956, 966, - 967, 959, 960, 961, 962, 963, 964, 965, 958, 1452, - 522, 50, 2022, 29, 1260, 1225, 1998, 497, 524, 2018, - 1625, 28, 1275, 614, 837, 343, 342, 346, 2003, 1328, - 1327, 534, 535, 348, 1265, 1268, 1269, 1270, 1266, 2229, - 1267, 1271, 307, 573, 308, 352, 604, 1265, 1268, 1269, - 1270, 1266, 309, 1267, 1271, 102, 532, 533, 572, 344, - 530, 531, 2023, 2024, 1970, 2027, 2028, 2029, 2030, 1184, - 2025, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, - 2042, 2043, 2044, 2045, 2046, 1965, 2050, 2306, 1836, 2048, - 528, 529, 2052, 370, 371, 372, 373, 2184, 2182, 2110, - 2108, 2105, 2104, 2066, 2102, 1913, 369, 1697, 1807, 2073, - 1806, 1698, 527, 2082, 2111, 369, 2081, 2083, 1532, 2084, - 1988, 1989, 445, 841, 2296, 2295, 1274, 1607, 1549, 2101, - 489, 2295, 2296, 875, 398, 35, 2144, 1, 1202, 1823, - 1661, 1646, 546, 388, 1374, 536, 347, 351, 354, 774, - 355, 356, 458, 484, 357, 358, 359, 771, 475, 361, - 362, 475, 475, 475, 2124, 483, 2114, 2115, 481, 1407, - 2109, 475, 2120, 2121, 1339, 1282, 710, 1004, 1010, 2146, - 2228, 2273, 63, 2153, 2178, 2231, 2161, 2162, 2163, 787, - 696, 2160, 2097, 1620, 2004, 2099, 2172, 2006, 2189, 1454, - 2171, 1906, 1207, 519, 1591, 604, 604, 1592, 722, 713, - 2174, 988, 715, 755, 460, 712, 2183, 1832, 2185, 2186, - 2181, 1472, 2190, 374, 457, 399, 1992, 1802, 1860, 1881, - 1864, 2355, 2197, 2198, 2344, 2324, 102, 2304, 2195, 2340, - 2242, 2287, 2280, 475, 2191, 2019, 339, 602, 602, 876, - 583, 430, 2165, 340, 2219, 475, 2151, 378, 1230, 379, - 1233, 1232, 2203, 1319, 924, 1395, 991, 981, 2212, 630, - 2235, 1572, 686, 680, 1469, 1960, 1526, 34, 2208, 33, - 2217, 32, 913, 1018, 904, 2234, 711, 104, 2225, 1256, - 1019, 2188, 2013, 2233, 695, 694, 693, 692, 2238, 691, - 1264, 1262, 1261, 867, 866, 2245, 2247, 911, 2257, 2256, - 2209, 2210, 1910, 2061, 2131, 2057, 2253, 2053, 2201, 1919, - 1918, 1946, 1947, 2265, 2266, 2267, 2268, 1953, 1713, 2275, - 1709, 1711, 2279, 957, 956, 966, 967, 959, 960, 961, - 962, 963, 964, 965, 958, 1712, 1710, 1777, 1705, 1630, - 1631, 1628, 1688, 1684, 1006, 1013, 817, 99, 864, 1986, - 11, 2270, 10, 2290, 778, 9, 2293, 14, 2235, 2303, - 2291, 21, 20, 19, 2297, 475, 2299, 475, 58, 2283, - 57, 2285, 2308, 2234, 2310, 809, 2302, 809, 56, 55, - 18, 8, 54, 53, 52, 17, 16, 47, 2319, 48, - 2275, 45, 475, 2320, 44, 2327, 43, 42, 41, 2330, - 40, 39, 809, 46, 2336, 38, 37, 36, 67, 66, - 65, 64, 23, 24, 2313, 25, 26, 77, 76, 2322, - 78, 74, 72, 75, 73, 2343, 71, 31, 13, 2, - 0, 2354, 0, 0, 2353, 0, 0, 0, 0, 0, - 0, 2365, 0, 0, 0, 2366, 2368, 2367, 1130, 1172, - 2354, 0, 1118, 0, 1080, 1132, 1054, 1069, 1140, 1070, - 1071, 1105, 1033, 1089, 229, 1067, 0, 1121, 1025, 1057, - 1058, 1027, 1064, 1028, 1055, 1082, 174, 1053, 1092, 199, - 1138, 0, 0, 258, 213, 0, 0, 1085, 1123, 1087, - 1110, 1079, 1106, 1041, 1099, 1133, 1068, 1103, 1134, 0, - 0, 0, 0, 0, 830, 831, 832, 0, 0, 0, - 0, 156, 0, 0, 0, 0, 0, 1102, 1127, 1066, - 0, 159, 1131, 1086, 1104, 0, 0, 1026, 1100, 0, - 1031, 1034, 1139, 1125, 1061, 1062, 0, 0, 0, 0, - 0, 0, 0, 1083, 1088, 1107, 1076, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1059, 0, 1096, 0, - 0, 0, 1036, 1032, 0, 1081, 0, 148, 263, 277, - 157, 254, 290, 162, 261, 153, 228, 250, 0, 1171, - 150, 275, 260, 210, 193, 194, 149, 0, 245, 172, - 185, 169, 226, 0, 1129, 302, 168, 293, 1035, 285, - 152, 1166, 284, 225, 272, 276, 211, 205, 151, 274, - 209, 204, 197, 176, 189, 237, 203, 238, 190, 215, - 214, 216, 1150, 1151, 1152, 1153, 1154, 1162, 1163, 0, - 1167, 1168, 1169, 1040, 0, 1060, 1108, 0, 1024, 1116, - 1124, 1078, 287, 1126, 1075, 1074, 1157, 0, 1156, 262, - 1158, 1159, 198, 1122, 1056, 1065, 303, 1063, 248, 231, - 1128, 1095, 1170, 246, 201, 273, 239, 278, 264, 286, - 242, 240, 144, 265, 171, 212, 154, 155, 167, 173, - 175, 177, 178, 221, 222, 234, 253, 266, 267, 268, - 170, 163, 247, 164, 187, 165, 145, 255, 166, 146, - 235, 271, 1155, 183, 243, 208, 147, 207, 236, 270, - 269, 294, 300, 301, 305, 0, 306, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1164, 0, - 1165, 299, 181, 142, 282, 0, 227, 1119, 1029, 1039, - 1037, 1072, 1097, 1098, 223, 298, 1112, 1115, 1113, 1141, - 251, 0, 0, 0, 0, 0, 192, 233, 0, 252, + 522, 29, 28, 2023, 1703, 1627, 1226, 1999, 915, 916, + 917, 914, 497, 2019, 1626, 307, 343, 342, 346, 2004, + 1406, 1276, 837, 2230, 348, 573, 915, 916, 917, 914, + 1329, 1328, 308, 309, 534, 535, 352, 604, 532, 533, + 530, 531, 915, 916, 917, 914, 102, 528, 529, 572, + 344, 1185, 524, 2024, 2025, 1971, 2028, 2029, 2030, 2031, + 2308, 2026, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, + 2042, 2043, 2044, 2045, 2046, 2047, 1966, 2051, 2185, 1837, + 2049, 2183, 2111, 2053, 1266, 1269, 1270, 1271, 1267, 2109, + 1268, 1272, 2106, 2105, 2067, 1261, 370, 371, 372, 373, + 2074, 2103, 1914, 1808, 2083, 2112, 1807, 2082, 2084, 369, + 2085, 1989, 1990, 445, 1699, 1266, 1269, 1270, 1271, 1267, + 2102, 1268, 1272, 527, 369, 1698, 1533, 2145, 841, 2298, + 2297, 875, 1608, 1550, 489, 2297, 2298, 347, 351, 354, + 1275, 355, 356, 398, 35, 357, 358, 359, 1, 475, + 361, 362, 475, 475, 475, 2125, 1203, 2115, 2116, 1824, + 1662, 2110, 475, 2121, 2122, 1647, 1283, 546, 388, 1375, + 536, 774, 458, 63, 2154, 484, 771, 2162, 2163, 2164, + 483, 481, 2161, 1408, 1340, 710, 1004, 2173, 1010, 2190, + 2147, 2172, 2229, 2275, 2179, 2232, 604, 604, 787, 696, + 2098, 2175, 1621, 2005, 2100, 2007, 1455, 2184, 1907, 2186, + 2187, 2182, 1208, 2191, 519, 1592, 1593, 722, 713, 988, + 715, 755, 460, 2198, 2199, 712, 1833, 102, 1473, 374, + 457, 399, 1993, 1803, 475, 1861, 1882, 1865, 602, 602, + 2357, 2346, 2326, 2306, 2196, 2342, 475, 2244, 2289, 2282, + 2192, 2020, 339, 2204, 876, 583, 430, 2166, 340, 2213, + 2220, 2236, 2152, 378, 1231, 379, 1234, 1233, 1320, 2209, + 924, 2218, 1396, 991, 981, 904, 2235, 630, 1573, 2226, + 686, 680, 1470, 1961, 1527, 34, 33, 32, 913, 2240, + 1018, 711, 104, 1257, 1019, 2189, 2247, 2249, 2014, 2234, + 695, 694, 693, 692, 691, 1265, 1263, 2255, 1262, 867, + 866, 911, 2259, 2258, 2267, 2268, 2269, 2270, 2210, 2211, + 2277, 1911, 2062, 2132, 2281, 2058, 2054, 2202, 1920, 1919, + 1947, 1948, 1954, 1714, 1710, 1712, 1713, 1711, 1778, 1706, + 1631, 1632, 1629, 1689, 1685, 1006, 1013, 817, 99, 864, + 1987, 11, 2272, 10, 778, 2292, 9, 14, 2295, 21, + 2236, 2305, 2293, 20, 19, 58, 2299, 475, 2301, 475, + 57, 2285, 56, 2287, 2310, 2235, 2312, 809, 2304, 809, + 55, 18, 8, 54, 53, 52, 17, 16, 47, 48, + 2321, 45, 2277, 44, 475, 2322, 43, 2329, 42, 41, + 40, 2332, 39, 46, 809, 38, 2338, 37, 36, 67, + 66, 65, 64, 23, 24, 25, 2315, 26, 77, 76, + 78, 2324, 74, 72, 75, 73, 71, 2345, 31, 13, + 2, 0, 0, 2356, 0, 0, 2355, 0, 0, 0, + 0, 0, 0, 2367, 0, 0, 0, 2368, 2370, 2369, + 1130, 1173, 2356, 0, 1118, 0, 1080, 1132, 1054, 1069, + 1140, 1070, 1071, 1105, 1033, 1089, 229, 1067, 0, 1121, + 1025, 1057, 1058, 1027, 1064, 1028, 1055, 1082, 174, 1053, + 1092, 199, 1138, 0, 0, 258, 213, 0, 0, 1085, + 1123, 1087, 1110, 1079, 1106, 1041, 1099, 1133, 1068, 1103, + 1134, 0, 0, 0, 0, 0, 830, 831, 832, 0, + 0, 0, 0, 156, 0, 0, 0, 0, 0, 1102, + 1127, 1066, 0, 159, 1131, 1086, 1104, 0, 0, 1026, + 1100, 0, 1031, 1034, 1139, 1125, 1061, 1062, 0, 0, + 0, 0, 0, 0, 0, 1083, 1088, 1107, 1076, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1059, 0, + 1096, 0, 0, 0, 1036, 1032, 0, 1081, 0, 148, + 263, 277, 157, 254, 290, 162, 261, 153, 228, 250, + 0, 1172, 150, 275, 260, 210, 193, 194, 149, 0, + 245, 172, 185, 169, 226, 0, 1129, 302, 168, 293, + 1035, 285, 152, 1167, 284, 225, 272, 276, 211, 205, + 151, 274, 209, 204, 197, 176, 189, 237, 203, 238, + 190, 215, 214, 216, 1151, 1152, 1153, 1154, 1155, 1163, + 1164, 0, 1168, 1169, 1170, 1040, 0, 1060, 1108, 0, + 1024, 1116, 1124, 1078, 287, 1126, 1075, 1074, 1158, 0, + 1157, 262, 1159, 1160, 198, 1122, 1056, 1065, 303, 1063, + 248, 231, 1128, 1095, 1171, 246, 201, 273, 239, 278, + 264, 286, 242, 240, 144, 265, 171, 212, 154, 155, + 167, 173, 175, 177, 178, 221, 222, 234, 253, 266, + 267, 268, 170, 163, 247, 164, 187, 165, 145, 255, + 166, 146, 235, 271, 1156, 183, 243, 208, 147, 207, + 236, 270, 269, 294, 300, 301, 305, 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1030, 0, 259, 280, 292, 1173, 1174, 1175, 1176, 0, - 1177, 1178, 1179, 1180, 1181, 1182, 1183, 283, 1073, 1047, - 1084, 291, 1050, 1048, 1111, 1049, 1101, 1143, 217, 218, - 219, 220, 184, 0, 161, 1093, 1077, 1144, 1145, 1146, - 1147, 1148, 1149, 1052, 304, 180, 186, 0, 188, 160, - 232, 182, 289, 195, 1117, 224, 191, 256, 196, 202, - 244, 288, 230, 249, 158, 279, 257, 206, 1046, 1051, - 1045, 1090, 1091, 1135, 1136, 1137, 1109, 1038, 1120, 1042, - 1044, 1043, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1114, 0, 1094, 143, 0, 200, 1142, 241, 179, - 718, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 688, 0, - 0, 0, 174, 0, 0, 199, 0, 0, 0, 258, - 213, 0, 0, 0, 0, 733, 739, 1160, 1161, 295, - 296, 297, 281, 0, 0, 0, 681, 0, 0, 0, - 631, 725, 724, 698, 707, 0, 0, 156, 699, 0, - 706, 700, 704, 703, 701, 702, 0, 668, 0, 0, - 0, 0, 0, 0, 628, 685, 0, 689, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 682, 683, - 0, 0, 0, 0, 719, 0, 684, 0, 0, 721, - 0, 708, 0, 148, 263, 277, 157, 254, 290, 162, - 261, 153, 228, 250, 0, 0, 150, 275, 260, 210, - 193, 194, 149, 0, 245, 172, 185, 169, 226, 705, - 717, 674, 168, 672, 716, 285, 152, 0, 284, 225, - 272, 276, 211, 205, 151, 274, 209, 204, 197, 176, - 189, 237, 203, 238, 190, 215, 214, 216, 0, 0, + 1165, 0, 1166, 299, 181, 142, 282, 0, 227, 1119, + 1029, 1039, 1037, 1072, 1097, 1098, 223, 298, 1112, 1115, + 1113, 1141, 251, 0, 0, 0, 0, 0, 192, 233, + 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1030, 0, 259, 280, 292, 1174, 1175, 1176, + 1177, 0, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 283, + 1073, 1047, 1084, 291, 1050, 1048, 1111, 1049, 1101, 1143, + 217, 218, 219, 220, 184, 0, 161, 1093, 1077, 1144, + 1145, 1146, 1147, 1148, 1149, 1150, 1052, 304, 180, 186, + 0, 188, 160, 232, 182, 289, 195, 1117, 224, 191, + 256, 196, 202, 244, 288, 230, 249, 158, 279, 257, + 206, 1046, 1051, 1045, 1090, 1091, 1135, 1136, 1137, 1109, + 1038, 1120, 1042, 1044, 1043, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1114, 0, 1094, 143, 0, 200, + 1142, 241, 179, 718, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 688, 0, 0, 0, 174, 0, 0, 199, 0, + 0, 0, 258, 213, 0, 0, 0, 0, 733, 739, + 1161, 1162, 295, 296, 297, 281, 0, 0, 0, 681, + 0, 0, 0, 631, 725, 724, 698, 707, 0, 0, + 156, 699, 0, 706, 700, 704, 703, 701, 702, 0, + 668, 0, 0, 0, 0, 0, 0, 628, 685, 0, + 689, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 682, 683, 0, 0, 0, 0, 719, 0, 684, + 0, 0, 721, 0, 708, 0, 148, 263, 277, 157, + 254, 290, 162, 261, 153, 228, 250, 0, 0, 150, + 275, 260, 210, 193, 194, 149, 0, 245, 172, 185, + 169, 226, 705, 717, 674, 168, 672, 716, 285, 152, + 0, 284, 225, 272, 276, 211, 205, 151, 274, 209, + 204, 197, 176, 189, 237, 203, 238, 190, 215, 214, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 714, 0, + 0, 287, 0, 0, 732, 0, 0, 0, 262, 0, + 0, 198, 0, 0, 0, 675, 0, 248, 231, 742, + 629, 0, 246, 201, 273, 239, 278, 264, 286, 242, + 240, 144, 265, 171, 212, 154, 155, 167, 173, 175, + 177, 178, 221, 222, 234, 253, 266, 267, 268, 170, + 163, 247, 164, 187, 165, 145, 255, 166, 146, 235, + 271, 0, 183, 243, 208, 147, 207, 236, 270, 269, + 294, 300, 301, 305, 0, 306, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1377, 1376, 1378, + 299, 181, 142, 282, 730, 227, 741, 726, 727, 728, + 731, 734, 735, 670, 673, 736, 738, 740, 743, 251, + 0, 0, 0, 0, 0, 192, 233, 0, 252, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 259, 280, 292, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 671, 0, 0, 0, + 291, 0, 0, 0, 0, 0, 720, 217, 218, 219, + 220, 669, 0, 161, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, + 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, + 244, 288, 230, 249, 158, 279, 257, 206, 749, 729, + 748, 750, 751, 747, 752, 753, 737, 690, 0, 745, + 744, 746, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 0, 200, 0, 241, 179, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 121, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 723, 0, 0, 295, + 296, 297, 281, 97, 0, 718, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 688, 0, 0, 0, 174, 0, 0, + 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, + 733, 739, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 681, 0, 0, 0, 631, 725, 724, 698, 707, + 0, 0, 156, 699, 0, 706, 700, 704, 703, 701, + 702, 0, 668, 0, 0, 0, 0, 0, 0, 628, + 685, 0, 689, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 682, 683, 0, 0, 0, 0, 719, + 0, 684, 0, 0, 721, 0, 708, 0, 148, 263, + 277, 157, 254, 290, 162, 261, 153, 228, 250, 0, + 0, 150, 275, 260, 210, 193, 194, 149, 0, 245, + 172, 185, 169, 226, 705, 717, 674, 168, 672, 716, + 285, 152, 0, 284, 225, 272, 276, 211, 205, 151, + 274, 209, 204, 197, 176, 189, 237, 203, 238, 190, + 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 714, 0, 0, 287, 0, 0, 732, 0, 0, 0, + 262, 0, 0, 198, 0, 0, 0, 675, 0, 248, + 231, 742, 629, 0, 246, 201, 273, 239, 278, 264, + 286, 242, 240, 144, 265, 171, 212, 154, 155, 167, + 173, 175, 177, 178, 221, 222, 234, 253, 266, 267, + 268, 170, 163, 247, 164, 187, 165, 145, 255, 166, + 146, 235, 271, 0, 183, 243, 208, 147, 207, 236, + 270, 269, 294, 300, 301, 305, 0, 306, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 299, 181, 142, 282, 730, 227, 741, 726, + 727, 728, 731, 734, 735, 670, 673, 736, 738, 740, + 743, 251, 0, 0, 0, 0, 0, 192, 233, 0, + 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 259, 280, 292, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 671, 0, + 0, 0, 291, 0, 0, 0, 0, 0, 720, 217, + 218, 219, 220, 669, 0, 161, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, + 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, + 196, 202, 244, 288, 230, 249, 158, 279, 257, 206, + 749, 729, 748, 750, 751, 747, 752, 753, 737, 690, + 0, 745, 744, 746, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 143, 0, 200, 70, + 241, 179, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 121, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 723, 718, + 0, 295, 296, 297, 281, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 688, 0, 0, + 0, 174, 890, 0, 199, 0, 0, 0, 258, 213, + 0, 0, 0, 0, 733, 739, 0, 0, 0, 0, + 0, 0, 886, 0, 0, 681, 0, 0, 0, 631, + 725, 724, 698, 707, 0, 0, 156, 699, 0, 706, + 700, 704, 703, 701, 702, 0, 668, 0, 0, 0, + 0, 0, 0, 628, 685, 0, 689, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 682, 683, 0, + 0, 0, 0, 719, 0, 684, 0, 0, 887, 0, + 708, 0, 148, 263, 277, 157, 254, 290, 162, 261, + 153, 228, 250, 0, 0, 150, 275, 260, 210, 193, + 194, 149, 0, 245, 172, 185, 169, 226, 705, 717, + 674, 168, 672, 716, 285, 152, 0, 284, 225, 272, + 276, 211, 205, 151, 274, 209, 204, 197, 176, 189, + 237, 203, 238, 190, 215, 214, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 714, 0, 0, 287, 0, 0, + 732, 0, 0, 0, 262, 0, 0, 198, 0, 0, + 0, 675, 0, 248, 231, 742, 629, 0, 246, 201, + 273, 239, 278, 264, 286, 242, 240, 144, 265, 171, + 212, 154, 155, 167, 173, 175, 177, 178, 221, 222, + 234, 253, 266, 267, 268, 170, 163, 247, 164, 187, + 165, 145, 255, 166, 146, 235, 271, 0, 183, 243, + 208, 147, 207, 236, 270, 269, 294, 300, 301, 305, + 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 299, 181, 142, 282, + 730, 227, 741, 726, 727, 728, 731, 734, 735, 670, + 673, 736, 738, 740, 743, 251, 0, 0, 0, 0, + 0, 192, 233, 0, 252, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 259, 280, 292, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 671, 0, 0, 0, 291, 0, 0, 0, + 0, 0, 720, 217, 218, 219, 220, 669, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 714, 0, 0, 287, 0, - 0, 732, 0, 0, 0, 262, 0, 0, 198, 0, - 0, 0, 675, 0, 248, 231, 742, 629, 0, 246, - 201, 273, 239, 278, 264, 286, 242, 240, 144, 265, - 171, 212, 154, 155, 167, 173, 175, 177, 178, 221, - 222, 234, 253, 266, 267, 268, 170, 163, 247, 164, - 187, 165, 145, 255, 166, 146, 235, 271, 0, 183, - 243, 208, 147, 207, 236, 270, 269, 294, 300, 301, - 305, 0, 306, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1376, 1375, 1377, 299, 181, 142, - 282, 730, 227, 741, 726, 727, 728, 731, 734, 735, - 670, 673, 736, 738, 740, 743, 251, 0, 0, 0, - 0, 0, 192, 233, 0, 252, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 259, 280, - 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 671, 0, 0, 0, 291, 0, 0, - 0, 0, 0, 720, 217, 218, 219, 220, 669, 0, - 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, 244, 288, 230, 249, 158, 279, 257, 206, 749, 729, 748, 750, 751, 747, @@ -1474,89 +1570,42 @@ var yyAct = [...]int{ 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 121, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - 666, 667, 723, 0, 0, 295, 296, 297, 281, 97, - 0, 718, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 229, 0, 0, 0, 0, 0, 0, 0, 688, - 0, 0, 0, 174, 0, 0, 199, 0, 0, 0, - 258, 213, 0, 0, 0, 0, 733, 739, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 681, 0, 0, - 0, 631, 725, 724, 698, 707, 0, 0, 156, 699, - 0, 706, 700, 704, 703, 701, 702, 0, 668, 0, - 0, 0, 0, 0, 0, 628, 685, 0, 689, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 682, - 683, 0, 0, 0, 0, 719, 0, 684, 0, 0, - 721, 0, 708, 0, 148, 263, 277, 157, 254, 290, - 162, 261, 153, 228, 250, 0, 0, 150, 275, 260, - 210, 193, 194, 149, 0, 245, 172, 185, 169, 226, - 705, 717, 674, 168, 672, 716, 285, 152, 0, 284, - 225, 272, 276, 211, 205, 151, 274, 209, 204, 197, - 176, 189, 237, 203, 238, 190, 215, 214, 216, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 714, 0, 0, 287, - 0, 0, 732, 0, 0, 0, 262, 0, 0, 198, - 0, 0, 0, 675, 0, 248, 231, 742, 629, 0, - 246, 201, 273, 239, 278, 264, 286, 242, 240, 144, - 265, 171, 212, 154, 155, 167, 173, 175, 177, 178, - 221, 222, 234, 253, 266, 267, 268, 170, 163, 247, - 164, 187, 165, 145, 255, 166, 146, 235, 271, 0, - 183, 243, 208, 147, 207, 236, 270, 269, 294, 300, - 301, 305, 0, 306, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 299, 181, - 142, 282, 730, 227, 741, 726, 727, 728, 731, 734, - 735, 670, 673, 736, 738, 740, 743, 251, 0, 0, - 0, 0, 0, 192, 233, 0, 252, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, - 280, 292, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 671, 0, 0, 0, 291, 0, - 0, 0, 0, 0, 720, 217, 218, 219, 220, 669, - 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, - 195, 0, 224, 191, 256, 196, 202, 244, 288, 230, - 249, 158, 279, 257, 206, 749, 729, 748, 750, 751, - 747, 752, 753, 737, 690, 0, 745, 744, 746, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 143, 0, 200, 70, 241, 179, 633, 634, 635, - 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 121, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, 666, 667, 723, 718, 0, 295, 296, 297, 281, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 688, 0, 0, 0, 174, 890, 0, 199, - 0, 0, 0, 258, 213, 0, 0, 0, 0, 733, - 739, 0, 0, 0, 0, 0, 0, 886, 0, 0, - 681, 0, 0, 0, 631, 725, 724, 698, 707, 0, - 0, 156, 699, 0, 706, 700, 704, 703, 701, 702, - 0, 668, 0, 0, 0, 0, 0, 0, 628, 685, - 0, 689, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 682, 683, 0, 0, 0, 0, 719, 0, - 684, 0, 0, 887, 0, 708, 0, 148, 263, 277, - 157, 254, 290, 162, 261, 153, 228, 250, 0, 0, - 150, 275, 260, 210, 193, 194, 149, 0, 245, 172, - 185, 169, 226, 705, 717, 674, 168, 672, 716, 285, - 152, 0, 284, 225, 272, 276, 211, 205, 151, 274, - 209, 204, 197, 176, 189, 237, 203, 238, 190, 215, - 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 714, - 0, 0, 287, 0, 0, 732, 0, 0, 0, 262, - 0, 0, 198, 0, 0, 0, 675, 0, 248, 231, - 742, 629, 0, 246, 201, 273, 239, 278, 264, 286, - 242, 240, 144, 265, 171, 212, 154, 155, 167, 173, - 175, 177, 178, 221, 222, 234, 253, 266, 267, 268, - 170, 163, 247, 164, 187, 165, 145, 255, 166, 146, - 235, 271, 0, 183, 243, 208, 147, 207, 236, 270, - 269, 294, 300, 301, 305, 0, 306, 0, 0, 0, + 666, 667, 723, 718, 0, 295, 296, 297, 281, 0, + 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 688, 0, 0, 0, 174, 2323, 0, 199, 0, + 0, 0, 258, 213, 0, 0, 0, 0, 733, 739, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 681, + 0, 0, 0, 631, 725, 724, 698, 707, 0, 0, + 156, 699, 0, 706, 700, 704, 703, 701, 702, 0, + 668, 0, 0, 0, 0, 0, 0, 628, 685, 0, + 689, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 682, 683, 0, 0, 0, 0, 719, 0, 684, + 0, 0, 721, 0, 708, 0, 148, 263, 277, 157, + 254, 290, 162, 261, 153, 228, 250, 0, 0, 150, + 275, 260, 210, 193, 194, 149, 0, 245, 172, 185, + 169, 226, 705, 717, 674, 168, 672, 716, 285, 152, + 0, 284, 225, 272, 276, 211, 205, 151, 274, 209, + 204, 197, 176, 189, 237, 203, 238, 190, 215, 214, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 714, 0, + 0, 287, 0, 0, 732, 0, 0, 0, 262, 0, + 0, 198, 0, 0, 0, 675, 0, 248, 231, 742, + 629, 0, 246, 201, 273, 239, 278, 264, 286, 242, + 240, 144, 265, 171, 212, 154, 155, 167, 173, 175, + 177, 178, 221, 222, 234, 253, 266, 267, 268, 170, + 163, 247, 164, 187, 165, 145, 255, 166, 146, 235, + 271, 0, 183, 243, 208, 147, 207, 236, 270, 269, + 294, 300, 301, 305, 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 181, 142, 282, 730, 227, 741, 726, 727, - 728, 731, 734, 735, 670, 673, 736, 738, 740, 743, - 251, 0, 0, 0, 0, 0, 192, 233, 0, 252, + 299, 181, 142, 282, 730, 227, 741, 726, 727, 728, + 731, 734, 735, 670, 673, 736, 738, 740, 743, 251, + 0, 0, 0, 0, 0, 192, 233, 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 259, 280, 292, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 671, 0, 0, - 0, 291, 0, 0, 0, 0, 0, 720, 217, 218, - 219, 220, 669, 0, 161, 0, 0, 0, 0, 0, + 0, 259, 280, 292, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 671, 0, 0, 0, + 291, 0, 0, 0, 0, 0, 720, 217, 218, 219, + 220, 669, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, 244, 288, 230, 249, 158, 279, 257, 206, 749, 729, @@ -1570,7 +1619,7 @@ var yyAct = [...]int{ 662, 663, 664, 665, 666, 667, 723, 718, 0, 295, 296, 297, 281, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 688, 0, 0, 0, 174, - 2321, 0, 199, 0, 0, 0, 258, 213, 0, 0, + 890, 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, 733, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 681, 0, 0, 0, 631, 725, 724, 698, 707, 0, 0, 156, 699, 0, 706, 700, 704, @@ -1603,146 +1652,100 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 671, 0, 0, 0, 291, 0, 0, 0, 0, 0, 720, 217, 218, 219, 220, 669, 0, 161, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 304, 180, 186, - 0, 188, 160, 232, 182, 289, 195, 0, 224, 191, - 256, 196, 202, 244, 288, 230, 249, 158, 279, 257, - 206, 749, 729, 748, 750, 751, 747, 752, 753, 737, - 690, 0, 745, 744, 746, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 143, 0, 200, - 0, 241, 179, 633, 634, 635, 636, 637, 638, 639, - 640, 641, 642, 643, 644, 645, 646, 647, 121, 648, - 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, - 659, 660, 661, 662, 663, 664, 665, 666, 667, 723, - 718, 0, 295, 296, 297, 281, 0, 0, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 688, 0, - 0, 0, 174, 890, 0, 199, 0, 0, 0, 258, - 213, 0, 0, 0, 0, 733, 739, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 681, 0, 0, 0, - 631, 725, 724, 698, 707, 0, 0, 156, 699, 0, - 706, 700, 704, 703, 701, 702, 0, 668, 0, 0, - 0, 0, 0, 0, 628, 685, 0, 689, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 682, 683, - 0, 0, 0, 0, 719, 0, 684, 0, 0, 721, - 0, 708, 0, 148, 263, 277, 157, 254, 290, 162, - 261, 153, 228, 250, 0, 0, 150, 275, 260, 210, - 193, 194, 149, 0, 245, 172, 185, 169, 226, 705, - 717, 674, 168, 672, 716, 285, 152, 0, 284, 225, - 272, 276, 211, 205, 151, 274, 209, 204, 197, 176, - 189, 237, 203, 238, 190, 215, 214, 216, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 714, 0, 0, 287, 0, - 0, 732, 0, 0, 0, 262, 0, 0, 198, 0, - 0, 0, 675, 0, 248, 231, 742, 629, 0, 246, - 201, 273, 239, 278, 264, 286, 242, 240, 144, 265, - 171, 212, 154, 155, 167, 173, 175, 177, 178, 221, - 222, 234, 253, 266, 267, 268, 170, 163, 247, 164, - 187, 165, 145, 255, 166, 146, 235, 271, 0, 183, - 243, 208, 147, 207, 236, 270, 269, 294, 300, 301, - 305, 0, 306, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 299, 181, 142, - 282, 730, 227, 741, 726, 727, 728, 731, 734, 735, - 670, 673, 736, 738, 740, 743, 251, 0, 0, 0, - 0, 0, 192, 233, 0, 252, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 259, 280, - 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 671, 0, 0, 0, 291, 0, 0, - 0, 0, 0, 720, 217, 218, 219, 220, 669, 0, - 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 304, 180, 186, 0, 188, 160, 232, 182, 289, 195, - 0, 224, 191, 256, 196, 202, 244, 288, 230, 249, - 158, 279, 257, 206, 749, 729, 748, 750, 751, 747, - 752, 753, 737, 690, 0, 745, 744, 746, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 304, 180, + 186, 0, 188, 160, 232, 182, 289, 195, 0, 224, + 191, 256, 196, 202, 244, 288, 230, 249, 158, 279, + 257, 206, 749, 729, 748, 750, 751, 747, 752, 753, + 737, 690, 0, 745, 744, 746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, + 200, 0, 241, 179, 633, 634, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 121, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 723, 0, 0, 295, 296, 297, 281, 718, 0, 0, + 1558, 0, 0, 0, 0, 0, 0, 229, 0, 0, + 0, 0, 0, 0, 0, 688, 0, 0, 0, 174, + 0, 0, 199, 0, 0, 0, 258, 213, 0, 0, + 0, 0, 733, 739, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 681, 0, 0, 0, 631, 725, 724, + 698, 707, 0, 0, 156, 699, 0, 706, 700, 704, + 703, 701, 702, 0, 668, 0, 0, 0, 0, 0, + 0, 628, 685, 0, 689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 143, 0, 200, 0, 241, 179, 633, 634, 635, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, - 647, 121, 648, 649, 650, 651, 652, 653, 654, 655, - 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - 666, 667, 723, 0, 0, 295, 296, 297, 281, 718, - 0, 0, 1557, 0, 0, 0, 0, 0, 0, 229, - 0, 0, 0, 0, 0, 0, 0, 688, 0, 0, - 0, 174, 0, 0, 199, 0, 0, 0, 258, 213, - 0, 0, 0, 0, 733, 739, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 681, 0, 0, 0, 631, - 725, 724, 698, 707, 0, 0, 156, 699, 0, 706, - 700, 704, 703, 701, 702, 0, 668, 0, 0, 0, - 0, 0, 0, 628, 685, 0, 689, 0, 0, 0, + 0, 0, 0, 0, 0, 682, 683, 0, 0, 0, + 0, 719, 0, 684, 0, 0, 721, 0, 708, 0, + 148, 263, 277, 157, 254, 290, 162, 261, 153, 228, + 250, 0, 0, 150, 275, 260, 210, 193, 194, 149, + 0, 245, 172, 185, 169, 226, 705, 717, 674, 168, + 672, 716, 285, 152, 0, 284, 225, 272, 276, 211, + 205, 151, 274, 209, 204, 197, 176, 189, 237, 203, + 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 682, 683, 0, - 0, 0, 0, 719, 0, 684, 0, 0, 721, 0, - 708, 0, 148, 263, 277, 157, 254, 290, 162, 261, - 153, 228, 250, 0, 0, 150, 275, 260, 210, 193, - 194, 149, 0, 245, 172, 185, 169, 226, 705, 717, - 674, 168, 672, 716, 285, 152, 0, 284, 225, 272, - 276, 211, 205, 151, 274, 209, 204, 197, 176, 189, - 237, 203, 238, 190, 215, 214, 216, 0, 0, 0, + 0, 0, 714, 0, 0, 287, 0, 0, 732, 0, + 0, 0, 262, 0, 0, 198, 0, 0, 0, 675, + 0, 248, 231, 742, 629, 0, 246, 201, 273, 239, + 278, 264, 286, 242, 240, 144, 265, 171, 212, 154, + 155, 167, 173, 175, 177, 178, 221, 222, 234, 253, + 266, 267, 268, 170, 163, 247, 164, 187, 165, 145, + 255, 166, 146, 235, 271, 0, 183, 243, 208, 147, + 207, 236, 270, 269, 294, 300, 301, 305, 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 714, 0, 0, 287, 0, 0, - 732, 0, 0, 0, 262, 0, 0, 198, 0, 0, - 0, 675, 0, 248, 231, 742, 629, 0, 246, 201, - 273, 239, 278, 264, 286, 242, 240, 144, 265, 171, - 212, 154, 155, 167, 173, 175, 177, 178, 221, 222, - 234, 253, 266, 267, 268, 170, 163, 247, 164, 187, - 165, 145, 255, 166, 146, 235, 271, 0, 183, 243, - 208, 147, 207, 236, 270, 269, 294, 300, 301, 305, - 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 299, 181, 142, 282, - 730, 227, 741, 726, 727, 728, 731, 734, 735, 670, - 673, 736, 738, 740, 743, 251, 0, 0, 0, 0, - 0, 192, 233, 0, 252, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 259, 280, 292, + 0, 0, 0, 0, 299, 181, 142, 282, 730, 227, + 741, 726, 727, 728, 731, 734, 735, 670, 673, 736, + 738, 740, 743, 251, 0, 0, 0, 0, 0, 192, + 233, 0, 252, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 259, 280, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 671, 0, 0, 0, 291, 0, 0, 0, - 0, 0, 720, 217, 218, 219, 220, 669, 0, 161, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, - 180, 186, 0, 188, 160, 232, 182, 289, 195, 0, - 224, 191, 256, 196, 202, 244, 288, 230, 249, 158, - 279, 257, 206, 749, 729, 748, 750, 751, 747, 752, - 753, 737, 690, 0, 745, 744, 746, 0, 0, 0, + 671, 0, 0, 0, 291, 0, 0, 0, 0, 0, + 720, 217, 218, 219, 220, 669, 0, 161, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 304, 180, + 186, 0, 188, 160, 232, 182, 289, 195, 0, 224, + 191, 256, 196, 202, 244, 288, 230, 249, 158, 279, + 257, 206, 749, 729, 748, 750, 751, 747, 752, 753, + 737, 690, 0, 745, 744, 746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, - 0, 200, 0, 241, 179, 633, 634, 635, 636, 637, - 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, - 121, 648, 649, 650, 651, 652, 653, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, - 667, 723, 718, 0, 295, 296, 297, 281, 0, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 688, 0, 0, 0, 174, 0, 0, 199, 0, 0, - 0, 258, 213, 0, 0, 0, 0, 733, 739, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 681, 0, - 0, 0, 631, 725, 724, 698, 707, 0, 0, 156, - 699, 0, 706, 700, 704, 703, 701, 702, 0, 668, - 0, 0, 0, 0, 0, 0, 628, 685, 0, 689, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 682, 683, 625, 0, 0, 0, 719, 0, 684, 0, - 0, 721, 0, 708, 0, 148, 263, 277, 157, 254, - 290, 162, 261, 153, 228, 250, 0, 0, 150, 275, - 260, 210, 193, 194, 149, 0, 245, 172, 185, 169, - 226, 705, 717, 674, 168, 672, 716, 285, 152, 0, - 284, 225, 272, 276, 211, 205, 151, 274, 209, 204, - 197, 176, 189, 237, 203, 238, 190, 215, 214, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, + 200, 0, 241, 179, 633, 634, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 121, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 723, 718, 0, 295, 296, 297, 281, 0, 0, 0, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 688, + 0, 0, 0, 174, 0, 0, 199, 0, 0, 0, + 258, 213, 0, 0, 0, 0, 733, 739, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 681, 0, 0, + 0, 631, 725, 724, 698, 707, 0, 0, 156, 699, + 0, 706, 700, 704, 703, 701, 702, 0, 668, 0, + 0, 0, 0, 0, 0, 628, 685, 0, 689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 714, 0, 0, - 287, 0, 0, 732, 0, 0, 0, 262, 0, 0, - 198, 0, 0, 0, 675, 0, 248, 231, 742, 629, - 0, 246, 201, 273, 239, 278, 264, 286, 242, 240, - 144, 265, 171, 212, 154, 155, 167, 173, 175, 177, - 178, 221, 222, 234, 253, 266, 267, 268, 170, 163, - 247, 164, 187, 165, 145, 255, 166, 146, 235, 271, - 0, 183, 243, 208, 147, 207, 236, 270, 269, 294, - 300, 301, 305, 0, 306, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 181, 142, 282, 730, 227, 741, 726, 727, 728, 731, - 734, 735, 670, 673, 736, 738, 740, 743, 251, 0, - 0, 0, 0, 0, 192, 233, 0, 252, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 682, + 683, 625, 0, 0, 0, 719, 0, 684, 0, 0, + 721, 0, 708, 0, 148, 263, 277, 157, 254, 290, + 162, 261, 153, 228, 250, 0, 0, 150, 275, 260, + 210, 193, 194, 149, 0, 245, 172, 185, 169, 226, + 705, 717, 674, 168, 672, 716, 285, 152, 0, 284, + 225, 272, 276, 211, 205, 151, 274, 209, 204, 197, + 176, 189, 237, 203, 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 259, 280, 292, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 671, 0, 0, 0, 291, - 0, 0, 0, 0, 0, 720, 217, 218, 219, 220, - 669, 0, 161, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 714, 0, 0, 287, + 0, 0, 732, 0, 0, 0, 262, 0, 0, 198, + 0, 0, 0, 675, 0, 248, 231, 742, 629, 0, + 246, 201, 273, 239, 278, 264, 286, 242, 240, 144, + 265, 171, 212, 154, 155, 167, 173, 175, 177, 178, + 221, 222, 234, 253, 266, 267, 268, 170, 163, 247, + 164, 187, 165, 145, 255, 166, 146, 235, 271, 0, + 183, 243, 208, 147, 207, 236, 270, 269, 294, 300, + 301, 305, 0, 306, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 299, 181, + 142, 282, 730, 227, 741, 726, 727, 728, 731, 734, + 735, 670, 673, 736, 738, 740, 743, 251, 0, 0, + 0, 0, 0, 192, 233, 0, 252, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, + 280, 292, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 671, 0, 0, 0, 291, 0, + 0, 0, 0, 0, 720, 217, 218, 219, 220, 669, + 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, 244, 288, 230, 249, 158, 279, 257, 206, 749, 729, 748, 750, @@ -1789,52 +1792,145 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 671, 0, 0, 0, 291, 0, 0, 0, 0, 0, 720, 217, 218, 219, 220, 669, 0, 161, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 304, 180, 186, 0, 188, - 160, 232, 182, 289, 195, 0, 224, 191, 256, 196, - 202, 244, 288, 230, 249, 158, 279, 257, 206, 749, - 729, 748, 750, 751, 747, 752, 753, 737, 690, 0, - 745, 744, 746, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, + 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, + 196, 202, 244, 288, 230, 249, 158, 279, 257, 206, + 749, 729, 748, 750, 751, 747, 752, 753, 737, 690, + 0, 745, 744, 746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 143, 0, 200, 0, 241, - 179, 633, 634, 635, 636, 637, 638, 639, 640, 641, - 642, 643, 644, 645, 646, 647, 121, 648, 649, 650, - 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, 666, 667, 723, 718, 0, - 295, 296, 297, 281, 0, 0, 0, 0, 229, 0, - 0, 0, 1320, 0, 0, 0, 688, 0, 0, 0, - 174, 0, 0, 199, 0, 0, 0, 258, 213, 0, - 0, 0, 0, 733, 739, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 681, 0, 0, 0, 631, 725, - 724, 698, 707, 0, 0, 156, 699, 0, 706, 700, - 704, 703, 701, 702, 0, 668, 0, 0, 0, 0, - 0, 0, 0, 685, 0, 689, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 682, 683, 0, 0, - 0, 0, 719, 0, 684, 0, 0, 721, 0, 708, - 0, 148, 263, 277, 157, 254, 290, 162, 261, 153, - 228, 250, 0, 0, 150, 275, 260, 210, 193, 194, - 149, 0, 245, 172, 185, 169, 226, 705, 717, 674, - 168, 672, 716, 285, 152, 0, 284, 225, 272, 276, - 211, 205, 151, 274, 209, 204, 197, 176, 189, 237, - 203, 238, 190, 215, 214, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 143, 0, 200, 0, + 241, 179, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 121, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 723, 718, + 0, 295, 296, 297, 281, 0, 0, 0, 0, 229, + 0, 0, 0, 1321, 0, 0, 0, 688, 0, 0, + 0, 174, 0, 0, 199, 0, 0, 0, 258, 213, + 0, 0, 0, 0, 733, 739, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 681, 0, 0, 0, 631, + 725, 724, 698, 707, 0, 0, 156, 699, 0, 706, + 700, 704, 703, 701, 702, 0, 668, 0, 0, 0, + 0, 0, 0, 0, 685, 0, 689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 714, 0, 0, 287, 0, 0, 732, - 0, 0, 0, 262, 0, 0, 198, 0, 0, 0, - 675, 0, 248, 231, 742, 0, 0, 246, 201, 273, - 239, 278, 264, 286, 242, 240, 144, 265, 171, 212, - 154, 155, 167, 173, 175, 177, 178, 221, 222, 234, - 253, 266, 267, 268, 170, 163, 247, 164, 187, 165, - 145, 255, 166, 146, 235, 271, 0, 183, 243, 208, - 147, 207, 236, 270, 269, 294, 1321, 1322, 305, 0, - 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 299, 181, 142, 282, 730, - 227, 741, 726, 727, 728, 731, 734, 735, 670, 673, - 736, 738, 740, 743, 251, 0, 0, 0, 0, 0, - 192, 233, 0, 252, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 259, 280, 292, 0, + 0, 0, 0, 0, 0, 0, 0, 682, 683, 0, + 0, 0, 0, 719, 0, 684, 0, 0, 721, 0, + 708, 0, 148, 263, 277, 157, 254, 290, 162, 261, + 153, 228, 250, 0, 0, 150, 275, 260, 210, 193, + 194, 149, 0, 245, 172, 185, 169, 226, 705, 717, + 674, 168, 672, 716, 285, 152, 0, 284, 225, 272, + 276, 211, 205, 151, 274, 209, 204, 197, 176, 189, + 237, 203, 238, 190, 215, 214, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 714, 0, 0, 287, 0, 0, + 732, 0, 0, 0, 262, 0, 0, 198, 0, 0, + 0, 675, 0, 248, 231, 742, 0, 0, 246, 201, + 273, 239, 278, 264, 286, 242, 240, 144, 265, 171, + 212, 154, 155, 167, 173, 175, 177, 178, 221, 222, + 234, 253, 266, 267, 268, 170, 163, 247, 164, 187, + 165, 145, 255, 166, 146, 235, 271, 0, 183, 243, + 208, 147, 207, 236, 270, 269, 294, 1322, 1323, 305, + 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 299, 181, 142, 282, + 730, 227, 741, 726, 727, 728, 731, 734, 735, 670, + 673, 736, 738, 740, 743, 251, 0, 0, 0, 0, + 0, 192, 233, 0, 252, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 259, 280, 292, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 671, 0, 0, 0, 291, 0, 0, 0, + 0, 0, 720, 217, 218, 219, 220, 669, 0, 161, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 304, 180, 186, 0, 188, 160, 232, 182, 289, 195, + 0, 224, 191, 256, 196, 202, 244, 288, 230, 249, + 158, 279, 257, 206, 749, 729, 748, 750, 751, 747, + 752, 753, 737, 690, 0, 745, 744, 746, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 143, 0, 200, 0, 241, 179, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 121, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 723, 718, 0, 295, 296, 297, 281, 0, + 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 688, 0, 0, 0, 174, 0, 0, 199, 0, + 0, 0, 258, 213, 0, 0, 0, 0, 733, 739, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 631, 725, 724, 698, 707, 0, 0, + 156, 699, 0, 706, 700, 704, 703, 701, 702, 0, + 668, 0, 0, 0, 0, 0, 0, 628, 685, 0, + 689, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 682, 683, 0, 0, 0, 0, 719, 0, 684, + 0, 0, 721, 0, 708, 0, 148, 263, 277, 157, + 254, 290, 162, 261, 153, 228, 250, 0, 0, 150, + 275, 260, 210, 193, 194, 149, 0, 245, 172, 185, + 169, 226, 705, 717, 674, 168, 672, 716, 285, 152, + 0, 284, 225, 272, 276, 211, 205, 151, 274, 209, + 204, 197, 176, 189, 237, 203, 238, 190, 215, 214, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 714, 0, + 0, 287, 0, 0, 732, 0, 0, 0, 262, 0, + 0, 198, 0, 0, 0, 675, 0, 248, 231, 742, + 629, 0, 246, 201, 273, 239, 278, 264, 286, 242, + 240, 144, 265, 171, 212, 154, 155, 167, 173, 175, + 177, 178, 221, 222, 234, 253, 266, 267, 268, 170, + 163, 247, 164, 187, 165, 145, 255, 166, 146, 235, + 271, 0, 183, 243, 208, 147, 207, 236, 270, 269, + 294, 300, 301, 305, 0, 306, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 299, 181, 142, 282, 730, 227, 741, 726, 727, 728, + 731, 734, 735, 670, 673, 736, 738, 740, 743, 251, + 0, 0, 0, 0, 0, 192, 233, 0, 252, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 259, 280, 292, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 671, 0, 0, 0, + 291, 0, 0, 0, 0, 0, 720, 217, 218, 219, + 220, 669, 0, 161, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, + 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, + 244, 288, 230, 249, 158, 279, 257, 206, 749, 729, + 748, 750, 751, 747, 752, 753, 737, 690, 0, 745, + 744, 746, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 0, 200, 0, 241, 179, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 121, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 723, 718, 0, 295, + 296, 297, 281, 0, 0, 0, 0, 229, 0, 0, + 0, 0, 0, 0, 0, 688, 0, 0, 0, 174, + 0, 0, 199, 0, 0, 0, 258, 213, 0, 0, + 0, 0, 733, 739, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 681, 0, 0, 0, 631, 725, 724, + 698, 707, 0, 0, 156, 699, 0, 706, 700, 704, + 703, 701, 702, 0, 668, 0, 0, 0, 0, 0, + 0, 0, 685, 0, 689, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 682, 683, 0, 0, 0, + 0, 719, 0, 684, 0, 0, 721, 0, 708, 0, + 148, 263, 277, 157, 254, 290, 162, 261, 153, 228, + 250, 0, 0, 150, 275, 260, 210, 193, 194, 149, + 0, 245, 172, 185, 169, 226, 705, 717, 674, 168, + 672, 716, 285, 152, 0, 284, 225, 272, 276, 211, + 205, 151, 274, 209, 204, 197, 176, 189, 237, 203, + 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 671, 0, 0, 0, 291, 0, 0, 0, 0, - 0, 720, 217, 218, 219, 220, 669, 0, 161, 0, + 0, 0, 714, 0, 0, 287, 0, 0, 732, 0, + 0, 0, 262, 0, 0, 198, 0, 0, 0, 675, + 0, 248, 231, 742, 0, 0, 246, 201, 273, 239, + 278, 264, 286, 242, 240, 144, 265, 171, 212, 154, + 155, 167, 173, 175, 177, 178, 221, 222, 234, 253, + 266, 267, 268, 170, 163, 247, 164, 187, 165, 145, + 255, 166, 146, 235, 271, 0, 183, 243, 208, 147, + 207, 236, 270, 269, 294, 300, 301, 305, 0, 306, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 299, 181, 142, 282, 730, 227, + 741, 726, 727, 728, 731, 734, 735, 670, 673, 736, + 738, 740, 743, 251, 0, 0, 0, 0, 0, 192, + 233, 0, 252, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 259, 280, 292, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 671, 0, 0, 0, 291, 0, 0, 0, 0, 0, + 720, 217, 218, 219, 220, 669, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, 244, 288, 230, 249, 158, 279, @@ -1846,118 +1942,116 @@ var yyAct = [...]int{ 639, 640, 641, 642, 643, 644, 645, 646, 647, 121, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, - 723, 718, 0, 295, 296, 297, 281, 0, 0, 0, - 0, 229, 0, 0, 0, 0, 0, 0, 0, 688, - 0, 0, 0, 174, 0, 0, 199, 0, 0, 0, - 258, 213, 0, 0, 0, 0, 733, 739, 0, 0, + 723, 0, 0, 295, 296, 297, 281, 97, 0, 27, + 87, 69, 0, 0, 0, 0, 0, 0, 0, 229, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 174, 0, 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 631, 725, 724, 698, 707, 0, 0, 156, 699, - 0, 706, 700, 704, 703, 701, 702, 0, 668, 0, - 0, 0, 0, 0, 0, 628, 685, 0, 689, 0, + 0, 0, 0, 0, 0, 318, 0, 0, 0, 103, + 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 682, - 683, 0, 0, 0, 0, 719, 0, 684, 0, 0, - 721, 0, 708, 0, 148, 263, 277, 157, 254, 290, - 162, 261, 153, 228, 250, 0, 0, 150, 275, 260, - 210, 193, 194, 149, 0, 245, 172, 185, 169, 226, - 705, 717, 674, 168, 672, 716, 285, 152, 0, 284, - 225, 272, 276, 211, 205, 151, 274, 209, 204, 197, - 176, 189, 237, 203, 238, 190, 215, 214, 216, 0, + 0, 0, 350, 0, 349, 353, 345, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 341, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 360, 0, + 0, 0, 148, 263, 277, 157, 254, 290, 162, 261, + 153, 228, 250, 0, 0, 150, 275, 260, 210, 193, + 194, 149, 0, 245, 172, 185, 169, 226, 0, 0, + 302, 168, 293, 0, 285, 152, 0, 284, 225, 272, + 276, 211, 205, 151, 274, 209, 204, 197, 176, 189, + 237, 203, 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 714, 0, 0, 287, - 0, 0, 732, 0, 0, 0, 262, 0, 0, 198, - 0, 0, 0, 675, 0, 248, 231, 742, 629, 0, - 246, 201, 273, 239, 278, 264, 286, 242, 240, 144, - 265, 171, 212, 154, 155, 167, 173, 175, 177, 178, - 221, 222, 234, 253, 266, 267, 268, 170, 163, 247, - 164, 187, 165, 145, 255, 166, 146, 235, 271, 0, - 183, 243, 208, 147, 207, 236, 270, 269, 294, 300, - 301, 305, 0, 306, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 299, 181, - 142, 282, 730, 227, 741, 726, 727, 728, 731, 734, - 735, 670, 673, 736, 738, 740, 743, 251, 0, 0, - 0, 0, 0, 192, 233, 0, 252, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, - 280, 292, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 671, 0, 0, 0, 291, 0, - 0, 0, 0, 0, 720, 217, 218, 219, 220, 669, - 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, - 195, 0, 224, 191, 256, 196, 202, 244, 288, 230, - 249, 158, 279, 257, 206, 749, 729, 748, 750, 751, - 747, 752, 753, 737, 690, 0, 745, 744, 746, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 143, 0, 200, 0, 241, 179, 633, 634, 635, - 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 121, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, 666, 667, 723, 718, 0, 295, 296, 297, 281, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 688, 0, 0, 0, 174, 0, 0, 199, - 0, 0, 0, 258, 213, 0, 0, 0, 0, 733, - 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 681, 0, 0, 0, 631, 725, 724, 698, 707, 0, - 0, 156, 699, 0, 706, 700, 704, 703, 701, 702, - 0, 668, 0, 0, 0, 0, 0, 0, 0, 685, - 0, 689, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 682, 683, 0, 0, 0, 0, 719, 0, - 684, 0, 0, 721, 0, 708, 0, 148, 263, 277, - 157, 254, 290, 162, 261, 153, 228, 250, 0, 0, - 150, 275, 260, 210, 193, 194, 149, 0, 245, 172, - 185, 169, 226, 705, 717, 674, 168, 672, 716, 285, - 152, 0, 284, 225, 272, 276, 211, 205, 151, 274, - 209, 204, 197, 176, 189, 237, 203, 238, 190, 215, - 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 714, - 0, 0, 287, 0, 0, 732, 0, 0, 0, 262, - 0, 0, 198, 0, 0, 0, 675, 0, 248, 231, - 742, 0, 0, 246, 201, 273, 239, 278, 264, 286, - 242, 240, 144, 265, 171, 212, 154, 155, 167, 173, - 175, 177, 178, 221, 222, 234, 253, 266, 267, 268, - 170, 163, 247, 164, 187, 165, 145, 255, 166, 146, - 235, 271, 0, 183, 243, 208, 147, 207, 236, 270, - 269, 294, 300, 301, 305, 0, 306, 0, 0, 0, + 0, 0, 317, 0, 0, 0, 0, 287, 0, 0, + 0, 0, 0, 0, 262, 0, 0, 198, 0, 0, + 0, 303, 0, 248, 231, 0, 0, 0, 246, 201, + 273, 239, 278, 264, 286, 242, 240, 144, 265, 171, + 212, 154, 155, 167, 173, 175, 177, 178, 221, 222, + 234, 253, 266, 267, 268, 170, 163, 247, 164, 187, + 165, 145, 255, 166, 146, 235, 271, 0, 183, 243, + 208, 147, 207, 236, 270, 269, 294, 300, 301, 305, + 0, 306, 0, 343, 342, 346, 0, 0, 0, 0, + 0, 348, 0, 0, 0, 0, 299, 181, 142, 282, + 0, 227, 0, 352, 0, 0, 0, 0, 0, 223, + 298, 0, 0, 0, 0, 251, 0, 344, 0, 0, + 0, 192, 233, 0, 252, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 259, 280, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 181, 142, 282, 730, 227, 741, 726, 727, - 728, 731, 734, 735, 670, 673, 736, 738, 740, 743, - 251, 0, 0, 0, 0, 0, 192, 233, 0, 252, + 0, 0, 283, 0, 0, 0, 291, 0, 0, 0, + 0, 0, 0, 217, 218, 219, 220, 314, 316, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 259, 280, 292, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 671, 0, 0, - 0, 291, 0, 0, 0, 0, 0, 720, 217, 218, - 219, 220, 669, 0, 161, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, - 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, - 244, 288, 230, 249, 158, 279, 257, 206, 749, 729, - 748, 750, 751, 747, 752, 753, 737, 690, 0, 745, - 744, 746, 0, 0, 0, 0, 0, 0, 0, 0, + 304, 180, 186, 0, 188, 160, 232, 182, 289, 195, + 0, 224, 191, 256, 196, 202, 244, 288, 230, 249, + 158, 279, 257, 206, 347, 351, 354, 0, 355, 356, + 0, 0, 357, 358, 359, 0, 0, 361, 362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 143, 0, 200, 0, 241, 179, - 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, - 643, 644, 645, 646, 647, 121, 648, 649, 650, 651, - 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, - 662, 663, 664, 665, 666, 667, 723, 0, 0, 295, - 296, 297, 281, 97, 0, 27, 87, 69, 0, 0, - 0, 0, 0, 0, 0, 229, 313, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 174, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 143, 0, 200, 70, 241, 179, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 229, 0, 0, 295, 296, 297, 281, 0, + 0, 0, 0, 0, 174, 0, 0, 199, 0, 0, + 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 103, 0, 0, 0, 0, 0, 0, 156, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, + 1640, 1643, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 148, 263, 277, 157, 254, + 290, 162, 261, 153, 228, 250, 0, 0, 150, 275, + 260, 210, 193, 194, 149, 0, 245, 172, 185, 169, + 226, 0, 0, 302, 168, 293, 0, 285, 152, 0, + 284, 225, 272, 276, 211, 205, 151, 274, 209, 204, + 197, 176, 189, 237, 203, 238, 190, 215, 214, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1644, + 287, 0, 0, 0, 1637, 0, 1636, 262, 1638, 1641, + 198, 0, 0, 0, 303, 0, 248, 231, 0, 0, + 0, 246, 201, 273, 239, 278, 264, 286, 242, 240, + 144, 265, 171, 212, 154, 155, 167, 173, 175, 177, + 178, 221, 222, 234, 253, 266, 267, 268, 170, 163, + 247, 164, 187, 165, 145, 255, 166, 146, 235, 271, + 1642, 183, 243, 208, 147, 207, 236, 270, 269, 294, + 300, 301, 305, 0, 306, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, + 181, 142, 282, 0, 227, 0, 0, 0, 0, 0, + 0, 0, 223, 298, 0, 0, 0, 0, 251, 0, + 0, 0, 0, 0, 192, 233, 0, 252, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 259, 280, 292, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 283, 0, 0, 0, 291, + 0, 0, 0, 0, 0, 0, 217, 218, 219, 220, + 184, 0, 161, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 304, 180, 186, 0, 188, 160, 232, + 182, 289, 195, 0, 224, 191, 256, 196, 202, 244, + 288, 230, 249, 158, 279, 257, 206, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 143, 0, 200, 0, 241, 179, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 229, 0, 0, 295, 296, + 297, 281, 919, 0, 0, 0, 0, 174, 0, 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 318, 0, 0, 0, 103, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 103, 0, 0, 920, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 350, 0, 349, - 353, 345, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 341, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 360, 0, 0, 0, 0, 148, 263, + 0, 0, 159, 0, 0, 915, 916, 917, 914, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 148, 263, 277, 157, 254, 290, 162, 261, 153, 228, 250, 0, 0, 150, 275, 260, 210, 193, 194, 149, 0, 245, 172, 185, 169, 226, 0, 0, 302, 168, 293, 0, 285, 152, 0, 284, 225, 272, 276, 211, 205, 151, 274, 209, 204, 197, 176, 189, 237, 203, 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, 0, 262, 0, 0, 198, 0, 0, 0, 303, 0, 248, 231, 0, 0, 0, 246, 201, 273, 239, 278, 264, @@ -1965,106 +2059,334 @@ var yyAct = [...]int{ 173, 175, 177, 178, 221, 222, 234, 253, 266, 267, 268, 170, 163, 247, 164, 187, 165, 145, 255, 166, 146, 235, 271, 0, 183, 243, 208, 147, 207, 236, - 270, 269, 294, 300, 301, 305, 0, 306, 343, 342, - 346, 0, 0, 0, 0, 0, 348, 0, 0, 0, - 0, 0, 299, 181, 142, 282, 0, 227, 352, 0, + 270, 269, 294, 300, 301, 305, 0, 306, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 299, 181, 142, 282, 0, 227, 0, 0, 0, 0, 0, 0, 0, 223, 298, 0, 0, 0, - 0, 251, 344, 0, 0, 0, 0, 192, 233, 0, + 0, 251, 0, 0, 0, 0, 0, 192, 233, 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 280, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 217, - 218, 219, 220, 314, 316, 161, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 304, 180, 186, 0, 188, - 160, 232, 182, 289, 195, 0, 224, 191, 256, 196, - 202, 244, 288, 230, 249, 158, 279, 257, 206, 347, - 351, 354, 0, 355, 356, 0, 0, 357, 358, 359, - 0, 0, 361, 362, 0, 0, 0, 0, 0, 0, + 218, 219, 220, 184, 0, 161, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, + 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, + 196, 202, 244, 288, 230, 249, 158, 279, 257, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 143, 0, 200, 70, 241, - 179, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 229, 0, 0, - 295, 296, 297, 281, 0, 0, 0, 0, 0, 174, - 0, 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, - 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 159, 1639, 1642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 143, 0, 200, 0, + 241, 179, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 229, 0, + 0, 295, 296, 297, 281, 0, 0, 0, 0, 0, + 174, 429, 0, 199, 0, 0, 0, 258, 213, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 103, 437, + 438, 0, 0, 0, 0, 156, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 148, 263, 277, 157, 254, 290, 162, 261, 153, 228, - 250, 0, 0, 150, 275, 260, 210, 193, 194, 149, - 0, 245, 172, 185, 169, 226, 0, 0, 302, 168, - 293, 0, 285, 152, 0, 284, 225, 272, 276, 211, - 205, 151, 274, 209, 204, 197, 176, 189, 237, 203, - 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1643, 287, 0, 0, 0, 1636, - 0, 1635, 262, 1637, 1640, 198, 0, 0, 0, 303, - 0, 248, 231, 0, 0, 0, 246, 201, 273, 239, - 278, 264, 286, 242, 240, 144, 265, 171, 212, 154, - 155, 167, 173, 175, 177, 178, 221, 222, 234, 253, - 266, 267, 268, 170, 163, 247, 164, 187, 165, 145, - 255, 166, 146, 235, 271, 1641, 183, 243, 208, 147, - 207, 236, 270, 269, 294, 300, 301, 305, 0, 306, + 0, 148, 263, 277, 157, 254, 290, 162, 261, 153, + 228, 250, 0, 0, 150, 275, 260, 210, 193, 194, + 149, 0, 245, 172, 185, 169, 226, 0, 0, 302, + 168, 293, 410, 285, 152, 409, 284, 225, 272, 276, + 211, 205, 151, 274, 209, 204, 197, 176, 189, 237, + 203, 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 299, 181, 142, 282, 0, 227, - 0, 0, 0, 0, 0, 0, 0, 223, 298, 0, - 0, 0, 0, 251, 0, 0, 0, 0, 0, 192, - 233, 0, 252, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 259, 280, 292, 0, 0, + 0, 0, 0, 0, 0, 0, 287, 0, 0, 0, + 0, 0, 0, 262, 0, 0, 198, 0, 0, 0, + 303, 0, 248, 231, 0, 0, 0, 246, 201, 273, + 239, 278, 264, 286, 428, 240, 144, 265, 171, 212, + 154, 155, 167, 173, 175, 177, 178, 221, 222, 234, + 253, 266, 267, 268, 170, 163, 247, 164, 187, 165, + 145, 255, 166, 146, 235, 271, 0, 183, 243, 208, + 147, 207, 236, 270, 269, 294, 300, 301, 305, 0, + 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 299, 181, 142, 282, 0, + 227, 0, 0, 0, 0, 0, 0, 0, 223, 298, + 0, 0, 0, 0, 251, 0, 0, 0, 0, 0, + 192, 233, 0, 252, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 259, 280, 292, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 283, 0, 0, 0, 291, 0, 0, 0, 0, + 0, 431, 217, 218, 219, 220, 184, 0, 161, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, + 180, 186, 0, 188, 160, 232, 182, 289, 195, 0, + 439, 434, 435, 196, 202, 244, 288, 230, 249, 158, + 279, 257, 436, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, + 0, 200, 0, 241, 179, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 97, 0, 0, 295, 296, 297, 281, 0, 0, + 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 174, 0, 0, 199, 0, + 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, + 0, 1007, 0, 103, 0, 0, 0, 0, 0, 0, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 148, 263, 277, 157, + 254, 290, 162, 261, 153, 228, 250, 0, 0, 150, + 275, 260, 210, 193, 194, 149, 0, 245, 172, 185, + 169, 226, 0, 0, 302, 168, 293, 0, 285, 152, + 0, 284, 225, 272, 276, 211, 205, 151, 274, 209, + 204, 197, 176, 189, 237, 203, 238, 190, 215, 214, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 287, 0, 0, 0, 0, 0, 0, 262, 0, + 0, 198, 0, 0, 0, 303, 0, 248, 231, 0, + 0, 0, 246, 201, 273, 239, 278, 264, 286, 242, + 240, 144, 265, 171, 212, 154, 155, 167, 173, 175, + 177, 178, 221, 222, 234, 253, 266, 267, 268, 170, + 163, 247, 164, 187, 165, 145, 255, 166, 146, 235, + 271, 0, 183, 243, 208, 147, 207, 236, 270, 269, + 294, 300, 301, 305, 0, 306, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 299, 181, 142, 282, 0, 227, 0, 0, 0, 0, + 0, 0, 0, 223, 298, 0, 0, 0, 0, 251, + 0, 0, 0, 0, 0, 192, 233, 0, 252, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 259, 280, 292, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, + 291, 0, 0, 0, 0, 0, 0, 217, 218, 219, + 220, 184, 0, 161, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, + 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, + 244, 288, 230, 249, 158, 279, 257, 206, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 0, 200, 70, 241, 179, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 229, 0, 0, 295, + 296, 297, 281, 0, 0, 0, 0, 0, 174, 0, + 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 103, 437, 438, 0, + 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 442, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, + 263, 277, 157, 254, 290, 162, 261, 153, 228, 250, + 0, 0, 150, 275, 260, 210, 193, 194, 149, 0, + 245, 172, 185, 169, 226, 0, 0, 302, 168, 293, + 410, 285, 152, 409, 284, 225, 272, 276, 211, 205, + 151, 274, 209, 204, 197, 176, 189, 237, 203, 238, + 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, + 0, 262, 0, 0, 198, 0, 0, 0, 303, 0, + 248, 231, 0, 0, 0, 246, 201, 273, 239, 278, + 264, 286, 242, 240, 144, 265, 171, 212, 154, 155, + 167, 173, 175, 177, 178, 221, 222, 234, 253, 266, + 267, 268, 170, 163, 247, 164, 187, 165, 145, 255, + 166, 146, 235, 271, 0, 183, 243, 208, 147, 207, + 236, 270, 269, 294, 300, 301, 305, 0, 306, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 299, 181, 142, 282, 0, 227, 0, + 0, 0, 0, 0, 0, 0, 223, 298, 0, 0, + 0, 0, 251, 0, 0, 0, 0, 0, 192, 233, + 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 259, 280, 292, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, + 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, + 217, 218, 219, 220, 184, 0, 161, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 304, 180, 186, + 0, 188, 160, 232, 182, 289, 195, 0, 439, 434, + 435, 196, 202, 244, 288, 230, 249, 158, 279, 257, + 436, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 143, 0, 200, + 0, 241, 179, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 229, + 0, 0, 295, 296, 297, 281, 0, 0, 0, 0, + 0, 174, 607, 0, 199, 0, 0, 0, 258, 213, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, + 0, 0, 605, 0, 0, 0, 156, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 159, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 603, 0, + 0, 0, 148, 263, 277, 157, 254, 290, 162, 261, + 153, 228, 250, 0, 0, 150, 275, 260, 210, 193, + 194, 149, 0, 245, 172, 185, 169, 226, 0, 0, + 302, 168, 293, 0, 285, 152, 0, 284, 225, 272, + 276, 211, 205, 151, 274, 209, 204, 197, 176, 189, + 237, 203, 238, 190, 215, 214, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 287, 0, 0, + 0, 0, 0, 0, 262, 0, 0, 198, 0, 0, + 0, 303, 0, 248, 231, 0, 0, 0, 246, 201, + 273, 239, 278, 264, 286, 242, 240, 144, 265, 171, + 212, 154, 155, 167, 173, 175, 177, 178, 221, 222, + 234, 253, 266, 267, 268, 170, 163, 247, 164, 187, + 165, 145, 255, 166, 146, 235, 271, 0, 183, 243, + 208, 147, 207, 236, 270, 269, 294, 300, 301, 305, + 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 299, 181, 142, 282, + 0, 227, 0, 0, 0, 0, 0, 0, 0, 223, + 298, 0, 0, 0, 0, 251, 0, 0, 0, 0, + 0, 192, 233, 0, 252, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 259, 280, 292, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 283, 0, 0, 0, 291, 0, 0, 0, + 0, 0, 0, 217, 218, 219, 220, 184, 0, 161, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 304, 180, 186, 0, 188, 160, 232, 182, 289, 195, + 0, 224, 191, 256, 196, 202, 244, 288, 230, 249, + 158, 279, 257, 206, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 143, 0, 200, 0, 241, 179, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 229, 0, 0, 295, 296, 297, 281, 0, + 0, 0, 0, 0, 174, 601, 0, 199, 0, 0, + 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 103, 0, 0, 605, 0, 0, 0, 156, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 603, 0, 0, 0, 148, 263, 277, 157, 254, + 290, 162, 261, 153, 228, 250, 0, 0, 150, 275, + 260, 210, 193, 194, 149, 0, 245, 172, 185, 169, + 226, 0, 0, 302, 168, 293, 0, 285, 152, 0, + 284, 225, 272, 276, 211, 205, 151, 274, 209, 204, + 197, 176, 189, 237, 203, 238, 190, 215, 214, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 287, 0, 0, 0, 0, 0, 0, 262, 0, 0, + 198, 0, 0, 0, 303, 0, 248, 231, 0, 0, + 0, 246, 201, 273, 239, 278, 264, 286, 242, 240, + 144, 265, 171, 212, 154, 155, 167, 173, 175, 177, + 178, 221, 222, 234, 253, 266, 267, 268, 170, 163, + 247, 164, 187, 165, 145, 255, 166, 146, 235, 271, + 0, 183, 243, 208, 147, 207, 236, 270, 269, 294, + 300, 301, 305, 0, 306, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, + 181, 142, 282, 0, 227, 0, 0, 0, 0, 0, + 0, 0, 223, 298, 0, 0, 0, 0, 251, 0, + 0, 0, 0, 0, 192, 233, 0, 252, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 259, 280, 292, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 283, 0, 0, 0, 291, + 0, 0, 0, 0, 0, 0, 217, 218, 219, 220, + 184, 0, 161, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 304, 180, 186, 0, 188, 160, 232, + 182, 289, 195, 0, 224, 191, 256, 196, 202, 244, + 288, 230, 249, 158, 279, 257, 206, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 143, 0, 200, 0, 241, 179, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 229, 0, 0, 295, 296, + 297, 281, 0, 0, 0, 0, 0, 174, 0, 0, + 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2231, 0, 103, 725, 0, 0, 0, + 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 148, 263, + 277, 157, 254, 290, 162, 261, 153, 228, 250, 0, + 0, 150, 275, 260, 210, 193, 194, 149, 0, 245, + 172, 185, 169, 226, 0, 0, 302, 168, 293, 0, + 285, 152, 0, 284, 225, 272, 276, 211, 205, 151, + 274, 209, 204, 197, 176, 189, 237, 203, 238, 190, + 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 287, 0, 0, 0, 0, 0, 0, + 262, 0, 0, 198, 0, 0, 0, 303, 0, 248, + 231, 0, 0, 0, 246, 201, 273, 239, 278, 264, + 286, 242, 240, 144, 265, 171, 212, 154, 155, 167, + 173, 175, 177, 178, 221, 222, 234, 253, 266, 267, + 268, 170, 163, 247, 164, 187, 165, 145, 255, 166, + 146, 235, 271, 0, 183, 243, 208, 147, 207, 236, + 270, 269, 294, 300, 301, 305, 0, 306, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 299, 181, 142, 282, 0, 227, 0, 0, + 0, 0, 0, 0, 0, 223, 298, 0, 0, 0, + 0, 251, 0, 0, 0, 0, 0, 192, 233, 0, + 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 259, 280, 292, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, + 0, 0, 291, 0, 0, 0, 0, 0, 0, 217, + 218, 219, 220, 184, 0, 161, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, + 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, + 196, 202, 244, 288, 230, 249, 158, 279, 257, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 283, 0, 0, 0, 291, 0, 0, 0, 0, 0, - 0, 217, 218, 219, 220, 184, 0, 161, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 304, 180, 186, - 0, 188, 160, 232, 182, 289, 195, 0, 224, 191, - 256, 196, 202, 244, 288, 230, 249, 158, 279, 257, - 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 143, 0, 200, - 0, 241, 179, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 229, - 0, 0, 295, 296, 297, 281, 919, 0, 0, 0, - 0, 174, 0, 0, 199, 0, 0, 0, 258, 213, + 0, 0, 0, 0, 0, 0, 143, 0, 200, 0, + 241, 179, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 229, 0, + 0, 295, 296, 297, 281, 0, 0, 0, 0, 0, + 174, 0, 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, - 0, 0, 920, 0, 0, 0, 156, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 159, 0, 0, 915, - 916, 917, 914, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, + 0, 605, 0, 0, 0, 156, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 148, 263, 277, 157, 254, 290, 162, 261, - 153, 228, 250, 0, 0, 150, 275, 260, 210, 193, - 194, 149, 0, 245, 172, 185, 169, 226, 0, 0, - 302, 168, 293, 0, 285, 152, 0, 284, 225, 272, - 276, 211, 205, 151, 274, 209, 204, 197, 176, 189, - 237, 203, 238, 190, 215, 214, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 603, 0, 0, + 0, 148, 263, 277, 157, 254, 290, 162, 261, 153, + 228, 250, 0, 0, 150, 275, 260, 210, 193, 194, + 149, 0, 245, 172, 185, 169, 226, 0, 0, 302, + 168, 293, 0, 285, 152, 0, 284, 225, 272, 276, + 211, 205, 151, 274, 209, 204, 197, 176, 189, 237, + 203, 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 287, 0, 0, - 0, 0, 0, 0, 262, 0, 0, 198, 0, 0, - 0, 303, 0, 248, 231, 0, 0, 0, 246, 201, - 273, 239, 278, 264, 286, 242, 240, 144, 265, 171, - 212, 154, 155, 167, 173, 175, 177, 178, 221, 222, - 234, 253, 266, 267, 268, 170, 163, 247, 164, 187, - 165, 145, 255, 166, 146, 235, 271, 0, 183, 243, - 208, 147, 207, 236, 270, 269, 294, 300, 301, 305, - 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 299, 181, 142, 282, - 0, 227, 0, 0, 0, 0, 0, 0, 0, 223, - 298, 0, 0, 0, 0, 251, 0, 0, 0, 0, - 0, 192, 233, 0, 252, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 259, 280, 292, + 0, 0, 0, 0, 0, 0, 287, 0, 0, 0, + 0, 0, 0, 262, 0, 0, 198, 0, 0, 0, + 303, 0, 248, 231, 0, 0, 0, 246, 201, 273, + 239, 278, 264, 286, 242, 240, 144, 265, 171, 212, + 154, 155, 167, 173, 175, 177, 178, 221, 222, 234, + 253, 266, 267, 268, 170, 163, 247, 164, 187, 165, + 145, 255, 166, 146, 235, 271, 0, 183, 243, 208, + 147, 207, 236, 270, 269, 294, 300, 301, 305, 0, + 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 299, 181, 142, 282, 0, + 227, 0, 0, 0, 0, 0, 0, 0, 223, 298, + 0, 0, 0, 0, 251, 0, 0, 0, 0, 0, + 192, 233, 0, 252, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 259, 280, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 283, 0, 0, 0, 291, 0, 0, 0, - 0, 0, 0, 217, 218, 219, 220, 184, 0, 161, + 0, 283, 0, 0, 0, 291, 0, 0, 0, 0, + 0, 0, 217, 218, 219, 220, 184, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, 244, 288, 230, 249, 158, @@ -2077,26 +2399,26 @@ var yyAct = [...]int{ 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 229, 0, 0, 295, 296, 297, 281, 0, 0, - 0, 0, 0, 174, 429, 0, 199, 0, 0, 0, + 0, 0, 0, 174, 0, 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 103, 437, 438, 0, 0, 0, 0, 156, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 442, 0, + 0, 103, 0, 0, 605, 0, 0, 0, 156, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 148, 263, 277, 157, 254, 290, + 1838, 0, 0, 0, 148, 263, 277, 157, 254, 290, 162, 261, 153, 228, 250, 0, 0, 150, 275, 260, 210, 193, 194, 149, 0, 245, 172, 185, 169, 226, - 0, 0, 302, 168, 293, 410, 285, 152, 409, 284, + 0, 0, 302, 168, 293, 0, 285, 152, 0, 284, 225, 272, 276, 211, 205, 151, 274, 209, 204, 197, 176, 189, 237, 203, 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, 0, 262, 0, 0, 198, 0, 0, 0, 303, 0, 248, 231, 0, 0, 0, - 246, 201, 273, 239, 278, 264, 286, 428, 240, 144, + 246, 201, 273, 239, 278, 264, 286, 242, 240, 144, 265, 171, 212, 154, 155, 167, 173, 175, 177, 178, 221, 222, 234, 253, 266, 267, 268, 170, 163, 247, 164, 187, 165, 145, 255, 166, 146, 235, 271, 0, @@ -2109,61 +2431,60 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 280, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 291, 0, - 0, 0, 0, 0, 431, 217, 218, 219, 220, 184, + 0, 0, 0, 0, 0, 217, 218, 219, 220, 184, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, - 195, 0, 439, 434, 435, 196, 202, 244, 288, 230, - 249, 158, 279, 257, 436, 0, 0, 0, 0, 0, + 0, 0, 304, 180, 186, 0, 188, 160, 232, 182, + 289, 195, 0, 224, 191, 256, 196, 202, 244, 288, + 230, 249, 158, 279, 257, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 143, 0, 200, 0, 241, 179, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 97, 0, 0, 295, 296, 297, 281, - 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 174, 0, 0, - 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, + 0, 0, 143, 0, 200, 0, 241, 179, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 229, 0, 0, 295, 296, 297, + 281, 0, 0, 0, 0, 0, 174, 1297, 0, 199, + 0, 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 0, 1007, 0, 103, 0, 0, 0, 0, - 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 103, 0, 0, 605, 0, 0, + 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 148, 263, - 277, 157, 254, 290, 162, 261, 153, 228, 250, 0, - 0, 150, 275, 260, 210, 193, 194, 149, 0, 245, - 172, 185, 169, 226, 0, 0, 302, 168, 293, 0, - 285, 152, 0, 284, 225, 272, 276, 211, 205, 151, - 274, 209, 204, 197, 176, 189, 237, 203, 238, 190, - 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 148, 263, 277, + 157, 254, 290, 162, 261, 153, 228, 250, 0, 0, + 150, 275, 260, 210, 193, 194, 149, 0, 245, 172, + 185, 169, 226, 0, 0, 302, 168, 293, 0, 285, + 152, 0, 284, 225, 272, 276, 211, 205, 151, 274, + 209, 204, 197, 176, 189, 237, 203, 238, 190, 215, + 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 287, 0, 0, 0, 0, 0, 0, - 262, 0, 0, 198, 0, 0, 0, 303, 0, 248, - 231, 0, 0, 0, 246, 201, 273, 239, 278, 264, - 286, 242, 240, 144, 265, 171, 212, 154, 155, 167, - 173, 175, 177, 178, 221, 222, 234, 253, 266, 267, - 268, 170, 163, 247, 164, 187, 165, 145, 255, 166, - 146, 235, 271, 0, 183, 243, 208, 147, 207, 236, - 270, 269, 294, 300, 301, 305, 0, 306, 0, 0, + 0, 0, 287, 0, 0, 0, 0, 0, 0, 262, + 0, 0, 198, 0, 0, 0, 303, 0, 248, 231, + 0, 0, 0, 246, 201, 273, 239, 278, 264, 286, + 242, 240, 144, 265, 171, 212, 154, 155, 167, 173, + 175, 177, 178, 221, 222, 234, 253, 266, 267, 268, + 170, 163, 247, 164, 187, 165, 145, 255, 166, 146, + 235, 271, 0, 183, 243, 208, 147, 207, 236, 270, + 269, 294, 300, 301, 305, 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 299, 181, 142, 282, 0, 227, 0, 0, - 0, 0, 0, 0, 0, 223, 298, 0, 0, 0, - 0, 251, 0, 0, 0, 0, 0, 192, 233, 0, - 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 259, 280, 292, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, - 0, 0, 291, 0, 0, 0, 0, 0, 0, 217, - 218, 219, 220, 184, 0, 161, 0, 0, 0, 0, + 0, 299, 181, 142, 282, 0, 227, 0, 0, 0, + 0, 0, 0, 0, 223, 298, 0, 0, 0, 0, + 251, 0, 0, 0, 0, 0, 192, 233, 0, 252, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 259, 280, 292, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, + 0, 291, 0, 0, 0, 0, 0, 0, 217, 218, + 219, 220, 184, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, 244, 288, 230, 249, 158, 279, 257, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 143, 0, 200, 70, 241, + 0, 0, 0, 0, 0, 143, 0, 200, 0, 241, 179, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, @@ -2171,9 +2492,9 @@ var yyAct = [...]int{ 295, 296, 297, 281, 0, 0, 0, 0, 0, 174, 0, 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 103, 437, 438, + 0, 0, 0, 0, 0, 0, 0, 103, 725, 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 442, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2181,7 +2502,7 @@ var yyAct = [...]int{ 148, 263, 277, 157, 254, 290, 162, 261, 153, 228, 250, 0, 0, 150, 275, 260, 210, 193, 194, 149, 0, 245, 172, 185, 169, 226, 0, 0, 302, 168, - 293, 410, 285, 152, 409, 284, 225, 272, 276, 211, + 293, 0, 285, 152, 0, 284, 225, 272, 276, 211, 205, 151, 274, 209, 204, 197, 176, 189, 237, 203, 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2202,97 +2523,52 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 217, 218, 219, 220, 184, 0, 161, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 304, 180, 186, - 0, 188, 160, 232, 182, 289, 195, 0, 439, 434, - 435, 196, 202, 244, 288, 230, 249, 158, 279, 257, - 436, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 143, 0, 200, - 0, 241, 179, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 229, - 0, 0, 295, 296, 297, 281, 0, 0, 0, 0, - 0, 174, 607, 0, 199, 0, 0, 0, 258, 213, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, - 0, 0, 605, 0, 0, 0, 156, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 159, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 603, 0, - 0, 0, 148, 263, 277, 157, 254, 290, 162, 261, - 153, 228, 250, 0, 0, 150, 275, 260, 210, 193, - 194, 149, 0, 245, 172, 185, 169, 226, 0, 0, - 302, 168, 293, 0, 285, 152, 0, 284, 225, 272, - 276, 211, 205, 151, 274, 209, 204, 197, 176, 189, - 237, 203, 238, 190, 215, 214, 216, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 287, 0, 0, - 0, 0, 0, 0, 262, 0, 0, 198, 0, 0, - 0, 303, 0, 248, 231, 0, 0, 0, 246, 201, - 273, 239, 278, 264, 286, 242, 240, 144, 265, 171, - 212, 154, 155, 167, 173, 175, 177, 178, 221, 222, - 234, 253, 266, 267, 268, 170, 163, 247, 164, 187, - 165, 145, 255, 166, 146, 235, 271, 0, 183, 243, - 208, 147, 207, 236, 270, 269, 294, 300, 301, 305, - 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 299, 181, 142, 282, - 0, 227, 0, 0, 0, 0, 0, 0, 0, 223, - 298, 0, 0, 0, 0, 251, 0, 0, 0, 0, - 0, 192, 233, 0, 252, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 259, 280, 292, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 283, 0, 0, 0, 291, 0, 0, 0, - 0, 0, 0, 217, 218, 219, 220, 184, 0, 161, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, - 180, 186, 0, 188, 160, 232, 182, 289, 195, 0, - 224, 191, 256, 196, 202, 244, 288, 230, 249, 158, - 279, 257, 206, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 304, 180, + 186, 0, 188, 160, 232, 182, 289, 195, 0, 224, + 191, 256, 196, 202, 244, 288, 230, 249, 158, 279, + 257, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, - 0, 200, 0, 241, 179, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 229, 0, 0, 295, 296, 297, 281, 0, 0, - 0, 0, 0, 174, 601, 0, 199, 0, 0, 0, - 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 103, 0, 0, 605, 0, 0, 0, 156, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 159, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, + 200, 0, 241, 179, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 229, 0, 0, 295, 296, 297, 281, 0, 0, 0, + 0, 0, 174, 0, 0, 199, 0, 0, 0, 258, + 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1986, 0, 0, 0, + 103, 0, 0, 0, 0, 0, 0, 156, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 603, 0, 0, 0, 148, 263, 277, 157, 254, 290, - 162, 261, 153, 228, 250, 0, 0, 150, 275, 260, - 210, 193, 194, 149, 0, 245, 172, 185, 169, 226, - 0, 0, 302, 168, 293, 0, 285, 152, 0, 284, - 225, 272, 276, 211, 205, 151, 274, 209, 204, 197, - 176, 189, 237, 203, 238, 190, 215, 214, 216, 0, + 0, 0, 0, 148, 263, 277, 157, 254, 290, 162, + 261, 153, 228, 250, 0, 0, 150, 275, 260, 210, + 193, 194, 149, 0, 245, 172, 185, 169, 226, 0, + 0, 302, 168, 293, 0, 285, 152, 0, 284, 225, + 272, 276, 211, 205, 151, 274, 209, 204, 197, 176, + 189, 237, 203, 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, - 0, 0, 0, 0, 0, 0, 262, 0, 0, 198, - 0, 0, 0, 303, 0, 248, 231, 0, 0, 0, - 246, 201, 273, 239, 278, 264, 286, 242, 240, 144, - 265, 171, 212, 154, 155, 167, 173, 175, 177, 178, - 221, 222, 234, 253, 266, 267, 268, 170, 163, 247, - 164, 187, 165, 145, 255, 166, 146, 235, 271, 0, - 183, 243, 208, 147, 207, 236, 270, 269, 294, 300, - 301, 305, 0, 306, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 299, 181, - 142, 282, 0, 227, 0, 0, 0, 0, 0, 0, - 0, 223, 298, 0, 0, 0, 0, 251, 0, 0, - 0, 0, 0, 192, 233, 0, 252, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, - 280, 292, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 283, 0, 0, 0, 291, 0, - 0, 0, 0, 0, 0, 217, 218, 219, 220, 184, - 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 287, 0, + 0, 0, 0, 0, 0, 262, 0, 0, 198, 0, + 0, 0, 303, 0, 248, 231, 0, 0, 0, 246, + 201, 273, 239, 278, 264, 286, 242, 240, 144, 265, + 171, 212, 154, 155, 167, 173, 175, 177, 178, 221, + 222, 234, 253, 266, 267, 268, 170, 163, 247, 164, + 187, 165, 145, 255, 166, 146, 235, 271, 0, 183, + 243, 208, 147, 207, 236, 270, 269, 294, 300, 301, + 305, 0, 306, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 299, 181, 142, + 282, 0, 227, 0, 0, 0, 0, 0, 0, 0, + 223, 298, 0, 0, 0, 0, 251, 0, 0, 0, + 0, 0, 192, 233, 0, 252, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 259, 280, + 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 283, 0, 0, 0, 291, 0, 0, + 0, 0, 0, 0, 217, 218, 219, 220, 184, 0, + 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, 244, 288, 230, 249, 158, 279, 257, 206, 0, 0, 0, 0, 0, @@ -2307,12 +2583,12 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 174, 0, 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2230, 0, 103, 725, 0, 0, 0, 0, 0, + 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 263, 277, 157, 254, 290, 162, 261, 153, 228, 250, 0, 0, 150, 275, 260, 210, 193, 194, 149, 0, 245, 172, 185, @@ -2338,96 +2614,51 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 217, 218, 219, 220, 184, 0, 161, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 304, 180, 186, 0, 188, 160, 232, - 182, 289, 195, 0, 224, 191, 256, 196, 202, 244, - 288, 230, 249, 158, 279, 257, 206, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 143, 0, 200, 0, 241, 179, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 229, 0, 0, 295, 296, - 297, 281, 0, 0, 0, 0, 0, 174, 0, 0, - 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 103, 0, 0, 605, 0, - 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 603, 0, 0, 0, 148, 263, - 277, 157, 254, 290, 162, 261, 153, 228, 250, 0, - 0, 150, 275, 260, 210, 193, 194, 149, 0, 245, - 172, 185, 169, 226, 0, 0, 302, 168, 293, 0, - 285, 152, 0, 284, 225, 272, 276, 211, 205, 151, - 274, 209, 204, 197, 176, 189, 237, 203, 238, 190, - 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 287, 0, 0, 0, 0, 0, 0, - 262, 0, 0, 198, 0, 0, 0, 303, 0, 248, - 231, 0, 0, 0, 246, 201, 273, 239, 278, 264, - 286, 242, 240, 144, 265, 171, 212, 154, 155, 167, - 173, 175, 177, 178, 221, 222, 234, 253, 266, 267, - 268, 170, 163, 247, 164, 187, 165, 145, 255, 166, - 146, 235, 271, 0, 183, 243, 208, 147, 207, 236, - 270, 269, 294, 300, 301, 305, 0, 306, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 299, 181, 142, 282, 0, 227, 0, 0, - 0, 0, 0, 0, 0, 223, 298, 0, 0, 0, - 0, 251, 0, 0, 0, 0, 0, 192, 233, 0, - 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 259, 280, 292, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, - 0, 0, 291, 0, 0, 0, 0, 0, 0, 217, - 218, 219, 220, 184, 0, 161, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 304, 180, 186, 0, 188, - 160, 232, 182, 289, 195, 0, 224, 191, 256, 196, - 202, 244, 288, 230, 249, 158, 279, 257, 206, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, + 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, + 244, 288, 230, 249, 158, 279, 257, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 143, 0, 200, 0, 241, - 179, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 229, 0, 0, - 295, 296, 297, 281, 0, 0, 0, 0, 0, 174, - 0, 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, - 605, 0, 0, 0, 156, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 0, 200, 0, 241, 179, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 229, 0, 0, 295, + 296, 297, 281, 0, 0, 0, 0, 0, 174, 0, + 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 869, 0, 0, 0, 103, 0, 0, 0, + 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1837, 0, 0, 0, - 148, 263, 277, 157, 254, 290, 162, 261, 153, 228, - 250, 0, 0, 150, 275, 260, 210, 193, 194, 149, - 0, 245, 172, 185, 169, 226, 0, 0, 302, 168, - 293, 0, 285, 152, 0, 284, 225, 272, 276, 211, - 205, 151, 274, 209, 204, 197, 176, 189, 237, 203, - 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 287, 0, 0, 0, 0, - 0, 0, 262, 0, 0, 198, 0, 0, 0, 303, - 0, 248, 231, 0, 0, 0, 246, 201, 273, 239, - 278, 264, 286, 242, 240, 144, 265, 171, 212, 154, - 155, 167, 173, 175, 177, 178, 221, 222, 234, 253, - 266, 267, 268, 170, 163, 247, 164, 187, 165, 145, - 255, 166, 146, 235, 271, 0, 183, 243, 208, 147, - 207, 236, 270, 269, 294, 300, 301, 305, 0, 306, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, + 263, 277, 157, 254, 290, 162, 261, 153, 228, 250, + 0, 0, 150, 275, 260, 210, 193, 194, 149, 0, + 245, 172, 185, 169, 226, 0, 0, 302, 168, 293, + 0, 285, 152, 0, 284, 225, 272, 276, 211, 205, + 151, 274, 209, 204, 197, 176, 189, 237, 203, 238, + 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 299, 181, 142, 282, 0, 227, - 0, 0, 0, 0, 0, 0, 0, 223, 298, 0, - 0, 0, 0, 251, 0, 0, 0, 0, 0, 192, - 233, 0, 252, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 259, 280, 292, 0, 0, + 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, + 0, 262, 0, 0, 198, 0, 0, 0, 303, 0, + 248, 231, 0, 0, 0, 246, 201, 273, 239, 278, + 264, 286, 242, 240, 144, 265, 171, 212, 154, 155, + 167, 173, 175, 177, 178, 221, 222, 234, 253, 266, + 267, 268, 170, 163, 247, 164, 187, 165, 145, 255, + 166, 146, 235, 271, 0, 183, 243, 208, 147, 207, + 236, 270, 269, 294, 300, 301, 305, 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 283, 0, 0, 0, 291, 0, 0, 0, 0, 0, - 0, 217, 218, 219, 220, 184, 0, 161, 0, 0, + 0, 0, 0, 299, 181, 142, 282, 0, 227, 0, + 0, 0, 0, 0, 0, 0, 223, 298, 0, 0, + 0, 0, 251, 0, 0, 0, 0, 0, 192, 233, + 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 259, 280, 292, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, + 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, + 217, 218, 219, 220, 184, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, 244, 288, 230, 249, 158, 279, 257, @@ -2440,7 +2671,7 @@ var yyAct = [...]int{ 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 229, 0, 0, 295, 296, 297, 281, 0, 0, 0, 0, - 0, 174, 1296, 0, 199, 0, 0, 0, 258, 213, + 0, 174, 0, 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 605, 0, 0, 0, 156, 0, 0, 0, @@ -2473,97 +2704,52 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 217, 218, 219, 220, 184, 0, 161, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, - 180, 186, 0, 188, 160, 232, 182, 289, 195, 0, - 224, 191, 256, 196, 202, 244, 288, 230, 249, 158, - 279, 257, 206, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, - 0, 200, 0, 241, 179, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 229, 0, 0, 295, 296, 297, 281, 0, 0, - 0, 0, 0, 174, 0, 0, 199, 0, 0, 0, - 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 103, 725, 0, 0, 0, 0, 0, 156, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 159, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 148, 263, 277, 157, 254, 290, - 162, 261, 153, 228, 250, 0, 0, 150, 275, 260, - 210, 193, 194, 149, 0, 245, 172, 185, 169, 226, - 0, 0, 302, 168, 293, 0, 285, 152, 0, 284, - 225, 272, 276, 211, 205, 151, 274, 209, 204, 197, - 176, 189, 237, 203, 238, 190, 215, 214, 216, 0, + 304, 180, 186, 0, 188, 160, 232, 182, 289, 195, + 0, 224, 191, 256, 196, 202, 244, 288, 230, 249, + 158, 279, 257, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, - 0, 0, 0, 0, 0, 0, 262, 0, 0, 198, - 0, 0, 0, 303, 0, 248, 231, 0, 0, 0, - 246, 201, 273, 239, 278, 264, 286, 242, 240, 144, - 265, 171, 212, 154, 155, 167, 173, 175, 177, 178, - 221, 222, 234, 253, 266, 267, 268, 170, 163, 247, - 164, 187, 165, 145, 255, 166, 146, 235, 271, 0, - 183, 243, 208, 147, 207, 236, 270, 269, 294, 300, - 301, 305, 0, 306, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 299, 181, - 142, 282, 0, 227, 0, 0, 0, 0, 0, 0, - 0, 223, 298, 0, 0, 0, 0, 251, 0, 0, - 0, 0, 0, 192, 233, 0, 252, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, - 280, 292, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 283, 0, 0, 0, 291, 0, - 0, 0, 0, 0, 0, 217, 218, 219, 220, 184, - 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, - 195, 0, 224, 191, 256, 196, 202, 244, 288, 230, - 249, 158, 279, 257, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 143, 0, 200, 0, 241, 179, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 229, 0, 0, 295, 296, 297, 281, 0, + 0, 0, 0, 0, 174, 0, 0, 199, 0, 0, + 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 143, 0, 200, 0, 241, 179, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 229, 0, 0, 295, 296, 297, 281, - 0, 0, 0, 0, 0, 174, 0, 0, 199, 0, - 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1985, - 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, - 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 103, 0, 0, 0, 0, 0, 0, 156, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 148, 263, 277, 157, - 254, 290, 162, 261, 153, 228, 250, 0, 0, 150, - 275, 260, 210, 193, 194, 149, 0, 245, 172, 185, - 169, 226, 0, 0, 302, 168, 293, 0, 285, 152, - 0, 284, 225, 272, 276, 211, 205, 151, 274, 209, - 204, 197, 176, 189, 237, 203, 238, 190, 215, 214, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1701, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 148, 263, 277, 157, 254, + 290, 162, 261, 153, 228, 250, 0, 0, 150, 275, + 260, 210, 193, 194, 149, 0, 245, 172, 185, 169, + 226, 0, 0, 302, 168, 293, 0, 285, 152, 0, + 284, 225, 272, 276, 211, 205, 151, 274, 209, 204, + 197, 176, 189, 237, 203, 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 287, 0, 0, 0, 0, 0, 0, 262, 0, - 0, 198, 0, 0, 0, 303, 0, 248, 231, 0, - 0, 0, 246, 201, 273, 239, 278, 264, 286, 242, - 240, 144, 265, 171, 212, 154, 155, 167, 173, 175, - 177, 178, 221, 222, 234, 253, 266, 267, 268, 170, - 163, 247, 164, 187, 165, 145, 255, 166, 146, 235, - 271, 0, 183, 243, 208, 147, 207, 236, 270, 269, - 294, 300, 301, 305, 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 299, 181, 142, 282, 0, 227, 0, 0, 0, 0, - 0, 0, 0, 223, 298, 0, 0, 0, 0, 251, - 0, 0, 0, 0, 0, 192, 233, 0, 252, 0, + 287, 0, 0, 0, 0, 0, 0, 262, 0, 0, + 198, 0, 0, 0, 303, 0, 248, 231, 0, 0, + 0, 246, 201, 273, 239, 278, 264, 286, 242, 240, + 144, 265, 171, 212, 154, 155, 167, 173, 175, 177, + 178, 221, 222, 234, 253, 266, 267, 268, 170, 163, + 247, 164, 187, 165, 145, 255, 166, 146, 235, 271, + 0, 183, 243, 208, 147, 207, 236, 270, 269, 294, + 300, 301, 305, 0, 306, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, + 181, 142, 282, 0, 227, 0, 0, 0, 0, 0, + 0, 0, 223, 298, 0, 0, 0, 0, 251, 0, + 0, 0, 0, 0, 192, 233, 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 259, 280, 292, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, - 291, 0, 0, 0, 0, 0, 0, 217, 218, 219, - 220, 184, 0, 161, 0, 0, 0, 0, 0, 0, + 259, 280, 292, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 283, 0, 0, 0, 291, + 0, 0, 0, 0, 0, 0, 217, 218, 219, 220, + 184, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, 244, 288, 230, 249, 158, 279, 257, 206, 0, 0, 0, @@ -2583,7 +2769,7 @@ var yyAct = [...]int{ 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1674, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 263, 277, 157, 254, 290, 162, 261, 153, 228, 250, 0, 0, 150, 275, 260, 210, 193, 194, 149, 0, 245, @@ -2609,96 +2795,97 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 217, 218, 219, 220, 184, 0, 161, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 304, 180, 186, 0, 188, - 160, 232, 182, 289, 195, 0, 224, 191, 256, 196, - 202, 244, 288, 230, 249, 158, 279, 257, 206, 0, + 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, + 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, + 196, 202, 244, 288, 230, 249, 158, 279, 257, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 143, 0, 200, 0, 241, - 179, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 229, 0, 0, - 295, 296, 297, 281, 0, 0, 0, 0, 0, 174, - 0, 0, 199, 0, 0, 0, 258, 213, 0, 0, + 0, 0, 0, 0, 0, 0, 143, 0, 200, 0, + 241, 179, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 229, 0, + 0, 295, 296, 297, 281, 0, 0, 0, 0, 0, + 174, 0, 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 869, 0, 0, 0, 103, 0, 0, - 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, + 0, 1310, 0, 0, 0, 156, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 148, 263, 277, 157, 254, 290, 162, 261, 153, 228, - 250, 0, 0, 150, 275, 260, 210, 193, 194, 149, - 0, 245, 172, 185, 169, 226, 0, 0, 302, 168, - 293, 0, 285, 152, 0, 284, 225, 272, 276, 211, - 205, 151, 274, 209, 204, 197, 176, 189, 237, 203, - 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, + 0, 148, 263, 277, 157, 254, 290, 162, 261, 153, + 228, 250, 0, 0, 150, 275, 260, 210, 193, 194, + 149, 0, 245, 172, 185, 169, 226, 0, 0, 302, + 168, 293, 0, 285, 152, 0, 284, 225, 272, 276, + 211, 205, 151, 274, 209, 204, 197, 176, 189, 237, + 203, 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 287, 0, 0, 0, 0, - 0, 0, 262, 0, 0, 198, 0, 0, 0, 303, - 0, 248, 231, 0, 0, 0, 246, 201, 273, 239, - 278, 264, 286, 242, 240, 144, 265, 171, 212, 154, - 155, 167, 173, 175, 177, 178, 221, 222, 234, 253, - 266, 267, 268, 170, 163, 247, 164, 187, 165, 145, - 255, 166, 146, 235, 271, 0, 183, 243, 208, 147, - 207, 236, 270, 269, 294, 300, 301, 305, 0, 306, + 0, 0, 0, 0, 0, 0, 287, 0, 0, 0, + 0, 0, 0, 262, 0, 0, 198, 0, 0, 0, + 303, 0, 248, 231, 0, 0, 0, 246, 201, 273, + 239, 278, 264, 286, 242, 240, 144, 265, 171, 212, + 154, 155, 167, 173, 175, 177, 178, 221, 222, 234, + 253, 266, 267, 268, 170, 163, 247, 164, 187, 165, + 145, 255, 166, 146, 235, 271, 0, 183, 243, 208, + 147, 207, 236, 270, 269, 294, 300, 301, 305, 0, + 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 299, 181, 142, 282, 0, + 227, 0, 0, 0, 0, 0, 0, 0, 223, 298, + 0, 0, 0, 0, 251, 0, 0, 0, 0, 0, + 192, 233, 0, 252, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 259, 280, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 299, 181, 142, 282, 0, 227, - 0, 0, 0, 0, 0, 0, 0, 223, 298, 0, - 0, 0, 0, 251, 0, 0, 0, 0, 0, 192, - 233, 0, 252, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 259, 280, 292, 0, 0, + 0, 283, 0, 0, 0, 291, 0, 0, 0, 0, + 0, 0, 217, 218, 219, 220, 184, 0, 161, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, + 180, 186, 0, 188, 160, 232, 182, 289, 195, 0, + 224, 191, 256, 196, 202, 244, 288, 230, 249, 158, + 279, 257, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 283, 0, 0, 0, 291, 0, 0, 0, 0, 0, - 0, 217, 218, 219, 220, 184, 0, 161, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 304, 180, 186, - 0, 188, 160, 232, 182, 289, 195, 0, 224, 191, - 256, 196, 202, 244, 288, 230, 249, 158, 279, 257, - 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, + 0, 200, 0, 241, 179, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 1239, 0, 0, 295, 296, 297, 281, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 143, 0, 200, - 0, 241, 179, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 229, - 0, 0, 295, 296, 297, 281, 0, 0, 0, 0, - 0, 174, 0, 0, 199, 0, 0, 0, 258, 213, + 174, 0, 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, - 0, 0, 605, 0, 0, 0, 156, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 159, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, + 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 148, 263, 277, 157, 254, 290, 162, 261, - 153, 228, 250, 0, 0, 150, 275, 260, 210, 193, - 194, 149, 0, 245, 172, 185, 169, 226, 0, 0, - 302, 168, 293, 0, 285, 152, 0, 284, 225, 272, - 276, 211, 205, 151, 274, 209, 204, 197, 176, 189, - 237, 203, 238, 190, 215, 214, 216, 0, 0, 0, + 0, 148, 263, 277, 157, 254, 290, 162, 261, 153, + 228, 250, 0, 0, 150, 275, 260, 210, 193, 194, + 149, 0, 245, 172, 185, 169, 226, 0, 0, 302, + 168, 293, 0, 285, 152, 0, 284, 225, 272, 276, + 211, 205, 151, 274, 209, 204, 197, 176, 189, 237, + 203, 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 287, 0, 0, - 0, 0, 0, 0, 262, 0, 0, 198, 0, 0, - 0, 303, 0, 248, 231, 0, 0, 0, 246, 201, - 273, 239, 278, 264, 286, 242, 240, 144, 265, 171, - 212, 154, 155, 167, 173, 175, 177, 178, 221, 222, - 234, 253, 266, 267, 268, 170, 163, 247, 164, 187, - 165, 145, 255, 166, 146, 235, 271, 0, 183, 243, - 208, 147, 207, 236, 270, 269, 294, 300, 301, 305, - 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 299, 181, 142, 282, - 0, 227, 0, 0, 0, 0, 0, 0, 0, 223, - 298, 0, 0, 0, 0, 251, 0, 0, 0, 0, - 0, 192, 233, 0, 252, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 259, 280, 292, + 0, 0, 0, 0, 0, 0, 287, 0, 0, 0, + 0, 0, 0, 262, 0, 0, 198, 0, 0, 0, + 303, 0, 248, 231, 0, 0, 0, 246, 201, 273, + 239, 278, 264, 286, 242, 240, 144, 265, 171, 212, + 154, 155, 167, 173, 175, 177, 178, 221, 222, 234, + 253, 266, 267, 268, 170, 163, 247, 164, 187, 165, + 145, 255, 166, 146, 235, 271, 0, 183, 243, 208, + 147, 207, 236, 270, 269, 294, 300, 301, 305, 0, + 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 299, 181, 142, 282, 0, + 227, 0, 0, 0, 0, 0, 0, 0, 223, 298, + 0, 0, 0, 0, 251, 0, 0, 0, 0, 0, + 192, 233, 0, 252, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 259, 280, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 283, 0, 0, 0, 291, 0, 0, 0, - 0, 0, 0, 217, 218, 219, 220, 184, 0, 161, + 0, 283, 0, 0, 0, 291, 0, 0, 0, 0, + 0, 0, 217, 218, 219, 220, 184, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, 244, 288, 230, 249, 158, @@ -2719,7 +2906,7 @@ 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, 1700, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 263, 277, 157, 254, 290, 162, 261, 153, 228, 250, 0, 0, 150, 275, 260, 210, 193, 194, 149, 0, 245, 172, 185, 169, 226, @@ -2728,7 +2915,7 @@ var yyAct = [...]int{ 176, 189, 237, 203, 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, - 0, 0, 0, 0, 0, 0, 262, 0, 0, 198, + 0, 0, 1222, 0, 0, 0, 262, 0, 0, 198, 0, 0, 0, 303, 0, 248, 231, 0, 0, 0, 246, 201, 273, 239, 278, 264, 286, 242, 240, 144, 265, 171, 212, 154, 155, 167, 173, 175, 177, 178, @@ -2745,109 +2932,18 @@ var yyAct = [...]int{ 0, 0, 0, 0, 283, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 217, 218, 219, 220, 184, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, - 195, 0, 224, 191, 256, 196, 202, 244, 288, 230, - 249, 158, 279, 257, 206, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 143, 0, 200, 0, 241, 179, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 229, 0, 0, 295, 296, 297, 281, - 0, 0, 0, 0, 0, 174, 0, 0, 199, 0, - 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, - 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1311, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 148, 263, 277, 157, - 254, 290, 162, 261, 153, 228, 250, 0, 0, 150, - 275, 260, 210, 193, 194, 149, 0, 245, 172, 185, - 169, 226, 0, 0, 302, 168, 293, 0, 285, 152, - 0, 284, 225, 272, 276, 211, 205, 151, 274, 209, - 204, 197, 176, 189, 237, 203, 238, 190, 215, 214, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 287, 0, 0, 0, 0, 0, 0, 262, 0, - 0, 198, 0, 0, 0, 303, 0, 248, 231, 0, - 0, 0, 246, 201, 273, 239, 278, 264, 286, 242, - 240, 144, 265, 171, 212, 154, 155, 167, 173, 175, - 177, 178, 221, 222, 234, 253, 266, 267, 268, 170, - 163, 247, 164, 187, 165, 145, 255, 166, 146, 235, - 271, 0, 183, 243, 208, 147, 207, 236, 270, 269, - 294, 300, 301, 305, 0, 306, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 299, 181, 142, 282, 0, 227, 0, 0, 0, 0, - 0, 0, 0, 223, 298, 0, 0, 0, 0, 251, - 0, 0, 0, 0, 0, 192, 233, 0, 252, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 259, 280, 292, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, - 291, 0, 0, 0, 0, 0, 0, 217, 218, 219, - 220, 184, 0, 161, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 304, 180, 186, 0, 188, 160, 232, - 182, 289, 195, 0, 224, 191, 256, 196, 202, 244, - 288, 230, 249, 158, 279, 257, 206, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 143, 0, 200, 0, 241, 179, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 229, 0, 0, 295, 296, - 297, 281, 0, 0, 0, 0, 0, 174, 0, 0, - 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 103, 0, 0, 1309, 0, - 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 148, 263, - 277, 157, 254, 290, 162, 261, 153, 228, 250, 0, - 0, 150, 275, 260, 210, 193, 194, 149, 0, 245, - 172, 185, 169, 226, 0, 0, 302, 168, 293, 0, - 285, 152, 0, 284, 225, 272, 276, 211, 205, 151, - 274, 209, 204, 197, 176, 189, 237, 203, 238, 190, - 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 287, 0, 0, 0, 0, 0, 0, - 262, 0, 0, 198, 0, 0, 0, 303, 0, 248, - 231, 0, 0, 0, 246, 201, 273, 239, 278, 264, - 286, 242, 240, 144, 265, 171, 212, 154, 155, 167, - 173, 175, 177, 178, 221, 222, 234, 253, 266, 267, - 268, 170, 163, 247, 164, 187, 165, 145, 255, 166, - 146, 235, 271, 0, 183, 243, 208, 147, 207, 236, - 270, 269, 294, 300, 301, 305, 0, 306, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 299, 181, 142, 282, 0, 227, 0, 0, - 0, 0, 0, 0, 0, 223, 298, 0, 0, 0, - 0, 251, 0, 0, 0, 0, 0, 192, 233, 0, - 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 259, 280, 292, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, - 0, 0, 291, 0, 0, 0, 0, 0, 0, 217, - 218, 219, 220, 184, 0, 161, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 304, 180, 186, 0, 188, - 160, 232, 182, 289, 195, 0, 224, 191, 256, 196, - 202, 244, 288, 230, 249, 158, 279, 257, 206, 0, + 0, 0, 304, 180, 186, 0, 188, 160, 232, 182, + 289, 195, 0, 224, 191, 256, 196, 202, 244, 288, + 230, 249, 158, 279, 257, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 143, 0, 200, 0, 241, - 179, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 1238, 0, 0, - 295, 296, 297, 281, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 174, 0, 0, 199, + 0, 0, 143, 0, 200, 0, 241, 179, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 229, 0, 0, 295, 296, 297, + 281, 0, 0, 0, 0, 0, 174, 0, 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, @@ -2873,117 +2969,72 @@ var yyAct = [...]int{ 235, 271, 0, 183, 243, 208, 147, 207, 236, 270, 269, 294, 300, 301, 305, 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 181, 142, 282, 0, 227, 0, 0, 0, - 0, 0, 0, 0, 223, 298, 0, 0, 0, 0, - 251, 0, 0, 0, 0, 0, 192, 233, 0, 252, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 259, 280, 292, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, - 0, 291, 0, 0, 0, 0, 0, 0, 217, 218, - 219, 220, 184, 0, 161, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, - 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, - 244, 288, 230, 249, 158, 279, 257, 206, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 143, 0, 200, 0, 241, 179, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 229, 0, 0, 295, - 296, 297, 281, 0, 0, 0, 0, 0, 174, 0, - 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, - 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, - 263, 277, 157, 254, 290, 162, 261, 153, 228, 250, - 0, 0, 150, 275, 260, 210, 193, 194, 149, 0, - 245, 172, 185, 169, 226, 0, 0, 302, 168, 293, - 0, 285, 152, 0, 284, 225, 272, 276, 211, 205, - 151, 274, 209, 204, 197, 176, 189, 237, 203, 238, - 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 287, 0, 0, 1221, 0, 0, - 0, 262, 0, 0, 198, 0, 0, 0, 303, 0, - 248, 231, 0, 0, 0, 246, 201, 273, 239, 278, - 264, 286, 242, 240, 144, 265, 171, 212, 154, 155, - 167, 173, 175, 177, 178, 221, 222, 234, 253, 266, - 267, 268, 170, 163, 247, 164, 187, 165, 145, 255, - 166, 146, 235, 271, 0, 183, 243, 208, 147, 207, - 236, 270, 269, 294, 300, 301, 305, 0, 306, 0, + 0, 299, 181, 142, 282, 0, 227, 0, 0, 0, + 0, 0, 0, 0, 223, 298, 0, 0, 0, 0, + 251, 0, 0, 0, 0, 0, 192, 233, 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 299, 181, 142, 282, 0, 227, 0, - 0, 0, 0, 0, 0, 0, 223, 298, 0, 0, - 0, 0, 251, 0, 0, 0, 0, 0, 192, 233, - 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 259, 280, 292, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, - 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, - 217, 218, 219, 220, 184, 0, 161, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, - 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, - 196, 202, 244, 288, 230, 249, 158, 279, 257, 206, + 0, 0, 259, 280, 292, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, + 0, 291, 0, 0, 0, 0, 0, 0, 217, 218, + 219, 220, 184, 0, 161, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 304, 180, 186, 0, 188, + 160, 232, 182, 289, 195, 0, 224, 191, 256, 196, + 202, 244, 288, 230, 249, 158, 279, 257, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 143, 0, 200, 0, - 241, 179, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 229, 0, - 0, 295, 296, 297, 281, 0, 0, 0, 0, 0, - 174, 0, 0, 199, 0, 0, 0, 258, 213, 0, + 0, 0, 393, 0, 0, 143, 0, 200, 0, 241, + 179, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 229, 0, 0, + 295, 296, 297, 281, 0, 0, 0, 0, 0, 174, + 0, 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, - 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, + 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 148, 263, 277, 157, 254, 290, 162, 261, 153, - 228, 250, 0, 0, 150, 275, 260, 210, 193, 194, - 149, 0, 245, 172, 185, 169, 226, 0, 0, 302, - 168, 293, 0, 285, 152, 0, 284, 225, 272, 276, - 211, 205, 151, 274, 209, 204, 197, 176, 189, 237, - 203, 238, 190, 215, 214, 216, 0, 0, 0, 0, + 148, 263, 277, 157, 254, 290, 162, 261, 153, 228, + 250, 0, 0, 150, 275, 260, 210, 193, 194, 149, + 0, 245, 172, 185, 169, 226, 0, 0, 302, 168, + 293, 0, 285, 152, 0, 284, 225, 272, 276, 211, + 205, 151, 274, 209, 204, 197, 176, 189, 237, 203, + 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 287, 0, 0, 0, - 0, 0, 0, 262, 0, 0, 198, 0, 0, 0, - 303, 0, 248, 231, 0, 0, 0, 246, 201, 273, - 239, 278, 264, 286, 242, 240, 144, 265, 171, 212, - 154, 155, 167, 173, 175, 177, 178, 221, 222, 234, - 253, 266, 267, 268, 170, 163, 247, 164, 187, 165, - 145, 255, 166, 146, 235, 271, 0, 183, 243, 208, - 147, 207, 236, 270, 269, 294, 300, 301, 305, 0, - 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 299, 181, 142, 282, 0, - 227, 0, 0, 0, 0, 0, 0, 0, 223, 298, - 0, 0, 0, 0, 251, 0, 0, 0, 0, 0, - 192, 233, 0, 252, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 259, 280, 292, 0, + 0, 0, 0, 0, 0, 287, 0, 0, 0, 0, + 0, 0, 262, 0, 0, 198, 0, 0, 0, 303, + 0, 248, 231, 0, 0, 0, 246, 201, 273, 239, + 278, 264, 286, 330, 240, 144, 265, 171, 212, 154, + 155, 167, 173, 175, 177, 178, 221, 222, 234, 253, + 266, 267, 268, 170, 163, 247, 164, 187, 165, 145, + 255, 166, 146, 235, 271, 0, 183, 243, 208, 147, + 207, 236, 270, 269, 294, 300, 301, 305, 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 283, 0, 0, 0, 291, 0, 0, 0, 0, - 0, 0, 217, 218, 219, 220, 184, 0, 161, 0, + 0, 0, 0, 0, 299, 181, 142, 282, 0, 227, + 0, 0, 0, 0, 0, 0, 0, 223, 298, 0, + 0, 0, 0, 251, 0, 0, 0, 0, 0, 192, + 233, 0, 252, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 259, 280, 292, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, + 283, 0, 0, 0, 291, 0, 0, 0, 0, 0, + 0, 217, 218, 219, 220, 184, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, 244, 288, 230, 249, 158, 279, 257, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 393, 0, 0, 143, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, 200, 0, 241, 179, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 229, 0, 0, 295, 296, 297, 281, 0, 0, 0, - 0, 0, 174, 0, 0, 199, 0, 0, 0, 258, + 0, 100, 174, 0, 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 156, 0, 0, @@ -3002,7 +3053,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, 0, 262, 0, 0, 198, 0, 0, 0, 303, 0, 248, 231, 0, 0, 0, 246, - 201, 273, 239, 278, 264, 286, 330, 240, 144, 265, + 201, 273, 239, 278, 264, 286, 242, 240, 144, 265, 171, 212, 154, 155, 167, 173, 175, 177, 178, 221, 222, 234, 253, 266, 267, 268, 170, 163, 247, 164, 187, 165, 145, 255, 166, 146, 235, 271, 0, 183, @@ -3014,99 +3065,54 @@ var yyAct = [...]int{ 0, 0, 192, 233, 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 280, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 331, 283, 0, 0, 0, 291, 0, 0, + 0, 0, 0, 283, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 217, 218, 219, 220, 184, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 304, 180, 186, 0, 188, 160, 232, 182, 289, 195, - 0, 224, 191, 256, 196, 202, 244, 288, 230, 249, - 158, 279, 257, 206, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 143, 0, 200, 0, 241, 179, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 229, 0, 0, 295, 296, 297, 281, 0, - 0, 0, 0, 100, 174, 0, 0, 199, 0, 0, - 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 103, 0, 0, 0, 0, 0, 0, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 148, 263, 277, 157, 254, - 290, 162, 261, 153, 228, 250, 0, 0, 150, 275, - 260, 210, 193, 194, 149, 0, 245, 172, 185, 169, - 226, 0, 0, 302, 168, 293, 0, 285, 152, 0, - 284, 225, 272, 276, 211, 205, 151, 274, 209, 204, - 197, 176, 189, 237, 203, 238, 190, 215, 214, 216, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 287, 0, 0, 0, 0, 0, 0, 262, 0, 0, - 198, 0, 0, 0, 303, 0, 248, 231, 0, 0, - 0, 246, 201, 273, 239, 278, 264, 286, 242, 240, - 144, 265, 171, 212, 154, 155, 167, 173, 175, 177, - 178, 221, 222, 234, 253, 266, 267, 268, 170, 163, - 247, 164, 187, 165, 145, 255, 166, 146, 235, 271, - 0, 183, 243, 208, 147, 207, 236, 270, 269, 294, - 300, 301, 305, 0, 306, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 181, 142, 282, 0, 227, 0, 0, 0, 0, 0, - 0, 0, 223, 298, 0, 0, 0, 0, 251, 0, - 0, 0, 0, 0, 192, 233, 0, 252, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 259, 280, 292, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 283, 0, 0, 0, 291, - 0, 0, 0, 0, 0, 0, 217, 218, 219, 220, - 184, 0, 161, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 304, 180, 186, 0, 188, 160, 232, 182, - 289, 195, 0, 224, 191, 256, 196, 202, 244, 288, - 230, 249, 158, 279, 257, 206, 0, 0, 0, 0, + 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, + 195, 0, 224, 191, 256, 196, 202, 244, 288, 230, + 249, 158, 279, 257, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 143, 0, 200, 0, 241, 179, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 229, 0, 0, 295, 296, 297, - 281, 0, 0, 0, 0, 0, 174, 0, 0, 199, - 0, 0, 0, 258, 213, 0, 0, 0, 0, 0, + 0, 143, 0, 200, 0, 241, 179, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 229, 0, 0, 295, 296, 297, 281, + 0, 0, 0, 0, 0, 174, 0, 0, 199, 0, + 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, - 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 148, 263, 277, - 157, 254, 290, 162, 261, 153, 228, 250, 0, 0, - 150, 275, 260, 210, 193, 194, 149, 0, 245, 172, - 185, 169, 226, 0, 0, 302, 168, 293, 0, 285, - 152, 0, 284, 225, 272, 276, 211, 205, 151, 274, - 209, 204, 197, 176, 189, 237, 203, 238, 190, 215, - 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 148, 263, 277, 157, + 254, 290, 162, 261, 153, 228, 250, 0, 0, 150, + 275, 260, 210, 193, 194, 149, 0, 245, 172, 185, + 169, 226, 0, 0, 302, 168, 293, 0, 285, 152, + 0, 284, 225, 272, 276, 211, 205, 151, 274, 209, + 204, 197, 176, 189, 237, 203, 238, 190, 215, 214, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 287, 0, 0, 0, 0, 0, 0, 262, - 0, 0, 198, 0, 0, 0, 303, 0, 248, 231, - 0, 0, 0, 246, 201, 273, 239, 278, 264, 286, - 242, 240, 144, 265, 171, 212, 154, 155, 167, 173, - 175, 177, 178, 221, 222, 234, 253, 266, 267, 268, - 170, 163, 247, 164, 187, 165, 145, 255, 166, 146, - 235, 271, 0, 183, 243, 208, 147, 207, 236, 270, - 269, 294, 300, 301, 305, 0, 306, 0, 0, 0, + 0, 287, 0, 0, 0, 0, 0, 0, 262, 0, + 0, 198, 0, 0, 0, 303, 0, 248, 231, 0, + 0, 0, 246, 201, 273, 239, 278, 264, 286, 242, + 240, 144, 265, 171, 212, 154, 155, 167, 173, 175, + 177, 178, 221, 222, 234, 253, 266, 267, 268, 170, + 163, 247, 164, 187, 165, 145, 255, 166, 146, 235, + 271, 0, 183, 243, 208, 147, 207, 236, 270, 269, + 294, 300, 301, 305, 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 181, 142, 282, 0, 227, 0, 0, 0, - 0, 0, 0, 0, 223, 298, 0, 0, 0, 0, - 251, 0, 0, 0, 0, 0, 192, 233, 0, 252, + 299, 181, 142, 282, 0, 227, 0, 0, 0, 0, + 0, 0, 0, 223, 298, 0, 0, 0, 0, 251, + 0, 0, 0, 0, 0, 192, 233, 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 259, 280, 292, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, - 0, 291, 0, 0, 0, 0, 0, 0, 217, 218, - 219, 220, 184, 0, 161, 0, 0, 0, 0, 0, + 0, 259, 280, 292, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, + 291, 0, 0, 0, 0, 0, 0, 217, 218, 219, + 220, 184, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, 244, 288, 230, 249, 158, 279, 257, 206, 0, 0, @@ -3118,10 +3124,10 @@ var yyAct = [...]int{ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 229, 0, 0, 295, - 296, 297, 281, 1278, 0, 0, 0, 0, 174, 0, + 296, 297, 281, 1279, 0, 0, 0, 0, 174, 0, 0, 199, 0, 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 830, 831, 832, 1280, + 0, 0, 0, 0, 0, 0, 830, 831, 832, 1281, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3152,160 +3158,160 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 217, 218, 219, 220, 184, 0, 161, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 304, 180, 186, 0, - 188, 160, 232, 182, 289, 195, 0, 224, 191, 256, - 196, 202, 244, 288, 230, 249, 158, 279, 257, 206, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 174, 0, 0, 199, 0, 0, - 0, 258, 213, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 143, 0, 200, 0, - 241, 179, 830, 831, 832, 1280, 0, 0, 0, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 295, 296, 297, 281, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 304, 180, 186, + 0, 188, 160, 232, 182, 289, 195, 0, 224, 191, + 256, 196, 202, 244, 288, 230, 249, 158, 279, 257, + 206, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 174, 0, 0, 199, 0, + 0, 0, 258, 213, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 143, 0, 200, + 0, 241, 179, 830, 831, 832, 1281, 0, 0, 0, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 148, 263, 277, 157, 254, - 290, 162, 261, 153, 228, 250, 0, 0, 150, 275, - 260, 210, 193, 194, 149, 0, 245, 172, 185, 169, - 226, 0, 0, 302, 168, 293, 0, 285, 152, 0, - 284, 225, 272, 276, 211, 205, 151, 274, 209, 204, - 197, 176, 189, 237, 203, 238, 190, 215, 214, 216, + 0, 0, 295, 296, 297, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 148, 263, 277, 157, + 254, 290, 162, 261, 153, 228, 250, 0, 0, 150, + 275, 260, 210, 193, 194, 149, 0, 245, 172, 185, + 169, 226, 0, 0, 302, 168, 293, 0, 285, 152, + 0, 284, 225, 272, 276, 211, 205, 151, 274, 209, + 204, 197, 176, 189, 237, 203, 238, 190, 215, 214, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 287, 0, 0, 0, 0, 0, 0, 262, 0, 0, - 198, 0, 0, 0, 303, 0, 248, 231, 0, 0, - 0, 246, 201, 273, 239, 278, 264, 286, 242, 240, - 144, 265, 171, 212, 154, 155, 167, 173, 175, 177, - 178, 221, 222, 234, 253, 266, 267, 268, 170, 163, - 247, 164, 187, 165, 145, 255, 166, 146, 235, 271, - 0, 183, 243, 208, 147, 207, 236, 270, 269, 294, - 300, 301, 305, 0, 306, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 181, 142, 282, 0, 227, 0, 0, 0, 0, 0, - 0, 0, 223, 298, 0, 0, 0, 0, 251, 0, - 0, 0, 0, 0, 192, 233, 0, 252, 0, 0, + 0, 287, 0, 0, 0, 0, 0, 0, 262, 0, + 0, 198, 0, 0, 0, 303, 0, 248, 231, 0, + 0, 0, 246, 201, 273, 239, 278, 264, 286, 242, + 240, 144, 265, 171, 212, 154, 155, 167, 173, 175, + 177, 178, 221, 222, 234, 253, 266, 267, 268, 170, + 163, 247, 164, 187, 165, 145, 255, 166, 146, 235, + 271, 0, 183, 243, 208, 147, 207, 236, 270, 269, + 294, 300, 301, 305, 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 259, 280, 292, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 283, 0, 0, 0, 291, - 0, 0, 0, 0, 0, 0, 217, 218, 219, 220, - 184, 0, 161, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 304, 180, 186, 0, 188, 160, 232, 182, - 289, 195, 0, 224, 191, 256, 196, 202, 244, 288, - 230, 249, 158, 279, 257, 206, 0, 0, 229, 0, + 299, 181, 142, 282, 0, 227, 0, 0, 0, 0, + 0, 0, 0, 223, 298, 0, 0, 0, 0, 251, + 0, 0, 0, 0, 0, 192, 233, 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 174, 0, 0, 199, 0, 0, 0, 258, 213, 0, + 0, 259, 280, 292, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, + 291, 0, 0, 0, 0, 0, 0, 217, 218, 219, + 220, 184, 0, 161, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 304, 180, 186, 0, 188, 160, + 232, 182, 289, 195, 0, 224, 191, 256, 196, 202, + 244, 288, 230, 249, 158, 279, 257, 206, 0, 0, + 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 174, 0, 0, 199, 0, 0, 0, 258, + 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 0, 200, 0, 241, 179, + 830, 831, 832, 0, 0, 0, 0, 156, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 143, 0, 200, 0, 241, 179, 830, 831, - 832, 0, 0, 0, 0, 156, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 295, + 296, 297, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 295, 296, 297, - 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 148, 263, 277, 157, 254, 290, 162, + 261, 153, 228, 250, 0, 0, 150, 275, 260, 210, + 193, 194, 149, 0, 245, 172, 185, 169, 226, 0, + 0, 302, 168, 293, 0, 285, 152, 0, 284, 225, + 272, 276, 211, 205, 151, 274, 209, 204, 197, 176, + 189, 237, 203, 238, 190, 215, 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 148, 263, 277, 157, 254, 290, 162, 261, 153, - 228, 250, 0, 0, 150, 275, 260, 210, 193, 194, - 149, 0, 245, 172, 185, 169, 226, 0, 0, 302, - 168, 293, 0, 285, 152, 0, 284, 225, 272, 276, - 211, 205, 151, 274, 209, 204, 197, 176, 189, 237, - 203, 238, 190, 215, 214, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 287, 0, + 0, 0, 0, 0, 0, 262, 0, 0, 198, 0, + 0, 0, 303, 0, 248, 231, 0, 0, 0, 246, + 201, 273, 239, 278, 264, 286, 242, 240, 144, 265, + 171, 212, 154, 155, 167, 173, 175, 177, 178, 221, + 222, 234, 253, 266, 267, 268, 170, 163, 247, 164, + 187, 165, 145, 255, 166, 146, 235, 271, 0, 183, + 243, 208, 147, 207, 236, 270, 269, 294, 300, 301, + 305, 0, 306, 0, 0, 915, 916, 917, 914, 0, + 0, 0, 0, 0, 0, 0, 0, 299, 181, 142, + 282, 0, 227, 0, 0, 0, 0, 0, 0, 0, + 223, 298, 0, 0, 0, 0, 251, 0, 0, 0, + 0, 0, 192, 233, 0, 252, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1730, 0, 0, 259, 280, + 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 283, 0, 0, 0, 291, 1360, 0, + 0, 0, 0, 0, 217, 218, 219, 220, 184, 0, + 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 304, 180, 186, 0, 188, 160, 232, 182, 289, + 195, 0, 224, 191, 256, 196, 202, 244, 288, 230, + 249, 158, 279, 257, 206, 0, 0, 0, 0, 0, + 0, 0, 1730, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1718, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 143, 0, 200, 0, 241, 179, 0, 1737, 1741, + 1743, 1745, 1747, 1748, 1750, 1944, 1754, 1751, 1752, 1753, + 0, 0, 1732, 1733, 1734, 1735, 1716, 1717, 1738, 0, + 1719, 0, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, + 1728, 1729, 1736, 0, 1237, 0, 295, 296, 297, 281, + 1740, 1742, 1744, 1746, 1749, 0, 1356, 0, 1353, 0, + 0, 0, 1355, 1352, 1354, 1358, 1359, 2351, 1718, 0, + 1357, 0, 0, 0, 0, 0, 0, 0, 1926, 0, + 0, 0, 0, 0, 1731, 1737, 1741, 1743, 1745, 1747, + 1748, 1750, 0, 1754, 1751, 1752, 1753, 0, 0, 1732, + 1733, 1734, 1735, 1716, 1717, 1738, 1944, 1719, 0, 1720, + 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1736, + 0, 0, 0, 0, 0, 0, 0, 1740, 1742, 1744, + 1746, 1749, 0, 0, 0, 1237, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2022, + 0, 1731, 0, 0, 1944, 0, 0, 0, 0, 1926, + 0, 0, 0, 0, 1341, 1342, 1343, 1344, 1345, 1346, + 1347, 1348, 1349, 1350, 1351, 1363, 1364, 1365, 1366, 1367, + 1368, 1361, 1362, 1237, 0, 0, 0, 0, 0, 0, + 1708, 1709, 0, 0, 0, 0, 0, 0, 1930, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1934, + 0, 0, 0, 0, 0, 0, 0, 1926, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1923, + 0, 0, 0, 1925, 1927, 1929, 0, 1931, 1932, 1933, + 1935, 1936, 1937, 1939, 1940, 1941, 1942, 350, 0, 349, + 353, 345, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 341, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 360, 0, 0, 1945, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1930, + 0, 0, 0, 0, 1739, 0, 0, 0, 0, 363, + 1934, 0, 364, 0, 0, 0, 0, 0, 0, 0, + 1943, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1923, 0, 0, 0, 1925, 1927, 1929, 1922, 1931, 1932, + 1933, 1935, 1936, 1937, 1939, 1940, 1941, 1942, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1930, 0, 0, + 0, 0, 0, 0, 1938, 0, 0, 0, 1934, 0, + 0, 1928, 0, 0, 0, 0, 0, 1945, 0, 0, + 0, 1739, 0, 0, 0, 0, 0, 0, 1923, 0, + 0, 0, 1925, 1927, 1929, 0, 1931, 1932, 1933, 1935, + 1936, 1937, 1939, 1940, 1941, 1942, 0, 0, 0, 0, + 0, 1943, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1922, 0, + 0, 0, 0, 0, 0, 1945, 0, 0, 343, 342, + 346, 0, 0, 0, 0, 0, 348, 0, 0, 0, + 0, 0, 0, 0, 0, 1938, 0, 0, 352, 0, + 0, 0, 1928, 0, 0, 0, 0, 0, 0, 1943, + 0, 0, 344, 0, 0, 0, 336, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1922, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 287, 0, 0, 0, - 0, 0, 0, 262, 0, 0, 198, 0, 0, 0, - 303, 0, 248, 231, 0, 0, 0, 246, 201, 273, - 239, 278, 264, 286, 242, 240, 144, 265, 171, 212, - 154, 155, 167, 173, 175, 177, 178, 221, 222, 234, - 253, 266, 267, 268, 170, 163, 247, 164, 187, 165, - 145, 255, 166, 146, 235, 271, 0, 183, 243, 208, - 147, 207, 236, 270, 269, 294, 300, 301, 305, 0, - 306, 915, 916, 917, 914, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 299, 181, 142, 282, 0, - 227, 0, 0, 0, 0, 0, 0, 0, 223, 298, - 0, 0, 0, 0, 251, 0, 0, 0, 0, 0, - 192, 233, 0, 252, 0, 0, 0, 0, 0, 0, - 0, 0, 1729, 0, 0, 0, 259, 280, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 283, 0, 0, 1359, 291, 0, 0, 0, 0, - 0, 0, 217, 218, 219, 220, 184, 0, 161, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 304, 180, - 186, 0, 188, 160, 232, 182, 289, 195, 0, 224, - 191, 256, 196, 202, 244, 288, 230, 249, 158, 279, - 257, 206, 0, 0, 0, 0, 0, 0, 0, 1729, + 0, 0, 0, 1938, 0, 0, 0, 0, 0, 0, + 1928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1717, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, - 200, 0, 241, 179, 0, 1736, 1740, 1742, 1744, 1746, - 1747, 1749, 1943, 1753, 1750, 1751, 1752, 0, 0, 1731, - 1732, 1733, 1734, 1715, 1716, 1737, 0, 1718, 0, 1719, - 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1735, - 0, 1236, 0, 295, 296, 297, 281, 1739, 1741, 1743, - 1745, 1748, 1355, 0, 1352, 0, 0, 0, 1354, 1351, - 1353, 1357, 1358, 0, 2349, 1717, 1356, 0, 0, 0, - 0, 0, 0, 0, 0, 1925, 0, 0, 0, 0, - 0, 1730, 1736, 1740, 1742, 1744, 1746, 1747, 1749, 0, - 1753, 1750, 1751, 1752, 0, 0, 1731, 1732, 1733, 1734, - 1715, 1716, 1737, 1943, 1718, 0, 1719, 1720, 1721, 1722, - 1723, 1724, 1725, 1726, 1727, 1728, 1735, 0, 0, 0, - 0, 0, 0, 0, 1739, 1741, 1743, 1745, 1748, 0, - 0, 0, 1236, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2021, 0, 1730, 1943, - 0, 0, 0, 0, 0, 0, 1925, 0, 0, 1340, - 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, - 1362, 1363, 1364, 1365, 1366, 1367, 1360, 1361, 1236, 0, - 0, 0, 0, 0, 0, 0, 0, 1707, 1708, 0, - 0, 0, 0, 0, 0, 1929, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1933, 0, 0, 0, - 0, 0, 1925, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1922, 0, 0, 0, - 1924, 1926, 1928, 0, 1930, 1931, 1932, 1934, 1935, 1936, - 1938, 1939, 1940, 1941, 350, 0, 349, 353, 345, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 341, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 360, 0, 0, 1944, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1929, 0, 0, 0, - 1738, 0, 0, 0, 0, 0, 363, 1933, 0, 364, - 0, 0, 0, 0, 0, 0, 0, 1942, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1922, 0, 0, - 0, 1924, 1926, 1928, 1921, 1930, 1931, 1932, 1934, 1935, - 1936, 1938, 1939, 1940, 1941, 0, 0, 0, 0, 0, - 0, 0, 1929, 0, 0, 0, 0, 0, 0, 0, - 0, 1937, 0, 1933, 0, 0, 0, 0, 1927, 0, - 0, 0, 0, 0, 1944, 0, 0, 1738, 0, 0, - 0, 0, 0, 1922, 0, 0, 0, 1924, 1926, 1928, - 0, 1930, 1931, 1932, 1934, 1935, 1936, 1938, 1939, 1940, - 1941, 0, 0, 0, 0, 0, 0, 0, 1942, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1921, 0, 0, 0, 0, - 1944, 0, 0, 0, 0, 343, 342, 346, 0, 0, - 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, - 0, 0, 1937, 0, 0, 352, 0, 0, 0, 1927, - 0, 0, 0, 0, 1942, 0, 0, 0, 0, 344, - 0, 0, 0, 336, 0, 0, 0, 0, 0, 0, - 0, 1921, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1937, 0, - 0, 0, 0, 0, 0, 1927, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 347, 351, 354, 0, - 355, 356, 0, 0, 357, 358, 359, 0, 0, 361, - 362, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 347, + 351, 354, 0, 355, 356, 0, 0, 357, 358, 359, + 0, 0, 361, 362, } var yyPact = [...]int{ - 211, -1000, -300, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 218, -1000, -302, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 18770, -1000, -1000, - 1672, -1000, 7903, 19222, 66, 19222, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 18808, -1000, -1000, + 1673, -1000, 7917, 19261, 78, 19261, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 293, - -1000, 18318, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 230, - 21104, 144, -1000, 1997, -1000, -1000, -1000, -1000, 309, 310, - 17866, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 769, 14, 310, 409, 413, - 396, 396, 9259, 1997, 210, 42, -1000, 877, 211, 209, - 19222, -1000, 579, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 18355, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 263, + 21147, 164, -1000, 2010, -1000, -1000, -1000, -1000, 133, 321, + 17902, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 769, 17, 321, 403, 417, + 405, 405, 9276, 2010, 215, 57, -1000, 705, 218, 245, + 19261, -1000, 573, -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, @@ -3326,77 +3332,77 @@ 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, - 1997, 1997, 19222, -68, 682, -1000, 235, 199, 218, 575, - -1000, -1000, -1000, -1000, 2025, -1000, 19222, 1681, 19222, -1000, - 911, 173, 1744, 1897, 1596, 394, 1829, -1000, -1000, 1806, - -1000, 21, -4, 143, -1000, -1000, 165, -1000, -1000, -1000, - -1000, -1000, 39, -1000, 13, -1000, 6, -1000, -1000, -1000, - -135, -1000, -1000, -1000, -1000, -191, 1887, 1907, 1653, 2002, - 1974, 1944, 1940, 1915, 2, 227, 227, 227, 270, 227, - 292, -1000, -1000, -1000, -1000, -1000, -1000, 360, -1000, -1000, - -1000, -1000, 1576, 19222, -1000, 1675, 628, 628, 724, 194, - -1000, -1000, -98, -164, 628, 628, -164, 18, -1000, 1943, - 1928, -1000, -1000, -1000, -1000, -1000, -1000, 230, 230, 236, - -1000, -173, -1000, -1000, 378, -1000, 375, -1000, 335, 160, - 1591, 717, -1000, 658, 19222, 19222, 19222, 658, 658, 11079, - 10627, 573, -1000, 1907, 1653, -1000, 1388, 1873, 1653, 230, - 230, 230, 230, 230, 230, 230, 19222, 5580, 5580, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 242, 1805, -1000, - 19222, 1907, 1887, 1907, -1000, 572, 902, 1127, -1000, -1000, - 235, 1547, -1000, 615, -1000, -1000, -1000, -1000, 19222, 241, - -1000, 1099, 1800, -1000, 277, 1563, 1657, -1000, 58, 7987, - 15147, 911, 15147, 19222, -1000, -1000, -1000, -1000, -137, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -74, - -1000, -1000, -290, 1887, 6043, -1000, -1000, 6043, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 265, 227, -1000, 997, - 728, 15147, 911, 926, 19222, 227, 236, -1000, 19222, 1576, - 1905, 19222, 2017, 7432, 2017, 19222, -1000, -1000, 628, 628, - -1000, 724, 724, -1000, -1000, -141, 2017, 2017, -117, 19222, - 19222, 227, -1000, -1000, 997, 15147, 14695, -1000, -156, 407, - 381, 401, -1000, -1000, 2036, -1000, -1000, 1502, 346, 10175, - 231, 15147, 3722, -1000, -1000, 658, 658, 658, 3722, 3722, - 590, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 19222, 1887, - -1000, -1000, -1000, -1000, -1000, 997, 15147, 911, 19222, 19222, - 19222, 20426, -1000, 1646, -1000, -1000, 8807, 571, 6043, -1000, - 971, 1799, -1000, -1000, 1793, 1789, 1787, 1786, 1781, 1780, - 1778, -1000, 1738, -1000, -1000, 1777, 1774, 1772, 1770, -1000, - -1000, -1000, -1000, -1000, -1000, 1767, -1000, -1000, -1000, 1765, - 1738, -1000, -1000, 1757, 1753, 1752, 1750, 1749, -1000, -1000, - -1000, -1000, -1000, -1000, 1125, 1124, 994, -1000, -1000, -1000, - -1000, 3259, 7432, 7432, 7432, 7432, -1000, -1000, 1708, 6043, - 1747, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 6969, -1000, - 1746, 1745, 1742, 1741, 1739, 1738, 1737, 1118, 1723, 1721, - 1720, 7432, 1719, 1717, -1000, -1000, -1000, -1000, -1000, -1000, + 2010, 2010, 19261, -61, 690, -1000, 234, 208, 219, 572, + -1000, -1000, -1000, -1000, 2039, -1000, 19261, 1783, 19261, -1000, + 907, 199, 1745, 1902, 1564, 415, 1810, -1000, -1000, 1775, + -1000, 25, -2, 128, -1000, -1000, 194, -1000, -1000, -1000, + -1000, -1000, 49, -1000, 16, -1000, 18, -1000, -1000, -1000, + -128, -1000, -1000, -1000, -1000, -193, 1887, 1951, 1612, 2023, + 1941, 1934, 1932, 1928, 2, 259, 259, 259, 276, 259, + 289, -1000, -1000, -1000, -1000, -1000, -1000, 355, -1000, -1000, + -1000, -1000, 1531, 19261, -1000, 1627, 610, 610, 701, 222, + -1000, -1000, -108, -152, 610, 610, -152, 36, -1000, 1944, + 1920, -1000, -1000, -1000, -1000, -1000, -1000, 263, 263, 267, + -1000, -197, -1000, -1000, 413, -1000, 384, -1000, 280, 192, + 1566, 702, -1000, 659, 19261, 19261, 19261, 659, 659, 11100, + 10647, 526, -1000, 1951, 1612, -1000, 1389, 1187, 1612, 263, + 263, 263, 263, 263, 263, 263, 19261, 5589, 5589, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 242, 1773, -1000, + 19261, 1951, 1887, 1951, -1000, 508, 886, 1082, -1000, -1000, + 234, 1499, -1000, 615, -1000, -1000, -1000, -1000, 19261, 195, + -1000, 1073, 1771, -1000, 292, 1542, 1593, -1000, 40, 8002, + 15177, 907, 15177, 19261, -1000, -1000, -1000, -1000, -132, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -67, + -1000, -1000, -291, 1887, 6053, -1000, -1000, 6053, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 277, 259, -1000, 1102, + 724, 15177, 907, 926, 19261, 259, 267, -1000, 19261, 1531, + 1913, 19261, 2032, 7445, 2032, 19261, -1000, -1000, 610, 610, + -1000, 701, 701, -1000, -1000, -140, 2032, 2032, -119, 19261, + 19261, 259, -1000, -1000, 1102, 15177, 14724, -1000, -175, 394, + 371, 388, -1000, -1000, 2044, -1000, -1000, 1481, 331, 10194, + 238, 15177, 3727, -1000, -1000, 659, 659, 659, 3727, 3727, + 580, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 19261, 1887, + -1000, -1000, -1000, -1000, -1000, 1102, 15177, 907, 19261, 19261, + 19261, 20468, -1000, 1592, -1000, -1000, 8823, 483, 6053, -1000, + 1062, 1768, -1000, -1000, 1766, 1758, 1754, 1753, 1751, 1750, + 1748, -1000, 1709, -1000, -1000, 1747, 1746, 1743, 1742, -1000, + -1000, -1000, -1000, -1000, -1000, 1740, -1000, -1000, -1000, 1739, + 1709, -1000, -1000, 1738, 1724, 1722, 1721, 1720, -1000, -1000, + -1000, -1000, -1000, -1000, 1081, 1080, 994, -1000, -1000, -1000, + -1000, 3263, 7445, 7445, 7445, 7445, -1000, -1000, 1677, 6053, + 1718, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 6981, -1000, + 1717, 1714, 1712, 1711, 1710, 1709, 1708, 1077, 1707, 1706, + 1704, 7445, 1698, 1695, -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, 1646, -1000, -288, -1000, 9723, 19222, - 19222, -1000, 1887, -1000, 1887, 2362, -1000, 1956, -1000, 235, - 100, -1000, -1000, -1000, -1000, -1000, -1000, 554, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1570, -1000, 19222, - -1000, -1000, 58, 15147, 675, -1000, -1000, -1000, -1000, -1000, - -1000, 140, -1000, -1000, 117, -1000, 263, -42, 1540, -1000, - -1000, 1, 114, 1087, -1000, 1102, 502, 1569, -1000, 1128, - 17414, 19222, -23, -1000, 1895, 1419, -1000, -42, 1502, 1621, - -1000, -1000, -1000, 1867, 19222, 16962, -1000, 1716, 1529, -1000, - -1000, 6043, -1000, -1000, 2017, 2017, 2017, 628, 20426, 724, - 19222, 724, -1000, -1000, 724, -1000, 482, -1000, 19222, -23, - 1419, 1899, 1565, -1000, -1000, -1000, -1000, 1903, 19674, 210, - -1000, -1000, 403, 370, 374, 911, 255, -1000, -1000, 1502, - -1000, -1000, -1000, 1713, 680, -1000, -1000, 7432, -1000, 793, - -1000, 3722, 3722, 3722, -1000, -1000, 12887, -1000, -1000, -1000, - 1562, 1502, 1821, 1537, -1000, 1537, -1000, -1000, -1000, 2017, - 5580, -1000, 14695, -1000, 6043, 6043, 6043, 6043, -1000, 16503, - -1000, 16051, -1000, 298, 6506, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 6043, 1913, 1913, 1913, 6043, 688, 6043, 6043, - -1000, 798, 754, 1913, 1913, 1913, 1913, 1913, -1000, 2788, - 1913, 1913, 1913, 1913, -1000, -1000, 7432, 7432, 7432, 7432, - 7432, 7432, 7432, 7432, 7432, 7432, 7432, 7432, 1707, 743, - 7432, 7432, 7432, 1873, 1771, 1527, -1000, -1000, -1000, -1000, - -1000, 653, 793, 6043, 20619, 6043, 6043, 6043, -1000, 1383, - 1378, -1000, -1000, 6043, -1000, 6043, 7432, 6043, -1000, 1913, - 1081, 2017, 1435, -1000, 1711, -1000, 1516, 1863, -1000, 478, - 1522, -1000, 674, 1496, -1000, -1000, -1000, -1000, 474, -1000, + -1000, -1000, -1000, -1000, 1592, -1000, -289, -1000, 9741, 19261, + 19261, -1000, 1887, -1000, 1887, 2364, -1000, 1948, -1000, 234, + 103, -1000, -1000, -1000, -1000, -1000, -1000, 476, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1530, -1000, 19261, + -1000, -1000, 40, 15177, 681, -1000, -1000, -1000, -1000, -1000, + -1000, 151, -1000, -1000, 120, -1000, 275, -39, 1497, -1000, + -1000, 10, 114, 1075, -1000, 1176, 475, 1528, -1000, 1103, + 17449, 19261, -21, -1000, 1896, 1541, -1000, -39, 1481, 1622, + -1000, -1000, -1000, 1862, 19261, 16996, -1000, 1693, 1453, -1000, + -1000, 6053, -1000, -1000, 2032, 2032, 2032, 610, 20468, 701, + 19261, 701, -1000, -1000, 701, -1000, 473, -1000, 19261, -21, + 1541, 1990, 1552, -1000, -1000, -1000, -1000, 1912, 19714, 215, + -1000, -1000, 391, 381, 402, 907, 271, -1000, -1000, 1481, + -1000, -1000, -1000, 1692, 689, -1000, -1000, 7445, -1000, 803, + -1000, 3727, 3727, 3727, -1000, -1000, 12912, -1000, -1000, -1000, + 1523, 1481, 1809, 1503, -1000, 1503, -1000, -1000, -1000, 2032, + 5589, -1000, 14724, -1000, 6053, 6053, 6053, 6053, -1000, 16536, + -1000, 16083, -1000, 422, 6517, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 6053, 1924, 1924, 1924, 6053, 688, 6053, 6053, + -1000, 780, 754, 1924, 1924, 1924, 1924, 1924, -1000, 2791, + 1924, 1924, 1924, 1924, -1000, -1000, 7445, 7445, 7445, 7445, + 7445, 7445, 7445, 7445, 7445, 7445, 7445, 7445, 1676, 761, + 7445, 7445, 7445, 1187, 1880, 1502, -1000, -1000, -1000, -1000, + -1000, 696, 803, 6053, 20663, 6053, 6053, 6053, -1000, 1384, + 1379, -1000, -1000, 6053, -1000, 6053, 7445, 6053, -1000, 1924, + 1067, 2032, 1428, -1000, 1691, -1000, 1448, 1856, -1000, 472, + 1501, -1000, 682, 1441, -1000, -1000, -1000, -1000, 462, -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, @@ -3413,170 +3419,170 @@ 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, -70, -1000, -1000, 19222, 1099, 1452, - 675, 1432, -1000, 245, 472, 465, -1000, 15147, 16, 15147, - -1000, 15147, -1000, -1000, 176, -1000, 19222, 1886, -1000, -1000, - -1000, 1080, -171, 6043, 6043, 19222, 6043, -1000, -1000, -1000, - 1675, 707, 1710, -97, 659, -1000, 380, 15147, 158, -1000, - 1820, 167, -1000, 1867, -1000, 649, -1000, 1709, 19222, 1595, - -1000, 460, 211, -1000, 19222, 793, -1000, -1000, -1000, 2017, - -1000, 628, -1000, 628, 724, 19222, -1000, -1000, -97, 380, - 19222, 14695, 14695, 14695, 14695, -1000, 1855, 1854, -1000, 1844, - 1840, 1848, 19222, 14695, 19222, -1000, -1000, -1000, 20050, -1000, - -1000, -1000, -1000, 1374, 1997, -1000, -1000, -1000, 337, 1502, - 15147, 1079, 231, -1000, -1000, -1000, -1000, -1000, 19222, 19222, - 2011, -1000, 1480, 1912, -1000, 718, 718, 731, -1000, -1000, - 444, -1000, -1000, 269, -1000, -1000, -1000, -1000, -1000, 1708, - -1000, -1000, -1000, 1362, 1427, 793, 6043, -1000, -1000, 6043, - 6043, 1164, 6043, 1351, 1447, 1440, -1000, 1335, 2023, -1000, + -1000, -1000, -1000, -1000, -1000, -63, -1000, -1000, 19261, 1073, + 1432, 681, 1422, -1000, 269, 461, 444, -1000, 15177, 19, + 15177, -1000, 15177, -1000, -1000, 179, -1000, 19261, 1872, -1000, + -1000, -1000, 1065, -166, 6053, 6053, 19261, 6053, -1000, -1000, + -1000, 1627, 722, 1690, -98, 646, -1000, 397, 15177, 184, + -1000, 1804, 135, -1000, 1862, -1000, 675, -1000, 1689, 19261, + 1420, -1000, 443, 218, -1000, 19261, 803, -1000, -1000, -1000, + 2032, -1000, 610, -1000, 610, 701, 19261, -1000, -1000, -98, + 397, 19261, 14724, 14724, 14724, 14724, -1000, 1841, 1828, -1000, + 1851, 1850, 1840, 19261, 14724, 19261, -1000, -1000, -1000, 20091, + -1000, -1000, -1000, -1000, 1363, 2010, -1000, -1000, -1000, 365, + 1481, 15177, 1064, 238, -1000, -1000, -1000, -1000, -1000, 19261, + 19261, 2029, -1000, 1471, 1959, -1000, 739, 739, 706, -1000, + -1000, 434, -1000, -1000, 306, -1000, -1000, -1000, -1000, -1000, + 1677, -1000, -1000, -1000, 1316, 1177, 803, 6053, -1000, -1000, + 6053, 6053, 955, 6053, 1303, 1418, 1416, -1000, 1298, 2038, -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, 6043, 6043, - 6043, 6043, 6043, 897, 5117, -1000, -1000, -1000, 6043, 6043, - 6043, 6043, 916, 1198, -1000, 725, 725, 594, 594, 594, - 594, 594, 779, 779, -1000, -1000, -1000, 3259, 1707, 7432, - 7432, 7432, 204, 2137, 1801, -1000, 6043, 694, -1000, 6043, - 1073, -1000, 1328, 1475, 1315, 1302, -1000, -1000, 1178, 1297, - 1677, 1289, 6043, 1470, 2011, -288, 4648, 253, 19222, -288, - 19222, 19222, 4648, -1000, 19222, 2362, 899, -1000, -1000, -1000, - 2022, 15147, 911, 608, 650, -1000, 11, -1000, 134, 251, - 1076, -1000, 272, 671, -99, -78, 793, 793, 443, -1000, - 1901, 1875, 8355, 780, -1000, -1000, 1069, -1000, 246, -1000, - -1000, -1000, 350, 12, 895, 237, -1000, 958, 19222, -1000, - -1000, -1000, -1000, -1000, 659, 659, 659, 8355, 209, 1413, - 431, 14695, 19222, -1000, 14243, 1260, -1000, -1000, 2017, 2017, - 628, -1000, 780, 246, 1356, -1000, 670, 1811, 1819, 1811, - -1000, -1000, -1000, -1000, 1846, -1000, 1842, -1000, -1000, 1356, - -1000, 1675, -1000, -1000, -1000, 1432, 1243, -1000, -1000, -1000, - -1000, 1999, 2001, 15599, -1000, -1000, -1000, -1000, -1000, 6043, - 1758, 1679, 1660, 20727, 1417, -1000, -1000, -1000, -1000, 6043, - 1619, 1613, 1549, 1531, 1519, -1000, 6043, 6043, 1307, 1399, - 1373, 1368, 1342, 1415, -1000, 204, 2137, 1457, -1000, 7432, - 7432, 1271, 690, -1000, 6043, 713, 577, 11983, -1000, 6043, - -1000, -1000, -1000, 11983, -1000, 7432, -1000, 1212, 1065, 1999, - -1000, 1238, 1449, -1000, -288, -1000, -1000, 1435, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 15147, -1000, 129, - -1000, -1000, -1000, -1000, -1000, -1000, -57, -1000, 19222, 1063, - -292, -77, 2000, 1998, 19222, 210, 19222, 1230, 1444, -1000, - -1000, -1000, 20804, 621, -1000, 19222, 752, 362, 227, 362, - 742, 1697, -1000, -1000, -1000, 1062, -45, -1000, -1000, 1061, - 1055, 892, -1000, -1000, 889, 581, -31, -1000, -1000, -1000, - -1000, -1000, -1000, 1694, 11983, 12435, 1050, 1228, 19674, 14695, - 14243, 1234, -1000, 429, -1000, -1000, -1000, -1000, 2017, -1000, - -1000, 2006, 19222, 4648, -1000, -1000, 6043, 1692, -1000, 6043, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 6043, 6043, -1000, - -1000, 793, -1000, -1000, -1000, 1222, -1000, 351, 351, -12, - -1000, -1000, -1000, 1652, -1000, 1680, 1680, 1652, 1652, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1691, 1690, - -1000, 1652, 1676, 1676, 1652, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 6053, + 6053, 6053, 6053, 6053, 897, 5125, -1000, -1000, -1000, 6053, + 6053, 6053, 6053, 1111, 1199, -1000, 741, 741, 589, 589, + 589, 589, 589, 1002, 1002, -1000, -1000, -1000, 3263, 1676, + 7445, 7445, 7445, 239, 1802, 1678, -1000, 6053, 712, -1000, + 6053, 1148, -1000, 1290, 947, 1265, 1261, -1000, -1000, 1178, + 1244, 956, 1239, 6053, 1450, 2029, -289, 4655, 204, 19261, + -289, 19261, 19261, 4655, -1000, 19261, 2364, 881, -1000, -1000, + -1000, 2037, 15177, 907, 598, 662, -1000, 11, -1000, 142, + 260, 1063, -1000, 288, 674, -86, -72, 803, 803, 431, + -1000, 1905, 1895, 8370, 777, -1000, -1000, 1061, -1000, 248, + -1000, -1000, -1000, 411, 21, 880, 246, -1000, 1076, 19261, + -1000, -1000, -1000, -1000, -1000, 646, 646, 646, 8370, 245, + 1414, 429, 14724, 19261, -1000, 14271, 1234, -1000, -1000, 2032, + 2032, 610, -1000, 777, 248, 1396, -1000, 671, 1781, 1793, + 1781, -1000, -1000, -1000, -1000, 1825, -1000, 1822, -1000, -1000, + 1396, -1000, 1627, -1000, -1000, -1000, 1422, 1231, -1000, -1000, + -1000, -1000, 2027, 2014, 15630, -1000, -1000, -1000, -1000, -1000, + 6053, 1864, 1846, 1808, 20770, 1407, -1000, -1000, -1000, -1000, + 6053, 1798, 1792, 1772, 1759, 1661, -1000, 6053, 6053, 811, + 1655, 1620, 1614, 1550, 1403, -1000, 239, 1802, 1458, -1000, + 7445, 7445, 1532, 676, -1000, 6053, 793, 574, 12006, -1000, + 6053, -1000, -1000, -1000, 12006, -1000, 7445, -1000, 1520, 1059, + 2027, -1000, 1229, 1445, -1000, -289, -1000, -1000, 1428, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 15177, -1000, + 139, -1000, -1000, -1000, -1000, -1000, -1000, -51, -1000, 19261, + 1055, -293, -69, 2006, 2003, 19261, 215, 19261, 1223, 1436, + -1000, -1000, -1000, 20847, 621, -1000, 19261, 736, 407, 259, + 407, 735, 1675, -1000, -1000, -1000, 1030, -41, -1000, -1000, + 1029, 1024, 879, -1000, -1000, 865, 576, -29, -1000, -1000, + -1000, -1000, -1000, -1000, 1674, 12006, 12459, 1023, 1217, 19714, + 14724, 14271, 1357, -1000, 426, -1000, -1000, -1000, -1000, 2032, + -1000, -1000, 2025, 19261, 4655, -1000, -1000, 6053, 1671, -1000, + 6053, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 6053, 6053, + -1000, -1000, 803, -1000, -1000, -1000, 1211, -1000, 370, 370, + -10, -1000, -1000, -1000, 1606, -1000, 1653, 1653, 1606, 1606, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1669, + 1666, -1000, 1606, 1648, 1648, 1606, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1688, 1688, 1689, 1688, -1000, 1195, -1000, -1000, -1000, -1000, - -1000, 1184, 1175, 6043, -1000, -1000, -1000, -1000, -1000, -1000, - 7432, -1000, -1000, -1000, -1000, 793, 6043, 1216, -1000, 1652, - 1680, -1000, 1652, 1676, 1652, 351, 351, 1210, 1053, 1193, - 1532, -1000, 1183, -1000, -1000, 4648, 1435, 1432, -1000, -1000, - -117, 119, -295, 1049, -1000, 1995, 1047, 928, -1000, 1675, - 21013, 8355, 732, -1000, -1000, 19222, 19222, -1000, 19222, 19222, - 227, 6043, -1000, -1000, 172, -1000, -1000, 45, -1000, -1000, - 881, 274, -1000, 13791, -1000, -1000, -1000, -1000, -1000, -74, - 2017, 1234, 429, -1000, -1000, 604, -1000, 1907, -1000, -1000, - 793, 19222, 793, 793, 1427, -1000, -1000, -1000, -1000, -1000, - -20, -1000, -1000, -1000, -1000, 891, -1000, 886, -1000, -1000, - -1000, 1030, 1030, -1000, -1000, 880, -1000, -1000, -1000, 879, - -1000, -1000, 874, -1000, -1000, -1000, -1000, 1148, -1000, 793, + -1000, 1654, 1654, 1659, 1654, -1000, 1400, -1000, -1000, -1000, + -1000, -1000, 1374, 1369, 6053, -1000, -1000, -1000, -1000, -1000, + -1000, 7445, -1000, -1000, -1000, -1000, 803, 6053, 1194, -1000, + 1606, 1653, -1000, 1606, 1648, 1606, 370, 370, 1184, 1130, + 1179, 1533, -1000, 1156, -1000, -1000, 4655, 1428, 1422, -1000, + -1000, -119, 117, -297, 1016, -1000, 2002, 1013, 902, -1000, + 1627, 21058, 8370, 732, -1000, -1000, 19261, 19261, -1000, 19261, + 19261, 259, 6053, -1000, -1000, 176, -1000, -1000, 46, -1000, + -1000, 864, 274, -1000, 13818, -1000, -1000, -1000, -1000, -1000, + -67, 2032, 1357, 426, -1000, -1000, 597, -1000, 1951, -1000, + -1000, 803, 19261, 803, 803, 1177, -1000, -1000, -1000, -1000, + -1000, -18, -1000, -1000, -1000, -1000, 877, -1000, 875, -1000, + -1000, -1000, 1011, 1011, -1000, -1000, 874, -1000, -1000, -1000, + 872, -1000, -1000, 863, -1000, -1000, -1000, -1000, 1343, -1000, + 803, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 6053, -1000, -1000, -1000, -1000, -1000, -91, -79, -1000, + 986, -299, 857, -1000, 985, -73, -1000, -1000, 1904, 241, + 21000, -1000, 646, 646, 683, 646, 646, 646, 646, 161, + 158, 646, 646, 646, 646, 646, 646, 646, 646, 646, + 646, 646, 646, 646, 646, 1624, -1000, -1000, 732, -1000, + -1000, 753, 7445, -1000, -1000, 981, 12459, 446, 471, 1623, + -1000, 119, 733, 717, -1000, 19261, -1000, 1619, 1535, 95, + 1615, -1000, 1611, 1607, 19261, 1272, 254, 977, -1000, -1000, + 45, -1000, -1000, 1382, -1000, 1606, 6053, -1000, -119, 2025, + -1000, -1000, 1378, -1000, -1000, 1151, 1145, 1362, -1000, 1355, + 1142, 1345, 1342, -1000, 1213, 265, -78, -79, -1000, 2001, + -77, 1993, 1992, 669, -1000, 1604, -1000, -1000, 1989, 215, + -1000, 1982, 21058, -1000, 856, 854, 646, 646, 846, 968, + 957, 954, 646, 646, 845, 953, 20091, 840, 837, 836, + 838, 935, 776, 812, 802, 798, 19261, 1603, 900, -1000, + -1000, 1802, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 833, 1602, -1000, -1000, 1601, 13818, 86, + 86, 13818, 13818, 13818, 1599, 311, -1000, -53, -1000, -1000, + -1000, 13818, 1871, 1196, -1000, 1951, -1000, -1000, -1000, -1000, + 929, -1000, -1000, -1000, 831, -1000, 797, -1000, 1598, 791, + -69, 1981, -1000, 902, 1978, 902, 902, 928, 19261, 902, + -1000, 113, -1000, -1000, -1000, 12006, 12006, -1000, -1000, -1000, + -1000, 927, 911, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 6043, -1000, -1000, -1000, -1000, -1000, -124, -82, -1000, 1024, - -297, 872, -1000, 1023, -92, -1000, -1000, 1900, 192, 20957, - -1000, 659, 659, 668, 659, 659, 659, 659, 145, 142, - 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, - 659, 659, 659, 659, 1674, -1000, -1000, 732, -1000, -1000, - 759, 7432, -1000, -1000, 1016, 12435, 457, 361, 1673, -1000, - 116, 736, 729, -1000, 19222, -1000, 1670, 1597, 73, 1668, - -1000, 1665, 1656, 19222, 1141, 249, 1013, -1000, -1000, 41, - -1000, -1000, 1406, -1000, 1652, 6043, -1000, -117, 2006, -1000, - -1000, 1402, -1000, -1000, 1176, 1169, 1381, -1000, 1377, 1167, - 1361, 1354, -1000, 1136, 212, -96, -82, -1000, 1994, -95, - 1992, 1991, 664, -1000, 1626, -1000, -1000, 1990, 210, -1000, - 1989, 21013, -1000, 865, 864, 659, 659, 863, 1008, 986, - 985, 659, 659, 857, 981, 20050, 856, 836, 831, 875, - 977, 605, 845, 829, 815, 19222, 1623, 927, -1000, -1000, - 2137, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 817, 1622, -1000, -1000, 1618, 13791, 193, 193, - 13791, 13791, 13791, 1611, 283, -1000, -58, -1000, -1000, -1000, - 13791, 1872, 1034, -1000, 1907, -1000, -1000, -1000, -1000, 957, - -1000, -1000, -1000, 816, -1000, 812, -1000, 1610, 803, -77, - 1988, -1000, 928, 1987, 928, 928, 954, 19222, 928, -1000, - 95, -1000, -1000, -1000, 11983, 11983, -1000, -1000, -1000, -1000, - 953, 935, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 152, 19222, 1344, -1000, 660, 1162, - 6043, -233, 13791, 1341, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 1338, 1334, 1324, 13791, -1000, -1000, -1000, 105, -1000, - 138, -1000, -1000, 1872, -1000, -1000, 1149, 1137, 1924, 11531, - -126, -1000, 929, -1000, 928, -1000, -1000, -308, 1292, -1000, - -1000, 96, 171, 156, -1000, 254, -1000, -1000, -1000, -1000, - -1000, -1000, 166, 1273, -1000, 927, 919, -1000, 955, 1818, - -1000, 7, 1267, -1000, -1000, -1000, -1000, 1264, -1000, -1000, - 659, 882, 54, -1000, -1000, -1000, -1000, -1000, -1000, 19222, - -1000, 1259, -1000, -1000, -1000, 426, -1000, -1000, -1000, -1000, - -1000, 19222, 89, 802, 7432, 1606, 7432, 1602, 101, 1601, - -1000, -1000, -1000, -1000, -1000, 283, -1000, -1000, 1817, 1814, - 2021, -1000, -1000, -1000, -1000, 138, 138, 138, 138, 5, - 797, -1000, 926, 1421, -1000, 654, -1000, 13339, 19222, -1000, - 1600, 1977, -1000, 1437, 19222, 1408, 19222, 1598, 644, 7432, - -1000, -1000, 2029, -1000, 2027, 438, 438, -1000, -1000, -1000, - 19222, 4185, -1000, 422, -1000, 189, 98, -1000, 1242, -1000, - 1226, 19222, 795, 1229, -1000, -1000, -1000, 825, 121, -1000, - -1000, -1000, 793, 19222, 1181, -1000, 905, 79, -1000, -1000, - 1155, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 189, 1764, - -1000, 791, -1000, -1000, 20866, 291, -1000, -1000, 20866, 86, - -1000, 184, 1409, -1000, -1000, 1146, -1000, 801, 369, 6043, - -1000, 86, 21013, -1000, 6043, 1144, -1000, 21013, 1135, -1000, - -1000, + -1000, -1000, -1000, -1000, -1000, 170, 19261, 1339, -1000, 664, + 1137, 6053, -238, 13818, 1336, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 1334, 1332, 1330, 13818, -1000, -1000, -1000, 126, + -1000, 124, -1000, -1000, 1871, -1000, -1000, 1132, 1124, 1918, + 11553, -96, -1000, 908, -1000, 902, -1000, -1000, -307, 1325, + -1000, -1000, 118, 205, 196, -1000, 282, -1000, -1000, -1000, + -1000, -1000, -1000, 175, 1293, -1000, 900, 896, -1000, 1185, + 1791, -1000, 24, 1274, -1000, -1000, -1000, -1000, 1268, -1000, + -1000, 646, 894, 72, -1000, -1000, -1000, -1000, -1000, -1000, + 19261, -1000, 1264, -1000, -1000, -1000, 424, -1000, -1000, -1000, + -1000, -1000, -1000, 19261, 107, 790, 7445, 1597, 7445, 1596, + 121, 1578, -1000, -1000, -1000, -1000, -1000, 311, -1000, -1000, + 1790, 1785, 2036, -1000, -1000, -1000, -1000, 124, 124, 124, + 124, 8, 775, -1000, 926, 1068, -1000, 643, -1000, 13365, + 19261, -1000, 1572, 1960, -1000, 1438, 19261, 1409, 19261, 1571, + 641, 7445, -1000, -1000, 2043, -1000, 2041, 492, 492, -1000, + -1000, -1000, 19261, 4191, -1000, 414, -1000, 233, 115, -1000, + 1260, -1000, 1243, 19261, 771, 1230, -1000, -1000, -1000, 752, + 132, -1000, -1000, -1000, 803, 19261, 1227, -1000, 997, 97, + -1000, -1000, 1191, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 233, 1765, -1000, 768, -1000, -1000, 20909, 339, -1000, -1000, + 20909, 105, -1000, 200, 1410, -1000, -1000, 1189, -1000, 958, + 392, 6053, -1000, 105, 21058, -1000, 6053, 1182, -1000, 21058, + 1150, -1000, -1000, } var yyPgo = [...]int{ - 0, 127, 2349, 177, 128, 120, 174, 2348, 1931, 1923, - 2347, 2346, 2344, 2343, 2342, 2341, 2340, 2338, 2337, 2336, - 2335, 2333, 2332, 2331, 2330, 2329, 2328, 173, 2327, 2326, - 2325, 2323, 2321, 2320, 2318, 2317, 2316, 2314, 2311, 2309, - 2307, 118, 2306, 1921, 2305, 2304, 2303, 2302, 2301, 167, - 2300, 2299, 2298, 2290, 2288, 2283, 2282, 2281, 2277, 2275, - 2274, 2272, 2270, 156, 57, 2269, 39, 61, 107, 201, - 73, 197, 190, 141, 70, 126, 164, 116, 2268, 2267, - 111, 24, 133, 2266, 43, 40, 35, 191, 112, 54, - 60, 91, 2265, 2264, 88, 2263, 2262, 97, 2261, 59, - 2260, 78, 48, 90, 26, 2259, 2258, 2257, 80, 2256, - 2255, 2241, 2240, 85, 2238, 63, 51, 2237, 2232, 2231, - 2230, 2229, 27, 2228, 46, 2227, 2225, 2224, 2223, 2222, - 2221, 2220, 11, 16, 21, 2219, 2218, 14, 2, 2217, - 147, 189, 84, 108, 2214, 368, 2213, 2212, 2211, 115, - 2210, 139, 2209, 2207, 2206, 2205, 2204, 10, 2203, 53, - 2202, 2201, 2200, 56, 2199, 2197, 2196, 96, 49, 50, - 92, 2193, 2192, 72, 157, 13, 42, 0, 148, 38, - 2191, 2189, 2187, 194, 145, 143, 165, 122, 208, 114, - 2186, 2185, 47, 2184, 117, 2183, 109, 66, 44, 2182, - 87, 2181, 37, 86, 2179, 105, 2177, 135, 1, 100, - 2176, 158, 2175, 2174, 2173, 125, 2171, 2170, 67, 124, - 2169, 2168, 2167, 25, 2166, 29, 19, 2164, 95, 171, - 2163, 132, 98, 131, 138, 82, 161, 166, 68, 113, - 792, 103, 81, 17, 2162, 155, 2161, 250, 184, 151, - 2160, 2159, 175, 322, 153, 2156, 130, 7, 2155, 2154, - 8, 2152, 22, 2151, 2150, 2149, 2148, 6, 2147, 2145, - 2144, 4, 3, 2141, 5, 110, 41, 65, 2140, 64, - 75, 2139, 2138, 2137, 2136, 2135, 206, 2134, 2133, 2131, - 2127, 2125, 2124, 2123, 83, 2122, 2121, 2119, 2118, 69, - 2117, 2114, 2113, 2112, 2111, 32, 2109, 2107, 23, 2105, - 30, 2104, 2103, 2102, 15, 136, 2100, 2099, 18, 2095, - 2094, 9, 12, 2091, 2090, 58, 45, 31, 79, 77, - 2089, 20, 2088, 99, 2087, 2086, 140, 2084, 102, 2079, - 162, 169, 222, 2078, 146, 2075, 2067, 2063, 2062, 2059, - 2055, 2054, 826, 2053, 2052, 170, 55, 159, 2051, 2050, - 154, 2049, 123, 94, 89, 150, 2048, 152, 2047, 2045, - 2044, 144, 2036, -} - -//line mysql_sql.y:7217 + 0, 127, 2350, 177, 128, 120, 174, 2349, 1922, 1921, + 2348, 2346, 2345, 2344, 2343, 2342, 2340, 2339, 2338, 2337, + 2335, 2334, 2333, 2332, 2331, 2330, 2329, 173, 2328, 2327, + 2325, 2323, 2322, 2320, 2319, 2318, 2316, 2313, 2311, 2309, + 2308, 118, 2307, 1904, 2306, 2305, 2304, 2303, 2302, 167, + 2301, 2300, 2292, 2290, 2285, 2284, 2283, 2279, 2277, 2276, + 2274, 2273, 2271, 156, 57, 2270, 39, 61, 107, 204, + 73, 197, 190, 141, 70, 126, 164, 116, 2269, 2268, + 111, 24, 133, 2267, 43, 40, 35, 191, 112, 54, + 60, 91, 2266, 2265, 88, 2264, 2263, 97, 2262, 59, + 2261, 78, 48, 90, 26, 2260, 2259, 2258, 80, 2257, + 2256, 2255, 2254, 85, 2253, 63, 51, 2252, 2251, 2250, + 2249, 2248, 27, 2247, 46, 2246, 2245, 2243, 2242, 2241, + 2239, 2238, 11, 16, 21, 2233, 2232, 14, 2, 2231, + 147, 189, 84, 108, 2230, 366, 2229, 2228, 2226, 115, + 2225, 139, 2224, 2223, 2222, 2221, 2220, 10, 2219, 53, + 2218, 2215, 2214, 56, 2213, 2212, 2211, 96, 49, 50, + 92, 2210, 2208, 72, 157, 13, 42, 0, 148, 38, + 2207, 2206, 2205, 188, 145, 143, 165, 122, 272, 114, + 2204, 2203, 47, 2202, 117, 2201, 109, 66, 44, 2200, + 87, 2198, 37, 86, 2197, 105, 2194, 135, 1, 100, + 2193, 158, 2192, 2190, 2188, 125, 2187, 2186, 67, 124, + 2185, 2184, 2183, 25, 2182, 29, 19, 2180, 95, 171, + 2178, 132, 98, 131, 138, 82, 161, 166, 68, 113, + 797, 103, 81, 17, 2177, 155, 2176, 251, 184, 151, + 2175, 2174, 175, 360, 153, 2172, 130, 7, 2171, 2170, + 8, 2169, 22, 2168, 2167, 2165, 2164, 6, 2163, 2162, + 2161, 4, 3, 2160, 5, 110, 41, 65, 2157, 64, + 75, 2156, 2155, 2153, 2152, 2151, 206, 2150, 2149, 2148, + 2146, 2145, 2142, 2141, 83, 2140, 2139, 2138, 2137, 69, + 2136, 2135, 2134, 2132, 2128, 32, 2126, 2125, 23, 2124, + 30, 2123, 2122, 2120, 15, 136, 2119, 2118, 18, 2115, + 2114, 9, 12, 2113, 2112, 58, 45, 31, 79, 77, + 2110, 20, 2108, 99, 2106, 2105, 140, 2104, 102, 2103, + 162, 169, 278, 2101, 146, 2100, 2096, 2095, 2092, 2091, + 2090, 2089, 792, 2088, 2087, 170, 55, 159, 2085, 2080, + 154, 2079, 123, 94, 89, 150, 2076, 152, 2068, 2064, + 2063, 144, 2060, +} + +//line mysql_sql.y:7222 type yySymType struct { union interface{} id int @@ -4225,116 +4231,116 @@ var yyR1 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 57, 324, 324, 323, 323, 322, 322, 321, 321, 321, 320, 320, 320, 319, 319, 318, - 318, 317, 317, 315, 315, 316, 314, 313, 313, 311, - 311, 309, 309, 310, 310, 304, 304, 307, 307, 305, - 305, 305, 305, 308, 303, 303, 303, 302, 302, 56, - 56, 56, 242, 242, 55, 55, 256, 256, 256, 256, - 256, 254, 254, 254, 254, 254, 254, 253, 253, 252, - 252, 257, 257, 255, 255, 255, 255, 255, 255, 255, + 318, 317, 317, 315, 315, 316, 314, 313, 313, 313, + 311, 311, 309, 309, 310, 310, 304, 304, 307, 307, + 305, 305, 305, 305, 308, 303, 303, 303, 302, 302, + 56, 56, 56, 242, 242, 55, 55, 256, 256, 256, + 256, 256, 254, 254, 254, 254, 254, 254, 253, 253, + 252, 252, 257, 257, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 50, 50, 50, 50, - 53, 54, 250, 250, 250, 250, 250, 251, 251, 251, - 51, 52, 52, 241, 241, 246, 246, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 249, - 249, 249, 248, 248, 247, 247, 44, 44, 44, 47, - 46, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 45, 45, 45, 45, 45, 45, 42, 42, 42, 42, - 42, 41, 41, 43, 43, 239, 239, 238, 60, 60, - 60, 60, 60, 60, 60, 59, 59, 62, 62, 61, - 49, 49, 49, 49, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 347, 347, 347, 349, 349, 181, 182, - 369, 180, 180, 180, 343, 343, 344, 345, 346, 346, - 346, 58, 7, 7, 39, 40, 367, 367, 286, 286, - 194, 194, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 289, 290, - 190, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 31, 31, 38, 370, 370, 370, 36, 37, - 285, 285, 285, 35, 34, 33, 32, 32, 30, 30, - 29, 29, 187, 187, 189, 189, 185, 371, 371, 262, - 262, 188, 188, 28, 28, 28, 186, 186, 164, 184, - 184, 184, 6, 10, 10, 10, 10, 10, 10, 10, - 10, 16, 18, 236, 236, 233, 17, 13, 12, 15, - 11, 14, 5, 5, 5, 5, 8, 8, 9, 75, - 75, 103, 103, 356, 356, 352, 352, 353, 353, 353, - 354, 354, 355, 355, 4, 293, 293, 293, 293, 293, - 293, 332, 332, 332, 333, 93, 93, 88, 88, 294, - 294, 209, 334, 334, 301, 301, 300, 300, 299, 299, - 91, 91, 92, 92, 79, 79, 63, 63, 306, 306, - 306, 306, 312, 312, 283, 283, 129, 129, 160, 160, - 161, 161, 67, 67, 68, 68, 68, 68, 68, 68, - 340, 340, 342, 342, 341, 90, 90, 86, 86, 87, - 87, 87, 85, 85, 84, 83, 83, 82, 81, 81, - 81, 70, 70, 69, 69, 69, 69, 69, 145, 145, + 255, 255, 255, 255, 255, 255, 255, 50, 50, 50, + 50, 53, 54, 250, 250, 250, 250, 250, 251, 251, + 251, 51, 52, 52, 241, 241, 246, 246, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 249, 249, 249, 248, 248, 247, 247, 44, 44, 44, + 47, 46, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 45, 45, 45, 45, 45, 45, 42, 42, 42, + 42, 42, 41, 41, 43, 43, 239, 239, 238, 60, + 60, 60, 60, 60, 60, 60, 59, 59, 62, 62, + 61, 49, 49, 49, 49, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 347, 347, 347, 349, 349, 181, + 182, 369, 180, 180, 180, 343, 343, 344, 345, 346, + 346, 346, 58, 7, 7, 39, 40, 367, 367, 286, + 286, 194, 194, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, 193, 289, + 290, 190, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 31, 31, 38, 370, 370, 370, 36, + 37, 285, 285, 285, 35, 34, 33, 32, 32, 30, + 30, 29, 29, 187, 187, 189, 189, 185, 371, 371, + 262, 262, 188, 188, 28, 28, 28, 186, 186, 164, + 184, 184, 184, 6, 10, 10, 10, 10, 10, 10, + 10, 10, 16, 18, 236, 236, 233, 17, 13, 12, + 15, 11, 14, 5, 5, 5, 5, 8, 8, 9, + 75, 75, 103, 103, 356, 356, 352, 352, 353, 353, + 353, 354, 354, 355, 355, 4, 293, 293, 293, 293, + 293, 293, 332, 332, 332, 333, 93, 93, 88, 88, + 294, 294, 209, 334, 334, 301, 301, 300, 300, 299, + 299, 91, 91, 92, 92, 79, 79, 63, 63, 306, + 306, 306, 306, 312, 312, 283, 283, 129, 129, 160, + 160, 161, 161, 67, 67, 68, 68, 68, 68, 68, + 68, 340, 340, 342, 342, 341, 90, 90, 86, 86, + 87, 87, 87, 85, 85, 84, 83, 83, 82, 81, + 81, 81, 70, 70, 69, 69, 69, 69, 69, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 71, 71, 348, 348, 348, 287, 287, 287, 292, 292, - 142, 142, 143, 143, 141, 141, 72, 72, 73, 73, - 73, 73, 140, 140, 139, 74, 74, 80, 76, 76, - 78, 78, 78, 78, 150, 150, 149, 149, 149, 149, - 96, 96, 148, 147, 147, 147, 95, 95, 94, 94, - 89, 89, 77, 77, 146, 372, 372, 144, 173, 173, - 173, 179, 179, 172, 172, 172, 172, 172, 183, 178, - 178, 174, 174, 175, 175, 175, 3, 3, 3, 3, - 22, 22, 22, 22, 26, 26, 350, 350, 19, 357, - 360, 358, 361, 361, 361, 362, 362, 362, 363, 363, - 20, 359, 364, 364, 364, 237, 237, 234, 235, 235, - 232, 231, 231, 231, 366, 366, 365, 365, 365, 176, - 176, 21, 228, 228, 229, 230, 230, 222, 222, 222, - 222, 25, 226, 226, 227, 227, 227, 227, 227, 223, - 223, 225, 225, 221, 221, 221, 221, 221, 24, 220, - 220, 218, 218, 216, 216, 217, 217, 215, 215, 215, - 219, 219, 23, 23, 65, 64, 64, 64, 66, 288, - 288, 258, 258, 261, 261, 268, 268, 269, 269, 267, - 267, 274, 274, 273, 273, 272, 272, 271, 271, 270, - 270, 270, 270, 265, 265, 264, 264, 259, 259, 259, - 259, 259, 260, 260, 263, 263, 266, 266, 120, 120, - 121, 121, 121, 138, 138, 138, 138, 138, 138, 138, + 145, 71, 71, 348, 348, 348, 287, 287, 287, 292, + 292, 142, 142, 143, 143, 141, 141, 72, 72, 73, + 73, 73, 73, 140, 140, 139, 74, 74, 80, 76, + 76, 78, 78, 78, 78, 150, 150, 149, 149, 149, + 149, 96, 96, 148, 147, 147, 147, 95, 95, 94, + 94, 89, 89, 77, 77, 146, 372, 372, 144, 173, + 173, 173, 179, 179, 172, 172, 172, 172, 172, 183, + 178, 178, 174, 174, 175, 175, 175, 3, 3, 3, + 3, 22, 22, 22, 22, 26, 26, 350, 350, 19, + 357, 360, 358, 361, 361, 361, 362, 362, 362, 363, + 363, 20, 359, 364, 364, 364, 237, 237, 234, 235, + 235, 232, 231, 231, 231, 366, 366, 365, 365, 365, + 176, 176, 21, 228, 228, 229, 230, 230, 222, 222, + 222, 222, 25, 226, 226, 227, 227, 227, 227, 227, + 223, 223, 225, 225, 221, 221, 221, 221, 221, 24, + 220, 220, 218, 218, 216, 216, 217, 217, 215, 215, + 215, 219, 219, 23, 23, 65, 64, 64, 64, 66, + 288, 288, 258, 258, 261, 261, 268, 268, 269, 269, + 267, 267, 274, 274, 273, 273, 272, 272, 271, 271, + 270, 270, 270, 270, 265, 265, 264, 264, 259, 259, + 259, 259, 259, 260, 260, 263, 263, 266, 266, 120, + 120, 121, 121, 121, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, - 138, 138, 330, 330, 331, 123, 123, 123, 127, 127, - 127, 127, 127, 127, 122, 122, 124, 124, 104, 104, - 102, 102, 97, 97, 98, 98, 99, 99, 100, 100, - 101, 101, 101, 101, 101, 101, 244, 244, 328, 328, - 329, 329, 325, 325, 325, 327, 327, 327, 327, 327, - 326, 326, 105, 158, 158, 158, 177, 177, 177, 157, - 157, 157, 119, 119, 118, 118, 116, 116, 116, 116, - 116, 116, 116, 116, 116, 116, 116, 116, 116, 243, - 243, 191, 191, 192, 192, 137, 135, 135, 136, 136, - 136, 136, 133, 134, 132, 132, 132, 132, 132, 131, - 131, 130, 130, 130, 224, 224, 128, 128, 126, 126, - 126, 125, 125, 125, 275, 198, 198, 198, 198, 198, - 198, 198, 198, 198, 198, 198, 198, 198, 200, 200, + 138, 138, 138, 330, 330, 331, 123, 123, 123, 127, + 127, 127, 127, 127, 127, 122, 122, 124, 124, 104, + 104, 102, 102, 97, 97, 98, 98, 99, 99, 100, + 100, 101, 101, 101, 101, 101, 101, 244, 244, 328, + 328, 329, 329, 325, 325, 325, 327, 327, 327, 327, + 327, 326, 326, 105, 158, 158, 158, 177, 177, 177, + 157, 157, 157, 119, 119, 118, 118, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 243, 243, 191, 191, 192, 192, 137, 135, 135, 136, + 136, 136, 136, 133, 134, 132, 132, 132, 132, 132, + 131, 131, 130, 130, 130, 224, 224, 128, 128, 126, + 126, 126, 125, 125, 125, 275, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 200, 200, 200, 200, 201, - 201, 206, 206, 339, 339, 338, 106, 106, 106, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 115, 115, - 115, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 298, 298, 298, 152, + 201, 201, 206, 206, 339, 339, 338, 106, 106, 106, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 115, + 115, 115, 155, 155, 155, 155, 155, 155, 155, 155, + 155, 155, 155, 155, 155, 155, 155, 298, 298, 298, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 156, 351, 351, 351, 335, 335, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 337, + 152, 152, 156, 351, 351, 351, 335, 335, 336, 336, + 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 154, 154, 153, 153, + 337, 337, 337, 337, 337, 337, 337, 154, 154, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 210, 210, 211, 211, 295, 295, 295, 295, 295, - 295, 296, 296, 297, 297, 297, 297, 291, 291, 291, + 153, 153, 210, 210, 211, 211, 295, 295, 295, 295, + 295, 295, 296, 296, 297, 297, 297, 297, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 199, 151, 151, 151, 212, - 207, 207, 208, 208, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 204, 204, 204, 204, 204, - 196, 196, 197, 197, 197, 197, 197, 197, 197, 197, - 197, 203, 203, 205, 205, 214, 214, 214, 213, 213, - 213, 213, 213, 213, 213, 117, 117, 117, 117, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 108, - 108, 108, 108, 112, 112, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 113, - 113, 113, 113, 111, 111, 111, 111, 111, 109, 109, + 291, 291, 291, 291, 291, 291, 199, 151, 151, 151, + 212, 207, 207, 208, 208, 202, 202, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 204, 204, 204, 204, + 204, 196, 196, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 203, 203, 205, 205, 214, 214, 214, 213, + 213, 213, 213, 213, 213, 213, 117, 117, 117, 117, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 108, 108, 108, 108, 112, 112, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 113, 113, 113, 113, 111, 111, 111, 111, 111, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 110, 159, 159, 276, 276, 279, 279, - 277, 277, 278, 280, 280, 280, 281, 281, 281, 282, - 282, 282, 284, 284, 163, 163, 163, 169, 169, 162, - 162, 170, 170, 171, 171, 167, 167, 167, 167, 167, + 109, 109, 109, 109, 110, 159, 159, 276, 276, 279, + 279, 277, 277, 278, 280, 280, 280, 281, 281, 281, + 282, 282, 282, 284, 284, 163, 163, 163, 169, 169, + 162, 162, 170, 170, 171, 171, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, @@ -4350,7 +4356,7 @@ var yyR1 = [...]int{ 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 168, 168, 168, 168, 168, + 167, 167, 167, 167, 167, 167, 167, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, @@ -4367,11 +4373,11 @@ var yyR1 = [...]int{ 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 168, 168, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, } var yyR2 = [...]int{ @@ -4379,115 +4385,115 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 9, 0, 2, 1, 3, 3, 3, 1, 3, 5, 0, 2, 3, 1, 3, 1, - 1, 1, 3, 1, 1, 1, 1, 0, 3, 0, - 3, 0, 3, 0, 3, 0, 2, 1, 2, 3, - 4, 3, 3, 1, 0, 1, 1, 0, 1, 8, - 5, 7, 0, 3, 8, 5, 1, 3, 3, 3, - 1, 0, 1, 1, 1, 1, 1, 1, 3, 1, - 4, 1, 3, 1, 2, 1, 1, 2, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, - 1, 2, 2, 1, 1, 1, 3, 2, 2, 2, - 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, - 3, 6, 3, 1, 1, 1, 1, 1, 1, 1, - 2, 4, 6, 1, 4, 1, 3, 3, 4, 4, - 4, 3, 3, 2, 4, 4, 2, 2, 2, 1, - 1, 1, 1, 1, 1, 3, 1, 1, 1, 2, - 2, 0, 1, 4, 2, 4, 1, 5, 3, 2, - 1, 2, 2, 4, 4, 5, 2, 1, 3, 4, - 4, 1, 2, 9, 7, 1, 3, 3, 1, 1, - 1, 1, 1, 1, 1, 4, 4, 2, 4, 3, - 1, 1, 1, 1, 2, 3, 4, 7, 2, 3, - 3, 4, 5, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 2, 1, 1, 1, - 1, 6, 1, 1, 7, 7, 0, 3, 0, 2, - 0, 1, 1, 1, 1, 4, 2, 2, 3, 3, - 4, 5, 3, 4, 4, 2, 2, 2, 3, 0, + 1, 1, 3, 1, 1, 1, 1, 0, 3, 3, + 0, 3, 0, 3, 0, 3, 0, 2, 1, 2, + 3, 4, 3, 3, 1, 0, 1, 1, 0, 1, + 8, 5, 7, 0, 3, 8, 5, 1, 3, 3, + 3, 1, 0, 1, 1, 1, 1, 1, 1, 3, + 1, 4, 1, 3, 1, 2, 1, 1, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, + 2, 1, 2, 2, 1, 1, 1, 3, 2, 2, + 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, + 1, 3, 6, 3, 1, 1, 1, 1, 1, 1, + 1, 2, 4, 6, 1, 4, 1, 3, 3, 4, + 4, 4, 3, 3, 2, 4, 4, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, + 2, 2, 0, 1, 4, 2, 4, 1, 5, 3, + 2, 1, 2, 2, 4, 4, 5, 2, 1, 3, + 4, 4, 1, 2, 9, 7, 1, 3, 3, 1, + 1, 1, 1, 1, 1, 1, 4, 4, 2, 4, + 3, 1, 1, 1, 1, 2, 3, 4, 7, 2, + 3, 3, 4, 5, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 2, 1, 1, + 1, 1, 6, 1, 1, 7, 7, 0, 3, 0, + 2, 0, 1, 1, 1, 1, 4, 2, 2, 3, + 3, 4, 5, 3, 4, 4, 2, 2, 2, 3, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 4, 4, 5, 1, 1, 1, 5, + 5, 0, 1, 1, 2, 2, 3, 6, 7, 4, + 4, 7, 8, 0, 2, 0, 2, 2, 1, 1, + 1, 1, 0, 1, 4, 4, 5, 1, 3, 1, + 1, 3, 5, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 4, 4, 1, 3, 1, 4, 6, 4, + 4, 4, 3, 1, 1, 2, 2, 11, 8, 9, + 1, 3, 2, 4, 0, 2, 0, 1, 1, 1, + 1, 0, 1, 0, 1, 4, 2, 1, 5, 4, + 4, 2, 0, 1, 3, 3, 1, 3, 1, 3, + 1, 3, 4, 0, 1, 0, 1, 1, 3, 1, + 1, 0, 4, 1, 3, 2, 1, 0, 8, 0, + 4, 7, 4, 0, 2, 0, 2, 0, 2, 0, + 4, 1, 3, 1, 1, 4, 3, 4, 5, 4, + 5, 2, 3, 1, 3, 6, 0, 3, 0, 1, + 2, 4, 4, 0, 1, 3, 1, 3, 2, 0, + 1, 1, 3, 3, 1, 3, 3, 3, 3, 1, + 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, + 2, 7, 7, 1, 1, 1, 0, 1, 1, 1, + 1, 0, 2, 0, 3, 0, 2, 1, 3, 1, + 2, 3, 5, 0, 1, 2, 1, 3, 1, 1, + 1, 4, 4, 4, 3, 2, 2, 2, 3, 2, + 3, 0, 2, 1, 1, 2, 2, 0, 1, 2, + 4, 1, 3, 1, 4, 3, 0, 1, 2, 0, + 1, 2, 1, 1, 0, 1, 2, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 8, 11, 0, 1, 7, + 1, 4, 1, 3, 4, 3, 0, 1, 1, 0, + 2, 7, 1, 0, 2, 2, 1, 3, 2, 1, + 3, 2, 1, 3, 2, 0, 1, 3, 4, 3, + 1, 1, 4, 1, 3, 1, 1, 1, 0, 1, + 1, 1, 11, 0, 2, 3, 2, 3, 1, 1, + 1, 3, 3, 4, 0, 2, 2, 2, 2, 5, + 1, 1, 0, 3, 0, 1, 1, 2, 4, 4, + 4, 0, 1, 10, 9, 2, 2, 6, 10, 5, + 0, 1, 0, 6, 0, 4, 0, 3, 1, 3, + 4, 5, 0, 3, 1, 3, 2, 3, 1, 2, + 0, 4, 6, 5, 0, 2, 0, 2, 4, 5, + 4, 5, 1, 6, 5, 0, 3, 0, 1, 0, + 1, 1, 3, 2, 3, 3, 4, 4, 3, 3, + 3, 3, 4, 4, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 4, 5, 4, 1, 3, 3, 0, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 1, 3, 0, 1, 1, 3, 1, 1, 2, + 1, 7, 7, 7, 7, 8, 5, 0, 1, 0, + 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, + 1, 0, 1, 3, 1, 3, 5, 1, 1, 1, + 1, 3, 5, 0, 1, 1, 2, 1, 2, 2, + 1, 1, 2, 2, 2, 2, 2, 1, 5, 6, + 1, 2, 0, 1, 1, 2, 5, 0, 1, 1, + 1, 2, 2, 3, 3, 1, 1, 2, 2, 2, + 0, 1, 2, 2, 2, 0, 3, 0, 3, 1, + 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, + 1, 1, 3, 5, 2, 2, 2, 2, 1, 1, + 2, 5, 6, 6, 6, 1, 1, 1, 1, 1, + 0, 2, 0, 1, 1, 2, 4, 1, 2, 2, + 1, 2, 2, 1, 2, 2, 2, 2, 2, 0, + 1, 1, 5, 4, 4, 5, 5, 5, 5, 4, + 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, + 4, 4, 6, 8, 6, 4, 5, 5, 4, 6, + 6, 7, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 4, 5, 1, 1, 1, 5, 5, - 0, 1, 1, 2, 2, 3, 6, 7, 4, 4, - 7, 8, 0, 2, 0, 2, 2, 1, 1, 1, - 1, 0, 1, 4, 4, 5, 1, 3, 1, 1, - 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 1, 3, 1, 4, 6, 4, 4, - 4, 3, 1, 1, 2, 2, 11, 8, 9, 1, - 3, 2, 4, 0, 2, 0, 1, 1, 1, 1, - 0, 1, 0, 1, 4, 2, 1, 5, 4, 4, - 2, 0, 1, 3, 3, 1, 3, 1, 3, 1, - 3, 4, 0, 1, 0, 1, 1, 3, 1, 1, - 0, 4, 1, 3, 2, 1, 0, 8, 0, 4, - 7, 4, 0, 2, 0, 2, 0, 2, 0, 4, - 1, 3, 1, 1, 4, 3, 4, 5, 4, 5, - 2, 3, 1, 3, 6, 0, 3, 0, 1, 2, - 4, 4, 0, 1, 3, 1, 3, 2, 0, 1, - 1, 3, 3, 1, 3, 3, 3, 3, 1, 2, - 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, - 7, 7, 1, 1, 1, 0, 1, 1, 1, 1, - 0, 2, 0, 3, 0, 2, 1, 3, 1, 2, - 3, 5, 0, 1, 2, 1, 3, 1, 1, 1, - 4, 4, 4, 3, 2, 2, 2, 3, 2, 3, - 0, 2, 1, 1, 2, 2, 0, 1, 2, 4, - 1, 3, 1, 4, 3, 0, 1, 2, 0, 1, - 2, 1, 1, 0, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 8, 11, 0, 1, 7, 1, - 4, 1, 3, 4, 3, 0, 1, 1, 0, 2, - 7, 1, 0, 2, 2, 1, 3, 2, 1, 3, - 2, 1, 3, 2, 0, 1, 3, 4, 3, 1, - 1, 4, 1, 3, 1, 1, 1, 0, 1, 1, - 1, 11, 0, 2, 3, 2, 3, 1, 1, 1, - 3, 3, 4, 0, 2, 2, 2, 2, 5, 1, - 1, 0, 3, 0, 1, 1, 2, 4, 4, 4, - 0, 1, 10, 9, 2, 2, 6, 10, 5, 0, - 1, 0, 6, 0, 4, 0, 3, 1, 3, 4, - 5, 0, 3, 1, 3, 2, 3, 1, 2, 0, - 4, 6, 5, 0, 2, 0, 2, 4, 5, 4, - 5, 1, 6, 5, 0, 3, 0, 1, 0, 1, - 1, 3, 2, 3, 3, 4, 4, 3, 3, 3, - 3, 4, 4, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, - 5, 4, 1, 3, 3, 0, 2, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 1, 3, 0, 1, 1, 3, 1, 1, 2, 1, - 7, 7, 7, 7, 8, 5, 0, 1, 0, 1, - 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, - 0, 1, 3, 1, 3, 5, 1, 1, 1, 1, - 3, 5, 0, 1, 1, 2, 1, 2, 2, 1, - 1, 2, 2, 2, 2, 2, 1, 5, 6, 1, - 2, 0, 1, 1, 2, 5, 0, 1, 1, 1, - 2, 2, 3, 3, 1, 1, 2, 2, 2, 0, - 1, 2, 2, 2, 0, 3, 0, 3, 1, 1, - 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, - 1, 3, 5, 2, 2, 2, 2, 1, 1, 2, - 5, 6, 6, 6, 1, 1, 1, 1, 1, 0, - 2, 0, 1, 1, 2, 4, 1, 2, 2, 1, - 2, 2, 1, 2, 2, 2, 2, 2, 0, 1, - 1, 5, 4, 4, 5, 5, 5, 5, 4, 5, - 5, 5, 5, 5, 5, 5, 1, 1, 1, 4, - 4, 6, 8, 6, 4, 5, 5, 4, 6, 6, - 7, 6, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 4, + 2, 3, 2, 4, 6, 2, 2, 4, 6, 4, + 2, 2, 0, 1, 2, 3, 1, 1, 1, 1, + 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 4, 2, - 3, 2, 4, 6, 2, 2, 4, 6, 4, 2, - 2, 0, 1, 2, 3, 1, 1, 1, 1, 1, - 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 0, 1, 1, + 3, 0, 1, 1, 3, 3, 3, 3, 3, 2, + 1, 3, 4, 3, 4, 1, 3, 4, 3, 4, + 1, 1, 1, 3, 4, 4, 5, 3, 4, 5, + 6, 1, 0, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 0, 1, 1, 3, - 0, 1, 1, 3, 3, 3, 3, 3, 2, 1, - 3, 4, 3, 4, 1, 3, 4, 3, 4, 1, - 1, 1, 3, 4, 4, 5, 3, 4, 5, 6, - 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 1, 1, 3, 0, 1, 0, 3, - 0, 3, 3, 0, 3, 5, 0, 3, 5, 0, - 1, 1, 0, 1, 1, 2, 2, 0, 1, 1, + 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 4, 4, 1, 1, 3, 0, 1, 0, + 3, 0, 3, 3, 0, 3, 5, 0, 3, 5, + 0, 1, 1, 0, 1, 1, 2, 2, 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, @@ -4525,7 +4531,7 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, } var yyChk = [...]int{ @@ -4536,30 +4542,30 @@ var yyChk = [...]int{ -33, -34, -35, -36, -37, -38, -31, -40, -39, 195, -43, 53, -45, -46, -47, -51, -52, -53, -54, 308, 314, 363, -68, -70, -23, -24, -25, -26, 191, 14, - 435, -11, -14, -12, -15, -13, -17, -18, -16, 213, + 436, -11, -14, -12, -15, -13, -17, -18, -16, 213, 212, 32, 275, 276, 312, 211, 192, 13, 125, 126, - 128, 129, 25, -69, 58, 193, -71, 10, 481, -79, - 33, -102, -177, 62, -165, -168, 438, 439, 440, 441, - 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 291, 432, 230, 254, 257, 264, 125, 144, - 138, 166, 158, 133, 234, 235, 69, 128, 392, 79, - 377, 362, 131, 249, 251, 253, 256, 236, 154, 149, - 248, 232, 147, 237, 34, 238, 171, 239, 240, 437, - 373, 290, 379, 261, 360, 148, 374, 252, 376, 172, - 176, 384, 314, 142, 143, 381, 386, 170, 210, 37, - 434, 222, 387, 174, 169, 165, 395, 265, 263, 168, + 128, 129, 25, -69, 58, 193, -71, 10, 482, -79, + 33, -102, -177, 62, -165, -168, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 291, 433, 230, 254, 257, 264, 125, 144, + 138, 166, 158, 133, 234, 235, 69, 128, 393, 79, + 378, 362, 131, 249, 251, 253, 256, 236, 154, 149, + 248, 232, 147, 237, 34, 238, 171, 239, 240, 438, + 374, 290, 380, 261, 360, 148, 375, 252, 377, 172, + 176, 385, 314, 142, 143, 382, 387, 170, 210, 37, + 435, 222, 388, 174, 169, 165, 396, 265, 263, 168, 141, 164, 233, 42, 178, 177, 179, 356, 357, 358, - 359, 241, 242, 302, 383, 161, 150, 294, 134, 22, - 390, 217, 378, 315, 243, 258, 266, 173, 175, 224, - 229, 436, 228, 262, 388, 146, 221, 250, 216, 391, - 135, 308, 317, 244, 129, 255, 385, 394, 41, 330, + 359, 241, 242, 302, 384, 161, 150, 294, 134, 22, + 391, 217, 379, 315, 243, 258, 266, 173, 175, 224, + 229, 437, 228, 262, 389, 146, 221, 250, 216, 392, + 135, 308, 317, 244, 129, 255, 386, 395, 41, 330, 140, 132, 207, 126, 226, 231, 245, 246, 247, 268, - 267, 259, 162, 223, 167, 139, 163, 127, 225, 393, - 331, 480, 292, 345, 160, 157, 227, 200, 389, 380, - 130, 349, 332, 155, 269, 477, 478, 479, 303, 289, - 270, 271, 153, 214, 372, 272, 274, -43, -9, -8, + 267, 259, 162, 223, 167, 139, 163, 127, 225, 394, + 331, 481, 292, 345, 160, 157, 227, 200, 390, 381, + 130, 349, 332, 155, 269, 478, 479, 480, 303, 289, + 270, 271, 153, 214, 373, 272, 274, -43, -9, -8, -69, -70, -184, 23, 360, -49, 361, 195, 58, -177, -5, -4, -41, -67, -183, -177, 275, -183, 198, -177, 228, 344, -286, 203, -253, -228, 229, -252, -229, -255, @@ -4567,56 +4573,56 @@ var yyChk = [...]int{ 10, 313, 211, 13, 314, 316, 317, 320, 321, 322, 36, 325, 326, 62, 65, 236, -84, -85, -145, 19, 6, 7, 8, 9, -288, 291, 345, 228, -222, -220, - 272, 323, 208, 207, 80, 397, 197, -352, -353, 188, - 189, 190, -342, 429, -341, -177, 430, -163, -370, -285, - 380, 379, -188, 378, 371, 382, 373, 191, 79, 159, - 156, 199, 381, 37, 384, 385, 374, 291, 345, -352, + 272, 323, 208, 207, 80, 398, 197, -352, -353, 188, + 189, 190, -342, 430, -341, -177, 431, -163, -370, -285, + 381, 380, -188, 379, 372, 383, 374, 191, 79, 159, + 156, 199, 382, 37, 385, 386, 375, 291, 345, -352, 130, 127, -240, 130, 85, 135, 134, -240, 228, 35, - -246, 355, -245, -247, 384, 385, 395, 63, 64, 383, + -246, 355, -245, -247, 385, 386, 396, 63, 64, 384, -163, -177, 79, -85, -145, -84, -68, -70, -340, 291, - 345, 228, 199, 198, 200, 397, 275, -287, -348, 26, + 345, 228, 199, 198, 200, 398, 275, -287, -348, 26, -292, 185, 186, 187, 27, 28, -1, -91, 220, -102, 124, -85, -84, -85, -157, -177, 362, 94, -49, -49, 361, -343, -344, -345, -347, 195, 361, 360, 124, 15, -183, 56, -102, -229, 228, -253, -228, 30, 55, 59, 201, 59, 55, 58, 310, 324, 345, 311, 323, 200, - 228, 324, 228, 371, 200, 315, 318, 319, 372, -302, - 395, -63, 33, -87, 21, -71, -70, 20, 26, 27, - 26, 27, 26, 27, 26, 27, -350, 198, 429, -218, + 228, 324, 228, 372, 200, 315, 318, 319, 373, -302, + 396, -63, 33, -87, 21, -71, -70, 20, 26, 27, + 26, 27, 26, 27, 26, 27, -350, 198, 430, -218, 203, -218, -218, 199, -218, 198, -354, 137, 59, -342, -90, 58, -187, 102, -187, -371, 15, 104, 227, 226, - 375, 372, -262, 376, 377, -188, -187, -187, -188, 198, - 200, 397, 25, 25, -286, -286, -355, 202, 388, 435, + 376, 373, -262, 377, 378, -188, -187, -187, -188, 198, + 200, 398, 25, 25, -286, -286, -355, 202, 389, 436, 133, 134, 135, -250, 26, 35, 354, -228, 228, 59, 94, 23, -248, 94, 105, -247, -247, -247, -248, -248, -122, 35, -176, 121, -177, 65, -122, 35, 124, -86, -87, -71, -70, 60, 60, -286, -286, -286, -286, -286, -286, -286, -183, -72, -73, 112, -202, -177, 86, 219, - -204, 62, -197, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 79, 360, + -204, 62, -197, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 79, 360, 302, 345, 155, 303, 153, 214, -198, -200, -321, -315, -195, 58, 110, 111, 118, 87, -199, -275, 30, 89, - 405, -152, -153, -154, -155, -156, -316, -314, 65, 70, + 406, -152, -153, -154, -155, -156, -316, -314, 65, 70, 73, 76, 77, 75, 74, 151, 72, 66, 123, -70, -335, -166, -291, -297, 197, -295, 156, 152, 12, 116, - 355, 121, -298, 474, 64, 63, 296, 297, 298, 397, - 293, 299, 203, 47, 300, 301, 304, 404, 305, 48, - 306, 295, 218, 307, 408, 407, 409, 401, 398, 396, - 399, 400, 402, 403, -72, -293, 38, -67, 58, 25, + 355, 121, -298, 475, 64, 63, 296, 297, 298, 398, + 293, 299, 203, 47, 300, 301, 304, 405, 305, 48, + 306, 295, 218, 307, 409, 408, 410, 402, 399, 397, + 400, 401, 403, 404, -72, -293, 38, -67, 58, 25, 58, -177, -86, -63, -87, 124, 70, 65, -49, 60, 59, -346, 76, 77, -349, 170, 162, -177, -60, 65, -3, -4, -5, -6, -27, -41, -67, -317, -315, 58, - 26, 354, 55, 15, -254, 198, 397, 309, 224, 200, + 26, 354, 55, 15, -254, 198, 398, 309, 224, 200, -252, -236, -233, -231, -176, -229, -232, -231, -257, -157, - 372, -64, 364, 476, -63, -202, -177, -83, -82, -202, + 373, -64, 364, 477, -63, -202, -177, -83, -82, -202, 200, -218, -357, 62, 86, -237, -234, -231, -228, -175, 62, 63, 64, -177, -218, -355, -341, 29, -89, -177, -141, 16, -200, -141, -102, -187, -187, -189, -371, -185, - -371, 372, -141, -141, -262, -186, -177, -186, -218, -357, + -371, 373, -141, -141, -262, -186, -177, -186, -218, -357, -237, -76, -74, -77, -78, -80, -144, -146, -102, 58, - 389, 390, 131, 134, 133, 7, -251, 354, 26, -228, + 390, 391, 131, 134, 133, 7, -251, 354, 26, -228, -245, -241, 65, 355, -232, -249, 55, 121, -299, -202, 35, -248, -248, -248, -249, -249, 120, -177, -63, -357, -236, -228, -177, -104, -102, -104, -178, -175, -168, -140, @@ -4629,385 +4635,385 @@ var yyChk = [...]int{ 102, 103, 88, -70, -202, -208, -200, -200, -200, -200, -275, -206, -202, 58, -202, 58, 58, 58, -296, 58, 58, -210, -211, 58, 65, 58, 58, 58, -200, 58, - 58, -140, -294, -209, -334, 475, -93, 60, -88, -177, + 58, -140, -294, -209, -334, 476, -93, 60, -88, -177, -332, -333, -88, -92, -177, -63, -63, -170, -171, -162, -167, -174, -175, -168, 196, 26, 85, 29, 31, 296, - 328, 88, 121, 20, 89, 156, 120, 298, 405, 297, - 191, 51, 407, 409, 408, 398, 396, 347, 351, 353, - 350, 397, 371, 35, 14, 32, 212, 27, 28, 114, + 328, 88, 121, 20, 89, 156, 120, 298, 406, 297, + 191, 51, 408, 410, 409, 399, 397, 347, 351, 353, + 350, 398, 372, 35, 14, 32, 212, 27, 28, 114, 193, 92, 93, 215, 30, 213, 77, 23, 54, 15, 17, 18, 299, 346, 203, 202, 104, 364, 199, 49, 12, 123, 33, 101, 348, 45, 81, 47, 102, 21, - 399, 400, 36, 363, 431, 219, 116, 300, 301, 52, - 86, 354, 75, 55, 82, 19, 50, 103, 194, 404, - 48, 352, 304, 306, 429, 305, 197, 382, 10, 295, - 406, 25, 211, 46, 198, 91, 201, 76, 218, 152, - 6, 80, 13, 53, 56, 401, 402, 403, 38, 90, - 16, 307, 435, 355, 365, 366, 367, 368, 369, 370, - 180, 181, 182, 183, 184, 260, 206, 204, 208, 209, - 475, 476, 185, 186, 286, 288, 159, 188, 189, 190, - 220, 137, 7, 333, 334, 335, 336, 338, 339, 340, - 341, 342, 343, 344, 23, -49, -344, 124, 59, -89, - -254, -235, -232, -256, 112, 62, -242, 59, 435, 482, - 63, 201, -366, -365, 346, 60, 59, -303, 202, 404, - 65, 483, 65, 59, 22, 124, 59, -81, 31, 32, - -102, 203, -102, -360, 333, 30, -367, 59, 35, -365, - -221, 56, -216, -217, -215, -219, 35, -102, 15, -75, - -103, -177, 58, 60, 59, -202, -141, -141, -141, -187, - -178, -189, -184, -189, -185, 124, -164, -177, -360, -367, - 25, -147, -148, -149, -150, 45, 49, 51, 46, 47, - 48, 52, 25, 59, -372, 29, -173, -179, 29, -174, - 65, -175, -168, -68, -70, 132, 135, 135, 134, -228, - 201, 58, 94, -249, -249, -249, 35, -176, 55, 59, - -141, -73, -74, -76, -202, -202, -202, -202, -177, 65, - -177, 112, -196, 86, 289, 75, 76, 77, -197, -214, - 26, 270, 271, -207, -208, -202, -151, 27, 26, -151, - -151, -202, -151, 112, -208, -208, 60, 70, -336, -337, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 300, 295, 301, 299, 293, 307, 302, 303, 155, - 427, 428, 421, 422, 423, 424, 425, 426, -151, -151, - -151, -151, -151, -202, -351, 287, 286, 288, -151, -151, - -151, -151, -198, -198, -198, -198, -198, -198, -198, -198, - -198, -198, -198, -198, -205, -212, -275, 58, 104, 102, - 103, 88, -200, -198, -198, 60, 59, -339, -338, 90, - -202, -336, -207, -202, -207, -207, 60, 60, -208, -207, - -198, -207, -151, 65, -141, 59, 58, 60, 59, 38, - 124, 59, 94, 60, 59, 124, 362, -177, -315, 60, - -256, 59, 201, 124, 124, -233, 314, -176, -235, 20, - 435, -157, 33, 65, -306, 376, -202, -202, -177, -82, - -90, 86, 58, -362, 378, 335, -169, 94, -194, -193, - 292, 36, -289, 355, 341, 342, -234, 228, 55, 281, - 282, 283, 284, -215, -163, 120, 239, 58, -102, -75, - -177, 15, 59, -356, 124, -1, -177, -141, -187, -187, - -189, -177, -362, -194, -239, -238, -157, -77, -77, -77, - -77, 45, 45, 45, 50, 45, 50, 45, -149, -239, - -80, -177, -179, 60, 135, -235, -190, 65, -241, -102, - -102, -143, 17, 124, -196, 289, 75, -275, 60, 59, - -202, -202, -202, 29, -208, 60, 60, 60, 60, 15, - -202, -202, -202, -202, -202, 60, 15, 15, -202, -202, - -202, -202, -202, -208, -205, -200, -198, -198, -203, 215, - 85, -202, -201, -338, 92, -202, 59, 56, 60, 15, - 60, 60, 60, 56, 60, 59, 60, -202, 59, -143, - -209, -301, -300, -299, 38, -67, -88, -294, -177, -333, - -299, -177, -170, -167, -175, -168, 70, 15, -232, -228, - 112, 112, 62, 315, -242, 65, 334, 65, 198, 94, - -312, 370, 365, 367, 124, 29, 30, -97, -98, -99, - -105, -100, -157, -192, -101, 206, 204, 208, -329, 80, - 209, 260, 81, 199, -363, 69, -358, 65, -364, 69, - 336, 123, 294, 35, 337, 338, 352, 290, 70, 70, - 343, -359, 62, -102, -169, -169, -169, -97, -91, 56, - 124, -74, -103, -177, 112, 60, -141, -141, -187, -363, - -364, -141, 59, 94, -95, -94, 55, 56, -96, 55, - -94, 45, 45, -141, -90, 60, -142, 18, 20, -177, - 112, -202, 60, 60, 60, -106, -108, 330, 331, -112, - -109, -111, -110, -114, -113, 156, 157, 121, 160, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 25, - 214, 152, 153, 154, 155, 172, 138, 158, 433, 180, - 139, 181, 140, 182, 141, 183, 142, 143, 184, 144, - 147, 148, 149, 146, 60, -202, 60, 60, 60, 60, - 60, -202, -202, 15, 60, 60, 60, 60, 60, -203, - 85, -200, -197, 60, 93, -202, 91, -107, -113, 121, - 156, 214, 155, 154, 152, 330, 331, -122, -202, -122, - -198, 60, 65, -142, 60, 59, -294, -235, -242, 355, - -102, 65, -283, 477, -310, 365, 20, 20, -67, -102, - 60, 59, -108, -101, -177, 81, -328, -329, -218, -328, - 81, 58, 65, -361, 346, 65, 65, 70, 35, 70, - 123, 339, -290, 58, -122, -124, -176, 121, 65, 60, - -173, -74, -177, -141, -356, 124, -141, -85, -238, -299, - -202, 58, -202, -202, -208, 60, -115, 143, 142, -115, - -282, 331, 330, -276, -278, 58, -277, 58, -277, -276, - -276, 58, 58, -276, -279, 58, -279, -276, -280, 58, - -280, -281, 58, -280, 60, 60, 60, -202, -197, -202, - 60, -276, -277, -276, -279, -276, -115, -115, 60, 60, - 23, 60, 60, 60, -299, -66, -304, -262, 484, 59, - -129, 478, 65, 20, 65, -308, 65, -90, -120, -121, - -138, 328, 230, -219, 234, 69, 235, 362, 236, 199, - 238, 239, 240, 210, 241, 242, 243, 355, 244, 245, - 246, 247, 311, 6, 277, -99, -119, -118, -116, 75, - 86, 35, 328, -117, 69, 120, 253, 231, 254, -137, - -191, 204, 80, 81, 316, -192, -325, -326, -177, -326, - -177, -325, -325, -218, -202, 20, 435, 293, 35, 70, - 35, 340, -223, -225, -157, 58, -65, -64, -141, -141, - -86, -89, -284, 332, 70, 70, -159, 65, -159, 70, - 70, 70, 60, -202, -311, 370, -307, -305, 365, 366, - 367, 368, 65, -160, 479, 70, 65, 367, 29, -258, - 220, 59, -138, -169, -169, -163, 120, -169, -169, -169, - -169, 237, 237, -169, -169, -169, -169, -169, -169, -169, - -169, -169, -169, -169, -169, -169, -169, 58, -116, 75, - -198, 65, -124, -125, 35, 252, 248, -126, 35, 232, - 233, -128, 58, 260, 81, 81, -102, 58, 56, 269, - 58, 58, 58, -326, 60, 65, 334, 65, 293, 60, - 59, -276, -202, -66, -85, 60, 60, 60, 60, 59, - 60, 60, 60, 59, 60, 59, 60, -313, 202, -309, - 369, -305, 20, 367, 20, 20, 94, 58, 20, -67, - 20, -138, 70, 70, -169, -169, 70, 65, 65, 65, - -169, -169, 70, 65, -179, 70, 70, 70, 70, 35, - 65, -127, 35, 248, 252, 249, 250, 251, 70, 35, - 70, 35, 70, 35, -177, 58, -330, -331, 65, 70, - 58, -224, 58, -223, -327, 281, 282, 283, 285, 284, - -327, -223, -223, -223, 58, -244, -243, 261, 86, 355, - -226, -225, -81, 60, -86, 65, 70, 70, -320, 58, - 70, -310, 20, -308, 20, -308, -308, 65, -161, -177, - -308, -259, 262, 263, -260, -266, 265, -122, -122, 65, - 65, -123, 231, -104, 60, 59, 94, 60, -202, -131, - -130, 431, -223, 60, 60, 60, 60, -223, 261, -227, - 210, 69, 435, 279, 280, -81, 60, 60, -324, 25, - 60, -319, -318, -158, -314, -177, 370, 65, -308, 484, - 60, 59, -264, 266, 58, -262, 58, -262, 81, 282, - 232, 233, 60, -331, 65, 60, -135, -136, -133, -134, - 55, 374, 258, 259, 60, -226, -226, -226, -226, 60, - -169, 65, 278, -323, -322, -321, 60, 59, 124, -177, - -261, 267, 70, -198, 58, -198, 58, -263, 264, 58, - -243, -134, 55, -133, 55, 14, 13, -137, 70, -175, - 59, 94, -318, -177, -268, 58, 20, 60, -257, 60, - -257, 58, 94, -198, -132, 255, 256, 25, 134, -132, - -322, 35, -202, 124, -269, -267, 220, -260, 60, 60, - -257, 70, 60, 75, 35, 257, -177, 60, 59, 62, - -265, 268, 60, -267, -270, 38, 70, -274, -271, 58, - -138, 222, 104, -274, -138, -273, -272, 267, 223, 58, - 60, 59, 62, 219, 58, -208, -272, -271, -208, 60, - 60, + 400, 401, 36, 363, 432, 219, 116, 300, 301, 52, + 86, 354, 75, 55, 82, 19, 50, 103, 194, 405, + 48, 352, 304, 306, 430, 305, 197, 383, 10, 295, + 407, 25, 211, 46, 198, 91, 201, 76, 218, 152, + 6, 80, 13, 53, 56, 402, 403, 404, 38, 90, + 16, 307, 436, 355, 365, 366, 367, 368, 369, 370, + 371, 180, 181, 182, 183, 184, 260, 206, 204, 208, + 209, 476, 477, 185, 186, 286, 288, 159, 188, 189, + 190, 220, 137, 7, 333, 334, 335, 336, 338, 339, + 340, 341, 342, 343, 344, 23, -49, -344, 124, 59, + -89, -254, -235, -232, -256, 112, 62, -242, 59, 436, + 483, 63, 201, -366, -365, 346, 60, 59, -303, 202, + 405, 65, 484, 65, 59, 22, 124, 59, -81, 31, + 32, -102, 203, -102, -360, 333, 30, -367, 59, 35, + -365, -221, 56, -216, -217, -215, -219, 35, -102, 15, + -75, -103, -177, 58, 60, 59, -202, -141, -141, -141, + -187, -178, -189, -184, -189, -185, 124, -164, -177, -360, + -367, 25, -147, -148, -149, -150, 45, 49, 51, 46, + 47, 48, 52, 25, 59, -372, 29, -173, -179, 29, + -174, 65, -175, -168, -68, -70, 132, 135, 135, 134, + -228, 201, 58, 94, -249, -249, -249, 35, -176, 55, + 59, -141, -73, -74, -76, -202, -202, -202, -202, -177, + 65, -177, 112, -196, 86, 289, 75, 76, 77, -197, + -214, 26, 270, 271, -207, -208, -202, -151, 27, 26, + -151, -151, -202, -151, 112, -208, -208, 60, 70, -336, + -337, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 300, 295, 301, 299, 293, 307, 302, 303, + 155, 428, 429, 422, 423, 424, 425, 426, 427, -151, + -151, -151, -151, -151, -202, -351, 287, 286, 288, -151, + -151, -151, -151, -198, -198, -198, -198, -198, -198, -198, + -198, -198, -198, -198, -198, -205, -212, -275, 58, 104, + 102, 103, 88, -200, -198, -198, 60, 59, -339, -338, + 90, -202, -336, -207, -202, -207, -207, 60, 60, -208, + -207, -198, -207, -151, 65, -141, 59, 58, 60, 59, + 38, 124, 59, 94, 60, 59, 124, 362, -177, -315, + 60, -256, 59, 201, 124, 124, -233, 314, -176, -235, + 20, 436, -157, 33, 65, -306, 377, -202, -202, -177, + -82, -90, 86, 58, -362, 379, 335, -169, 94, -194, + -193, 292, 36, -289, 355, 341, 342, -234, 228, 55, + 281, 282, 283, 284, -215, -163, 120, 239, 58, -102, + -75, -177, 15, 59, -356, 124, -1, -177, -141, -187, + -187, -189, -177, -362, -194, -239, -238, -157, -77, -77, + -77, -77, 45, 45, 45, 50, 45, 50, 45, -149, + -239, -80, -177, -179, 60, 135, -235, -190, 65, -241, + -102, -102, -143, 17, 124, -196, 289, 75, -275, 60, + 59, -202, -202, -202, 29, -208, 60, 60, 60, 60, + 15, -202, -202, -202, -202, -202, 60, 15, 15, -202, + -202, -202, -202, -202, -208, -205, -200, -198, -198, -203, + 215, 85, -202, -201, -338, 92, -202, 59, 56, 60, + 15, 60, 60, 60, 56, 60, 59, 60, -202, 59, + -143, -209, -301, -300, -299, 38, -67, -88, -294, -177, + -333, -299, -177, -170, -167, -175, -168, 70, 15, -232, + -228, 112, 112, 62, 315, -242, 65, 334, 65, 198, + 94, -312, 370, 365, 367, 124, 29, 30, -97, -98, + -99, -105, -100, -157, -192, -101, 206, 204, 208, -329, + 80, 209, 260, 81, 199, -363, 69, -358, 65, -364, + 69, 336, 123, 294, 35, 337, 338, 352, 290, 70, + 70, 343, -359, 62, -102, -169, -169, -169, -97, -91, + 56, 124, -74, -103, -177, 112, 60, -141, -141, -187, + -363, -364, -141, 59, 94, -95, -94, 55, 56, -96, + 55, -94, 45, 45, -141, -90, 60, -142, 18, 20, + -177, 112, -202, 60, 60, 60, -106, -108, 330, 331, + -112, -109, -111, -110, -114, -113, 156, 157, 121, 160, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 25, 214, 152, 153, 154, 155, 172, 138, 158, 434, + 180, 139, 181, 140, 182, 141, 183, 142, 143, 184, + 144, 147, 148, 149, 146, 60, -202, 60, 60, 60, + 60, 60, -202, -202, 15, 60, 60, 60, 60, 60, + -203, 85, -200, -197, 60, 93, -202, 91, -107, -113, + 121, 156, 214, 155, 154, 152, 330, 331, -122, -202, + -122, -198, 60, 65, -142, 60, 59, -294, -235, -242, + 355, -102, 65, -283, 478, -310, 365, 20, 20, -67, + -102, 60, 59, -108, -101, -177, 81, -328, -329, -218, + -328, 81, 58, 65, -361, 346, 65, 65, 70, 35, + 70, 123, 339, -290, 58, -122, -124, -176, 121, 65, + 60, -173, -74, -177, -141, -356, 124, -141, -85, -238, + -299, -202, 58, -202, -202, -208, 60, -115, 143, 142, + -115, -282, 331, 330, -276, -278, 58, -277, 58, -277, + -276, -276, 58, 58, -276, -279, 58, -279, -276, -280, + 58, -280, -281, 58, -280, 60, 60, 60, -202, -197, + -202, 60, -276, -277, -276, -279, -276, -115, -115, 60, + 60, 23, 60, 60, 60, -299, -66, -304, -262, 485, + 59, -129, 479, 65, 20, 65, -308, 65, -90, -120, + -121, -138, 328, 230, -219, 234, 69, 235, 362, 236, + 199, 238, 239, 240, 210, 241, 242, 243, 355, 244, + 245, 246, 247, 311, 6, 277, -99, -119, -118, -116, + 75, 86, 35, 328, -117, 69, 120, 253, 231, 254, + -137, -191, 204, 80, 81, 316, -192, -325, -326, -177, + -326, -177, -325, -325, -218, -202, 20, 436, 293, 35, + 70, 35, 340, -223, -225, -157, 58, -65, -64, -141, + -141, -86, -89, -284, 332, 70, 70, -159, 65, -159, + 70, 70, 70, 60, -202, -311, 370, -307, -305, 365, + 366, 367, 368, 65, -160, 480, 70, 65, 367, 29, + -258, 220, 59, -138, -169, -169, -163, 120, -169, -169, + -169, -169, 237, 237, -169, -169, -169, -169, -169, -169, + -169, -169, -169, -169, -169, -169, -169, -169, 58, -116, + 75, -198, 65, -124, -125, 35, 252, 248, -126, 35, + 232, 233, -128, 58, 260, 81, 81, -102, 58, 56, + 269, 58, 58, 58, -326, 60, 65, 334, 65, 293, + 60, 59, -276, -202, -66, -85, 60, 60, 60, 60, + 59, 60, 60, 60, 59, 60, 59, 60, -313, 202, + -309, 369, -305, 20, 367, 20, 20, 94, 58, 20, + -67, 20, -138, 70, 70, -169, -169, 70, 65, 65, + 65, -169, -169, 70, 65, -179, 70, 70, 70, 70, + 35, 65, -127, 35, 248, 252, 249, 250, 251, 70, + 35, 70, 35, 70, 35, -177, 58, -330, -331, 65, + 70, 58, -224, 58, -223, -327, 281, 282, 283, 285, + 284, -327, -223, -223, -223, 58, -244, -243, 261, 86, + 355, -226, -225, -81, 60, -86, 65, 70, 70, -320, + 58, 70, -310, 20, -308, 20, -308, -308, 65, -161, + -177, -308, -259, 262, 263, -260, -266, 265, -122, -122, + 65, 65, -123, 231, -104, 60, 59, 94, 60, -202, + -131, -130, 432, -223, 60, 60, 60, 60, -223, 261, + -227, 210, 69, 436, 279, 280, -81, 60, 60, -324, + 25, 60, -319, -318, -158, -314, -177, 370, 371, 65, + -308, 485, 60, 59, -264, 266, 58, -262, 58, -262, + 81, 282, 232, 233, 60, -331, 65, 60, -135, -136, + -133, -134, 55, 375, 258, 259, 60, -226, -226, -226, + -226, 60, -169, 65, 278, -323, -322, -321, 60, 59, + 124, -177, -261, 267, 70, -198, 58, -198, 58, -263, + 264, 58, -243, -134, 55, -133, 55, 14, 13, -137, + 70, -175, 59, 94, -318, -177, -268, 58, 20, 60, + -257, 60, -257, 58, 94, -198, -132, 255, 256, 25, + 134, -132, -322, 35, -202, 124, -269, -267, 220, -260, + 60, 60, -257, 70, 60, 75, 35, 257, -177, 60, + 59, 62, -265, 268, 60, -267, -270, 38, 70, -274, + -271, 58, -138, 222, 104, -274, -138, -273, -272, 267, + 223, 58, 60, 59, 62, 219, 58, -208, -272, -271, + -208, 60, 60, } var yyDef = [...]int{ 23, -2, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 536, 537, 538, 539, 0, 342, 343, - 0, 322, 0, 0, 0, 0, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 242, 243, 0, - 191, 187, 166, 167, 168, 126, 127, 128, 129, 248, - 0, 0, 412, -2, 540, 541, 542, 543, -2, 355, - 0, 323, 324, 325, 326, 327, 328, 329, 330, 231, - 232, 233, 228, 229, 230, -2, 0, 355, 180, 0, - 171, 171, 0, 432, 0, 0, 443, 465, 23, 390, - 0, 395, 720, 756, 757, 758, 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, 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, 1337, 1338, 1339, 1340, 1341, 1342, - 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, - 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, - 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, - 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, - 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, - 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, - 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, - 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, 192, 344, 345, - 432, 432, 214, 0, 1337, 218, 0, 0, 0, 319, - 210, 211, 212, 213, 0, 528, 0, 207, 0, 186, - 1395, 0, 0, 0, 0, 0, 0, 87, 582, 89, - 584, 93, 95, 96, 99, 100, 101, 102, 103, 104, - 105, 106, 0, 108, 0, 110, 0, 113, 114, 115, - 0, 124, 125, 585, 586, 67, -2, 0, 0, 0, - 448, 451, 454, 457, 546, 611, 611, 611, 0, 611, - 0, 630, 588, 589, 590, 609, 610, 360, 356, 357, - 358, 359, 420, 0, 422, 425, 302, 302, 0, 0, - 293, 294, 0, 311, 302, 302, 311, 0, 1124, 0, - 0, 285, 286, 287, 291, 292, 312, 248, 248, 362, - 181, 182, 170, 172, 0, 176, 0, 169, 1395, 0, - 140, 0, 145, 0, 1344, 1409, 1359, 0, 0, 1377, - 0, 164, -2, 427, 0, 433, 0, 432, 0, 248, - 248, 248, 248, 248, 248, 248, 0, 0, 0, 466, - 467, 462, 463, 464, 468, 469, 3, 0, 0, 394, - 0, 427, -2, 0, 215, 759, 0, 0, 219, 220, - 0, 0, 234, 0, 237, 223, 224, 225, 0, 0, - 209, 0, 0, 188, 0, 0, 0, 249, 81, 0, - 0, 0, 0, 0, 94, 123, 97, 98, 0, 118, - 120, 122, 121, 107, 119, 109, 111, 112, 117, 0, - 68, 415, 0, 396, 0, 445, 447, 0, 449, 450, - 452, 453, 455, 456, 458, 459, 0, 611, 547, 0, - 0, 0, 0, 0, 0, 611, 362, 361, 0, 421, - 0, 0, 474, 0, 474, 0, 307, 308, 302, 302, - 295, 304, 0, 309, 310, 0, 474, 474, 0, 0, - 0, 611, 1125, 1126, 0, 0, 0, 363, 0, 0, - 174, 0, 179, 130, 135, 133, 134, 136, 0, 0, - 0, 0, 0, 162, 163, 0, 0, 0, 0, 0, - 153, 156, 714, 715, 579, 580, 157, 158, 0, 396, - 428, 444, 446, 441, 442, 0, 0, 0, 0, 0, - 0, 0, 341, 482, 476, 478, 523, 31, 0, 1009, - 1014, 756, 1019, -2, 1471, 1472, 1473, 1474, 1475, 1476, - 1477, -2, 1479, -2, -2, 1482, 1483, 1484, 1486, -2, - -2, -2, -2, -2, -2, 1493, -2, -2, -2, 1497, - 1498, -2, -2, 1501, 1502, 1503, 1504, 1505, -2, -2, - -2, -2, -2, -2, -2, -2, 1030, 827, 828, 829, - 830, 0, 0, 0, 0, 0, 837, 838, 0, 851, - 0, 844, 845, 846, 847, 848, 43, 44, 1049, 1050, - 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 976, 814, - 0, 0, 0, 961, 0, 951, 0, 989, 0, 0, - 0, 0, 0, 0, 45, 46, 967, 969, 970, 972, - 973, 974, 975, 978, 979, 980, 983, 984, 985, 986, - 987, 988, 991, 993, 963, 964, 965, 966, 955, 956, - 957, 958, 959, 960, 482, 364, 382, 366, 0, 371, - 0, 721, 396, 418, 396, 0, 216, 0, 221, 0, - 0, 236, 238, 239, 240, 226, 227, 320, 205, 206, - 198, 199, 200, 201, 202, 203, 204, 208, 41, 0, - 189, 190, 81, 0, 0, 82, 83, 84, 85, 86, - 88, 72, 333, 335, 571, 583, 0, 574, 0, 91, - 116, 64, 0, 0, 416, 429, 31, 434, 435, 438, - 0, 0, 0, 549, 0, 246, 565, 0, 581, 603, - 533, 534, 535, -2, 0, 0, 423, 0, 0, 510, - 282, 0, 303, 283, 474, 474, 474, 302, 0, 304, - 0, 304, 298, 299, 0, 313, 316, 314, 0, 0, - 246, 487, 0, 488, 489, 485, 512, 515, 518, 0, - 183, 184, 0, 0, 178, 0, 0, 137, 138, 139, - 146, 141, 143, 0, 0, 147, 159, 160, 161, 388, - 389, 0, 0, 0, 151, 152, 0, 165, 414, 331, - 332, 336, 0, 338, 718, 339, 340, 529, 530, 474, - 0, 483, 0, 479, 0, 0, 0, 0, 524, 0, - 526, 0, 1008, 0, 0, 1038, 1039, 1040, 1041, 1042, - 1043, 1044, 1000, 996, 996, 996, 0, 996, 0, 0, - 936, 0, 0, 996, 996, 996, 996, 996, 937, 0, - 996, 996, 996, 996, 950, 944, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -2, 1002, 0, 833, 834, 835, 836, - 839, 0, 852, 0, 0, 1000, 1000, 1000, 939, 0, - 0, 941, 952, 0, 945, 1000, 0, 1000, 949, 996, - 0, 474, 365, 379, 0, 383, 0, 0, 375, 377, - 370, 372, 0, 0, 392, 417, 419, 760, 0, 1131, - -2, 1133, -2, -2, 1135, 1136, 1137, 1138, 1139, 1140, - 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, - 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, - 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, - 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, - 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, - 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, - 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, - 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, - 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, - 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, - 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, - 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, - 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, - 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, - 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, - 1291, 1292, 1293, 1294, 0, 222, 235, 0, 0, 0, - 0, 75, 568, 0, 76, 80, 70, 0, 0, 0, - 573, 0, 570, 575, 0, 90, 0, 0, 65, 66, - 625, 0, 398, 0, 0, 0, 0, 437, 439, 440, - 425, 0, 0, 555, 1127, 612, 250, 0, 0, 567, - 0, 0, 608, -2, 615, 0, 621, 0, 0, 0, - 349, 353, 23, 426, 0, 475, 284, 288, 289, 474, - 305, 302, 306, 302, 304, 0, 315, 318, 555, 250, - 0, 0, 0, 0, 0, 503, 0, 0, 502, 0, - 0, 0, 0, 0, 0, 516, 517, 519, 0, 521, - 522, 531, 532, 0, 432, 185, 173, 175, 0, 132, - 0, 0, 0, 148, 149, 150, 154, 155, 0, 0, - 472, 477, 484, 487, 1004, 1005, 1006, 1007, 525, 527, - 32, 480, 1010, 0, 1012, 1015, 1020, 1021, 1017, 0, - 1035, -2, -2, 0, 1001, 1002, 0, 997, 998, 0, - 0, 0, 0, 0, 0, 0, 953, 0, 0, 907, + 20, 21, 22, 537, 538, 539, 540, 0, 343, 344, + 0, 323, 0, 0, 0, 0, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 243, 244, 0, + 192, 188, 167, 168, 169, 127, 128, 129, 130, 249, + 0, 0, 413, -2, 541, 542, 543, 544, -2, 356, + 0, 324, 325, 326, 327, 328, 329, 330, 331, 232, + 233, 234, 229, 230, 231, -2, 0, 356, 181, 0, + 172, 172, 0, 433, 0, 0, 444, 466, 23, 391, + 0, 396, 721, 757, 758, 759, 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, 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, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, + 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, + 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, + 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, + 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, + 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, + 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, + 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 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, 193, 345, 346, + 433, 433, 215, 0, 1339, 219, 0, 0, 0, 320, + 211, 212, 213, 214, 0, 529, 0, 208, 0, 187, + 1397, 0, 0, 0, 0, 0, 0, 88, 583, 90, + 585, 94, 96, 97, 100, 101, 102, 103, 104, 105, + 106, 107, 0, 109, 0, 111, 0, 114, 115, 116, + 0, 125, 126, 586, 587, 68, -2, 0, 0, 0, + 449, 452, 455, 458, 547, 612, 612, 612, 0, 612, + 0, 631, 589, 590, 591, 610, 611, 361, 357, 358, + 359, 360, 421, 0, 423, 426, 303, 303, 0, 0, + 294, 295, 0, 312, 303, 303, 312, 0, 1125, 0, + 0, 286, 287, 288, 292, 293, 313, 249, 249, 363, + 182, 183, 171, 173, 0, 177, 0, 170, 1397, 0, + 141, 0, 146, 0, 1346, 1411, 1361, 0, 0, 1379, + 0, 165, -2, 428, 0, 434, 0, 433, 0, 249, + 249, 249, 249, 249, 249, 249, 0, 0, 0, 467, + 468, 463, 464, 465, 469, 470, 3, 0, 0, 395, + 0, 428, -2, 0, 216, 760, 0, 0, 220, 221, + 0, 0, 235, 0, 238, 224, 225, 226, 0, 0, + 210, 0, 0, 189, 0, 0, 0, 250, 82, 0, + 0, 0, 0, 0, 95, 124, 98, 99, 0, 119, + 121, 123, 122, 108, 120, 110, 112, 113, 118, 0, + 69, 416, 0, 397, 0, 446, 448, 0, 450, 451, + 453, 454, 456, 457, 459, 460, 0, 612, 548, 0, + 0, 0, 0, 0, 0, 612, 363, 362, 0, 422, + 0, 0, 475, 0, 475, 0, 308, 309, 303, 303, + 296, 305, 0, 310, 311, 0, 475, 475, 0, 0, + 0, 612, 1126, 1127, 0, 0, 0, 364, 0, 0, + 175, 0, 180, 131, 136, 134, 135, 137, 0, 0, + 0, 0, 0, 163, 164, 0, 0, 0, 0, 0, + 154, 157, 715, 716, 580, 581, 158, 159, 0, 397, + 429, 445, 447, 442, 443, 0, 0, 0, 0, 0, + 0, 0, 342, 483, 477, 479, 524, 31, 0, 1010, + 1015, 757, 1020, -2, 1473, 1474, 1475, 1476, 1477, 1478, + 1479, -2, 1481, -2, -2, 1484, 1485, 1486, 1488, -2, + -2, -2, -2, -2, -2, 1495, -2, -2, -2, 1499, + 1500, -2, -2, 1503, 1504, 1505, 1506, 1507, -2, -2, + -2, -2, -2, -2, -2, -2, 1031, 828, 829, 830, + 831, 0, 0, 0, 0, 0, 838, 839, 0, 852, + 0, 845, 846, 847, 848, 849, 43, 44, 1050, 1051, + 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 977, 815, + 0, 0, 0, 962, 0, 952, 0, 990, 0, 0, + 0, 0, 0, 0, 45, 46, 968, 970, 971, 973, + 974, 975, 976, 979, 980, 981, 984, 985, 986, 987, + 988, 989, 992, 994, 964, 965, 966, 967, 956, 957, + 958, 959, 960, 961, 483, 365, 383, 367, 0, 372, + 0, 722, 397, 419, 397, 0, 217, 0, 222, 0, + 0, 237, 239, 240, 241, 227, 228, 321, 206, 207, + 199, 200, 201, 202, 203, 204, 205, 209, 41, 0, + 190, 191, 82, 0, 0, 83, 84, 85, 86, 87, + 89, 73, 334, 336, 572, 584, 0, 575, 0, 92, + 117, 65, 0, 0, 417, 430, 31, 435, 436, 439, + 0, 0, 0, 550, 0, 247, 566, 0, 582, 604, + 534, 535, 536, -2, 0, 0, 424, 0, 0, 511, + 283, 0, 304, 284, 475, 475, 475, 303, 0, 305, + 0, 305, 299, 300, 0, 314, 317, 315, 0, 0, + 247, 488, 0, 489, 490, 486, 513, 516, 519, 0, + 184, 185, 0, 0, 179, 0, 0, 138, 139, 140, + 147, 142, 144, 0, 0, 148, 160, 161, 162, 389, + 390, 0, 0, 0, 152, 153, 0, 166, 415, 332, + 333, 337, 0, 339, 719, 340, 341, 530, 531, 475, + 0, 484, 0, 480, 0, 0, 0, 0, 525, 0, + 527, 0, 1009, 0, 0, 1039, 1040, 1041, 1042, 1043, + 1044, 1045, 1001, 997, 997, 997, 0, 997, 0, 0, + 937, 0, 0, 997, 997, 997, 997, 997, 938, 0, + 997, 997, 997, 997, 951, 945, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -2, 1003, 0, 834, 835, 836, 837, + 840, 0, 853, 0, 0, 1001, 1001, 1001, 940, 0, + 0, 942, 953, 0, 946, 1001, 0, 1001, 950, 997, + 0, 475, 366, 380, 0, 384, 0, 0, 376, 378, + 371, 373, 0, 0, 393, 418, 420, 761, 0, 1132, + -2, 1134, -2, -2, 1136, 1137, 1138, 1139, 1140, 1141, + 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, + 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, + 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, + 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, + 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, + 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, + 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, + 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, + 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, + 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, + 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, + 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, + 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, + 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, + 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, + 1292, 1293, 1294, 1295, 1296, 0, 223, 236, 0, 0, + 0, 0, 76, 569, 0, 77, 81, 71, 0, 0, + 0, 574, 0, 571, 576, 0, 91, 0, 0, 66, + 67, 626, 0, 399, 0, 0, 0, 0, 438, 440, + 441, 426, 0, 0, 556, 1128, 613, 251, 0, 0, + 568, 0, 0, 609, -2, 616, 0, 622, 0, 0, + 0, 350, 354, 23, 427, 0, 476, 285, 289, 290, + 475, 306, 303, 307, 303, 305, 0, 316, 319, 556, + 251, 0, 0, 0, 0, 0, 504, 0, 0, 503, + 0, 0, 0, 0, 0, 0, 517, 518, 520, 0, + 522, 523, 532, 533, 0, 433, 186, 174, 176, 0, + 133, 0, 0, 0, 149, 150, 151, 155, 156, 0, + 0, 473, 478, 485, 488, 1005, 1006, 1007, 1008, 526, + 528, 32, 481, 1011, 0, 1013, 1016, 1021, 1022, 1018, + 0, 1036, -2, -2, 0, 1002, 1003, 0, 998, 999, + 0, 0, 0, 0, 0, 0, 0, 954, 0, 0, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, - 928, 929, 930, 931, 932, 933, 934, 935, 0, 0, - 0, 0, 0, 0, 0, 902, 903, 904, 0, 0, - 0, 0, 815, 816, 817, 818, 819, 820, 821, 822, - 823, 824, 825, 826, 1022, 1033, 1034, 0, 0, 0, - 0, 0, 1031, 1026, 0, 831, 0, 849, 853, 0, - 0, 995, 0, 1002, 0, 0, 962, 940, 0, 0, - 0, 0, 0, 0, 472, 382, 384, 0, 0, 382, - 0, 0, 0, 391, 0, 0, 0, 321, 42, 241, - 0, 0, 0, 0, 0, 334, 0, 572, 72, 0, - 0, 92, 0, 0, 402, 0, 430, 431, 32, 436, - 0, 0, 722, 558, 556, 557, 0, 1128, 562, 251, - 252, 253, 254, 0, 0, 0, 566, 0, 0, 604, - 605, 606, 607, 616, 1127, 1127, 1127, 722, 390, 0, - -2, 0, 0, 351, 0, 0, 511, 296, 474, 474, - 302, 317, 558, 562, 474, 195, 0, 506, 500, 0, - 493, 504, 505, 496, 0, 498, 0, 494, 495, 474, - 486, 425, 520, 514, 177, 131, 0, 270, 142, 337, - 719, 470, 0, 0, 1011, 1013, 1016, 1018, 889, 0, - 0, 0, 0, 0, 0, 878, 872, 873, 954, 0, - 0, 0, 0, 0, 0, 897, 0, 0, 0, 0, - 0, 0, 0, 0, 1023, 1031, 1027, 0, 1024, 0, - 0, 1003, 0, 854, 0, 0, 0, 0, 890, 0, - 894, 938, 942, 0, 946, 0, 948, 0, 0, 470, - 380, 0, 385, 386, 382, 369, 376, 368, 378, 373, - 374, 393, 761, 1132, 1129, 1130, 217, 0, 569, 72, - 77, 78, 79, 73, 71, 576, 0, 578, 0, 0, - 404, 53, 0, 0, 0, 0, 0, 0, 723, 724, - 726, 727, 0, 0, 729, 783, 0, 738, 611, 738, - 0, 0, 740, 741, 548, 0, 0, 551, 560, 0, - 0, 0, 256, 257, 0, 0, 0, 269, 265, 266, - 267, 247, 561, 0, 0, 0, 0, 0, 518, 0, - 0, 474, 350, 353, 354, 424, 300, 297, 474, 244, - 245, 432, 0, 0, 490, 507, 0, 0, 491, 0, - 492, 497, 499, 194, 513, 144, 460, 0, 0, 33, - 481, 1003, 874, 875, 876, 0, 856, 868, 868, 1119, - 1060, 1061, 1062, 1106, 1064, 1110, 1110, 1106, 1106, 1092, - 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 0, 0, - 1083, 1106, 1108, 1108, 1106, 1103, 1065, 1066, 1067, 1068, + 928, 929, 930, 931, 932, 933, 934, 935, 936, 0, + 0, 0, 0, 0, 0, 0, 903, 904, 905, 0, + 0, 0, 0, 816, 817, 818, 819, 820, 821, 822, + 823, 824, 825, 826, 827, 1023, 1034, 1035, 0, 0, + 0, 0, 0, 1032, 1027, 0, 832, 0, 850, 854, + 0, 0, 996, 0, 1003, 0, 0, 963, 941, 0, + 0, 0, 0, 0, 0, 473, 383, 385, 0, 0, + 383, 0, 0, 0, 392, 0, 0, 0, 322, 42, + 242, 0, 0, 0, 0, 0, 335, 0, 573, 73, + 0, 0, 93, 0, 0, 403, 0, 431, 432, 32, + 437, 0, 0, 723, 559, 557, 558, 0, 1129, 563, + 252, 253, 254, 255, 0, 0, 0, 567, 0, 0, + 605, 606, 607, 608, 617, 1128, 1128, 1128, 723, 391, + 0, -2, 0, 0, 352, 0, 0, 512, 297, 475, + 475, 303, 318, 559, 563, 475, 196, 0, 507, 501, + 0, 494, 505, 506, 497, 0, 499, 0, 495, 496, + 475, 487, 426, 521, 515, 178, 132, 0, 271, 143, + 338, 720, 471, 0, 0, 1012, 1014, 1017, 1019, 890, + 0, 0, 0, 0, 0, 0, 879, 873, 874, 955, + 0, 0, 0, 0, 0, 0, 898, 0, 0, 0, + 0, 0, 0, 0, 0, 1024, 1032, 1028, 0, 1025, + 0, 0, 1004, 0, 855, 0, 0, 0, 0, 891, + 0, 895, 939, 943, 0, 947, 0, 949, 0, 0, + 471, 381, 0, 386, 387, 383, 370, 377, 369, 379, + 374, 375, 394, 762, 1133, 1130, 1131, 218, 0, 570, + 73, 78, 79, 80, 74, 72, 577, 0, 579, 0, + 0, 405, 54, 0, 0, 0, 0, 0, 0, 724, + 725, 727, 728, 0, 0, 730, 784, 0, 739, 612, + 739, 0, 0, 741, 742, 549, 0, 0, 552, 561, + 0, 0, 0, 257, 258, 0, 0, 0, 270, 266, + 267, 268, 248, 562, 0, 0, 0, 0, 0, 519, + 0, 0, 475, 351, 354, 355, 425, 301, 298, 475, + 245, 246, 433, 0, 0, 491, 508, 0, 0, 492, + 0, 493, 498, 500, 195, 514, 145, 461, 0, 0, + 33, 482, 1004, 875, 876, 877, 0, 857, 869, 869, + 1120, 1061, 1062, 1063, 1107, 1065, 1111, 1111, 1107, 1107, + 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 0, + 0, 1084, 1107, 1109, 1109, 1107, 1104, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, - 1113, 1113, 1116, 1113, 877, 0, 896, 879, 880, 883, - 881, 0, 0, 0, 895, 884, 885, 871, 999, 1025, - 0, 1032, 1028, 832, 840, 850, 0, 0, 859, 1106, - 1110, 862, 1106, 1108, 1106, 868, 868, 0, 0, 0, - 0, 882, 0, 461, 381, 0, 367, 74, 69, 577, - 55, 0, 406, 0, 403, 0, 0, 0, 544, 425, - -2, 0, -2, 728, 784, 750, 750, 739, 750, 750, - 611, 0, 559, 550, 0, 563, 564, 0, 258, 259, - 0, 262, 268, 0, 617, 618, 716, 717, 619, 0, - 474, 474, -2, 347, 352, 0, 301, 427, 196, 197, - 508, 0, 501, 471, 473, 841, 857, 869, 870, 858, - 1122, 1120, 1121, 1063, 1107, 0, 1088, 0, 1089, 1090, - 1091, 0, 0, 1084, 1085, 0, 1086, 1087, 1079, 0, - 1080, 1081, 0, 1082, 893, 898, 899, 0, 1029, 855, - 842, 860, 861, 863, 864, 865, 866, 867, 843, 891, - 0, 943, 947, 901, 387, 24, 49, 0, 626, 0, - 408, 0, 405, 0, 399, 401, 63, 0, 631, -2, - 670, 1127, 1127, 0, 1127, 1127, 1127, 1127, 0, 0, - 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, - 1127, 1127, 1127, 1127, 0, 725, 752, -2, 764, 766, - 0, 0, 769, 770, 0, 0, 0, 0, 806, 776, - 0, 0, 1047, 1048, 0, 782, 0, 742, 751, 0, - 751, 0, 0, 750, 0, 0, 0, 255, 260, 0, - 263, 264, 0, 599, 1106, 0, 623, 55, 432, 348, - 193, 0, 1059, 1123, 0, 0, 0, 1104, 0, 0, - 0, 0, 900, 0, 47, 51, 56, 57, 0, 0, - 0, 0, 0, 397, 0, 407, 54, 0, 0, 622, - 0, 620, 672, 0, 0, 1127, 1127, 0, 0, 0, - 0, 1127, 1127, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 765, 767, - 768, 771, 772, 773, 811, 812, 813, 774, 808, 809, - 810, 775, 0, 0, 1045, 1046, 804, 0, 0, 0, - 0, 0, 0, 0, 736, 552, 0, 554, 261, 592, - 0, 438, 0, 624, 427, 509, 1112, 1111, 1101, 0, - 1102, 1109, 1114, 0, 1117, 0, 892, 34, 0, 53, - 0, 58, 0, 0, 0, 0, 0, 0, 0, 545, - 666, 671, 673, 674, 0, 0, 677, 678, 679, 680, - 0, 0, 683, 684, 685, 686, 687, 688, 689, 690, - 691, 692, 708, 709, 710, 711, 712, 713, 693, 694, - 695, 696, 697, 698, 705, 0, 0, 702, 0, 0, - 0, 799, 0, 0, 743, 745, 746, 747, 748, 749, - 744, 0, 0, 0, 0, 735, 737, 779, 0, 553, - 591, 600, 601, 438, 346, 1105, 0, 0, 25, 0, - 0, 50, 0, 59, 0, 61, 62, 0, 0, 410, - 400, 655, 0, 0, 661, 0, 667, 675, 676, 681, - 682, 699, 0, 0, 701, 0, 0, 807, 0, 786, - 800, 0, 0, 592, 592, 592, 592, 0, 780, 593, - 1127, 0, 0, 597, 598, 602, 1115, 1118, 628, 0, - 35, 0, 37, 39, 40, 753, 48, 52, 60, 627, - 409, 0, 633, 0, 0, 0, 0, 0, 664, 0, - 706, 707, 700, 703, 704, 777, 785, 787, 788, 789, - 0, 801, 802, 803, 805, 730, 731, 732, 733, 0, - 0, 595, 0, 26, 27, 0, 36, 0, 0, 411, - 635, 0, 656, 0, 0, 0, 0, 0, 0, 0, - 778, 790, 0, 791, 0, 0, 0, 734, 594, 596, - 0, 0, 38, 754, 632, 0, 666, 657, 0, 659, - 0, 0, 0, 0, 792, 794, 795, 0, 0, 793, - 28, 29, 30, 0, 0, 637, 0, 653, 658, 660, - 0, 665, 663, 796, 798, 797, 755, 636, 0, 649, - 634, 0, 662, 638, -2, 0, 654, 639, -2, 0, - 647, 0, 0, 640, 648, 0, 643, 0, 0, 0, - 642, 0, -2, 650, 0, 0, 644, -2, 0, 652, - 651, + 1079, 1114, 1114, 1117, 1114, 878, 0, 897, 880, 881, + 884, 882, 0, 0, 0, 896, 885, 886, 872, 1000, + 1026, 0, 1033, 1029, 833, 841, 851, 0, 0, 860, + 1107, 1111, 863, 1107, 1109, 1107, 869, 869, 0, 0, + 0, 0, 883, 0, 462, 382, 0, 368, 75, 70, + 578, 56, 0, 407, 0, 404, 0, 0, 0, 545, + 426, -2, 0, -2, 729, 785, 751, 751, 740, 751, + 751, 612, 0, 560, 551, 0, 564, 565, 0, 259, + 260, 0, 263, 269, 0, 618, 619, 717, 718, 620, + 0, 475, 475, -2, 348, 353, 0, 302, 428, 197, + 198, 509, 0, 502, 472, 474, 842, 858, 870, 871, + 859, 1123, 1121, 1122, 1064, 1108, 0, 1089, 0, 1090, + 1091, 1092, 0, 0, 1085, 1086, 0, 1087, 1088, 1080, + 0, 1081, 1082, 0, 1083, 894, 899, 900, 0, 1030, + 856, 843, 861, 862, 864, 865, 866, 867, 868, 844, + 892, 0, 944, 948, 902, 388, 24, 50, 0, 627, + 0, 409, 0, 406, 0, 400, 402, 64, 0, 632, + -2, 671, 1128, 1128, 0, 1128, 1128, 1128, 1128, 0, + 0, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, + 1128, 1128, 1128, 1128, 1128, 0, 726, 753, -2, 765, + 767, 0, 0, 770, 771, 0, 0, 0, 0, 807, + 777, 0, 0, 1048, 1049, 0, 783, 0, 743, 752, + 0, 752, 0, 0, 751, 0, 0, 0, 256, 261, + 0, 264, 265, 0, 600, 1107, 0, 624, 56, 433, + 349, 194, 0, 1060, 1124, 0, 0, 0, 1105, 0, + 0, 0, 0, 901, 0, 47, 52, 57, 58, 0, + 0, 0, 0, 0, 398, 0, 408, 55, 0, 0, + 623, 0, 621, 673, 0, 0, 1128, 1128, 0, 0, + 0, 0, 1128, 1128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 766, + 768, 769, 772, 773, 774, 812, 813, 814, 775, 809, + 810, 811, 776, 0, 0, 1046, 1047, 805, 0, 0, + 0, 0, 0, 0, 0, 737, 553, 0, 555, 262, + 593, 0, 439, 0, 625, 428, 510, 1113, 1112, 1102, + 0, 1103, 1110, 1115, 0, 1118, 0, 893, 34, 0, + 54, 0, 59, 0, 0, 0, 0, 0, 0, 0, + 546, 667, 672, 674, 675, 0, 0, 678, 679, 680, + 681, 0, 0, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 709, 710, 711, 712, 713, 714, 694, + 695, 696, 697, 698, 699, 706, 0, 0, 703, 0, + 0, 0, 800, 0, 0, 744, 746, 747, 748, 749, + 750, 745, 0, 0, 0, 0, 736, 738, 780, 0, + 554, 592, 601, 602, 439, 347, 1106, 0, 0, 25, + 0, 0, 51, 0, 60, 0, 62, 63, 0, 0, + 411, 401, 656, 0, 0, 662, 0, 668, 676, 677, + 682, 683, 700, 0, 0, 702, 0, 0, 808, 0, + 787, 801, 0, 0, 593, 593, 593, 593, 0, 781, + 594, 1128, 0, 0, 598, 599, 603, 1116, 1119, 629, + 0, 35, 0, 37, 39, 40, 754, 48, 49, 53, + 61, 628, 410, 0, 634, 0, 0, 0, 0, 0, + 665, 0, 707, 708, 701, 704, 705, 778, 786, 788, + 789, 790, 0, 802, 803, 804, 806, 731, 732, 733, + 734, 0, 0, 596, 0, 26, 27, 0, 36, 0, + 0, 412, 636, 0, 657, 0, 0, 0, 0, 0, + 0, 0, 779, 791, 0, 792, 0, 0, 0, 735, + 595, 597, 0, 0, 38, 755, 633, 0, 667, 658, + 0, 660, 0, 0, 0, 0, 793, 795, 796, 0, + 0, 794, 28, 29, 30, 0, 0, 638, 0, 654, + 659, 661, 0, 666, 664, 797, 799, 798, 756, 637, + 0, 650, 635, 0, 663, 639, -2, 0, 655, 640, + -2, 0, 648, 0, 0, 641, 649, 0, 644, 0, + 0, 0, 643, 0, -2, 651, 0, 0, 645, -2, + 0, 653, 652, } var yyTok1 = [...]int{ @@ -5016,14 +5022,14 @@ var yyTok1 = [...]int{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 87, 3, 3, 3, 115, 107, 3, 58, 60, 112, 110, 59, 111, 124, 113, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 481, - 95, 94, 96, 3, 482, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 482, + 95, 94, 96, 3, 483, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 117, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 483, 106, 484, 118, + 3, 3, 3, 484, 106, 485, 118, } var yyTok2 = [...]int{ @@ -5097,7 +5103,7 @@ var yyTok3 = [...]int{ 57790, 465, 57791, 466, 57792, 467, 57793, 468, 57794, 469, 57795, 470, 57796, 471, 57797, 472, 57798, 473, 57799, 474, 57800, 475, 57801, 476, 57802, 477, 57803, 478, 57804, 479, - 57805, 480, 0, + 57805, 480, 57806, 481, 0, } var yyErrorMessages = [...]struct { @@ -5732,17 +5738,25 @@ yydefault: } yyVAL.union = yyLOCAL case 49: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL int64 +//line mysql_sql.y:758 + { + yyLOCAL = yyDollar[2].item.(int64) + } + yyVAL.union = yyLOCAL + case 50: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Lines -//line mysql_sql.y:759 +//line mysql_sql.y:763 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 50: + case 51: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Lines -//line mysql_sql.y:763 +//line mysql_sql.y:767 { yyLOCAL = &tree.Lines{ StartingBy: yyDollar[2].str, @@ -5750,42 +5764,42 @@ yydefault: } } yyVAL.union = yyLOCAL - case 51: + case 52: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:771 +//line mysql_sql.y:775 { yyVAL.str = "" } - case 52: + case 53: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:775 +//line mysql_sql.y:779 { yyVAL.str = yyDollar[3].str } - case 53: + case 54: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:780 +//line mysql_sql.y:784 { yyVAL.str = "\n" } - case 54: + case 55: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:784 +//line mysql_sql.y:788 { yyVAL.str = yyDollar[3].str } - case 55: + case 56: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:789 +//line mysql_sql.y:793 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 56: + case 57: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:793 +//line mysql_sql.y:797 { res := &tree.Fields{ Terminated: "\t", @@ -5808,36 +5822,36 @@ yydefault: yyLOCAL = res } yyVAL.union = yyLOCAL - case 57: + case 58: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.Fields -//line mysql_sql.y:817 +//line mysql_sql.y:821 { yyLOCAL = []*tree.Fields{yyDollar[1].fieldsUnion()} } yyVAL.union = yyLOCAL - case 58: + case 59: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []*tree.Fields -//line mysql_sql.y:821 +//line mysql_sql.y:825 { yyLOCAL = append(yyDollar[1].fieldsListUnion(), yyDollar[2].fieldsUnion()) } yyVAL.union = yyLOCAL - case 59: + case 60: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:827 +//line mysql_sql.y:831 { yyLOCAL = &tree.Fields{ Terminated: yyDollar[3].str, } } yyVAL.union = yyLOCAL - case 60: + case 61: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:833 +//line mysql_sql.y:837 { str := yyDollar[4].str if str != "\\" && len(str) > 1 { @@ -5856,10 +5870,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 61: + case 62: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:851 +//line mysql_sql.y:855 { str := yyDollar[3].str if str != "\\" && len(str) > 1 { @@ -5877,10 +5891,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 62: + case 63: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:868 +//line mysql_sql.y:872 { str := yyDollar[3].str if str != "\\" && len(str) > 1 { @@ -5898,50 +5912,50 @@ yydefault: } } yyVAL.union = yyLOCAL - case 64: + case 65: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.DuplicateKey -//line mysql_sql.y:891 +//line mysql_sql.y:895 { yyLOCAL = &tree.DuplicateKeyError{} } yyVAL.union = yyLOCAL - case 65: + case 66: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.DuplicateKey -//line mysql_sql.y:895 +//line mysql_sql.y:899 { yyLOCAL = &tree.DuplicateKeyIgnore{} } yyVAL.union = yyLOCAL - case 66: + case 67: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.DuplicateKey -//line mysql_sql.y:899 +//line mysql_sql.y:903 { yyLOCAL = &tree.DuplicateKeyReplace{} } yyVAL.union = yyLOCAL - case 67: + case 68: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:904 +//line mysql_sql.y:908 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 68: + case 69: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:908 +//line mysql_sql.y:912 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 69: + case 70: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:914 +//line mysql_sql.y:918 { yyLOCAL = &tree.Grant{ Typ: tree.GrantTypePrivilege, @@ -5955,10 +5969,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 70: + case 71: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:927 +//line mysql_sql.y:931 { yyLOCAL = &tree.Grant{ Typ: tree.GrantTypeRole, @@ -5970,10 +5984,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 71: + case 72: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:938 +//line mysql_sql.y:942 { yyLOCAL = &tree.Grant{ Typ: tree.GrantTypeProxy, @@ -5986,26 +6000,26 @@ yydefault: } yyVAL.union = yyLOCAL - case 72: + case 73: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:951 +//line mysql_sql.y:955 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 73: + case 74: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:955 +//line mysql_sql.y:959 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 74: + case 75: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:965 +//line mysql_sql.y:969 { yyLOCAL = &tree.Revoke{ Typ: tree.RevokeTypePrivilege, @@ -6019,10 +6033,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 75: + case 76: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:978 +//line mysql_sql.y:982 { yyLOCAL = &tree.Revoke{ Typ: tree.RevokeTypeRole, @@ -6034,30 +6048,30 @@ yydefault: } } yyVAL.union = yyLOCAL - case 76: + case 77: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.PrivilegeLevel -//line mysql_sql.y:991 +//line mysql_sql.y:995 { yyLOCAL = &tree.PrivilegeLevel{ Level: tree.PRIVILEGE_LEVEL_TYPE_STAR, } } yyVAL.union = yyLOCAL - case 77: + case 78: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.PrivilegeLevel -//line mysql_sql.y:997 +//line mysql_sql.y:1001 { yyLOCAL = &tree.PrivilegeLevel{ Level: tree.PRIVILEGE_LEVEL_TYPE_STAR_STAR, } } yyVAL.union = yyLOCAL - case 78: + case 79: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.PrivilegeLevel -//line mysql_sql.y:1003 +//line mysql_sql.y:1007 { yyLOCAL = &tree.PrivilegeLevel{ Level: tree.PRIVILEGE_LEVEL_TYPE_DATABASE_STAR, @@ -6065,10 +6079,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 79: + case 80: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.PrivilegeLevel -//line mysql_sql.y:1010 +//line mysql_sql.y:1014 { yyLOCAL = &tree.PrivilegeLevel{ Level: tree.PRIVILEGE_LEVEL_TYPE_DATABASE_TABLE, @@ -6077,10 +6091,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 80: + case 81: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.PrivilegeLevel -//line mysql_sql.y:1018 +//line mysql_sql.y:1022 { yyLOCAL = &tree.PrivilegeLevel{ Level: tree.PRIVILEGE_LEVEL_TYPE_TABLE, @@ -6088,74 +6102,74 @@ yydefault: } } yyVAL.union = yyLOCAL - case 81: + case 82: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.ObjectType -//line mysql_sql.y:1026 +//line mysql_sql.y:1030 { yyLOCAL = tree.OBJECT_TYPE_NONE } yyVAL.union = yyLOCAL - case 82: + case 83: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ObjectType -//line mysql_sql.y:1030 +//line mysql_sql.y:1034 { yyLOCAL = tree.OBJECT_TYPE_TABLE } yyVAL.union = yyLOCAL - case 83: + case 84: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ObjectType -//line mysql_sql.y:1034 +//line mysql_sql.y:1038 { yyLOCAL = tree.OBJECT_TYPE_DATABASE } yyVAL.union = yyLOCAL - case 84: + case 85: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ObjectType -//line mysql_sql.y:1038 +//line mysql_sql.y:1042 { yyLOCAL = tree.OBJECT_TYPE_FUNCTION } yyVAL.union = yyLOCAL - case 85: + case 86: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ObjectType -//line mysql_sql.y:1042 +//line mysql_sql.y:1046 { yyLOCAL = tree.OBJECT_TYPE_PROCEDURE } yyVAL.union = yyLOCAL - case 86: + case 87: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ObjectType -//line mysql_sql.y:1046 +//line mysql_sql.y:1050 { yyLOCAL = tree.OBJECT_TYPE_VIEW } yyVAL.union = yyLOCAL - case 87: + case 88: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.Privilege -//line mysql_sql.y:1052 +//line mysql_sql.y:1056 { yyLOCAL = []*tree.Privilege{yyDollar[1].privilegeUnion()} } yyVAL.union = yyLOCAL - case 88: + case 89: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Privilege -//line mysql_sql.y:1056 +//line mysql_sql.y:1060 { yyLOCAL = append(yyDollar[1].privilegesUnion(), yyDollar[3].privilegeUnion()) } yyVAL.union = yyLOCAL - case 89: + case 90: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Privilege -//line mysql_sql.y:1062 +//line mysql_sql.y:1066 { yyLOCAL = &tree.Privilege{ Type: yyDollar[1].privilegeTypeUnion(), @@ -6163,10 +6177,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 90: + case 91: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Privilege -//line mysql_sql.y:1069 +//line mysql_sql.y:1073 { yyLOCAL = &tree.Privilege{ Type: yyDollar[1].privilegeTypeUnion(), @@ -6174,32 +6188,24 @@ yydefault: } } yyVAL.union = yyLOCAL - case 91: + case 92: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.UnresolvedName -//line mysql_sql.y:1078 +//line mysql_sql.y:1082 { yyLOCAL = []*tree.UnresolvedName{yyDollar[1].unresolvedNameUnion()} } yyVAL.union = yyLOCAL - case 92: + case 93: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.UnresolvedName -//line mysql_sql.y:1082 +//line mysql_sql.y:1086 { yyLOCAL = append(yyDollar[1].unresolveNamesUnion(), yyDollar[3].unresolvedNameUnion()) } yyVAL.union = yyLOCAL - case 93: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL tree.PrivilegeType -//line mysql_sql.y:1088 - { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_ALL - } - yyVAL.union = yyLOCAL case 94: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1092 { @@ -6207,11 +6213,11 @@ yydefault: } yyVAL.union = yyLOCAL case 95: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1096 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_ALTER + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_ALL } yyVAL.union = yyLOCAL case 96: @@ -6219,15 +6225,15 @@ yydefault: var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1100 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_ALTER } yyVAL.union = yyLOCAL case 97: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1104 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_USER + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE } yyVAL.union = yyLOCAL case 98: @@ -6235,15 +6241,15 @@ yydefault: var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1108 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_TABLESPACE + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_USER } yyVAL.union = yyLOCAL case 99: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1112 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_TRIGGER + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_TABLESPACE } yyVAL.union = yyLOCAL case 100: @@ -6251,7 +6257,7 @@ yydefault: var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1116 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_DELETE + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_TRIGGER } yyVAL.union = yyLOCAL case 101: @@ -6259,7 +6265,7 @@ yydefault: var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1120 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_DROP + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_DELETE } yyVAL.union = yyLOCAL case 102: @@ -6267,7 +6273,7 @@ yydefault: var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1124 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_EXECUTE + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_DROP } yyVAL.union = yyLOCAL case 103: @@ -6275,7 +6281,7 @@ yydefault: var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1128 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_INDEX + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_EXECUTE } yyVAL.union = yyLOCAL case 104: @@ -6283,7 +6289,7 @@ yydefault: var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1132 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_INSERT + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_INDEX } yyVAL.union = yyLOCAL case 105: @@ -6291,7 +6297,7 @@ yydefault: var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1136 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_SELECT + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_INSERT } yyVAL.union = yyLOCAL case 106: @@ -6299,47 +6305,47 @@ yydefault: var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1140 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_SUPER + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_SELECT } yyVAL.union = yyLOCAL case 107: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1144 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_SHOW_DATABASES + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_SUPER } yyVAL.union = yyLOCAL case 108: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1148 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_UPDATE + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_SHOW_DATABASES } yyVAL.union = yyLOCAL case 109: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1152 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_GRANT_OPTION + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_UPDATE } yyVAL.union = yyLOCAL case 110: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1156 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_REFERENCES + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_GRANT_OPTION } yyVAL.union = yyLOCAL case 111: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1160 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_REPLICATION_SLAVE + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_REFERENCES } yyVAL.union = yyLOCAL case 112: @@ -6347,15 +6353,15 @@ yydefault: var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1164 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_REPLICATION_CLIENT + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_REPLICATION_SLAVE } yyVAL.union = yyLOCAL case 113: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1168 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_USAGE + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_REPLICATION_CLIENT } yyVAL.union = yyLOCAL case 114: @@ -6363,7 +6369,7 @@ yydefault: var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1172 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_RELOAD + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_USAGE } yyVAL.union = yyLOCAL case 115: @@ -6371,23 +6377,23 @@ yydefault: var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1176 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_FILE + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_RELOAD } yyVAL.union = yyLOCAL case 116: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1180 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_TEMPORARY_TABLES + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_FILE } yyVAL.union = yyLOCAL case 117: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1184 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_LOCK_TABLES + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_TEMPORARY_TABLES } yyVAL.union = yyLOCAL case 118: @@ -6395,7 +6401,7 @@ yydefault: var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1188 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_VIEW + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_LOCK_TABLES } yyVAL.union = yyLOCAL case 119: @@ -6403,7 +6409,7 @@ yydefault: var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1192 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_SHOW_VIEW + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_VIEW } yyVAL.union = yyLOCAL case 120: @@ -6411,7 +6417,7 @@ yydefault: var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1196 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_ROLE + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_SHOW_VIEW } yyVAL.union = yyLOCAL case 121: @@ -6419,7 +6425,7 @@ yydefault: var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1200 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_DROP_ROLE + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_ROLE } yyVAL.union = yyLOCAL case 122: @@ -6427,7 +6433,7 @@ yydefault: var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1204 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_ROUTINE + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_DROP_ROLE } yyVAL.union = yyLOCAL case 123: @@ -6435,157 +6441,165 @@ yydefault: var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1208 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_ALTER_ROUTINE + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_CREATE_ROUTINE } yyVAL.union = yyLOCAL case 124: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1212 { - yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_EVENT + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_ALTER_ROUTINE } yyVAL.union = yyLOCAL case 125: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.PrivilegeType //line mysql_sql.y:1216 + { + yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_EVENT + } + yyVAL.union = yyLOCAL + case 126: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL tree.PrivilegeType +//line mysql_sql.y:1220 { yyLOCAL = tree.PRIVILEGE_TYPE_STATIC_SHUTDOWN } yyVAL.union = yyLOCAL - case 130: + case 131: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1228 +//line mysql_sql.y:1232 { yyLOCAL = yyDollar[3].setRoleUnion() } yyVAL.union = yyLOCAL - case 131: + case 132: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1234 +//line mysql_sql.y:1238 { dr := yyDollar[4].setDefaultRoleUnion() dr.Users = yyDollar[6].usersUnion() yyLOCAL = dr } yyVAL.union = yyLOCAL - case 132: + case 133: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.SetRole -//line mysql_sql.y:1242 +//line mysql_sql.y:1246 { yyLOCAL = &tree.SetRole{Type: tree.SET_ROLE_TYPE_ALL_EXCEPT, Roles: yyDollar[3].rolesUnion()} } yyVAL.union = yyLOCAL - case 133: + case 134: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.SetRole -//line mysql_sql.y:1246 +//line mysql_sql.y:1250 { yyLOCAL = &tree.SetRole{Type: tree.SET_ROLE_TYPE_DEFAULT, Roles: nil} } yyVAL.union = yyLOCAL - case 134: + case 135: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.SetRole -//line mysql_sql.y:1250 +//line mysql_sql.y:1254 { yyLOCAL = &tree.SetRole{Type: tree.SET_ROLE_TYPE_NONE, Roles: nil} } yyVAL.union = yyLOCAL - case 135: + case 136: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.SetRole -//line mysql_sql.y:1254 +//line mysql_sql.y:1258 { yyLOCAL = &tree.SetRole{Type: tree.SET_ROLE_TYPE_ALL, Roles: nil} } yyVAL.union = yyLOCAL - case 136: + case 137: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.SetRole -//line mysql_sql.y:1258 +//line mysql_sql.y:1262 { yyLOCAL = &tree.SetRole{Type: tree.SET_ROLE_TYPE_NORMAL, Roles: yyDollar[1].rolesUnion()} } yyVAL.union = yyLOCAL - case 137: + case 138: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.SetDefaultRole -//line mysql_sql.y:1264 +//line mysql_sql.y:1268 { yyLOCAL = &tree.SetDefaultRole{Type: tree.SET_DEFAULT_ROLE_TYPE_NONE, Roles: nil} } yyVAL.union = yyLOCAL - case 138: + case 139: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.SetDefaultRole -//line mysql_sql.y:1268 +//line mysql_sql.y:1272 { yyLOCAL = &tree.SetDefaultRole{Type: tree.SET_DEFAULT_ROLE_TYPE_ALL, Roles: nil} } yyVAL.union = yyLOCAL - case 139: + case 140: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.SetDefaultRole -//line mysql_sql.y:1272 +//line mysql_sql.y:1276 { yyLOCAL = &tree.SetDefaultRole{Type: tree.SET_DEFAULT_ROLE_TYPE_NORMAL, Roles: yyDollar[1].rolesUnion()} } yyVAL.union = yyLOCAL - case 140: + case 141: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1278 +//line mysql_sql.y:1282 { yyLOCAL = &tree.SetVar{Assignments: yyDollar[2].varAssignmentExprsUnion()} } yyVAL.union = yyLOCAL - case 141: + case 142: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1284 +//line mysql_sql.y:1288 { yyLOCAL = &tree.SetPassword{Password: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 142: + case 143: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1288 +//line mysql_sql.y:1292 { yyLOCAL = &tree.SetPassword{User: yyDollar[4].userUnion(), Password: yyDollar[6].str} } yyVAL.union = yyLOCAL - case 144: + case 145: yyDollar = yyS[yypt-4 : yypt+1] -//line mysql_sql.y:1295 +//line mysql_sql.y:1299 { yyVAL.str = yyDollar[3].str } - case 145: + case 146: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.VarAssignmentExpr -//line mysql_sql.y:1301 +//line mysql_sql.y:1305 { yyLOCAL = []*tree.VarAssignmentExpr{yyDollar[1].varAssignmentExprUnion()} } yyVAL.union = yyLOCAL - case 146: + case 147: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.VarAssignmentExpr -//line mysql_sql.y:1305 +//line mysql_sql.y:1309 { yyLOCAL = append(yyDollar[1].varAssignmentExprsUnion(), yyDollar[3].varAssignmentExprUnion()) } yyVAL.union = yyLOCAL - case 147: + case 148: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:1311 +//line mysql_sql.y:1315 { yyLOCAL = &tree.VarAssignmentExpr{ System: true, @@ -6594,10 +6608,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 148: + case 149: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:1319 +//line mysql_sql.y:1323 { yyLOCAL = &tree.VarAssignmentExpr{ System: true, @@ -6607,10 +6621,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 149: + case 150: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:1328 +//line mysql_sql.y:1332 { yyLOCAL = &tree.VarAssignmentExpr{ System: true, @@ -6619,10 +6633,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 150: + case 151: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:1336 +//line mysql_sql.y:1340 { yyLOCAL = &tree.VarAssignmentExpr{ System: true, @@ -6631,10 +6645,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 151: + case 152: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:1344 +//line mysql_sql.y:1348 { vs := strings.Split(yyDollar[1].str, ".") var isGlobal bool @@ -6658,10 +6672,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 152: + case 153: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:1367 +//line mysql_sql.y:1371 { vs := strings.Split(yyDollar[1].str, ".") var isGlobal bool @@ -6685,10 +6699,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 153: + case 154: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:1390 +//line mysql_sql.y:1394 { yyLOCAL = &tree.VarAssignmentExpr{ Name: yyDollar[1].str, @@ -6696,10 +6710,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 154: + case 155: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:1397 +//line mysql_sql.y:1401 { yyLOCAL = &tree.VarAssignmentExpr{ Name: yyDollar[1].str, @@ -6707,10 +6721,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 155: + case 156: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:1404 +//line mysql_sql.y:1408 { yyLOCAL = &tree.VarAssignmentExpr{ Name: yyDollar[1].str, @@ -6719,10 +6733,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 156: + case 157: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:1412 +//line mysql_sql.y:1416 { yyLOCAL = &tree.VarAssignmentExpr{ Name: yyDollar[1].str, @@ -6730,10 +6744,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 157: + case 158: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:1419 +//line mysql_sql.y:1423 { yyLOCAL = &tree.VarAssignmentExpr{ Name: yyDollar[1].str, @@ -6741,10 +6755,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 158: + case 159: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.VarAssignmentExpr -//line mysql_sql.y:1426 +//line mysql_sql.y:1430 { yyLOCAL = &tree.VarAssignmentExpr{ Name: yyDollar[1].str, @@ -6752,74 +6766,66 @@ yydefault: } } yyVAL.union = yyLOCAL - case 159: + case 160: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:1435 +//line mysql_sql.y:1439 { yyLOCAL = tree.NewNumValWithType(constant.MakeString(yyDollar[1].str), yyDollar[1].str, false, tree.P_char) } yyVAL.union = yyLOCAL - case 160: + case 161: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:1439 +//line mysql_sql.y:1443 { yyLOCAL = tree.NewNumValWithType(constant.MakeString(yyDollar[1].str), yyDollar[1].str, false, tree.P_char) } yyVAL.union = yyLOCAL - case 161: + case 162: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:1443 +//line mysql_sql.y:1447 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 162: + case 163: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:1449 +//line mysql_sql.y:1453 { yyVAL.str = string(yyDollar[1].str) } - case 163: + case 164: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:1453 +//line mysql_sql.y:1457 { yyVAL.str = yyDollar[1].str } - case 165: + case 166: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:1460 +//line mysql_sql.y:1464 { yyVAL.str = yyDollar[1].str + "." + yyDollar[3].str } - case 169: + case 170: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1471 +//line mysql_sql.y:1475 { yyLOCAL = &tree.RollbackTransaction{Type: yyDollar[2].completionTypeUnion()} } yyVAL.union = yyLOCAL - case 170: + case 171: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1477 +//line mysql_sql.y:1481 { yyLOCAL = &tree.CommitTransaction{Type: yyDollar[2].completionTypeUnion()} } yyVAL.union = yyLOCAL - case 171: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL tree.CompletionType -//line mysql_sql.y:1482 - { - yyLOCAL = tree.COMPLETION_TYPE_NO_CHAIN - } - yyVAL.union = yyLOCAL case 172: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.CompletionType //line mysql_sql.y:1486 { @@ -6827,15 +6833,15 @@ yydefault: } yyVAL.union = yyLOCAL case 173: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.CompletionType //line mysql_sql.y:1490 { - yyLOCAL = tree.COMPLETION_TYPE_CHAIN + yyLOCAL = tree.COMPLETION_TYPE_NO_CHAIN } yyVAL.union = yyLOCAL case 174: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CompletionType //line mysql_sql.y:1494 { @@ -6843,15 +6849,15 @@ yydefault: } yyVAL.union = yyLOCAL case 175: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.CompletionType //line mysql_sql.y:1498 { - yyLOCAL = tree.COMPLETION_TYPE_RELEASE + yyLOCAL = tree.COMPLETION_TYPE_CHAIN } yyVAL.union = yyLOCAL case 176: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CompletionType //line mysql_sql.y:1502 { @@ -6859,15 +6865,15 @@ yydefault: } yyVAL.union = yyLOCAL case 177: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.CompletionType //line mysql_sql.y:1506 { - yyLOCAL = tree.COMPLETION_TYPE_NO_CHAIN + yyLOCAL = tree.COMPLETION_TYPE_RELEASE } yyVAL.union = yyLOCAL case 178: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.CompletionType //line mysql_sql.y:1510 { @@ -6875,7 +6881,7 @@ yydefault: } yyVAL.union = yyLOCAL case 179: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.CompletionType //line mysql_sql.y:1514 { @@ -6883,15 +6889,15 @@ yydefault: } yyVAL.union = yyLOCAL case 180: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL tree.Statement -//line mysql_sql.y:1520 + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL tree.CompletionType +//line mysql_sql.y:1518 { - yyLOCAL = &tree.BeginTransaction{} + yyLOCAL = tree.COMPLETION_TYPE_NO_CHAIN } yyVAL.union = yyLOCAL case 181: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Statement //line mysql_sql.y:1524 { @@ -6907,35 +6913,43 @@ yydefault: } yyVAL.union = yyLOCAL case 183: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement //line mysql_sql.y:1532 + { + yyLOCAL = &tree.BeginTransaction{} + } + yyVAL.union = yyLOCAL + case 184: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL tree.Statement +//line mysql_sql.y:1536 { m := tree.MakeTransactionModes(tree.READ_WRITE_MODE_READ_WRITE) yyLOCAL = &tree.BeginTransaction{Modes: m} } yyVAL.union = yyLOCAL - case 184: + case 185: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1537 +//line mysql_sql.y:1541 { m := tree.MakeTransactionModes(tree.READ_WRITE_MODE_READ_ONLY) yyLOCAL = &tree.BeginTransaction{Modes: m} } yyVAL.union = yyLOCAL - case 185: + case 186: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1542 +//line mysql_sql.y:1546 { yyLOCAL = &tree.BeginTransaction{} } yyVAL.union = yyLOCAL - case 186: + case 187: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1548 +//line mysql_sql.y:1552 { yyLOCAL = &tree.Use{ SecondaryRole: false, @@ -6943,20 +6957,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 187: + case 188: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1555 +//line mysql_sql.y:1559 { yyLOCAL = &tree.Use{ SecondaryRole: false, } } yyVAL.union = yyLOCAL - case 188: + case 189: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1561 +//line mysql_sql.y:1565 { yyLOCAL = &tree.Use{ SecondaryRole: false, @@ -6964,10 +6978,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 189: + case 190: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1568 +//line mysql_sql.y:1572 { yyLOCAL = &tree.Use{ SecondaryRole: true, @@ -6975,10 +6989,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 190: + case 191: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1575 +//line mysql_sql.y:1579 { yyLOCAL = &tree.Use{ SecondaryRole: true, @@ -6986,19 +7000,19 @@ yydefault: } } yyVAL.union = yyLOCAL - case 192: + case 193: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1585 +//line mysql_sql.y:1589 { yyDollar[2].statementUnion().(*tree.Update).With = yyDollar[1].withClauseUnion() yyLOCAL = yyDollar[2].statementUnion() } yyVAL.union = yyLOCAL - case 193: + case 194: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1592 +//line mysql_sql.y:1596 { // Single-table syntax yyLOCAL = &tree.Update{ @@ -7010,10 +7024,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 194: + case 195: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1603 +//line mysql_sql.y:1607 { // Multiple-table syntax yyLOCAL = &tree.Update{ @@ -7023,130 +7037,130 @@ yydefault: } } yyVAL.union = yyLOCAL - case 195: + case 196: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.UpdateExprs -//line mysql_sql.y:1614 +//line mysql_sql.y:1618 { yyLOCAL = tree.UpdateExprs{yyDollar[1].updateExprUnion()} } yyVAL.union = yyLOCAL - case 196: + case 197: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.UpdateExprs -//line mysql_sql.y:1618 +//line mysql_sql.y:1622 { yyLOCAL = append(yyDollar[1].updateExprsUnion(), yyDollar[3].updateExprUnion()) } yyVAL.union = yyLOCAL - case 197: + case 198: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UpdateExpr -//line mysql_sql.y:1624 +//line mysql_sql.y:1628 { yyLOCAL = &tree.UpdateExpr{Names: []*tree.UnresolvedName{yyDollar[1].unresolvedNameUnion()}, Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 204: + case 205: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1636 +//line mysql_sql.y:1640 { yyLOCAL = yyDollar[1].selectUnion() } yyVAL.union = yyLOCAL - case 205: + case 206: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1642 +//line mysql_sql.y:1646 { yyLOCAL = tree.NewPrepareStmt(tree.Identifier(yyDollar[2].str), yyDollar[4].statementUnion()) } yyVAL.union = yyLOCAL - case 206: + case 207: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1646 +//line mysql_sql.y:1650 { yyLOCAL = tree.NewPrepareString(tree.Identifier(yyDollar[2].str), yyDollar[4].str) } yyVAL.union = yyLOCAL - case 207: + case 208: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1652 +//line mysql_sql.y:1656 { yyLOCAL = tree.NewExecute(tree.Identifier(yyDollar[2].str)) } yyVAL.union = yyLOCAL - case 208: + case 209: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1656 +//line mysql_sql.y:1660 { yyLOCAL = tree.NewExecuteWithVariables(tree.Identifier(yyDollar[2].str), yyDollar[4].varExprsUnion()) } yyVAL.union = yyLOCAL - case 209: + case 210: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1662 +//line mysql_sql.y:1666 { yyLOCAL = tree.NewDeallocate(tree.Identifier(yyDollar[3].str), false) } yyVAL.union = yyLOCAL - case 213: + case 214: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1671 +//line mysql_sql.y:1675 { yyLOCAL = yyDollar[1].selectUnion() } yyVAL.union = yyLOCAL - case 214: + case 215: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1677 +//line mysql_sql.y:1681 { yyLOCAL = &tree.ShowColumns{Table: yyDollar[2].unresolvedObjectNameUnion()} } yyVAL.union = yyLOCAL - case 215: + case 216: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1681 +//line mysql_sql.y:1685 { yyLOCAL = &tree.ShowColumns{Table: yyDollar[2].unresolvedObjectNameUnion(), ColName: yyDollar[3].unresolvedNameUnion()} } yyVAL.union = yyLOCAL - case 216: + case 217: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1685 +//line mysql_sql.y:1689 { yyLOCAL = tree.NewExplainFor("", uint64(yyDollar[4].item.(int64))) } yyVAL.union = yyLOCAL - case 217: + case 218: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1689 +//line mysql_sql.y:1693 { yyLOCAL = tree.NewExplainFor(yyDollar[4].str, uint64(yyDollar[7].item.(int64))) } yyVAL.union = yyLOCAL - case 218: + case 219: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1693 +//line mysql_sql.y:1697 { yyLOCAL = tree.NewExplainStmt(yyDollar[2].statementUnion(), "text") } yyVAL.union = yyLOCAL - case 219: + case 220: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1697 +//line mysql_sql.y:1701 { explainStmt := tree.NewExplainStmt(yyDollar[3].statementUnion(), "text") optionElem := tree.MakeOptionElem("verbose", "NULL") @@ -7155,10 +7169,10 @@ yydefault: yyLOCAL = explainStmt } yyVAL.union = yyLOCAL - case 220: + case 221: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1705 +//line mysql_sql.y:1709 { explainStmt := tree.NewExplainStmt(yyDollar[3].statementUnion(), "text") optionElem := tree.MakeOptionElem("analyze", "NULL") @@ -7167,10 +7181,10 @@ yydefault: yyLOCAL = explainStmt } yyVAL.union = yyLOCAL - case 221: + case 222: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1713 +//line mysql_sql.y:1717 { explainStmt := tree.NewExplainStmt(yyDollar[4].statementUnion(), "text") optionElem1 := tree.MakeOptionElem("analyze", "NULL") @@ -7181,76 +7195,76 @@ yydefault: yyLOCAL = explainStmt } yyVAL.union = yyLOCAL - case 222: + case 223: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1723 +//line mysql_sql.y:1727 { explainStmt := tree.NewExplainStmt(yyDollar[5].statementUnion(), "text") explainStmt.Options = yyDollar[3].epxlainOptionsUnion() yyLOCAL = explainStmt } yyVAL.union = yyLOCAL - case 234: + case 235: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.OptionElem -//line mysql_sql.y:1755 +//line mysql_sql.y:1759 { yyLOCAL = tree.MakeOptions(yyDollar[1].epxlainOptionUnion()) } yyVAL.union = yyLOCAL - case 235: + case 236: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.OptionElem -//line mysql_sql.y:1759 +//line mysql_sql.y:1763 { yyLOCAL = append(yyDollar[1].epxlainOptionsUnion(), yyDollar[3].epxlainOptionUnion()) } yyVAL.union = yyLOCAL - case 236: + case 237: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.OptionElem -//line mysql_sql.y:1765 +//line mysql_sql.y:1769 { yyLOCAL = tree.MakeOptionElem(yyDollar[1].str, yyDollar[2].str) } yyVAL.union = yyLOCAL - case 237: + case 238: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:1771 +//line mysql_sql.y:1775 { yyVAL.str = yyDollar[1].str } - case 238: + case 239: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:1776 +//line mysql_sql.y:1780 { yyVAL.str = "true" } - case 239: + case 240: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:1777 +//line mysql_sql.y:1781 { yyVAL.str = "false" } - case 240: + case 241: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:1778 +//line mysql_sql.y:1782 { yyVAL.str = yyDollar[1].str } - case 241: + case 242: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1783 +//line mysql_sql.y:1787 { yyLOCAL = tree.NewAnalyzeStmt(yyDollar[3].tableNameUnion(), yyDollar[5].identifierListUnion()) } yyVAL.union = yyLOCAL - case 244: + case 245: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1794 +//line mysql_sql.y:1798 { yyLOCAL = &tree.AlterAccount{ IfExists: yyDollar[3].boolValUnion(), @@ -7261,10 +7275,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 245: + case 246: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1806 +//line mysql_sql.y:1810 { yyLOCAL = &tree.AlterUser{ IfExists: yyDollar[3].boolValUnion(), @@ -7275,60 +7289,52 @@ yydefault: } } yyVAL.union = yyLOCAL - case 246: + case 247: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Role -//line mysql_sql.y:1817 +//line mysql_sql.y:1821 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 247: + case 248: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Role -//line mysql_sql.y:1821 +//line mysql_sql.y:1825 { yyLOCAL = &tree.Role{UserName: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 248: + case 249: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:1826 +//line mysql_sql.y:1830 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 249: + case 250: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:1830 +//line mysql_sql.y:1834 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 250: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL tree.UserMiscOption -//line mysql_sql.y:1835 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL case 251: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.UserMiscOption //line mysql_sql.y:1839 { - yyLOCAL = yyDollar[1].userMiscOptionUnion() + yyLOCAL = nil } yyVAL.union = yyLOCAL case 252: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.UserMiscOption -//line mysql_sql.y:1855 +//line mysql_sql.y:1843 { - yyLOCAL = &tree.UserMiscOptionAccountUnlock{} + yyLOCAL = yyDollar[1].userMiscOptionUnion() } yyVAL.union = yyLOCAL case 253: @@ -7336,7 +7342,7 @@ yydefault: var yyLOCAL tree.UserMiscOption //line mysql_sql.y:1859 { - yyLOCAL = &tree.UserMiscOptionAccountLock{} + yyLOCAL = &tree.UserMiscOptionAccountUnlock{} } yyVAL.union = yyLOCAL case 254: @@ -7344,23 +7350,23 @@ yydefault: var yyLOCAL tree.UserMiscOption //line mysql_sql.y:1863 { - yyLOCAL = &tree.UserMiscOptionPasswordExpireNone{} + yyLOCAL = &tree.UserMiscOptionAccountLock{} } yyVAL.union = yyLOCAL case 255: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.UserMiscOption //line mysql_sql.y:1867 { - yyLOCAL = &tree.UserMiscOptionPasswordExpireInterval{Value: yyDollar[3].item.(int64)} + yyLOCAL = &tree.UserMiscOptionPasswordExpireNone{} } yyVAL.union = yyLOCAL case 256: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.UserMiscOption //line mysql_sql.y:1871 { - yyLOCAL = &tree.UserMiscOptionPasswordExpireNever{} + yyLOCAL = &tree.UserMiscOptionPasswordExpireInterval{Value: yyDollar[3].item.(int64)} } yyVAL.union = yyLOCAL case 257: @@ -7368,15 +7374,15 @@ yydefault: var yyLOCAL tree.UserMiscOption //line mysql_sql.y:1875 { - yyLOCAL = &tree.UserMiscOptionPasswordExpireDefault{} + yyLOCAL = &tree.UserMiscOptionPasswordExpireNever{} } yyVAL.union = yyLOCAL case 258: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.UserMiscOption //line mysql_sql.y:1879 { - yyLOCAL = &tree.UserMiscOptionPasswordHistoryDefault{} + yyLOCAL = &tree.UserMiscOptionPasswordExpireDefault{} } yyVAL.union = yyLOCAL case 259: @@ -7384,39 +7390,39 @@ yydefault: var yyLOCAL tree.UserMiscOption //line mysql_sql.y:1883 { - yyLOCAL = &tree.UserMiscOptionPasswordHistoryCount{Value: yyDollar[3].item.(int64)} + yyLOCAL = &tree.UserMiscOptionPasswordHistoryDefault{} } yyVAL.union = yyLOCAL case 260: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.UserMiscOption //line mysql_sql.y:1887 { - yyLOCAL = &tree.UserMiscOptionPasswordReuseIntervalDefault{} + yyLOCAL = &tree.UserMiscOptionPasswordHistoryCount{Value: yyDollar[3].item.(int64)} } yyVAL.union = yyLOCAL case 261: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.UserMiscOption //line mysql_sql.y:1891 { - yyLOCAL = &tree.UserMiscOptionPasswordReuseIntervalCount{Value: yyDollar[4].item.(int64)} + yyLOCAL = &tree.UserMiscOptionPasswordReuseIntervalDefault{} } yyVAL.union = yyLOCAL case 262: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.UserMiscOption //line mysql_sql.y:1895 { - yyLOCAL = &tree.UserMiscOptionPasswordRequireCurrentNone{} + yyLOCAL = &tree.UserMiscOptionPasswordReuseIntervalCount{Value: yyDollar[4].item.(int64)} } yyVAL.union = yyLOCAL case 263: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.UserMiscOption //line mysql_sql.y:1899 { - yyLOCAL = &tree.UserMiscOptionPasswordRequireCurrentDefault{} + yyLOCAL = &tree.UserMiscOptionPasswordRequireCurrentNone{} } yyVAL.union = yyLOCAL case 264: @@ -7424,15 +7430,15 @@ yydefault: var yyLOCAL tree.UserMiscOption //line mysql_sql.y:1903 { - yyLOCAL = &tree.UserMiscOptionPasswordRequireCurrentOptional{} + yyLOCAL = &tree.UserMiscOptionPasswordRequireCurrentDefault{} } yyVAL.union = yyLOCAL case 265: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.UserMiscOption //line mysql_sql.y:1907 { - yyLOCAL = &tree.UserMiscOptionFailedLoginAttempts{Value: yyDollar[2].item.(int64)} + yyLOCAL = &tree.UserMiscOptionPasswordRequireCurrentOptional{} } yyVAL.union = yyLOCAL case 266: @@ -7440,7 +7446,7 @@ yydefault: var yyLOCAL tree.UserMiscOption //line mysql_sql.y:1911 { - yyLOCAL = &tree.UserMiscOptionPasswordLockTimeCount{Value: yyDollar[2].item.(int64)} + yyLOCAL = &tree.UserMiscOptionFailedLoginAttempts{Value: yyDollar[2].item.(int64)} } yyVAL.union = yyLOCAL case 267: @@ -7448,41 +7454,49 @@ yydefault: var yyLOCAL tree.UserMiscOption //line mysql_sql.y:1915 { - yyLOCAL = &tree.UserMiscOptionPasswordLockTimeUnbounded{} + yyLOCAL = &tree.UserMiscOptionPasswordLockTimeCount{Value: yyDollar[2].item.(int64)} } yyVAL.union = yyLOCAL case 268: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL tree.UserMiscOption +//line mysql_sql.y:1919 + { + yyLOCAL = &tree.UserMiscOptionPasswordLockTimeUnbounded{} + } + yyVAL.union = yyLOCAL + case 269: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:1921 +//line mysql_sql.y:1925 { yyVAL.item = nil } - case 269: + case 270: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:1926 +//line mysql_sql.y:1930 { yyVAL.item = nil } - case 282: + case 283: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1948 +//line mysql_sql.y:1952 { yyLOCAL = &tree.ShowTarget{Target: yyDollar[2].str, Like: yyDollar[3].comparisionExprUnion(), Where: yyDollar[4].whereUnion()} } yyVAL.union = yyLOCAL - case 283: + case 284: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1952 +//line mysql_sql.y:1956 { yyLOCAL = &tree.ShowTarget{Target: "charset", Like: yyDollar[3].comparisionExprUnion(), Where: yyDollar[4].whereUnion()} } yyVAL.union = yyLOCAL - case 284: + case 285: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1958 +//line mysql_sql.y:1962 { yyLOCAL = &tree.ShowIndex{ TableName: *yyDollar[4].tableNameUnion(), @@ -7490,10 +7504,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 288: + case 289: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1972 +//line mysql_sql.y:1976 { yyLOCAL = &tree.ShowVariables{ Global: yyDollar[2].boolValUnion(), @@ -7502,10 +7516,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 289: + case 290: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:1982 +//line mysql_sql.y:1986 { yyLOCAL = &tree.ShowStatus{ Global: yyDollar[2].boolValUnion(), @@ -7514,58 +7528,58 @@ yydefault: } } yyVAL.union = yyLOCAL - case 290: + case 291: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:1991 +//line mysql_sql.y:1995 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 291: + case 292: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:1995 +//line mysql_sql.y:1999 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 292: + case 293: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:1999 +//line mysql_sql.y:2003 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 293: + case 294: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2005 +//line mysql_sql.y:2009 { yyLOCAL = &tree.ShowWarnings{} } yyVAL.union = yyLOCAL - case 294: + case 295: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2011 +//line mysql_sql.y:2015 { yyLOCAL = &tree.ShowErrors{} } yyVAL.union = yyLOCAL - case 295: + case 296: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2017 +//line mysql_sql.y:2021 { yyLOCAL = &tree.ShowProcessList{Full: yyDollar[2].fullOptUnion()} } yyVAL.union = yyLOCAL - case 296: + case 297: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2023 +//line mysql_sql.y:2027 { yyLOCAL = &tree.ShowTables{ Open: false, @@ -7576,10 +7590,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 297: + case 298: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2033 +//line mysql_sql.y:2037 { yyLOCAL = &tree.ShowTables{ Open: true, @@ -7590,26 +7604,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 298: + case 299: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2045 +//line mysql_sql.y:2049 { yyLOCAL = &tree.ShowDatabases{Like: yyDollar[3].comparisionExprUnion(), Where: yyDollar[4].whereUnion()} } yyVAL.union = yyLOCAL - case 299: + case 300: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2049 +//line mysql_sql.y:2053 { yyLOCAL = &tree.ShowDatabases{Like: yyDollar[3].comparisionExprUnion(), Where: yyDollar[4].whereUnion()} } yyVAL.union = yyLOCAL - case 300: + case 301: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2055 +//line mysql_sql.y:2059 { yyLOCAL = &tree.ShowColumns{ Ext: false, @@ -7622,10 +7636,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 301: + case 302: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2067 +//line mysql_sql.y:2071 { yyLOCAL = &tree.ShowColumns{ Ext: true, @@ -7638,126 +7652,126 @@ yydefault: } } yyVAL.union = yyLOCAL - case 302: + case 303: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.ComparisonExpr -//line mysql_sql.y:2080 +//line mysql_sql.y:2084 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 303: + case 304: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ComparisonExpr -//line mysql_sql.y:2084 +//line mysql_sql.y:2088 { yyLOCAL = tree.NewComparisonExpr(tree.LIKE, nil, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 304: + case 305: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:2089 +//line mysql_sql.y:2093 { yyVAL.str = "" } - case 305: + case 306: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:2093 +//line mysql_sql.y:2097 { yyVAL.str = yyDollar[2].str } - case 306: + case 307: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnresolvedObjectName -//line mysql_sql.y:2099 +//line mysql_sql.y:2103 { yyLOCAL = yyDollar[2].unresolvedObjectNameUnion() } yyVAL.union = yyLOCAL - case 311: + case 312: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:2112 +//line mysql_sql.y:2116 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 312: + case 313: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:2116 +//line mysql_sql.y:2120 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 313: + case 314: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2122 +//line mysql_sql.y:2126 { yyLOCAL = &tree.ShowCreateTable{Name: yyDollar[4].unresolvedObjectNameUnion()} } yyVAL.union = yyLOCAL - case 314: + case 315: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2127 +//line mysql_sql.y:2131 { yyLOCAL = &tree.ShowCreateView{Name: yyDollar[4].unresolvedObjectNameUnion()} } yyVAL.union = yyLOCAL - case 315: + case 316: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2131 +//line mysql_sql.y:2135 { yyLOCAL = &tree.ShowCreateDatabase{IfNotExists: yyDollar[4].ifNotExistsUnion(), Name: yyDollar[5].str} } yyVAL.union = yyLOCAL - case 316: + case 317: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnresolvedObjectName -//line mysql_sql.y:2137 +//line mysql_sql.y:2141 { yyLOCAL = tree.SetUnresolvedObjectName(1, [3]string{yyDollar[1].str}) } yyVAL.union = yyLOCAL - case 317: + case 318: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UnresolvedObjectName -//line mysql_sql.y:2141 +//line mysql_sql.y:2145 { yyLOCAL = tree.SetUnresolvedObjectName(2, [3]string{yyDollar[3].str, yyDollar[1].str}) } yyVAL.union = yyLOCAL - case 319: + case 320: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnresolvedObjectName -//line mysql_sql.y:2150 +//line mysql_sql.y:2154 { yyLOCAL = tree.SetUnresolvedObjectName(1, [3]string{yyDollar[1].str}) } yyVAL.union = yyLOCAL - case 320: + case 321: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UnresolvedObjectName -//line mysql_sql.y:2154 +//line mysql_sql.y:2158 { yyLOCAL = tree.SetUnresolvedObjectName(2, [3]string{yyDollar[3].str, yyDollar[1].str}) } yyVAL.union = yyLOCAL - case 321: + case 322: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.UnresolvedObjectName -//line mysql_sql.y:2158 +//line mysql_sql.y:2162 { yyLOCAL = tree.SetUnresolvedObjectName(3, [3]string{yyDollar[5].str, yyDollar[3].str, yyDollar[1].str}) } yyVAL.union = yyLOCAL - case 331: + case 332: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2177 +//line mysql_sql.y:2181 { yyLOCAL = &tree.DropAccount{ IfExists: yyDollar[3].boolValUnion(), @@ -7765,10 +7779,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 332: + case 333: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2186 +//line mysql_sql.y:2190 { yyLOCAL = &tree.DropUser{ IfExists: yyDollar[3].boolValUnion(), @@ -7776,26 +7790,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 333: + case 334: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.User -//line mysql_sql.y:2195 +//line mysql_sql.y:2199 { yyLOCAL = []*tree.User{yyDollar[1].userUnion()} } yyVAL.union = yyLOCAL - case 334: + case 335: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.User -//line mysql_sql.y:2199 +//line mysql_sql.y:2203 { yyLOCAL = append(yyDollar[1].usersUnion(), yyDollar[3].userUnion()) } yyVAL.union = yyLOCAL - case 335: + case 336: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.User -//line mysql_sql.y:2205 +//line mysql_sql.y:2209 { yyLOCAL = &tree.User{ Username: yyDollar[1].usernameRecordUnion().Username, @@ -7803,10 +7817,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 336: + case 337: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2214 +//line mysql_sql.y:2218 { yyLOCAL = &tree.DropRole{ IfExists: yyDollar[3].boolValUnion(), @@ -7814,10 +7828,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 337: + case 338: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2223 +//line mysql_sql.y:2227 { yyLOCAL = &tree.DropIndex{ Name: tree.Identifier(yyDollar[4].str), @@ -7826,60 +7840,60 @@ yydefault: } } yyVAL.union = yyLOCAL - case 338: + case 339: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2233 +//line mysql_sql.y:2237 { yyLOCAL = &tree.DropTable{IfExists: yyDollar[3].boolValUnion(), Names: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL - case 339: + case 340: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2239 +//line mysql_sql.y:2243 { yyLOCAL = &tree.DropView{IfExists: yyDollar[3].boolValUnion(), Names: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL - case 340: + case 341: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2245 +//line mysql_sql.y:2249 { yyLOCAL = &tree.DropDatabase{Name: tree.Identifier(yyDollar[4].str), IfExists: yyDollar[3].boolValUnion()} } yyVAL.union = yyLOCAL - case 341: + case 342: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2251 +//line mysql_sql.y:2255 { yyLOCAL = tree.NewDeallocate(tree.Identifier(yyDollar[3].str), true) } yyVAL.union = yyLOCAL - case 344: + case 345: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2259 +//line mysql_sql.y:2263 { yyDollar[2].statementUnion().(*tree.Delete).With = yyDollar[1].withClauseUnion() yyLOCAL = yyDollar[2].statementUnion() } yyVAL.union = yyLOCAL - case 345: + case 346: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2264 +//line mysql_sql.y:2268 { yyDollar[2].statementUnion().(*tree.Delete).With = yyDollar[1].withClauseUnion() yyLOCAL = yyDollar[2].statementUnion() } yyVAL.union = yyLOCAL - case 346: + case 347: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2271 +//line mysql_sql.y:2275 { // Single-Table Syntax t := &tree.AliasedTableExpr{ @@ -7896,10 +7910,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 347: + case 348: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2287 +//line mysql_sql.y:2291 { // Multiple-Table Syntax yyLOCAL = &tree.Delete{ @@ -7909,10 +7923,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 348: + case 349: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2300 +//line mysql_sql.y:2304 { // Multiple-Table Syntax yyLOCAL = &tree.Delete{ @@ -7922,69 +7936,69 @@ yydefault: } } yyVAL.union = yyLOCAL - case 349: + case 350: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExprs -//line mysql_sql.y:2311 +//line mysql_sql.y:2315 { yyLOCAL = tree.TableExprs{yyDollar[1].tableNameUnion()} } yyVAL.union = yyLOCAL - case 350: + case 351: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableExprs -//line mysql_sql.y:2315 +//line mysql_sql.y:2319 { yyLOCAL = append(yyDollar[1].tableExprsUnion(), yyDollar[3].tableNameUnion()) } yyVAL.union = yyLOCAL - case 351: + case 352: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:2321 +//line mysql_sql.y:2325 { prefix := tree.ObjectNamePrefix{ExplicitSchema: false} yyLOCAL = tree.NewTableName(tree.Identifier(yyDollar[1].str), prefix) } yyVAL.union = yyLOCAL - case 352: + case 353: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:2326 +//line mysql_sql.y:2330 { prefix := tree.ObjectNamePrefix{SchemaName: tree.Identifier(yyDollar[1].str), ExplicitSchema: true} yyLOCAL = tree.NewTableName(tree.Identifier(yyDollar[3].str), prefix) } yyVAL.union = yyLOCAL - case 353: + case 354: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:2333 +//line mysql_sql.y:2337 { } - case 354: + case 355: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:2335 +//line mysql_sql.y:2339 { } - case 355: + case 356: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:2338 +//line mysql_sql.y:2342 { } - case 360: + case 361: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:2347 +//line mysql_sql.y:2351 { } - case 362: + case 363: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:2351 +//line mysql_sql.y:2355 { } - case 364: + case 365: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:2356 +//line mysql_sql.y:2360 { ins := yyDollar[4].insertUnion() ins.Table = yyDollar[2].tableExprUnion() @@ -7992,10 +8006,10 @@ yydefault: yyLOCAL = ins } yyVAL.union = yyLOCAL - case 365: + case 366: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:2365 +//line mysql_sql.y:2369 { vc := tree.NewValuesClause(yyDollar[2].rowsExprsUnion()) yyLOCAL = &tree.Insert{ @@ -8003,20 +8017,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 366: + case 367: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:2372 +//line mysql_sql.y:2376 { yyLOCAL = &tree.Insert{ Rows: yyDollar[1].selectUnion(), } } yyVAL.union = yyLOCAL - case 367: + case 368: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:2378 +//line mysql_sql.y:2382 { vc := tree.NewValuesClause(yyDollar[5].rowsExprsUnion()) yyLOCAL = &tree.Insert{ @@ -8025,10 +8039,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 368: + case 369: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:2386 +//line mysql_sql.y:2390 { vc := tree.NewValuesClause(yyDollar[4].rowsExprsUnion()) yyLOCAL = &tree.Insert{ @@ -8036,10 +8050,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 369: + case 370: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:2393 +//line mysql_sql.y:2397 { yyLOCAL = &tree.Insert{ Columns: yyDollar[2].identifierListUnion(), @@ -8047,10 +8061,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 370: + case 371: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:2400 +//line mysql_sql.y:2404 { if yyDollar[2].assignmentsUnion() == nil { yylex.Error("the set list of insert can not be empty") @@ -8069,34 +8083,34 @@ yydefault: } } yyVAL.union = yyLOCAL - case 371: + case 372: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.Assignment -//line mysql_sql.y:2419 +//line mysql_sql.y:2423 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 372: + case 373: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.Assignment -//line mysql_sql.y:2423 +//line mysql_sql.y:2427 { yyLOCAL = []*tree.Assignment{yyDollar[1].assignmentUnion()} } yyVAL.union = yyLOCAL - case 373: + case 374: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Assignment -//line mysql_sql.y:2427 +//line mysql_sql.y:2431 { yyLOCAL = append(yyDollar[1].assignmentsUnion(), yyDollar[3].assignmentUnion()) } yyVAL.union = yyLOCAL - case 374: + case 375: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Assignment -//line mysql_sql.y:2433 +//line mysql_sql.y:2437 { yyLOCAL = &tree.Assignment{ Column: tree.Identifier(yyDollar[1].str), @@ -8104,155 +8118,155 @@ yydefault: } } yyVAL.union = yyLOCAL - case 375: + case 376: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:2442 +//line mysql_sql.y:2446 { yyLOCAL = tree.IdentifierList{tree.Identifier(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 376: + case 377: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:2446 +//line mysql_sql.y:2450 { yyLOCAL = append(yyDollar[1].identifierListUnion(), tree.Identifier(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 377: + case 378: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:2452 +//line mysql_sql.y:2456 { yyVAL.str = yyDollar[1].str } - case 378: + case 379: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:2456 +//line mysql_sql.y:2460 { yyVAL.str = yyDollar[3].str } - case 379: + case 380: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.Exprs -//line mysql_sql.y:2462 +//line mysql_sql.y:2466 { yyLOCAL = []tree.Exprs{yyDollar[1].exprsUnion()} } yyVAL.union = yyLOCAL - case 380: + case 381: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.Exprs -//line mysql_sql.y:2466 +//line mysql_sql.y:2470 { yyLOCAL = append(yyDollar[1].rowsExprsUnion(), yyDollar[3].exprsUnion()) } yyVAL.union = yyLOCAL - case 381: + case 382: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:2472 +//line mysql_sql.y:2476 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 382: + case 383: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:2477 +//line mysql_sql.y:2481 { } - case 384: + case 385: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:2481 +//line mysql_sql.y:2485 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 386: + case 387: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:2488 +//line mysql_sql.y:2492 { yyLOCAL = tree.Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 387: + case 388: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:2492 +//line mysql_sql.y:2496 { yyLOCAL = append(yyDollar[1].exprsUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 389: + case 390: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:2499 +//line mysql_sql.y:2503 { yyLOCAL = &tree.DefaultVal{} } yyVAL.union = yyLOCAL - case 390: + case 391: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:2504 +//line mysql_sql.y:2508 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 391: + case 392: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:2508 +//line mysql_sql.y:2512 { yyLOCAL = yyDollar[3].identifierListUnion() } yyVAL.union = yyLOCAL - case 392: + case 393: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:2514 +//line mysql_sql.y:2518 { yyLOCAL = tree.IdentifierList{tree.Identifier(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 393: + case 394: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:2518 +//line mysql_sql.y:2522 { yyLOCAL = append(yyDollar[1].identifierListUnion(), tree.Identifier(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 394: + case 395: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:2524 +//line mysql_sql.y:2528 { yyLOCAL = yyDollar[2].tableNameUnion() } yyVAL.union = yyLOCAL - case 395: + case 396: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:2528 +//line mysql_sql.y:2532 { yyLOCAL = yyDollar[1].tableNameUnion() } yyVAL.union = yyLOCAL - case 396: + case 397: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.ExportParam -//line mysql_sql.y:2533 +//line mysql_sql.y:2537 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 397: + case 398: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.ExportParam -//line mysql_sql.y:2537 +//line mysql_sql.y:2541 { yyLOCAL = &tree.ExportParam{ Outfile: true, @@ -8265,10 +8279,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 398: + case 399: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:2550 +//line mysql_sql.y:2554 { yyLOCAL = &tree.Fields{ Terminated: ",", @@ -8276,10 +8290,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 399: + case 400: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:2557 +//line mysql_sql.y:2561 { yyLOCAL = &tree.Fields{ Terminated: yyDollar[4].str, @@ -8287,10 +8301,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 400: + case 401: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:2564 +//line mysql_sql.y:2568 { str := yyDollar[7].str if str != "\\" && len(str) > 1 { @@ -8309,10 +8323,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 401: + case 402: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:2582 +//line mysql_sql.y:2586 { str := yyDollar[4].str if str != "\\" && len(str) > 1 { @@ -8331,38 +8345,38 @@ yydefault: } } yyVAL.union = yyLOCAL - case 402: + case 403: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Lines -//line mysql_sql.y:2601 +//line mysql_sql.y:2605 { yyLOCAL = &tree.Lines{ TerminatedBy: "\n", } } yyVAL.union = yyLOCAL - case 403: + case 404: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Lines -//line mysql_sql.y:2607 +//line mysql_sql.y:2611 { yyLOCAL = &tree.Lines{ TerminatedBy: yyDollar[2].str, } } yyVAL.union = yyLOCAL - case 404: + case 405: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:2614 +//line mysql_sql.y:2618 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 405: + case 406: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:2618 +//line mysql_sql.y:2622 { str := strings.ToLower(yyDollar[2].str) if str == "true" { @@ -8375,115 +8389,115 @@ yydefault: } } yyVAL.union = yyLOCAL - case 406: + case 407: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:2631 +//line mysql_sql.y:2635 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 407: + case 408: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:2635 +//line mysql_sql.y:2639 { yyLOCAL = yyDollar[2].item.(int64) } yyVAL.union = yyLOCAL - case 408: + case 409: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:2640 +//line mysql_sql.y:2644 { yyLOCAL = []string{} } yyVAL.union = yyLOCAL - case 409: + case 410: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:2644 +//line mysql_sql.y:2648 { yyLOCAL = yyDollar[3].strsUnion() } yyVAL.union = yyLOCAL - case 410: + case 411: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:2651 +//line mysql_sql.y:2655 { yyLOCAL = make([]string, 0, 4) yyLOCAL = append(yyLOCAL, yyDollar[1].str) } yyVAL.union = yyLOCAL - case 411: + case 412: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:2656 +//line mysql_sql.y:2660 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].str) } yyVAL.union = yyLOCAL - case 413: + case 414: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:2663 +//line mysql_sql.y:2667 { yyLOCAL = &tree.Select{Select: yyDollar[1].selectStatementUnion()} } yyVAL.union = yyLOCAL - case 414: + case 415: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:2669 +//line mysql_sql.y:2673 { yyLOCAL = &tree.Select{Select: yyDollar[1].selectStatementUnion(), OrderBy: yyDollar[2].orderByUnion(), Limit: yyDollar[3].limitUnion(), Ep: yyDollar[4].exportParmUnion()} } yyVAL.union = yyLOCAL - case 415: + case 416: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:2673 +//line mysql_sql.y:2677 { yyLOCAL = &tree.Select{Select: yyDollar[1].selectStatementUnion(), OrderBy: yyDollar[2].orderByUnion(), Ep: yyDollar[3].exportParmUnion()} } yyVAL.union = yyLOCAL - case 416: + case 417: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:2677 +//line mysql_sql.y:2681 { yyLOCAL = &tree.Select{Select: yyDollar[1].selectStatementUnion(), OrderBy: yyDollar[2].orderByUnion(), Limit: yyDollar[3].limitUnion(), Ep: yyDollar[4].exportParmUnion()} } yyVAL.union = yyLOCAL - case 417: + case 418: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:2681 +//line mysql_sql.y:2685 { yyLOCAL = &tree.Select{Select: yyDollar[2].selectStatementUnion(), OrderBy: yyDollar[3].orderByUnion(), Limit: yyDollar[4].limitUnion(), Ep: yyDollar[5].exportParmUnion(), With: yyDollar[1].withClauseUnion()} } yyVAL.union = yyLOCAL - case 418: + case 419: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:2685 +//line mysql_sql.y:2689 { yyLOCAL = &tree.Select{Select: yyDollar[2].selectStatementUnion(), OrderBy: yyDollar[3].orderByUnion(), Ep: yyDollar[4].exportParmUnion(), With: yyDollar[1].withClauseUnion()} } yyVAL.union = yyLOCAL - case 419: + case 420: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:2689 +//line mysql_sql.y:2693 { yyLOCAL = &tree.Select{Select: yyDollar[2].selectStatementUnion(), OrderBy: yyDollar[3].orderByUnion(), Limit: yyDollar[4].limitUnion(), Ep: yyDollar[5].exportParmUnion(), With: yyDollar[1].withClauseUnion()} } yyVAL.union = yyLOCAL - case 420: + case 421: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.With -//line mysql_sql.y:2695 +//line mysql_sql.y:2699 { yyLOCAL = &tree.With{ IsRecursive: false, @@ -8491,10 +8505,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 421: + case 422: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.With -//line mysql_sql.y:2702 +//line mysql_sql.y:2706 { yyLOCAL = &tree.With{ IsRecursive: true, @@ -8502,26 +8516,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 422: + case 423: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.CTE -//line mysql_sql.y:2711 +//line mysql_sql.y:2715 { yyLOCAL = []*tree.CTE{yyDollar[1].cteUnion()} } yyVAL.union = yyLOCAL - case 423: + case 424: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.CTE -//line mysql_sql.y:2715 +//line mysql_sql.y:2719 { yyLOCAL = append(yyDollar[1].cteListUnion(), yyDollar[3].cteUnion()) } yyVAL.union = yyLOCAL - case 424: + case 425: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.CTE -//line mysql_sql.y:2721 +//line mysql_sql.y:2725 { yyLOCAL = &tree.CTE{ Name: &tree.AliasClause{Alias: tree.Identifier(yyDollar[1].str), Cols: yyDollar[2].identifierListUnion()}, @@ -8529,162 +8543,162 @@ yydefault: } } yyVAL.union = yyLOCAL - case 425: + case 426: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:2729 +//line mysql_sql.y:2733 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 426: + case 427: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:2733 +//line mysql_sql.y:2737 { yyLOCAL = yyDollar[2].identifierListUnion() } yyVAL.union = yyLOCAL - case 427: + case 428: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:2738 +//line mysql_sql.y:2742 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 428: + case 429: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:2742 +//line mysql_sql.y:2746 { yyLOCAL = yyDollar[1].limitUnion() } yyVAL.union = yyLOCAL - case 429: + case 430: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:2748 +//line mysql_sql.y:2752 { yyLOCAL = &tree.Limit{Count: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 430: + case 431: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:2752 +//line mysql_sql.y:2756 { yyLOCAL = &tree.Limit{Offset: yyDollar[2].exprUnion(), Count: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 431: + case 432: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:2756 +//line mysql_sql.y:2760 { yyLOCAL = &tree.Limit{Offset: yyDollar[4].exprUnion(), Count: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 432: + case 433: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:2761 +//line mysql_sql.y:2765 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 433: + case 434: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:2765 +//line mysql_sql.y:2769 { yyLOCAL = yyDollar[1].orderByUnion() } yyVAL.union = yyLOCAL - case 434: + case 435: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:2771 +//line mysql_sql.y:2775 { yyLOCAL = yyDollar[3].orderByUnion() } yyVAL.union = yyLOCAL - case 435: + case 436: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:2777 +//line mysql_sql.y:2781 { yyLOCAL = tree.OrderBy{yyDollar[1].orderUnion()} } yyVAL.union = yyLOCAL - case 436: + case 437: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:2781 +//line mysql_sql.y:2785 { yyLOCAL = append(yyDollar[1].orderByUnion(), yyDollar[3].orderUnion()) } yyVAL.union = yyLOCAL - case 437: + case 438: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Order -//line mysql_sql.y:2787 +//line mysql_sql.y:2791 { yyLOCAL = &tree.Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].directionUnion()} } yyVAL.union = yyLOCAL - case 438: + case 439: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Direction -//line mysql_sql.y:2792 +//line mysql_sql.y:2796 { yyLOCAL = tree.DefaultDirection } yyVAL.union = yyLOCAL - case 439: + case 440: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Direction -//line mysql_sql.y:2796 +//line mysql_sql.y:2800 { yyLOCAL = tree.Ascending } yyVAL.union = yyLOCAL - case 440: + case 441: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Direction -//line mysql_sql.y:2800 +//line mysql_sql.y:2804 { yyLOCAL = tree.Descending } yyVAL.union = yyLOCAL - case 441: + case 442: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:2807 +//line mysql_sql.y:2811 { yyLOCAL = &tree.ParenSelect{Select: yyDollar[2].selectUnion()} } yyVAL.union = yyLOCAL - case 442: + case 443: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:2811 +//line mysql_sql.y:2815 { yyLOCAL = &tree.ParenSelect{Select: &tree.Select{Select: yyDollar[2].selectStatementUnion()}} } yyVAL.union = yyLOCAL - case 443: + case 444: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:2817 +//line mysql_sql.y:2821 { yyLOCAL = yyDollar[1].selectStatementUnion() } yyVAL.union = yyLOCAL - case 444: + case 445: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:2821 +//line mysql_sql.y:2825 { yyLOCAL = &tree.UnionClause{ Type: yyDollar[2].unionTypeRecordUnion().Type, @@ -8695,10 +8709,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 445: + case 446: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:2831 +//line mysql_sql.y:2835 { yyLOCAL = &tree.UnionClause{ Type: yyDollar[2].unionTypeRecordUnion().Type, @@ -8709,10 +8723,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 446: + case 447: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:2841 +//line mysql_sql.y:2845 { yyLOCAL = &tree.UnionClause{ Type: yyDollar[2].unionTypeRecordUnion().Type, @@ -8723,10 +8737,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 447: + case 448: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:2851 +//line mysql_sql.y:2855 { yyLOCAL = &tree.UnionClause{ Type: yyDollar[2].unionTypeRecordUnion().Type, @@ -8737,10 +8751,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 448: + case 449: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2863 +//line mysql_sql.y:2867 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UNION, @@ -8749,10 +8763,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 449: + case 450: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2871 +//line mysql_sql.y:2875 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UNION, @@ -8761,10 +8775,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 450: + case 451: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2879 +//line mysql_sql.y:2883 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UNION, @@ -8773,10 +8787,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 451: + case 452: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2888 +//line mysql_sql.y:2892 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.EXCEPT, @@ -8785,10 +8799,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 452: + case 453: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2896 +//line mysql_sql.y:2900 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.EXCEPT, @@ -8797,10 +8811,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 453: + case 454: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2904 +//line mysql_sql.y:2908 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.EXCEPT, @@ -8809,10 +8823,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 454: + case 455: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2912 +//line mysql_sql.y:2916 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.INTERSECT, @@ -8821,10 +8835,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 455: + case 456: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2920 +//line mysql_sql.y:2924 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.INTERSECT, @@ -8833,10 +8847,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 456: + case 457: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2928 +//line mysql_sql.y:2932 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.INTERSECT, @@ -8845,10 +8859,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 457: + case 458: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2936 +//line mysql_sql.y:2940 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UT_MINUS, @@ -8857,10 +8871,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 458: + case 459: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2944 +//line mysql_sql.y:2948 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UT_MINUS, @@ -8869,10 +8883,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 459: + case 460: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:2952 +//line mysql_sql.y:2956 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UT_MINUS, @@ -8881,10 +8895,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 460: + case 461: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:2962 +//line mysql_sql.y:2966 { yyLOCAL = &tree.SelectClause{ Distinct: yyDollar[2].boolValUnion(), @@ -8896,10 +8910,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 461: + case 462: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:2973 +//line mysql_sql.y:2977 { yyLOCAL = &tree.SelectClause{ Distinct: false, @@ -8912,130 +8926,130 @@ yydefault: } } yyVAL.union = yyLOCAL - case 465: + case 466: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:2991 +//line mysql_sql.y:2995 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 466: + case 467: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:2995 +//line mysql_sql.y:2999 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 467: + case 468: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:2999 +//line mysql_sql.y:3003 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 470: + case 471: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Where -//line mysql_sql.y:3008 +//line mysql_sql.y:3012 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 471: + case 472: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Where -//line mysql_sql.y:3012 +//line mysql_sql.y:3016 { yyLOCAL = &tree.Where{Type: tree.AstHaving, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 472: + case 473: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.GroupBy -//line mysql_sql.y:3017 +//line mysql_sql.y:3021 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 473: + case 474: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.GroupBy -//line mysql_sql.y:3021 +//line mysql_sql.y:3025 { yyLOCAL = tree.GroupBy(yyDollar[3].exprsUnion()) } yyVAL.union = yyLOCAL - case 474: + case 475: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Where -//line mysql_sql.y:3026 +//line mysql_sql.y:3030 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 475: + case 476: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Where -//line mysql_sql.y:3030 +//line mysql_sql.y:3034 { yyLOCAL = &tree.Where{Type: tree.AstWhere, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 476: + case 477: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.SelectExprs -//line mysql_sql.y:3036 +//line mysql_sql.y:3040 { yyLOCAL = tree.SelectExprs{yyDollar[1].selectExprUnion()} } yyVAL.union = yyLOCAL - case 477: + case 478: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectExprs -//line mysql_sql.y:3040 +//line mysql_sql.y:3044 { yyLOCAL = append(yyDollar[1].selectExprsUnion(), yyDollar[3].selectExprUnion()) } yyVAL.union = yyLOCAL - case 478: + case 479: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.SelectExpr -//line mysql_sql.y:3046 +//line mysql_sql.y:3050 { yyLOCAL = tree.SelectExpr{Expr: tree.StarExpr()} } yyVAL.union = yyLOCAL - case 479: + case 480: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.SelectExpr -//line mysql_sql.y:3050 +//line mysql_sql.y:3054 { yyLOCAL = tree.SelectExpr{Expr: yyDollar[1].exprUnion(), As: tree.UnrestrictedIdentifier(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 480: + case 481: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectExpr -//line mysql_sql.y:3054 +//line mysql_sql.y:3058 { yyLOCAL = tree.SelectExpr{Expr: tree.SetUnresolvedNameWithStar(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 481: + case 482: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.SelectExpr -//line mysql_sql.y:3058 +//line mysql_sql.y:3062 { yyLOCAL = tree.SelectExpr{Expr: tree.SetUnresolvedNameWithStar(yyDollar[3].str, yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 482: + case 483: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.From -//line mysql_sql.y:3063 +//line mysql_sql.y:3067 { prefix := tree.ObjectNamePrefix{ExplicitSchema: false} tn := tree.NewTableName(tree.Identifier(""), prefix) @@ -9044,44 +9058,44 @@ yydefault: } } yyVAL.union = yyLOCAL - case 483: + case 484: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.From -//line mysql_sql.y:3071 +//line mysql_sql.y:3075 { yyLOCAL = yyDollar[1].fromUnion() } yyVAL.union = yyLOCAL - case 484: + case 485: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.From -//line mysql_sql.y:3077 +//line mysql_sql.y:3081 { yyLOCAL = &tree.From{ Tables: yyDollar[2].tableExprsUnion(), } } yyVAL.union = yyLOCAL - case 485: + case 486: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExprs -//line mysql_sql.y:3085 +//line mysql_sql.y:3089 { yyLOCAL = tree.TableExprs{yyDollar[1].tableExprUnion()} } yyVAL.union = yyLOCAL - case 486: + case 487: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableExprs -//line mysql_sql.y:3089 +//line mysql_sql.y:3093 { yyLOCAL = append(yyDollar[1].tableExprsUnion(), yyDollar[3].tableExprUnion()) } yyVAL.union = yyLOCAL - case 490: + case 491: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:3102 +//line mysql_sql.y:3106 { yyLOCAL = &tree.JoinTableExpr{ Left: yyDollar[1].tableExprUnion(), @@ -9091,10 +9105,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 491: + case 492: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:3111 +//line mysql_sql.y:3115 { yyLOCAL = &tree.JoinTableExpr{ Left: yyDollar[1].tableExprUnion(), @@ -9104,10 +9118,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 492: + case 493: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:3121 +//line mysql_sql.y:3125 { yyLOCAL = &tree.JoinTableExpr{ Left: yyDollar[1].tableExprUnion(), @@ -9117,10 +9131,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 493: + case 494: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:3130 +//line mysql_sql.y:3134 { yyLOCAL = &tree.JoinTableExpr{ Left: yyDollar[1].tableExprUnion(), @@ -9129,15 +9143,15 @@ yydefault: } } yyVAL.union = yyLOCAL - case 494: + case 495: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:3140 +//line mysql_sql.y:3144 { yyVAL.str = tree.JOIN_TYPE_NATURAL } - case 495: + case 496: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:3144 +//line mysql_sql.y:3148 { if yyDollar[2].str == tree.JOIN_TYPE_LEFT { yyVAL.str = tree.JOIN_TYPE_NATURAL_LEFT @@ -9145,130 +9159,130 @@ yydefault: yyVAL.str = tree.JOIN_TYPE_NATURAL_RIGHT } } - case 496: + case 497: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:3154 +//line mysql_sql.y:3158 { yyVAL.str = tree.JOIN_TYPE_LEFT } - case 497: + case 498: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:3158 +//line mysql_sql.y:3162 { yyVAL.str = tree.JOIN_TYPE_LEFT } - case 498: + case 499: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:3162 +//line mysql_sql.y:3166 { yyVAL.str = tree.JOIN_TYPE_RIGHT } - case 499: + case 500: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:3166 +//line mysql_sql.y:3170 { yyVAL.str = tree.JOIN_TYPE_RIGHT } - case 500: + case 501: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:3172 +//line mysql_sql.y:3176 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 501: + case 502: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:3176 +//line mysql_sql.y:3180 { yyLOCAL = &tree.OnJoinCond{Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 502: + case 503: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3182 +//line mysql_sql.y:3186 { yyVAL.str = tree.JOIN_TYPE_STRAIGHT } - case 503: + case 504: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3188 +//line mysql_sql.y:3192 { yyVAL.str = tree.JOIN_TYPE_INNER } - case 504: + case 505: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:3192 +//line mysql_sql.y:3196 { yyVAL.str = tree.JOIN_TYPE_INNER } - case 505: + case 506: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:3196 +//line mysql_sql.y:3200 { yyVAL.str = tree.JOIN_TYPE_CROSS } - case 506: + case 507: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:3202 +//line mysql_sql.y:3206 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 507: + case 508: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:3206 +//line mysql_sql.y:3210 { yyLOCAL = yyDollar[1].joinCondUnion() } yyVAL.union = yyLOCAL - case 508: + case 509: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:3212 +//line mysql_sql.y:3216 { yyLOCAL = &tree.OnJoinCond{Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 509: + case 510: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:3216 +//line mysql_sql.y:3220 { yyLOCAL = &tree.UsingJoinCond{Cols: yyDollar[3].identifierListUnion()} } yyVAL.union = yyLOCAL - case 510: + case 511: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:3222 +//line mysql_sql.y:3226 { yyLOCAL = tree.IdentifierList{tree.Identifier(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 511: + case 512: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:3226 +//line mysql_sql.y:3230 { yyLOCAL = append(yyDollar[1].identifierListUnion(), tree.Identifier(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 512: + case 513: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:3232 +//line mysql_sql.y:3236 { yyLOCAL = yyDollar[1].aliasedTableExprUnion() } yyVAL.union = yyLOCAL - case 513: + case 514: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:3236 +//line mysql_sql.y:3240 { yyLOCAL = &tree.AliasedTableExpr{ Expr: yyDollar[1].parenTableExprUnion(), @@ -9279,28 +9293,28 @@ yydefault: } } yyVAL.union = yyLOCAL - case 514: + case 515: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ParenTableExpr -//line mysql_sql.y:3249 +//line mysql_sql.y:3253 { yyLOCAL = &tree.ParenTableExpr{Expr: yyDollar[2].selectUnion()} } yyVAL.union = yyLOCAL - case 515: + case 516: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:3254 +//line mysql_sql.y:3258 { } - case 516: + case 517: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3255 +//line mysql_sql.y:3259 { } - case 517: + case 518: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.AliasedTableExpr -//line mysql_sql.y:3259 +//line mysql_sql.y:3263 { yyLOCAL = &tree.AliasedTableExpr{ Expr: yyDollar[1].tableNameUnion(), @@ -9310,58 +9324,58 @@ yydefault: } } yyVAL.union = yyLOCAL - case 518: + case 519: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:3271 +//line mysql_sql.y:3275 { yyVAL.str = "" } - case 519: + case 520: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3275 +//line mysql_sql.y:3279 { yyVAL.str = yyDollar[1].str } - case 520: + case 521: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:3279 +//line mysql_sql.y:3283 { yyVAL.str = yyDollar[2].str } - case 523: + case 524: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:3288 +//line mysql_sql.y:3292 { yyVAL.str = "" } - case 524: + case 525: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3292 +//line mysql_sql.y:3296 { yyVAL.str = yyDollar[1].str } - case 525: + case 526: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:3296 +//line mysql_sql.y:3300 { yyVAL.str = yyDollar[2].str } - case 526: + case 527: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3300 +//line mysql_sql.y:3304 { yyVAL.str = yyDollar[1].str } - case 527: + case 528: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:3304 +//line mysql_sql.y:3308 { yyVAL.str = yyDollar[2].str } - case 544: + case 545: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3338 +//line mysql_sql.y:3342 { yyLOCAL = &tree.CreateView{ Name: yyDollar[5].tableNameUnion(), @@ -9372,10 +9386,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 545: + case 546: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3348 +//line mysql_sql.y:3352 { yyLOCAL = &tree.CreateView{ Name: yyDollar[8].tableNameUnion(), @@ -9386,15 +9400,15 @@ yydefault: } } yyVAL.union = yyLOCAL - case 546: + case 547: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:3359 +//line mysql_sql.y:3363 { } - case 548: + case 549: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3364 +//line mysql_sql.y:3368 { yyLOCAL = &tree.CreateAccount{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -9405,16 +9419,16 @@ yydefault: } } yyVAL.union = yyLOCAL - case 549: + case 550: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3376 +//line mysql_sql.y:3380 { yyVAL.str = yyDollar[1].str } - case 550: + case 551: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.AccountAuthOption -//line mysql_sql.y:3382 +//line mysql_sql.y:3386 { yyLOCAL = tree.AccountAuthOption{ Equal: yyDollar[2].str, @@ -9423,16 +9437,16 @@ yydefault: } } yyVAL.union = yyLOCAL - case 551: + case 552: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3392 +//line mysql_sql.y:3396 { yyVAL.str = yyDollar[1].str } - case 552: + case 553: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AccountIdentified -//line mysql_sql.y:3398 +//line mysql_sql.y:3402 { yyLOCAL = tree.AccountIdentified{ Typ: tree.AccountIdentifiedByPassword, @@ -9440,20 +9454,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 553: + case 554: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.AccountIdentified -//line mysql_sql.y:3405 +//line mysql_sql.y:3409 { yyLOCAL = tree.AccountIdentified{ Typ: tree.AccountIdentifiedByRandomPassword, } } yyVAL.union = yyLOCAL - case 554: + case 555: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AccountIdentified -//line mysql_sql.y:3411 +//line mysql_sql.y:3415 { yyLOCAL = tree.AccountIdentified{ Typ: tree.AccountIdentifiedWithSSL, @@ -9461,20 +9475,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 555: + case 556: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.AccountStatus -//line mysql_sql.y:3419 +//line mysql_sql.y:3423 { yyLOCAL = tree.AccountStatus{ Exist: false, } } yyVAL.union = yyLOCAL - case 556: + case 557: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.AccountStatus -//line mysql_sql.y:3425 +//line mysql_sql.y:3429 { yyLOCAL = tree.AccountStatus{ Exist: true, @@ -9482,10 +9496,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 557: + case 558: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.AccountStatus -//line mysql_sql.y:3432 +//line mysql_sql.y:3436 { yyLOCAL = tree.AccountStatus{ Exist: true, @@ -9493,20 +9507,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 558: + case 559: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.AccountComment -//line mysql_sql.y:3440 +//line mysql_sql.y:3444 { yyLOCAL = tree.AccountComment{ Exist: false, } } yyVAL.union = yyLOCAL - case 559: + case 560: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.AccountComment -//line mysql_sql.y:3446 +//line mysql_sql.y:3450 { yyLOCAL = tree.AccountComment{ Exist: true, @@ -9514,10 +9528,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 560: + case 561: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3455 +//line mysql_sql.y:3459 { yyLOCAL = &tree.CreateUser{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -9528,26 +9542,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 561: + case 562: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:3467 +//line mysql_sql.y:3471 { yyVAL.str = yyDollar[1].str } - case 562: + case 563: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.AccountCommentOrAttribute -//line mysql_sql.y:3472 +//line mysql_sql.y:3476 { yyLOCAL = tree.AccountCommentOrAttribute{ Exist: false, } } yyVAL.union = yyLOCAL - case 563: + case 564: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.AccountCommentOrAttribute -//line mysql_sql.y:3478 +//line mysql_sql.y:3482 { yyLOCAL = tree.AccountCommentOrAttribute{ Exist: true, @@ -9556,10 +9570,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 564: + case 565: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.AccountCommentOrAttribute -//line mysql_sql.y:3486 +//line mysql_sql.y:3490 { yyLOCAL = tree.AccountCommentOrAttribute{ Exist: true, @@ -9568,26 +9582,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 565: + case 566: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.User -//line mysql_sql.y:3592 +//line mysql_sql.y:3596 { yyLOCAL = []*tree.User{yyDollar[1].userUnion()} } yyVAL.union = yyLOCAL - case 566: + case 567: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.User -//line mysql_sql.y:3596 +//line mysql_sql.y:3600 { yyLOCAL = append(yyDollar[1].usersUnion(), yyDollar[3].userUnion()) } yyVAL.union = yyLOCAL - case 567: + case 568: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.User -//line mysql_sql.y:3602 +//line mysql_sql.y:3606 { yyLOCAL = &tree.User{ Username: yyDollar[1].usernameRecordUnion().Username, @@ -9596,26 +9610,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 568: + case 569: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.User -//line mysql_sql.y:3612 +//line mysql_sql.y:3616 { yyLOCAL = []*tree.User{yyDollar[1].userUnion()} } yyVAL.union = yyLOCAL - case 569: + case 570: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.User -//line mysql_sql.y:3616 +//line mysql_sql.y:3620 { yyLOCAL = append(yyDollar[1].usersUnion(), yyDollar[3].userUnion()) } yyVAL.union = yyLOCAL - case 570: + case 571: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.User -//line mysql_sql.y:3622 +//line mysql_sql.y:3626 { yyLOCAL = &tree.User{ Username: yyDollar[1].usernameRecordUnion().Username, @@ -9624,50 +9638,50 @@ yydefault: } } yyVAL.union = yyLOCAL - case 571: + case 572: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UsernameRecord -//line mysql_sql.y:3632 +//line mysql_sql.y:3636 { yyLOCAL = &tree.UsernameRecord{Username: yyDollar[1].str, Hostname: "%"} } yyVAL.union = yyLOCAL - case 572: + case 573: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UsernameRecord -//line mysql_sql.y:3636 +//line mysql_sql.y:3640 { yyLOCAL = &tree.UsernameRecord{Username: yyDollar[1].str, Hostname: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 573: + case 574: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UsernameRecord -//line mysql_sql.y:3640 +//line mysql_sql.y:3644 { yyLOCAL = &tree.UsernameRecord{Username: yyDollar[1].str, Hostname: yyDollar[2].str} } yyVAL.union = yyLOCAL - case 574: + case 575: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:3645 +//line mysql_sql.y:3649 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 575: + case 576: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:3649 +//line mysql_sql.y:3653 { yyLOCAL = yyDollar[1].userIdentifiedUnion() } yyVAL.union = yyLOCAL - case 576: + case 577: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:3655 +//line mysql_sql.y:3659 { yyLOCAL = &tree.AccountIdentified{ Typ: tree.AccountIdentifiedByPassword, @@ -9675,20 +9689,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 577: + case 578: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:3662 +//line mysql_sql.y:3666 { yyLOCAL = &tree.AccountIdentified{ Typ: tree.AccountIdentifiedByRandomPassword, } } yyVAL.union = yyLOCAL - case 578: + case 579: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:3668 +//line mysql_sql.y:3672 { yyLOCAL = &tree.AccountIdentified{ Typ: tree.AccountIdentifiedWithSSL, @@ -9696,10 +9710,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 581: + case 582: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3681 +//line mysql_sql.y:3685 { yyLOCAL = &tree.CreateRole{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -9707,66 +9721,66 @@ yydefault: } } yyVAL.union = yyLOCAL - case 582: + case 583: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.Role -//line mysql_sql.y:3690 +//line mysql_sql.y:3694 { yyLOCAL = []*tree.Role{yyDollar[1].roleUnion()} } yyVAL.union = yyLOCAL - case 583: + case 584: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Role -//line mysql_sql.y:3694 +//line mysql_sql.y:3698 { yyLOCAL = append(yyDollar[1].rolesUnion(), yyDollar[3].roleUnion()) } yyVAL.union = yyLOCAL - case 584: + case 585: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Role -//line mysql_sql.y:3700 +//line mysql_sql.y:3704 { yyLOCAL = &tree.Role{UserName: yyDollar[1].str} } yyVAL.union = yyLOCAL - case 587: + case 588: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IndexCategory -//line mysql_sql.y:3717 +//line mysql_sql.y:3721 { yyLOCAL = tree.INDEX_CATEGORY_NONE } yyVAL.union = yyLOCAL - case 588: + case 589: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IndexCategory -//line mysql_sql.y:3721 +//line mysql_sql.y:3725 { yyLOCAL = tree.INDEX_CATEGORY_FULLTEXT } yyVAL.union = yyLOCAL - case 589: + case 590: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IndexCategory -//line mysql_sql.y:3725 +//line mysql_sql.y:3729 { yyLOCAL = tree.INDEX_CATEGORY_SPATIAL } yyVAL.union = yyLOCAL - case 590: + case 591: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IndexCategory -//line mysql_sql.y:3729 +//line mysql_sql.y:3733 { yyLOCAL = tree.INDEX_CATEGORY_UNIQUE } yyVAL.union = yyLOCAL - case 591: + case 592: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3735 +//line mysql_sql.y:3739 { var io *tree.IndexOption = nil if yyDollar[11].indexOptionUnion() == nil && yyDollar[5].indexTypeUnion() != tree.INDEX_TYPE_INVALID { @@ -9785,18 +9799,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 592: + case 593: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:3754 +//line mysql_sql.y:3758 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 593: + case 594: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:3758 +//line mysql_sql.y:3762 { // Merge the options if yyDollar[1].indexOptionUnion() == nil { @@ -9817,123 +9831,123 @@ yydefault: } } yyVAL.union = yyLOCAL - case 594: + case 595: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:3780 +//line mysql_sql.y:3784 { yyLOCAL = &tree.IndexOption{KeyBlockSize: uint64(yyDollar[3].item.(int64))} } yyVAL.union = yyLOCAL - case 595: + case 596: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:3784 +//line mysql_sql.y:3788 { yyLOCAL = &tree.IndexOption{Comment: yyDollar[2].str} } yyVAL.union = yyLOCAL - case 596: + case 597: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:3788 +//line mysql_sql.y:3792 { yyLOCAL = &tree.IndexOption{ParserName: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 597: + case 598: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:3792 +//line mysql_sql.y:3796 { yyLOCAL = &tree.IndexOption{Visible: tree.VISIBLE_TYPE_VISIBLE} } yyVAL.union = yyLOCAL - case 598: + case 599: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:3796 +//line mysql_sql.y:3800 { yyLOCAL = &tree.IndexOption{Visible: tree.VISIBLE_TYPE_INVISIBLE} } yyVAL.union = yyLOCAL - case 599: + case 600: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:3802 +//line mysql_sql.y:3806 { yyLOCAL = []*tree.KeyPart{yyDollar[1].keyPartUnion()} } yyVAL.union = yyLOCAL - case 600: + case 601: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:3806 +//line mysql_sql.y:3810 { yyLOCAL = append(yyDollar[1].keyPartsUnion(), yyDollar[3].keyPartUnion()) } yyVAL.union = yyLOCAL - case 601: + case 602: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.KeyPart -//line mysql_sql.y:3812 +//line mysql_sql.y:3816 { // Order is parsed but just ignored as MySQL did. yyLOCAL = &tree.KeyPart{ColName: yyDollar[1].unresolvedNameUnion(), Length: int(yyDollar[2].lengthOptUnion()), Direction: yyDollar[3].directionUnion()} } yyVAL.union = yyLOCAL - case 602: + case 603: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.KeyPart -//line mysql_sql.y:3817 +//line mysql_sql.y:3821 { yyLOCAL = &tree.KeyPart{Expr: yyDollar[2].exprUnion(), Direction: yyDollar[4].directionUnion()} } yyVAL.union = yyLOCAL - case 603: + case 604: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:3822 +//line mysql_sql.y:3826 { yyLOCAL = tree.INDEX_TYPE_INVALID } yyVAL.union = yyLOCAL - case 604: + case 605: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:3826 +//line mysql_sql.y:3830 { yyLOCAL = tree.INDEX_TYPE_BTREE } yyVAL.union = yyLOCAL - case 605: + case 606: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:3830 +//line mysql_sql.y:3834 { yyLOCAL = tree.INDEX_TYPE_HASH } yyVAL.union = yyLOCAL - case 606: + case 607: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:3834 +//line mysql_sql.y:3838 { yyLOCAL = tree.INDEX_TYPE_RTREE } yyVAL.union = yyLOCAL - case 607: + case 608: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:3838 +//line mysql_sql.y:3842 { yyLOCAL = tree.INDEX_TYPE_BSI } yyVAL.union = yyLOCAL - case 608: + case 609: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3844 +//line mysql_sql.y:3848 { yyLOCAL = &tree.CreateDatabase{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -9942,98 +9956,98 @@ yydefault: } } yyVAL.union = yyLOCAL - case 611: + case 612: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:3858 +//line mysql_sql.y:3862 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 612: + case 613: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:3862 +//line mysql_sql.y:3866 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 613: + case 614: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:3867 +//line mysql_sql.y:3871 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 614: + case 615: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:3871 +//line mysql_sql.y:3875 { yyLOCAL = yyDollar[1].createOptionsUnion() } yyVAL.union = yyLOCAL - case 615: + case 616: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:3877 +//line mysql_sql.y:3881 { yyLOCAL = []tree.CreateOption{yyDollar[1].createOptionUnion()} } yyVAL.union = yyLOCAL - case 616: + case 617: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:3881 +//line mysql_sql.y:3885 { yyLOCAL = append(yyDollar[1].createOptionsUnion(), yyDollar[2].createOptionUnion()) } yyVAL.union = yyLOCAL - case 617: + case 618: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CreateOption -//line mysql_sql.y:3887 +//line mysql_sql.y:3891 { yyLOCAL = &tree.CreateOptionCharset{IsDefault: yyDollar[1].defaultOptionalUnion(), Charset: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 618: + case 619: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CreateOption -//line mysql_sql.y:3891 +//line mysql_sql.y:3895 { yyLOCAL = &tree.CreateOptionCollate{IsDefault: yyDollar[1].defaultOptionalUnion(), Collate: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 619: + case 620: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CreateOption -//line mysql_sql.y:3895 +//line mysql_sql.y:3899 { yyLOCAL = &tree.CreateOptionEncryption{Encrypt: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 620: + case 621: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:3900 +//line mysql_sql.y:3904 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 621: + case 622: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:3904 +//line mysql_sql.y:3908 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 622: + case 623: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3910 +//line mysql_sql.y:3914 { yyLOCAL = &tree.CreateTable{ Temporary: yyDollar[2].boolValUnion(), @@ -10045,10 +10059,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 623: + case 624: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:3921 +//line mysql_sql.y:3925 { yyLOCAL = &tree.CreateTable{ IfNotExists: yyDollar[4].ifNotExistsUnion(), @@ -10058,19 +10072,19 @@ yydefault: } } yyVAL.union = yyLOCAL - case 624: + case 625: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:3932 +//line mysql_sql.y:3936 { yyLOCAL = yyDollar[1].loadParamUnion() yyLOCAL.Tail = yyDollar[2].tailParamUnion() } yyVAL.union = yyLOCAL - case 625: + case 626: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:3939 +//line mysql_sql.y:3943 { yyLOCAL = &tree.ExternParam{ Filepath: yyDollar[2].str, @@ -10078,10 +10092,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 626: + case 627: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:3946 +//line mysql_sql.y:3950 { if strings.ToLower(yyDollar[3].str) != "filepath" { yylex.Error(fmt.Sprintf("can not recognize the '%s'", yyDollar[3].str)) @@ -10093,10 +10107,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 627: + case 628: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:3957 +//line mysql_sql.y:3961 { if strings.ToLower(yyDollar[3].str) != "filepath" || strings.ToLower(yyDollar[7].str) != "compression" { yylex.Error(fmt.Sprintf("can not recognize the '%s' or '%s' ", yyDollar[3].str, yyDollar[7].str)) @@ -10108,10 +10122,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 628: + case 629: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.TailParameter -//line mysql_sql.y:3970 +//line mysql_sql.y:3974 { yyLOCAL = &tree.TailParameter{ Fields: yyDollar[1].fieldsUnion(), @@ -10122,34 +10136,34 @@ yydefault: } } yyVAL.union = yyLOCAL - case 629: + case 630: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:3981 +//line mysql_sql.y:3985 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 630: + case 631: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:3985 +//line mysql_sql.y:3989 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 631: + case 632: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.PartitionOption -//line mysql_sql.y:3990 +//line mysql_sql.y:3994 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 632: + case 633: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.PartitionOption -//line mysql_sql.y:3994 +//line mysql_sql.y:3998 { yyDollar[3].partitionByUnion().Num = uint64(yyDollar[4].int64ValUnion()) yyLOCAL = &tree.PartitionOption{ @@ -10159,18 +10173,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 633: + case 634: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:4004 +//line mysql_sql.y:4008 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 634: + case 635: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:4008 +//line mysql_sql.y:4012 { yyLOCAL = &tree.PartitionBy{ IsSubPartition: true, @@ -10179,42 +10193,42 @@ yydefault: } } yyVAL.union = yyLOCAL - case 635: + case 636: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:4017 +//line mysql_sql.y:4021 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 636: + case 637: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:4021 +//line mysql_sql.y:4025 { yyLOCAL = yyDollar[2].partitionsUnion() } yyVAL.union = yyLOCAL - case 637: + case 638: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:4027 +//line mysql_sql.y:4031 { yyLOCAL = []*tree.Partition{yyDollar[1].partitionUnion()} } yyVAL.union = yyLOCAL - case 638: + case 639: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:4031 +//line mysql_sql.y:4035 { yyLOCAL = append(yyDollar[1].partitionsUnion(), yyDollar[3].partitionUnion()) } yyVAL.union = yyLOCAL - case 639: + case 640: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Partition -//line mysql_sql.y:4037 +//line mysql_sql.y:4041 { yyLOCAL = &tree.Partition{ Name: tree.Identifier(yyDollar[2].str), @@ -10224,10 +10238,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 640: + case 641: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Partition -//line mysql_sql.y:4046 +//line mysql_sql.y:4050 { yyLOCAL = &tree.Partition{ Name: tree.Identifier(yyDollar[2].str), @@ -10237,42 +10251,42 @@ yydefault: } } yyVAL.union = yyLOCAL - case 641: + case 642: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:4056 +//line mysql_sql.y:4060 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 642: + case 643: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:4060 +//line mysql_sql.y:4064 { yyLOCAL = yyDollar[2].subPartitionsUnion() } yyVAL.union = yyLOCAL - case 643: + case 644: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:4066 +//line mysql_sql.y:4070 { yyLOCAL = []*tree.SubPartition{yyDollar[1].subPartitionUnion()} } yyVAL.union = yyLOCAL - case 644: + case 645: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:4070 +//line mysql_sql.y:4074 { yyLOCAL = append(yyDollar[1].subPartitionsUnion(), yyDollar[3].subPartitionUnion()) } yyVAL.union = yyLOCAL - case 645: + case 646: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.SubPartition -//line mysql_sql.y:4076 +//line mysql_sql.y:4080 { yyLOCAL = &tree.SubPartition{ Name: tree.Identifier(yyDollar[2].str), @@ -10280,10 +10294,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 646: + case 647: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.SubPartition -//line mysql_sql.y:4083 +//line mysql_sql.y:4087 { yyLOCAL = &tree.SubPartition{ Name: tree.Identifier(yyDollar[2].str), @@ -10291,67 +10305,67 @@ yydefault: } } yyVAL.union = yyLOCAL - case 647: + case 648: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:4092 +//line mysql_sql.y:4096 { yyLOCAL = []tree.TableOption{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 648: + case 649: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:4096 +//line mysql_sql.y:4100 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[2].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 649: + case 650: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:4101 +//line mysql_sql.y:4105 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 650: + case 651: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:4105 +//line mysql_sql.y:4109 { expr := tree.NewMaxValue() yyLOCAL = &tree.ValuesLessThan{ValueList: tree.Exprs{expr}} } yyVAL.union = yyLOCAL - case 651: + case 652: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:4110 +//line mysql_sql.y:4114 { yyLOCAL = &tree.ValuesLessThan{ValueList: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 652: + case 653: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:4114 +//line mysql_sql.y:4118 { yyLOCAL = &tree.ValuesIn{ValueList: yyDollar[4].exprsUnion()} } yyVAL.union = yyLOCAL - case 653: + case 654: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:4119 +//line mysql_sql.y:4123 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 654: + case 655: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:4123 +//line mysql_sql.y:4127 { res := yyDollar[2].item.(int64) if res == 0 { @@ -10361,18 +10375,18 @@ yydefault: yyLOCAL = res } yyVAL.union = yyLOCAL - case 655: + case 656: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:4133 +//line mysql_sql.y:4137 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 656: + case 657: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:4137 +//line mysql_sql.y:4141 { res := yyDollar[2].item.(int64) if res == 0 { @@ -10382,10 +10396,10 @@ yydefault: yyLOCAL = res } yyVAL.union = yyLOCAL - case 657: + case 658: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:4148 +//line mysql_sql.y:4152 { yyLOCAL = &tree.PartitionBy{ PType: &tree.RangeType{ @@ -10394,10 +10408,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 658: + case 659: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:4156 +//line mysql_sql.y:4160 { yyLOCAL = &tree.PartitionBy{ PType: &tree.RangeType{ @@ -10406,10 +10420,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 659: + case 660: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:4164 +//line mysql_sql.y:4168 { yyLOCAL = &tree.PartitionBy{ PType: &tree.ListType{ @@ -10418,10 +10432,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 660: + case 661: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:4172 +//line mysql_sql.y:4176 { yyLOCAL = &tree.PartitionBy{ PType: &tree.ListType{ @@ -10430,10 +10444,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 662: + case 663: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:4183 +//line mysql_sql.y:4187 { yyLOCAL = &tree.PartitionBy{ PType: &tree.KeyType{ @@ -10444,10 +10458,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 663: + case 664: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:4193 +//line mysql_sql.y:4197 { yyLOCAL = &tree.PartitionBy{ PType: &tree.HashType{ @@ -10457,100 +10471,92 @@ yydefault: } } yyVAL.union = yyLOCAL - case 664: + case 665: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:4203 +//line mysql_sql.y:4207 { yyLOCAL = 2 } yyVAL.union = yyLOCAL - case 665: + case 666: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:4207 +//line mysql_sql.y:4211 { yyLOCAL = yyDollar[3].item.(int64) } yyVAL.union = yyLOCAL - case 666: + case 667: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:4212 +//line mysql_sql.y:4216 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 667: + case 668: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:4216 +//line mysql_sql.y:4220 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 668: + case 669: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:4221 +//line mysql_sql.y:4225 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 669: + case 670: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:4225 +//line mysql_sql.y:4229 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 670: + case 671: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:4231 +//line mysql_sql.y:4235 { yyLOCAL = []tree.TableOption{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 671: + case 672: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:4235 +//line mysql_sql.y:4239 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[3].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 672: + case 673: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:4239 +//line mysql_sql.y:4243 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[2].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 673: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL tree.TableOption -//line mysql_sql.y:4245 - { - yyLOCAL = tree.NewTableOptionAutoIncrement(uint64(yyDollar[3].item.(int64))) - } - yyVAL.union = yyLOCAL case 674: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption //line mysql_sql.y:4249 { - yyLOCAL = tree.NewTableOptionAvgRowLength(uint64(yyDollar[3].item.(int64))) + yyLOCAL = tree.NewTableOptionAutoIncrement(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL case 675: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption //line mysql_sql.y:4253 { - yyLOCAL = tree.NewTableOptionCharset(yyDollar[4].str) + yyLOCAL = tree.NewTableOptionAvgRowLength(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL case 676: @@ -10558,15 +10564,15 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4257 { - yyLOCAL = tree.NewTableOptionCollate(yyDollar[4].str) + yyLOCAL = tree.NewTableOptionCharset(yyDollar[4].str) } yyVAL.union = yyLOCAL case 677: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption //line mysql_sql.y:4261 { - yyLOCAL = tree.NewTableOptionChecksum(uint64(yyDollar[3].item.(int64))) + yyLOCAL = tree.NewTableOptionCollate(yyDollar[4].str) } yyVAL.union = yyLOCAL case 678: @@ -10574,7 +10580,7 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4265 { - yyLOCAL = tree.NewTableOptionComment(yyDollar[3].str) + yyLOCAL = tree.NewTableOptionChecksum(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL case 679: @@ -10582,7 +10588,7 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4269 { - yyLOCAL = tree.NewTableOptionCompression(yyDollar[3].str) + yyLOCAL = tree.NewTableOptionComment(yyDollar[3].str) } yyVAL.union = yyLOCAL case 680: @@ -10590,15 +10596,15 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4273 { - yyLOCAL = tree.NewTableOptionConnection(yyDollar[3].str) + yyLOCAL = tree.NewTableOptionCompression(yyDollar[3].str) } yyVAL.union = yyLOCAL case 681: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption //line mysql_sql.y:4277 { - yyLOCAL = tree.NewTableOptionDataDirectory(yyDollar[4].str) + yyLOCAL = tree.NewTableOptionConnection(yyDollar[3].str) } yyVAL.union = yyLOCAL case 682: @@ -10606,15 +10612,15 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4281 { - yyLOCAL = tree.NewTableOptionIndexDirectory(yyDollar[4].str) + yyLOCAL = tree.NewTableOptionDataDirectory(yyDollar[4].str) } yyVAL.union = yyLOCAL case 683: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption //line mysql_sql.y:4285 { - yyLOCAL = tree.NewTableOptionDelayKeyWrite(uint64(yyDollar[3].item.(int64))) + yyLOCAL = tree.NewTableOptionIndexDirectory(yyDollar[4].str) } yyVAL.union = yyLOCAL case 684: @@ -10622,7 +10628,7 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4289 { - yyLOCAL = tree.NewTableOptionEncryption(yyDollar[3].str) + yyLOCAL = tree.NewTableOptionDelayKeyWrite(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL case 685: @@ -10630,7 +10636,7 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4293 { - yyLOCAL = tree.NewTableOptionEngine(yyDollar[3].str) + yyLOCAL = tree.NewTableOptionEncryption(yyDollar[3].str) } yyVAL.union = yyLOCAL case 686: @@ -10638,7 +10644,7 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4297 { - yyLOCAL = tree.NewTableOptionKeyBlockSize(uint64(yyDollar[3].item.(int64))) + yyLOCAL = tree.NewTableOptionEngine(yyDollar[3].str) } yyVAL.union = yyLOCAL case 687: @@ -10646,7 +10652,7 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4301 { - yyLOCAL = tree.NewTableOptionMaxRows(uint64(yyDollar[3].item.(int64))) + yyLOCAL = tree.NewTableOptionKeyBlockSize(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL case 688: @@ -10654,7 +10660,7 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4305 { - yyLOCAL = tree.NewTableOptionMinRows(uint64(yyDollar[3].item.(int64))) + yyLOCAL = tree.NewTableOptionMaxRows(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL case 689: @@ -10662,7 +10668,7 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4309 { - yyLOCAL = &tree.TableOptionPackKeys{Value: yyDollar[3].item.(int64)} + yyLOCAL = tree.NewTableOptionMinRows(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL case 690: @@ -10670,7 +10676,7 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4313 { - yyLOCAL = &tree.TableOptionPackKeys{Default: true} + yyLOCAL = &tree.TableOptionPackKeys{Value: yyDollar[3].item.(int64)} } yyVAL.union = yyLOCAL case 691: @@ -10678,7 +10684,7 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4317 { - yyLOCAL = tree.NewTableOptionPassword(yyDollar[3].str) + yyLOCAL = &tree.TableOptionPackKeys{Default: true} } yyVAL.union = yyLOCAL case 692: @@ -10686,7 +10692,7 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4321 { - yyLOCAL = tree.NewTableOptionRowFormat(yyDollar[3].rowFormatTypeUnion()) + yyLOCAL = tree.NewTableOptionPassword(yyDollar[3].str) } yyVAL.union = yyLOCAL case 693: @@ -10694,7 +10700,7 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4325 { - yyLOCAL = &tree.TableOptionStatsAutoRecalc{Value: uint64(yyDollar[3].item.(int64))} + yyLOCAL = tree.NewTableOptionRowFormat(yyDollar[3].rowFormatTypeUnion()) } yyVAL.union = yyLOCAL case 694: @@ -10702,7 +10708,7 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4329 { - yyLOCAL = &tree.TableOptionStatsAutoRecalc{Default: true} + yyLOCAL = &tree.TableOptionStatsAutoRecalc{Value: uint64(yyDollar[3].item.(int64))} } yyVAL.union = yyLOCAL case 695: @@ -10710,7 +10716,7 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4333 { - yyLOCAL = &tree.TableOptionStatsPersistent{Value: uint64(yyDollar[3].item.(int64))} + yyLOCAL = &tree.TableOptionStatsAutoRecalc{Default: true} } yyVAL.union = yyLOCAL case 696: @@ -10718,7 +10724,7 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4337 { - yyLOCAL = &tree.TableOptionStatsPersistent{Default: true} + yyLOCAL = &tree.TableOptionStatsPersistent{Value: uint64(yyDollar[3].item.(int64))} } yyVAL.union = yyLOCAL case 697: @@ -10726,7 +10732,7 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4341 { - yyLOCAL = &tree.TableOptionStatsSamplePages{Value: uint64(yyDollar[3].item.(int64))} + yyLOCAL = &tree.TableOptionStatsPersistent{Default: true} } yyVAL.union = yyLOCAL case 698: @@ -10734,68 +10740,70 @@ yydefault: var yyLOCAL tree.TableOption //line mysql_sql.y:4345 { - yyLOCAL = &tree.TableOptionStatsSamplePages{Default: true} + yyLOCAL = &tree.TableOptionStatsSamplePages{Value: uint64(yyDollar[3].item.(int64))} } yyVAL.union = yyLOCAL case 699: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption //line mysql_sql.y:4349 { - yyLOCAL = tree.NewTableOptionTablespace(yyDollar[3].str, yyDollar[4].str) + yyLOCAL = &tree.TableOptionStatsSamplePages{Default: true} } yyVAL.union = yyLOCAL case 700: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption //line mysql_sql.y:4353 { - yyLOCAL = tree.NewTableOptionUnion(yyDollar[4].tableNamesUnion()) + yyLOCAL = tree.NewTableOptionTablespace(yyDollar[3].str, yyDollar[4].str) } yyVAL.union = yyLOCAL case 701: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.TableOption //line mysql_sql.y:4357 { - yyLOCAL = &tree.TableOptionProperties{Preperties: yyDollar[3].propertiesUnion()} + yyLOCAL = tree.NewTableOptionUnion(yyDollar[4].tableNamesUnion()) } yyVAL.union = yyLOCAL case 702: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL tree.TableOption +//line mysql_sql.y:4361 + { + yyLOCAL = &tree.TableOptionProperties{Preperties: yyDollar[3].propertiesUnion()} + } + yyVAL.union = yyLOCAL + case 703: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.Property -//line mysql_sql.y:4364 +//line mysql_sql.y:4368 { yyLOCAL = []tree.Property{yyDollar[1].propertyUnion()} } yyVAL.union = yyLOCAL - case 703: + case 704: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.Property -//line mysql_sql.y:4368 +//line mysql_sql.y:4372 { yyLOCAL = append(yyDollar[1].propertiesUnion(), yyDollar[3].propertyUnion()) } yyVAL.union = yyLOCAL - case 704: + case 705: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Property -//line mysql_sql.y:4374 +//line mysql_sql.y:4378 { yyLOCAL = tree.Property{Key: yyDollar[1].str, Value: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 705: - yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:4379 - { - yyVAL.str = "" - } case 706: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line mysql_sql.y:4383 { - yyVAL.str = " " + yyDollar[1].str + " " + yyDollar[2].str + yyVAL.str = "" } case 707: yyDollar = yyS[yypt-2 : yypt+1] @@ -10804,19 +10812,17 @@ yydefault: yyVAL.str = " " + yyDollar[1].str + " " + yyDollar[2].str } case 708: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL tree.RowFormatType -//line mysql_sql.y:4393 + yyDollar = yyS[yypt-2 : yypt+1] +//line mysql_sql.y:4391 { - yyLOCAL = tree.ROW_FORMAT_DEFAULT + yyVAL.str = " " + yyDollar[1].str + " " + yyDollar[2].str } - yyVAL.union = yyLOCAL case 709: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType //line mysql_sql.y:4397 { - yyLOCAL = tree.ROW_FORMAT_DYNAMIC + yyLOCAL = tree.ROW_FORMAT_DEFAULT } yyVAL.union = yyLOCAL case 710: @@ -10824,7 +10830,7 @@ yydefault: var yyLOCAL tree.RowFormatType //line mysql_sql.y:4401 { - yyLOCAL = tree.ROW_FORMAT_FIXED + yyLOCAL = tree.ROW_FORMAT_DYNAMIC } yyVAL.union = yyLOCAL case 711: @@ -10832,7 +10838,7 @@ yydefault: var yyLOCAL tree.RowFormatType //line mysql_sql.y:4405 { - yyLOCAL = tree.ROW_FORMAT_COMPRESSED + yyLOCAL = tree.ROW_FORMAT_FIXED } yyVAL.union = yyLOCAL case 712: @@ -10840,95 +10846,103 @@ yydefault: var yyLOCAL tree.RowFormatType //line mysql_sql.y:4409 { - yyLOCAL = tree.ROW_FORMAT_REDUNDANT + yyLOCAL = tree.ROW_FORMAT_COMPRESSED } yyVAL.union = yyLOCAL case 713: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType //line mysql_sql.y:4413 + { + yyLOCAL = tree.ROW_FORMAT_REDUNDANT + } + yyVAL.union = yyLOCAL + case 714: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL tree.RowFormatType +//line mysql_sql.y:4417 { yyLOCAL = tree.ROW_FORMAT_COMPACT } yyVAL.union = yyLOCAL - case 718: + case 719: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableNames -//line mysql_sql.y:4427 +//line mysql_sql.y:4431 { yyLOCAL = tree.TableNames{yyDollar[1].tableNameUnion()} } yyVAL.union = yyLOCAL - case 719: + case 720: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableNames -//line mysql_sql.y:4431 +//line mysql_sql.y:4435 { yyLOCAL = append(yyDollar[1].tableNamesUnion(), yyDollar[3].tableNameUnion()) } yyVAL.union = yyLOCAL - case 720: + case 721: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:4440 +//line mysql_sql.y:4444 { prefix := tree.ObjectNamePrefix{ExplicitSchema: false} yyLOCAL = tree.NewTableName(tree.Identifier(yyDollar[1].str), prefix) } yyVAL.union = yyLOCAL - case 721: + case 722: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:4445 +//line mysql_sql.y:4449 { prefix := tree.ObjectNamePrefix{SchemaName: tree.Identifier(yyDollar[1].str), ExplicitSchema: true} yyLOCAL = tree.NewTableName(tree.Identifier(yyDollar[3].str), prefix) } yyVAL.union = yyLOCAL - case 722: + case 723: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.TableDefs -//line mysql_sql.y:4451 +//line mysql_sql.y:4455 { yyLOCAL = tree.TableDefs(nil) } yyVAL.union = yyLOCAL - case 724: + case 725: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDefs -//line mysql_sql.y:4458 +//line mysql_sql.y:4462 { yyLOCAL = tree.TableDefs{yyDollar[1].tableDefUnion()} } yyVAL.union = yyLOCAL - case 725: + case 726: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableDefs -//line mysql_sql.y:4462 +//line mysql_sql.y:4466 { yyLOCAL = append(yyDollar[1].tableDefsUnion(), yyDollar[3].tableDefUnion()) } yyVAL.union = yyLOCAL - case 726: + case 727: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4468 +//line mysql_sql.y:4472 { yyLOCAL = tree.TableDef(yyDollar[1].columnTableDefUnion()) } yyVAL.union = yyLOCAL - case 727: + case 728: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4472 +//line mysql_sql.y:4476 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 728: + case 729: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4478 +//line mysql_sql.y:4482 { if yyDollar[1].str != "" { switch v := yyDollar[2].tableDefUnion().(type) { @@ -10939,18 +10953,18 @@ yydefault: yyLOCAL = yyDollar[2].tableDefUnion() } yyVAL.union = yyLOCAL - case 729: + case 730: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4488 +//line mysql_sql.y:4492 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 730: + case 731: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4494 +//line mysql_sql.y:4498 { yyLOCAL = &tree.PrimaryKeyIndex{ KeyParts: yyDollar[5].keyPartsUnion(), @@ -10960,10 +10974,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 731: + case 732: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4503 +//line mysql_sql.y:4507 { yyLOCAL = &tree.FullTextIndex{ KeyParts: yyDollar[5].keyPartsUnion(), @@ -10973,10 +10987,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 732: + case 733: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4512 +//line mysql_sql.y:4516 { keyTyp := tree.INDEX_TYPE_INVALID if yyDollar[3].strsUnion()[1] != "" { @@ -11000,10 +11014,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 733: + case 734: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4535 +//line mysql_sql.y:4539 { yyLOCAL = &tree.UniqueIndex{ KeyParts: yyDollar[5].keyPartsUnion(), @@ -11013,10 +11027,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 734: + case 735: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4544 +//line mysql_sql.y:4548 { yyLOCAL = &tree.ForeignKey{ IfNotExists: yyDollar[3].ifNotExistsUnion(), @@ -11027,10 +11041,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 735: + case 736: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:4554 +//line mysql_sql.y:4558 { yyLOCAL = &tree.CheckIndex{ Expr: yyDollar[3].exprUnion(), @@ -11038,164 +11052,156 @@ yydefault: } } yyVAL.union = yyLOCAL - case 736: + case 737: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:4562 +//line mysql_sql.y:4566 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 738: + case 739: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:4568 +//line mysql_sql.y:4572 { yyVAL.str = "" } - case 739: + case 740: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:4572 +//line mysql_sql.y:4576 { yyVAL.str = yyDollar[1].str } - case 742: + case 743: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:4582 +//line mysql_sql.y:4586 { yyLOCAL = make([]string, 2) yyLOCAL[0] = yyDollar[1].str yyLOCAL[1] = "" } yyVAL.union = yyLOCAL - case 743: + case 744: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:4588 +//line mysql_sql.y:4592 { yyLOCAL = make([]string, 2) yyLOCAL[0] = yyDollar[1].str yyLOCAL[1] = yyDollar[3].str } yyVAL.union = yyLOCAL - case 744: + case 745: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:4594 +//line mysql_sql.y:4598 { yyLOCAL = make([]string, 2) yyLOCAL[0] = yyDollar[1].str yyLOCAL[1] = yyDollar[3].str } yyVAL.union = yyLOCAL - case 750: + case 751: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:4608 +//line mysql_sql.y:4612 { yyVAL.str = "" } - case 752: + case 753: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ColumnTableDef -//line mysql_sql.y:4615 +//line mysql_sql.y:4619 { yyLOCAL = tree.NewColumnTableDef(yyDollar[1].unresolvedNameUnion(), yyDollar[2].columnTypeUnion(), yyDollar[3].columnAttributesUnion()) } yyVAL.union = yyLOCAL - case 753: + case 754: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:4621 +//line mysql_sql.y:4625 { yyLOCAL = tree.SetUnresolvedName(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 754: + case 755: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:4625 +//line mysql_sql.y:4629 { yyLOCAL = tree.SetUnresolvedName(yyDollar[1].str, yyDollar[3].str) } yyVAL.union = yyLOCAL - case 755: + case 756: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:4629 +//line mysql_sql.y:4633 { yyLOCAL = tree.SetUnresolvedName(yyDollar[1].str, yyDollar[3].str, yyDollar[5].str) } yyVAL.union = yyLOCAL - case 759: + case 760: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:4640 +//line mysql_sql.y:4644 { yyLOCAL = tree.SetUnresolvedName(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 760: + case 761: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:4644 +//line mysql_sql.y:4648 { yyLOCAL = tree.SetUnresolvedName(yyDollar[1].str, yyDollar[3].str) } yyVAL.union = yyLOCAL - case 761: + case 762: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:4648 +//line mysql_sql.y:4652 { yyLOCAL = tree.SetUnresolvedName(yyDollar[1].str, yyDollar[3].str, yyDollar[5].str) } yyVAL.union = yyLOCAL - case 762: + case 763: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:4653 +//line mysql_sql.y:4657 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 763: + case 764: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:4657 +//line mysql_sql.y:4661 { yyLOCAL = yyDollar[1].columnAttributesUnion() } yyVAL.union = yyLOCAL - case 764: + case 765: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:4663 +//line mysql_sql.y:4667 { yyLOCAL = []tree.ColumnAttribute{yyDollar[1].columnAttributeUnion()} } yyVAL.union = yyLOCAL - case 765: + case 766: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:4667 +//line mysql_sql.y:4671 { yyLOCAL = append(yyDollar[1].columnAttributesUnion(), yyDollar[2].columnAttributeUnion()) } yyVAL.union = yyLOCAL - case 766: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:4673 - { - yyLOCAL = tree.NewAttributeNull(true) - } - yyVAL.union = yyLOCAL case 767: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute //line mysql_sql.y:4677 { - yyLOCAL = tree.NewAttributeNull(false) + yyLOCAL = tree.NewAttributeNull(true) } yyVAL.union = yyLOCAL case 768: @@ -11203,15 +11209,15 @@ yydefault: var yyLOCAL tree.ColumnAttribute //line mysql_sql.y:4681 { - yyLOCAL = tree.NewAttributeDefault(yyDollar[2].exprUnion()) + yyLOCAL = tree.NewAttributeNull(false) } yyVAL.union = yyLOCAL case 769: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute //line mysql_sql.y:4685 { - yyLOCAL = tree.NewAttributeAutoIncrement() + yyLOCAL = tree.NewAttributeDefault(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL case 770: @@ -11219,15 +11225,15 @@ yydefault: var yyLOCAL tree.ColumnAttribute //line mysql_sql.y:4689 { - yyLOCAL = yyDollar[1].columnAttributeUnion() + yyLOCAL = tree.NewAttributeAutoIncrement() } yyVAL.union = yyLOCAL case 771: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute //line mysql_sql.y:4693 { - yyLOCAL = tree.NewAttributeComment(tree.NewNumValWithType(constant.MakeString(yyDollar[2].str), yyDollar[2].str, false, tree.P_char)) + yyLOCAL = yyDollar[1].columnAttributeUnion() } yyVAL.union = yyLOCAL case 772: @@ -11235,7 +11241,7 @@ yydefault: var yyLOCAL tree.ColumnAttribute //line mysql_sql.y:4697 { - yyLOCAL = tree.NewAttributeCollate(yyDollar[2].str) + yyLOCAL = tree.NewAttributeComment(tree.NewNumValWithType(constant.MakeString(yyDollar[2].str), yyDollar[2].str, false, tree.P_char)) } yyVAL.union = yyLOCAL case 773: @@ -11243,7 +11249,7 @@ yydefault: var yyLOCAL tree.ColumnAttribute //line mysql_sql.y:4701 { - yyLOCAL = tree.NewAttributeColumnFormat(yyDollar[2].str) + yyLOCAL = tree.NewAttributeCollate(yyDollar[2].str) } yyVAL.union = yyLOCAL case 774: @@ -11251,7 +11257,7 @@ yydefault: var yyLOCAL tree.ColumnAttribute //line mysql_sql.y:4705 { - yyLOCAL = tree.NewAttributeStorage(yyDollar[2].str) + yyLOCAL = tree.NewAttributeColumnFormat(yyDollar[2].str) } yyVAL.union = yyLOCAL case 775: @@ -11259,77 +11265,85 @@ yydefault: var yyLOCAL tree.ColumnAttribute //line mysql_sql.y:4709 { - yyLOCAL = tree.NewAttributeAutoRandom(int(yyDollar[2].int64ValUnion())) + yyLOCAL = tree.NewAttributeStorage(yyDollar[2].str) } yyVAL.union = yyLOCAL case 776: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute //line mysql_sql.y:4713 { - yyLOCAL = yyDollar[1].attributeReferenceUnion() + yyLOCAL = tree.NewAttributeAutoRandom(int(yyDollar[2].int64ValUnion())) } yyVAL.union = yyLOCAL case 777: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute //line mysql_sql.y:4717 { - yyLOCAL = tree.NewAttributeCheck(yyDollar[4].exprUnion(), false, yyDollar[1].str) + yyLOCAL = yyDollar[1].attributeReferenceUnion() } yyVAL.union = yyLOCAL case 778: - yyDollar = yyS[yypt-6 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.ColumnAttribute //line mysql_sql.y:4721 { - yyLOCAL = tree.NewAttributeCheck(yyDollar[4].exprUnion(), yyDollar[6].boolValUnion(), yyDollar[1].str) + yyLOCAL = tree.NewAttributeCheck(yyDollar[4].exprUnion(), false, yyDollar[1].str) } yyVAL.union = yyLOCAL case 779: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL tree.ColumnAttribute +//line mysql_sql.y:4725 + { + yyLOCAL = tree.NewAttributeCheck(yyDollar[4].exprUnion(), yyDollar[6].boolValUnion(), yyDollar[1].str) + } + yyVAL.union = yyLOCAL + case 780: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:4731 +//line mysql_sql.y:4735 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 780: + case 781: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:4735 +//line mysql_sql.y:4739 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 781: + case 782: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:4740 +//line mysql_sql.y:4744 { yyVAL.str = "" } - case 782: + case 783: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:4744 +//line mysql_sql.y:4748 { yyVAL.str = yyDollar[1].str } - case 783: + case 784: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:4750 +//line mysql_sql.y:4754 { yyVAL.str = "" } - case 784: + case 785: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:4754 +//line mysql_sql.y:4758 { yyVAL.str = yyDollar[2].str } - case 785: + case 786: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AttributeReference -//line mysql_sql.y:4760 +//line mysql_sql.y:4764 { yyLOCAL = &tree.AttributeReference{ TableName: yyDollar[2].tableNameUnion(), @@ -11340,10 +11354,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 786: + case 787: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:4771 +//line mysql_sql.y:4775 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: tree.REFERENCE_OPTION_INVALID, @@ -11351,10 +11365,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 788: + case 789: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:4781 +//line mysql_sql.y:4785 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: yyDollar[1].referenceOptionTypeUnion(), @@ -11362,10 +11376,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 789: + case 790: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:4788 +//line mysql_sql.y:4792 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: tree.REFERENCE_OPTION_INVALID, @@ -11373,10 +11387,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 790: + case 791: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:4795 +//line mysql_sql.y:4799 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: yyDollar[1].referenceOptionTypeUnion(), @@ -11384,10 +11398,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 791: + case 792: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:4802 +//line mysql_sql.y:4806 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: yyDollar[2].referenceOptionTypeUnion(), @@ -11395,148 +11409,140 @@ yydefault: } } yyVAL.union = yyLOCAL - case 792: + case 793: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:4811 +//line mysql_sql.y:4815 { yyLOCAL = yyDollar[3].referenceOptionTypeUnion() } yyVAL.union = yyLOCAL - case 793: + case 794: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:4817 +//line mysql_sql.y:4821 { yyLOCAL = yyDollar[3].referenceOptionTypeUnion() } yyVAL.union = yyLOCAL - case 794: + case 795: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:4823 +//line mysql_sql.y:4827 { yyLOCAL = tree.REFERENCE_OPTION_RESTRICT } yyVAL.union = yyLOCAL - case 795: + case 796: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:4827 +//line mysql_sql.y:4831 { yyLOCAL = tree.REFERENCE_OPTION_CASCADE } yyVAL.union = yyLOCAL - case 796: + case 797: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:4831 +//line mysql_sql.y:4835 { yyLOCAL = tree.REFERENCE_OPTION_SET_NULL } yyVAL.union = yyLOCAL - case 797: + case 798: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:4835 +//line mysql_sql.y:4839 { yyLOCAL = tree.REFERENCE_OPTION_NO_ACTION } yyVAL.union = yyLOCAL - case 798: + case 799: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:4839 +//line mysql_sql.y:4843 { yyLOCAL = tree.REFERENCE_OPTION_SET_DEFAULT } yyVAL.union = yyLOCAL - case 799: + case 800: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:4844 +//line mysql_sql.y:4848 { yyLOCAL = tree.MATCH_INVALID } yyVAL.union = yyLOCAL - case 801: + case 802: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:4851 +//line mysql_sql.y:4855 { yyLOCAL = tree.MATCH_FULL } yyVAL.union = yyLOCAL - case 802: + case 803: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:4855 +//line mysql_sql.y:4859 { yyLOCAL = tree.MATCH_PARTIAL } yyVAL.union = yyLOCAL - case 803: + case 804: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:4859 +//line mysql_sql.y:4863 { yyLOCAL = tree.MATCH_SIMPLE } yyVAL.union = yyLOCAL - case 804: + case 805: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:4864 +//line mysql_sql.y:4868 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 805: + case 806: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:4868 +//line mysql_sql.y:4872 { yyLOCAL = yyDollar[2].keyPartsUnion() } yyVAL.union = yyLOCAL - case 806: + case 807: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:4873 +//line mysql_sql.y:4877 { yyLOCAL = -1 } yyVAL.union = yyLOCAL - case 807: + case 808: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:4877 +//line mysql_sql.y:4881 { yyLOCAL = yyDollar[2].item.(int64) } yyVAL.union = yyLOCAL - case 814: + case 815: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Subquery -//line mysql_sql.y:4893 +//line mysql_sql.y:4897 { yyLOCAL = &tree.Subquery{Select: yyDollar[1].selectStatementUnion(), Exists: false} } yyVAL.union = yyLOCAL - case 815: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL tree.Expr -//line mysql_sql.y:4899 - { - yyLOCAL = tree.NewBinaryExpr(tree.BIT_AND, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) - } - yyVAL.union = yyLOCAL case 816: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr //line mysql_sql.y:4903 { - yyLOCAL = tree.NewBinaryExpr(tree.BIT_OR, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + yyLOCAL = tree.NewBinaryExpr(tree.BIT_AND, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 817: @@ -11544,7 +11550,7 @@ yydefault: var yyLOCAL tree.Expr //line mysql_sql.y:4907 { - yyLOCAL = tree.NewBinaryExpr(tree.BIT_XOR, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + yyLOCAL = tree.NewBinaryExpr(tree.BIT_OR, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 818: @@ -11552,7 +11558,7 @@ yydefault: var yyLOCAL tree.Expr //line mysql_sql.y:4911 { - yyLOCAL = tree.NewBinaryExpr(tree.PLUS, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + yyLOCAL = tree.NewBinaryExpr(tree.BIT_XOR, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 819: @@ -11560,7 +11566,7 @@ yydefault: var yyLOCAL tree.Expr //line mysql_sql.y:4915 { - yyLOCAL = tree.NewBinaryExpr(tree.MINUS, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + yyLOCAL = tree.NewBinaryExpr(tree.PLUS, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 820: @@ -11568,7 +11574,7 @@ yydefault: var yyLOCAL tree.Expr //line mysql_sql.y:4919 { - yyLOCAL = tree.NewBinaryExpr(tree.MULTI, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + yyLOCAL = tree.NewBinaryExpr(tree.MINUS, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 821: @@ -11576,7 +11582,7 @@ yydefault: var yyLOCAL tree.Expr //line mysql_sql.y:4923 { - yyLOCAL = tree.NewBinaryExpr(tree.DIV, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + yyLOCAL = tree.NewBinaryExpr(tree.MULTI, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 822: @@ -11584,7 +11590,7 @@ yydefault: var yyLOCAL tree.Expr //line mysql_sql.y:4927 { - yyLOCAL = tree.NewBinaryExpr(tree.INTEGER_DIV, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + yyLOCAL = tree.NewBinaryExpr(tree.DIV, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 823: @@ -11592,7 +11598,7 @@ yydefault: var yyLOCAL tree.Expr //line mysql_sql.y:4931 { - yyLOCAL = tree.NewBinaryExpr(tree.MOD, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + yyLOCAL = tree.NewBinaryExpr(tree.INTEGER_DIV, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 824: @@ -11608,7 +11614,7 @@ yydefault: var yyLOCAL tree.Expr //line mysql_sql.y:4939 { - yyLOCAL = tree.NewBinaryExpr(tree.LEFT_SHIFT, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + yyLOCAL = tree.NewBinaryExpr(tree.MOD, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 826: @@ -11616,23 +11622,23 @@ yydefault: var yyLOCAL tree.Expr //line mysql_sql.y:4943 { - yyLOCAL = tree.NewBinaryExpr(tree.RIGHT_SHIFT, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) + yyLOCAL = tree.NewBinaryExpr(tree.LEFT_SHIFT, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 827: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr //line mysql_sql.y:4947 { - yyLOCAL = yyDollar[1].exprUnion() + yyLOCAL = tree.NewBinaryExpr(tree.RIGHT_SHIFT, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL case 828: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:4953 +//line mysql_sql.y:4951 { - yyLOCAL = yyDollar[1].unresolvedNameUnion() + yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL case 829: @@ -11640,7 +11646,7 @@ yydefault: var yyLOCAL tree.Expr //line mysql_sql.y:4957 { - yyLOCAL = yyDollar[1].varExprUnion() + yyLOCAL = yyDollar[1].unresolvedNameUnion() } yyVAL.union = yyLOCAL case 830: @@ -11648,31 +11654,31 @@ yydefault: var yyLOCAL tree.Expr //line mysql_sql.y:4961 { - yyLOCAL = yyDollar[1].exprUnion() + yyLOCAL = yyDollar[1].varExprUnion() } yyVAL.union = yyLOCAL case 831: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr //line mysql_sql.y:4965 { - yyLOCAL = tree.NewParenExpr(yyDollar[2].exprUnion()) + yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL case 832: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr //line mysql_sql.y:4969 { - yyLOCAL = tree.NewTuple(append(yyDollar[2].exprsUnion(), yyDollar[4].exprUnion())) + yyLOCAL = tree.NewParenExpr(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL case 833: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr //line mysql_sql.y:4973 { - yyLOCAL = tree.NewUnaryExpr(tree.UNARY_PLUS, yyDollar[2].exprUnion()) + yyLOCAL = tree.NewTuple(append(yyDollar[2].exprsUnion(), yyDollar[4].exprUnion())) } yyVAL.union = yyLOCAL case 834: @@ -11680,7 +11686,7 @@ yydefault: var yyLOCAL tree.Expr //line mysql_sql.y:4977 { - yyLOCAL = tree.NewUnaryExpr(tree.UNARY_MINUS, yyDollar[2].exprUnion()) + yyLOCAL = tree.NewUnaryExpr(tree.UNARY_PLUS, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL case 835: @@ -11688,7 +11694,7 @@ yydefault: var yyLOCAL tree.Expr //line mysql_sql.y:4981 { - yyLOCAL = tree.NewUnaryExpr(tree.UNARY_TILDE, yyDollar[2].exprUnion()) + yyLOCAL = tree.NewUnaryExpr(tree.UNARY_MINUS, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL case 836: @@ -11696,15 +11702,15 @@ yydefault: var yyLOCAL tree.Expr //line mysql_sql.y:4985 { - yyLOCAL = tree.NewUnaryExpr(tree.UNARY_MARK, yyDollar[2].exprUnion()) + yyLOCAL = tree.NewUnaryExpr(tree.UNARY_TILDE, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL case 837: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr //line mysql_sql.y:4989 { - yyLOCAL = yyDollar[1].exprUnion() + yyLOCAL = tree.NewUnaryExpr(tree.UNARY_MARK, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL case 838: @@ -11712,22 +11718,30 @@ yydefault: var yyLOCAL tree.Expr //line mysql_sql.y:4993 { - yyLOCAL = yyDollar[1].subqueryUnion() + yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL case 839: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr //line mysql_sql.y:4997 + { + yyLOCAL = yyDollar[1].subqueryUnion() + } + yyVAL.union = yyLOCAL + case 840: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL tree.Expr +//line mysql_sql.y:5001 { yyDollar[2].subqueryUnion().Exists = true yyLOCAL = yyDollar[2].subqueryUnion() } yyVAL.union = yyLOCAL - case 840: + case 841: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5002 +//line mysql_sql.y:5006 { yyLOCAL = &tree.CaseExpr{ Expr: yyDollar[2].exprUnion(), @@ -11736,26 +11750,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 841: + case 842: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5010 +//line mysql_sql.y:5014 { yyLOCAL = tree.NewCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 842: + case 843: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5014 +//line mysql_sql.y:5018 { yyLOCAL = tree.NewCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 843: + case 844: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5018 +//line mysql_sql.y:5022 { name := tree.SetUnresolvedName("convert") es := tree.NewNumValWithType(constant.MakeString(yyDollar[5].str), yyDollar[5].str, false, tree.P_char) @@ -11765,14 +11779,6 @@ yydefault: } } yyVAL.union = yyLOCAL - case 844: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL tree.Expr -//line mysql_sql.y:5027 - { - yyLOCAL = yyDollar[1].funcExprUnion() - } - yyVAL.union = yyLOCAL case 845: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr @@ -11806,57 +11812,65 @@ yydefault: } yyVAL.union = yyLOCAL case 849: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL tree.Expr +//line mysql_sql.y:5047 + { + yyLOCAL = yyDollar[1].funcExprUnion() + } + yyVAL.union = yyLOCAL + case 850: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5048 +//line mysql_sql.y:5052 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 850: + case 851: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5052 +//line mysql_sql.y:5056 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 851: + case 852: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5057 +//line mysql_sql.y:5061 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 852: + case 853: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5061 +//line mysql_sql.y:5065 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 853: + case 854: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.When -//line mysql_sql.y:5067 +//line mysql_sql.y:5071 { yyLOCAL = []*tree.When{yyDollar[1].whenClauseUnion()} } yyVAL.union = yyLOCAL - case 854: + case 855: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []*tree.When -//line mysql_sql.y:5071 +//line mysql_sql.y:5075 { yyLOCAL = append(yyDollar[1].whenClauseListUnion(), yyDollar[2].whenClauseUnion()) } yyVAL.union = yyLOCAL - case 855: + case 856: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.When -//line mysql_sql.y:5077 +//line mysql_sql.y:5081 { yyLOCAL = &tree.When{ Cond: yyDollar[2].exprUnion(), @@ -11864,10 +11878,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 857: + case 858: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5087 +//line mysql_sql.y:5091 { name := yyDollar[1].str if yyDollar[2].str != "" { @@ -11885,10 +11899,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 858: + case 859: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5104 +//line mysql_sql.y:5108 { locale := "" yyLOCAL = &tree.T{ @@ -11903,10 +11917,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 860: + case 861: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5121 +//line mysql_sql.y:5125 { locale := "" yyLOCAL = &tree.T{ @@ -11920,10 +11934,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 861: + case 862: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5134 +//line mysql_sql.y:5138 { locale := "" yyLOCAL = &tree.T{ @@ -11937,10 +11951,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 862: + case 863: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5147 +//line mysql_sql.y:5151 { locale := "" yyLOCAL = &tree.T{ @@ -11953,10 +11967,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 863: + case 864: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5159 +//line mysql_sql.y:5163 { locale := "" yyLOCAL = &tree.T{ @@ -11971,10 +11985,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 864: + case 865: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5173 +//line mysql_sql.y:5177 { locale := "" yyLOCAL = &tree.T{ @@ -11990,10 +12004,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 865: + case 866: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5188 +//line mysql_sql.y:5192 { locale := "" yyLOCAL = &tree.T{ @@ -12009,10 +12023,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 866: + case 867: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5203 +//line mysql_sql.y:5207 { name := yyDollar[1].str if yyDollar[2].str != "" { @@ -12030,10 +12044,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 867: + case 868: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:5220 +//line mysql_sql.y:5224 { locale := "" yyLOCAL = &tree.T{ @@ -12048,15 +12062,15 @@ yydefault: } } yyVAL.union = yyLOCAL - case 868: + case 869: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:5235 +//line mysql_sql.y:5239 { } - case 871: + case 872: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5241 +//line mysql_sql.y:5245 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12066,10 +12080,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 872: + case 873: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5250 +//line mysql_sql.y:5254 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12078,10 +12092,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 873: + case 874: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5258 +//line mysql_sql.y:5262 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12090,10 +12104,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 874: + case 875: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5266 +//line mysql_sql.y:5270 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12103,10 +12117,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 875: + case 876: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5275 +//line mysql_sql.y:5279 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12116,10 +12130,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 876: + case 877: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5284 +//line mysql_sql.y:5288 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12129,10 +12143,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 877: + case 878: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5293 +//line mysql_sql.y:5297 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12142,10 +12156,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 878: + case 879: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5302 +//line mysql_sql.y:5306 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) es := tree.NewNumValWithType(constant.MakeString("*"), "*", false, tree.P_char) @@ -12155,10 +12169,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 879: + case 880: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5311 +//line mysql_sql.y:5315 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12168,10 +12182,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 880: + case 881: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5320 +//line mysql_sql.y:5324 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12181,10 +12195,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 881: + case 882: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5329 +//line mysql_sql.y:5333 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12194,10 +12208,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 882: + case 883: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5338 +//line mysql_sql.y:5342 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12207,10 +12221,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 883: + case 884: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5347 +//line mysql_sql.y:5351 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12220,10 +12234,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 884: + case 885: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5356 +//line mysql_sql.y:5360 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12233,10 +12247,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 885: + case 886: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5365 +//line mysql_sql.y:5369 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12246,10 +12260,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 889: + case 890: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5381 +//line mysql_sql.y:5385 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12258,10 +12272,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 890: + case 891: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5389 +//line mysql_sql.y:5393 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12270,10 +12284,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 891: + case 892: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5397 +//line mysql_sql.y:5401 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12282,10 +12296,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 892: + case 893: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5405 +//line mysql_sql.y:5409 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12294,10 +12308,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 893: + case 894: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5413 +//line mysql_sql.y:5417 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) timeUinit := tree.NewNumValWithType(constant.MakeString(yyDollar[3].str), yyDollar[3].str, false, tree.P_char) @@ -12307,10 +12321,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 894: + case 895: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5422 +//line mysql_sql.y:5426 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12319,10 +12333,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 895: + case 896: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5430 +//line mysql_sql.y:5434 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12332,10 +12346,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 896: + case 897: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5439 +//line mysql_sql.y:5443 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12345,10 +12359,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 897: + case 898: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5448 +//line mysql_sql.y:5452 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12357,10 +12371,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 898: + case 899: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5456 +//line mysql_sql.y:5460 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12369,10 +12383,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 899: + case 900: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5464 +//line mysql_sql.y:5468 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) arg1 := tree.NewNumValWithType(constant.MakeString(yyDollar[3].str), yyDollar[3].str, false, tree.P_char) @@ -12382,10 +12396,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 900: + case 901: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5473 +//line mysql_sql.y:5477 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) arg1 := tree.NewNumValWithType(constant.MakeString(yyDollar[3].str), yyDollar[3].str, false, tree.P_char) @@ -12395,10 +12409,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 901: + case 902: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5483 +//line mysql_sql.y:5487 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) a1 := tree.NewNumValWithType(constant.MakeString(yyDollar[3].str), yyDollar[3].str, false, tree.P_char) @@ -12409,16 +12423,16 @@ yydefault: } } yyVAL.union = yyLOCAL - case 907: + case 908: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:5504 +//line mysql_sql.y:5508 { yyVAL.str = yyDollar[1].str } - case 936: + case 937: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5540 +//line mysql_sql.y:5544 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) var es tree.Exprs = nil @@ -12431,10 +12445,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 937: + case 938: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5552 +//line mysql_sql.y:5556 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) var es tree.Exprs = nil @@ -12447,10 +12461,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 938: + case 939: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5566 +//line mysql_sql.y:5570 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12459,10 +12473,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 939: + case 940: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5574 +//line mysql_sql.y:5578 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12470,10 +12484,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 940: + case 941: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5581 +//line mysql_sql.y:5585 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) yyLOCAL = &tree.FuncExpr{ @@ -12481,10 +12495,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 941: + case 942: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5588 +//line mysql_sql.y:5592 { name := tree.SetUnresolvedName(strings.ToLower(yyDollar[1].str)) var es tree.Exprs = nil @@ -12497,10 +12511,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 942: + case 943: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5600 +//line mysql_sql.y:5604 { name := tree.SetUnresolvedName("char") yyLOCAL = &tree.FuncExpr{ @@ -12509,10 +12523,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 943: + case 944: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5608 +//line mysql_sql.y:5612 { cn := tree.NewNumValWithType(constant.MakeString(yyDollar[5].str), yyDollar[5].str, false, tree.P_char) es := yyDollar[3].exprsUnion() @@ -12524,10 +12538,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 944: + case 945: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5619 +//line mysql_sql.y:5623 { val := tree.NewNumValWithType(constant.MakeString(yyDollar[2].str), yyDollar[2].str, false, tree.P_char) name := tree.SetUnresolvedName("date") @@ -12537,10 +12551,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 945: + case 946: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5628 +//line mysql_sql.y:5632 { val := tree.NewNumValWithType(constant.MakeString(yyDollar[2].str), yyDollar[2].str, false, tree.P_char) name := tree.SetUnresolvedName("time") @@ -12550,10 +12564,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 946: + case 947: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5637 +//line mysql_sql.y:5641 { name := tree.SetUnresolvedName("insert") yyLOCAL = &tree.FuncExpr{ @@ -12562,10 +12576,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 947: + case 948: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5645 +//line mysql_sql.y:5649 { es := tree.Exprs{yyDollar[3].exprUnion()} es = append(es, yyDollar[5].exprUnion()) @@ -12576,10 +12590,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 948: + case 949: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5655 +//line mysql_sql.y:5659 { name := tree.SetUnresolvedName("password") yyLOCAL = &tree.FuncExpr{ @@ -12588,10 +12602,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 949: + case 950: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5663 +//line mysql_sql.y:5667 { name := tree.SetUnresolvedName("binary") yyLOCAL = &tree.FuncExpr{ @@ -12600,10 +12614,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 950: + case 951: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:5671 +//line mysql_sql.y:5675 { val := tree.NewNumValWithType(constant.MakeString(yyDollar[2].str), yyDollar[2].str, false, tree.P_char) name := tree.SetUnresolvedName("timestamp") @@ -12613,34 +12627,34 @@ yydefault: } } yyVAL.union = yyLOCAL - case 951: + case 952: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5681 +//line mysql_sql.y:5685 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 952: + case 953: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5685 +//line mysql_sql.y:5689 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 953: + case 954: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5691 +//line mysql_sql.y:5695 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 954: + case 955: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5695 +//line mysql_sql.y:5699 { ival, errStr := util.GetInt64(yyDollar[2].item) if errStr != "" { @@ -12651,20 +12665,20 @@ yydefault: yyLOCAL = tree.NewNumValWithType(constant.MakeInt64(ival), str, false, tree.P_int64) } yyVAL.union = yyLOCAL - case 961: + case 962: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:5714 +//line mysql_sql.y:5718 { } - case 962: + case 963: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:5716 +//line mysql_sql.y:5720 { } - case 995: + case 996: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5756 +//line mysql_sql.y:5760 { name := tree.SetUnresolvedName("interval") arg2 := tree.NewNumValWithType(constant.MakeString(yyDollar[3].str), yyDollar[3].str, false, tree.P_char) @@ -12674,90 +12688,90 @@ yydefault: } } yyVAL.union = yyLOCAL - case 996: + case 997: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:5766 +//line mysql_sql.y:5770 { yyLOCAL = tree.FUNC_TYPE_DEFAULT } yyVAL.union = yyLOCAL - case 997: + case 998: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:5770 +//line mysql_sql.y:5774 { yyLOCAL = tree.FUNC_TYPE_DISTINCT } yyVAL.union = yyLOCAL - case 998: + case 999: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:5774 +//line mysql_sql.y:5778 { yyLOCAL = tree.FUNC_TYPE_ALL } yyVAL.union = yyLOCAL - case 999: + case 1000: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Tuple -//line mysql_sql.y:5780 +//line mysql_sql.y:5784 { yyLOCAL = tree.NewTuple(yyDollar[2].exprsUnion()) } yyVAL.union = yyLOCAL - case 1000: + case 1001: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:5785 +//line mysql_sql.y:5789 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1001: + case 1002: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:5789 +//line mysql_sql.y:5793 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 1002: + case 1003: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:5795 +//line mysql_sql.y:5799 { yyLOCAL = tree.Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1003: + case 1004: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:5799 +//line mysql_sql.y:5803 { yyLOCAL = append(yyDollar[1].exprsUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1004: + case 1005: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5806 +//line mysql_sql.y:5810 { yyLOCAL = tree.NewAndExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1005: + case 1006: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5810 +//line mysql_sql.y:5814 { yyLOCAL = tree.NewOrExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1006: + case 1007: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5814 +//line mysql_sql.y:5818 { name := tree.SetUnresolvedName(strings.ToLower("concat")) yyLOCAL = &tree.FuncExpr{ @@ -12766,222 +12780,214 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1007: + case 1008: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5822 +//line mysql_sql.y:5826 { yyLOCAL = tree.NewXorExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1008: + case 1009: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5826 +//line mysql_sql.y:5830 { yyLOCAL = tree.NewNotExpr(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1009: + case 1010: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5830 +//line mysql_sql.y:5834 { yyLOCAL = tree.NewMaxValue() } yyVAL.union = yyLOCAL - case 1010: + case 1011: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5834 +//line mysql_sql.y:5838 { yyLOCAL = tree.NewComparisonExpr(tree.EQUAL, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1011: + case 1012: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5838 +//line mysql_sql.y:5842 { yyLOCAL = tree.NewComparisonExpr(tree.NOT_EQUAL, yyDollar[1].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1012: + case 1013: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5842 +//line mysql_sql.y:5846 { arg := tree.NewNumValWithType(constant.MakeString(yyDollar[3].str), "", false, tree.P_char) yyLOCAL = tree.NewComparisonExpr(tree.EQUAL, yyDollar[1].exprUnion(), arg) } yyVAL.union = yyLOCAL - case 1013: + case 1014: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5847 +//line mysql_sql.y:5851 { arg := tree.NewNumValWithType(constant.MakeString(yyDollar[3].str), "", false, tree.P_char) yyLOCAL = tree.NewComparisonExpr(tree.NOT_EQUAL, yyDollar[1].exprUnion(), arg) } yyVAL.union = yyLOCAL - case 1014: + case 1015: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5852 +//line mysql_sql.y:5856 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1015: + case 1016: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5858 +//line mysql_sql.y:5862 { yyLOCAL = tree.NewIsNullExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1016: + case 1017: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5862 +//line mysql_sql.y:5866 { yyLOCAL = tree.NewIsNotNullExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1017: + case 1018: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5866 +//line mysql_sql.y:5870 { yyLOCAL = tree.NewComparisonExpr(yyDollar[2].comparisonOpUnion(), yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1018: + case 1019: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5870 +//line mysql_sql.y:5874 { yyLOCAL = tree.NewSubqueryComparisonExpr(yyDollar[2].comparisonOpUnion(), yyDollar[3].comparisonOpUnion(), yyDollar[1].exprUnion(), yyDollar[4].subqueryUnion()) } yyVAL.union = yyLOCAL - case 1020: + case 1021: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5877 +//line mysql_sql.y:5881 { yyLOCAL = tree.NewNumValWithType(constant.MakeBool(true), "", false, tree.P_bool) } yyVAL.union = yyLOCAL - case 1021: + case 1022: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5881 +//line mysql_sql.y:5885 { yyLOCAL = tree.NewNumValWithType(constant.MakeBool(false), "", false, tree.P_bool) } yyVAL.union = yyLOCAL - case 1022: + case 1023: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5887 +//line mysql_sql.y:5891 { yyLOCAL = tree.NewComparisonExpr(tree.IN, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1023: + case 1024: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5891 +//line mysql_sql.y:5895 { yyLOCAL = tree.NewComparisonExpr(tree.NOT_IN, yyDollar[1].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1024: + case 1025: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5895 +//line mysql_sql.y:5899 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.LIKE, yyDollar[1].exprUnion(), yyDollar[3].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1025: + case 1026: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5899 +//line mysql_sql.y:5903 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.NOT_LIKE, yyDollar[1].exprUnion(), yyDollar[4].exprUnion(), yyDollar[5].exprUnion()) } yyVAL.union = yyLOCAL - case 1026: + case 1027: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5903 +//line mysql_sql.y:5907 { yyLOCAL = tree.NewComparisonExpr(tree.REG_MATCH, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1027: + case 1028: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5907 +//line mysql_sql.y:5911 { yyLOCAL = tree.NewComparisonExpr(tree.NOT_REG_MATCH, yyDollar[1].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1028: + case 1029: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5911 +//line mysql_sql.y:5915 { yyLOCAL = tree.NewRangeCond(false, yyDollar[1].exprUnion(), yyDollar[3].exprUnion(), yyDollar[5].exprUnion()) } yyVAL.union = yyLOCAL - case 1029: + case 1030: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5915 +//line mysql_sql.y:5919 { yyLOCAL = tree.NewRangeCond(true, yyDollar[1].exprUnion(), yyDollar[4].exprUnion(), yyDollar[6].exprUnion()) } yyVAL.union = yyLOCAL - case 1031: + case 1032: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5921 +//line mysql_sql.y:5925 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1032: + case 1033: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5925 +//line mysql_sql.y:5929 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1033: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL tree.Expr -//line mysql_sql.y:5931 - { - yyLOCAL = yyDollar[1].tupleUnion() - } - yyVAL.union = yyLOCAL case 1034: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr //line mysql_sql.y:5935 { - yyLOCAL = yyDollar[1].subqueryUnion() + yyLOCAL = yyDollar[1].tupleUnion() } yyVAL.union = yyLOCAL case 1035: yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:5942 + var yyLOCAL tree.Expr +//line mysql_sql.y:5939 { - yyLOCAL = tree.ALL + yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL case 1036: @@ -12989,7 +12995,7 @@ yydefault: var yyLOCAL tree.ComparisonOp //line mysql_sql.y:5946 { - yyLOCAL = tree.ANY + yyLOCAL = tree.ALL } yyVAL.union = yyLOCAL case 1037: @@ -12997,15 +13003,15 @@ yydefault: var yyLOCAL tree.ComparisonOp //line mysql_sql.y:5950 { - yyLOCAL = tree.SOME + yyLOCAL = tree.ANY } yyVAL.union = yyLOCAL case 1038: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:5956 +//line mysql_sql.y:5954 { - yyLOCAL = tree.EQUAL + yyLOCAL = tree.SOME } yyVAL.union = yyLOCAL case 1039: @@ -13013,7 +13019,7 @@ yydefault: var yyLOCAL tree.ComparisonOp //line mysql_sql.y:5960 { - yyLOCAL = tree.LESS_THAN + yyLOCAL = tree.EQUAL } yyVAL.union = yyLOCAL case 1040: @@ -13021,7 +13027,7 @@ yydefault: var yyLOCAL tree.ComparisonOp //line mysql_sql.y:5964 { - yyLOCAL = tree.GREAT_THAN + yyLOCAL = tree.LESS_THAN } yyVAL.union = yyLOCAL case 1041: @@ -13029,7 +13035,7 @@ yydefault: var yyLOCAL tree.ComparisonOp //line mysql_sql.y:5968 { - yyLOCAL = tree.LESS_THAN_EQUAL + yyLOCAL = tree.GREAT_THAN } yyVAL.union = yyLOCAL case 1042: @@ -13037,7 +13043,7 @@ yydefault: var yyLOCAL tree.ComparisonOp //line mysql_sql.y:5972 { - yyLOCAL = tree.GREAT_THAN_EQUAL + yyLOCAL = tree.LESS_THAN_EQUAL } yyVAL.union = yyLOCAL case 1043: @@ -13045,7 +13051,7 @@ yydefault: var yyLOCAL tree.ComparisonOp //line mysql_sql.y:5976 { - yyLOCAL = tree.NOT_EQUAL + yyLOCAL = tree.GREAT_THAN_EQUAL } yyVAL.union = yyLOCAL case 1044: @@ -13053,15 +13059,15 @@ yydefault: var yyLOCAL tree.ComparisonOp //line mysql_sql.y:5980 { - yyLOCAL = tree.NULL_SAFE_EQUAL + yyLOCAL = tree.NOT_EQUAL } yyVAL.union = yyLOCAL case 1045: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:5986 + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL tree.ComparisonOp +//line mysql_sql.y:5984 { - yyLOCAL = tree.NewAttributePrimaryKey() + yyLOCAL = tree.NULL_SAFE_EQUAL } yyVAL.union = yyLOCAL case 1046: @@ -13069,15 +13075,15 @@ yydefault: var yyLOCAL tree.ColumnAttribute //line mysql_sql.y:5990 { - yyLOCAL = tree.NewAttributeUniqueKey() + yyLOCAL = tree.NewAttributePrimaryKey() } yyVAL.union = yyLOCAL case 1047: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute //line mysql_sql.y:5994 { - yyLOCAL = tree.NewAttributeUnique() + yyLOCAL = tree.NewAttributeUniqueKey() } yyVAL.union = yyLOCAL case 1048: @@ -13085,21 +13091,29 @@ yydefault: var yyLOCAL tree.ColumnAttribute //line mysql_sql.y:5998 { - yyLOCAL = tree.NewAttributeKey() + yyLOCAL = tree.NewAttributeUnique() } yyVAL.union = yyLOCAL case 1049: yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL tree.Expr -//line mysql_sql.y:6004 + var yyLOCAL tree.ColumnAttribute +//line mysql_sql.y:6002 { - yyLOCAL = tree.NewNumValWithType(constant.MakeString(yyDollar[1].str), yyDollar[1].str, false, tree.P_char) + yyLOCAL = tree.NewAttributeKey() } yyVAL.union = yyLOCAL case 1050: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr //line mysql_sql.y:6008 + { + yyLOCAL = tree.NewNumValWithType(constant.MakeString(yyDollar[1].str), yyDollar[1].str, false, tree.P_char) + } + yyVAL.union = yyLOCAL + case 1051: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL tree.Expr +//line mysql_sql.y:6012 { str := fmt.Sprintf("%v", yyDollar[1].item) switch v := yyDollar[1].item.(type) { @@ -13113,43 +13127,43 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1051: + case 1052: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:6021 +//line mysql_sql.y:6025 { fval := yyDollar[1].item.(float64) yyLOCAL = tree.NewNumValWithType(constant.MakeFloat64(fval), yylex.(*Lexer).scanner.LastToken, false, tree.P_float64) } yyVAL.union = yyLOCAL - case 1052: + case 1053: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:6026 +//line mysql_sql.y:6030 { yyLOCAL = tree.NewNumValWithType(constant.MakeBool(true), "true", false, tree.P_bool) } yyVAL.union = yyLOCAL - case 1053: + case 1054: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:6030 +//line mysql_sql.y:6034 { yyLOCAL = tree.NewNumValWithType(constant.MakeBool(false), "false", false, tree.P_bool) } yyVAL.union = yyLOCAL - case 1054: + case 1055: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:6034 +//line mysql_sql.y:6038 { yyLOCAL = tree.NewNumValWithType(constant.MakeUnknown(), "null", false, tree.P_null) } yyVAL.union = yyLOCAL - case 1055: + case 1056: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:6038 +//line mysql_sql.y:6042 { switch v := yyDollar[1].item.(type) { case uint64: @@ -13164,18 +13178,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1056: + case 1057: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:6052 +//line mysql_sql.y:6056 { yyLOCAL = tree.NewNumValWithType(constant.MakeString(yyDollar[1].str), yyDollar[1].str, false, tree.P_decimal) } yyVAL.union = yyLOCAL - case 1057: + case 1058: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:6056 +//line mysql_sql.y:6060 { switch v := yyDollar[1].item.(type) { case uint64: @@ -13190,45 +13204,45 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1058: + case 1059: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:6070 +//line mysql_sql.y:6074 { yyLOCAL = tree.NewParamExpr(yylex.(*Lexer).GetParamIndex()) } yyVAL.union = yyLOCAL - case 1059: + case 1060: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6076 +//line mysql_sql.y:6080 { yyLOCAL = yyDollar[1].columnTypeUnion() yyLOCAL.InternalType.Unsigned = yyDollar[2].unsignedOptUnion() yyLOCAL.InternalType.Zerofill = yyDollar[3].zeroFillOptUnion() } yyVAL.union = yyLOCAL - case 1063: + case 1064: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6087 +//line mysql_sql.y:6091 { yyLOCAL = yyDollar[1].columnTypeUnion() yyLOCAL.InternalType.DisplayWith = yyDollar[2].lengthOptUnion() } yyVAL.union = yyLOCAL - case 1064: + case 1065: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6092 +//line mysql_sql.y:6096 { yyLOCAL = yyDollar[1].columnTypeUnion() } yyVAL.union = yyLOCAL - case 1065: + case 1066: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6098 +//line mysql_sql.y:6102 { locale := "" yyLOCAL = &tree.T{ @@ -13241,10 +13255,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1066: + case 1067: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6110 +//line mysql_sql.y:6114 { locale := "" yyLOCAL = &tree.T{ @@ -13257,10 +13271,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1067: + case 1068: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6122 +//line mysql_sql.y:6126 { locale := "" yyLOCAL = &tree.T{ @@ -13273,10 +13287,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1068: + case 1069: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6134 +//line mysql_sql.y:6138 { locale := "" yyLOCAL = &tree.T{ @@ -13290,10 +13304,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1069: + case 1070: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6147 +//line mysql_sql.y:6151 { locale := "" yyLOCAL = &tree.T{ @@ -13307,10 +13321,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1070: + case 1071: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6160 +//line mysql_sql.y:6164 { locale := "" yyLOCAL = &tree.T{ @@ -13324,10 +13338,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1071: + case 1072: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6173 +//line mysql_sql.y:6177 { locale := "" yyLOCAL = &tree.T{ @@ -13341,10 +13355,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1072: + case 1073: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6186 +//line mysql_sql.y:6190 { locale := "" yyLOCAL = &tree.T{ @@ -13358,10 +13372,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1073: + case 1074: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6199 +//line mysql_sql.y:6203 { locale := "" yyLOCAL = &tree.T{ @@ -13375,10 +13389,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1074: + case 1075: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6212 +//line mysql_sql.y:6216 { locale := "" yyLOCAL = &tree.T{ @@ -13392,10 +13406,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1075: + case 1076: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6225 +//line mysql_sql.y:6229 { locale := "" yyLOCAL = &tree.T{ @@ -13409,10 +13423,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1076: + case 1077: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6238 +//line mysql_sql.y:6242 { locale := "" yyLOCAL = &tree.T{ @@ -13426,10 +13440,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1077: + case 1078: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6251 +//line mysql_sql.y:6255 { locale := "" yyLOCAL = &tree.T{ @@ -13443,10 +13457,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1078: + case 1079: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6264 +//line mysql_sql.y:6268 { locale := "" yyLOCAL = &tree.T{ @@ -13460,10 +13474,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1079: + case 1080: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6279 +//line mysql_sql.y:6283 { locale := "" if yyDollar[2].lengthScaleOptUnion().DisplayWith > 255 { @@ -13487,10 +13501,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1080: + case 1081: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6302 +//line mysql_sql.y:6306 { locale := "" if yyDollar[2].lengthScaleOptUnion().Precision != tree.NotDefineDec && yyDollar[2].lengthScaleOptUnion().Precision > yyDollar[2].lengthScaleOptUnion().DisplayWith { @@ -13527,10 +13541,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1081: + case 1082: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6339 +//line mysql_sql.y:6343 { locale := "" if yyDollar[2].lengthScaleOptUnion().Precision != tree.NotDefineDec && yyDollar[2].lengthScaleOptUnion().Precision > yyDollar[2].lengthScaleOptUnion().DisplayWith { @@ -13567,10 +13581,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1082: + case 1083: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6387 +//line mysql_sql.y:6391 { locale := "" yyLOCAL = &tree.T{ @@ -13586,10 +13600,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1083: + case 1084: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6404 +//line mysql_sql.y:6408 { locale := "" yyLOCAL = &tree.T{ @@ -13602,10 +13616,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1084: + case 1085: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6416 +//line mysql_sql.y:6420 { locale := "" yyLOCAL = &tree.T{ @@ -13621,10 +13635,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1085: + case 1086: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6431 +//line mysql_sql.y:6435 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -13645,10 +13659,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1086: + case 1087: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6451 +//line mysql_sql.y:6455 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -13669,10 +13683,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1087: + case 1088: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6471 +//line mysql_sql.y:6475 { locale := "" yyLOCAL = &tree.T{ @@ -13687,10 +13701,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1088: + case 1089: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6487 +//line mysql_sql.y:6491 { locale := "" yyLOCAL = &tree.T{ @@ -13704,10 +13718,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1089: + case 1090: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6500 +//line mysql_sql.y:6504 { locale := "" yyLOCAL = &tree.T{ @@ -13721,10 +13735,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1090: + case 1091: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6513 +//line mysql_sql.y:6517 { locale := "" yyLOCAL = &tree.T{ @@ -13738,10 +13752,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1091: + case 1092: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6526 +//line mysql_sql.y:6530 { locale := "" yyLOCAL = &tree.T{ @@ -13755,10 +13769,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1092: + case 1093: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6539 +//line mysql_sql.y:6543 { locale := "" yyLOCAL = &tree.T{ @@ -13771,10 +13785,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1093: + case 1094: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6551 +//line mysql_sql.y:6555 { locale := "" yyLOCAL = &tree.T{ @@ -13787,10 +13801,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1094: + case 1095: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6563 +//line mysql_sql.y:6567 { locale := "" yyLOCAL = &tree.T{ @@ -13803,10 +13817,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1095: + case 1096: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6575 +//line mysql_sql.y:6579 { locale := "" yyLOCAL = &tree.T{ @@ -13819,10 +13833,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1096: + case 1097: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6587 +//line mysql_sql.y:6591 { locale := "" yyLOCAL = &tree.T{ @@ -13835,10 +13849,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1097: + case 1098: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6599 +//line mysql_sql.y:6603 { locale := "" yyLOCAL = &tree.T{ @@ -13851,10 +13865,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1098: + case 1099: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6611 +//line mysql_sql.y:6615 { locale := "" yyLOCAL = &tree.T{ @@ -13867,10 +13881,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1099: + case 1100: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6623 +//line mysql_sql.y:6627 { locale := "" yyLOCAL = &tree.T{ @@ -13883,10 +13897,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1100: + case 1101: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6635 +//line mysql_sql.y:6639 { locale := "" yyLOCAL = &tree.T{ @@ -13899,10 +13913,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1101: + case 1102: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6647 +//line mysql_sql.y:6651 { locale := "" yyLOCAL = &tree.T{ @@ -13916,10 +13930,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1102: + case 1103: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6660 +//line mysql_sql.y:6664 { locale := "" yyLOCAL = &tree.T{ @@ -13933,10 +13947,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1103: + case 1104: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:6675 +//line mysql_sql.y:6679 { locale := "" yyLOCAL = &tree.T{ @@ -13949,75 +13963,75 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1104: + case 1105: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:6698 +//line mysql_sql.y:6702 { yyLOCAL = make([]string, 0, 4) yyLOCAL = append(yyLOCAL, yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1105: + case 1106: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:6703 +//line mysql_sql.y:6707 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1106: + case 1107: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:6709 +//line mysql_sql.y:6713 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1108: + case 1109: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:6716 +//line mysql_sql.y:6720 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1109: + case 1110: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:6720 +//line mysql_sql.y:6724 { yyLOCAL = int32(yyDollar[2].item.(int64)) } yyVAL.union = yyLOCAL - case 1110: + case 1111: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:6725 +//line mysql_sql.y:6729 { yyLOCAL = int32(-1) } yyVAL.union = yyLOCAL - case 1111: + case 1112: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:6729 +//line mysql_sql.y:6733 { yyLOCAL = int32(yyDollar[2].item.(int64)) } yyVAL.union = yyLOCAL - case 1112: + case 1113: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:6735 +//line mysql_sql.y:6739 { yyLOCAL = tree.GetDisplayWith(int32(yyDollar[2].item.(int64))) } yyVAL.union = yyLOCAL - case 1113: + case 1114: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:6741 +//line mysql_sql.y:6745 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.NotDefineDisplayWidth, @@ -14025,10 +14039,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1114: + case 1115: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:6748 +//line mysql_sql.y:6752 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -14036,10 +14050,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1115: + case 1116: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:6755 +//line mysql_sql.y:6759 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -14047,10 +14061,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1116: + case 1117: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:6764 +//line mysql_sql.y:6768 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: 34, // this is the default precision for decimal @@ -14058,10 +14072,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1117: + case 1118: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:6771 +//line mysql_sql.y:6775 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -14069,10 +14083,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1118: + case 1119: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:6778 +//line mysql_sql.y:6782 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -14080,52 +14094,52 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1119: + case 1120: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:6787 +//line mysql_sql.y:6791 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1120: + case 1121: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:6791 +//line mysql_sql.y:6795 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1121: + case 1122: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:6795 +//line mysql_sql.y:6799 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1122: + case 1123: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:6801 +//line mysql_sql.y:6805 { } - case 1123: + case 1124: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:6803 +//line mysql_sql.y:6807 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1127: + case 1128: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:6813 +//line mysql_sql.y:6817 { yyVAL.str = "" } - case 1128: + case 1129: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6817 +//line mysql_sql.y:6821 { yyVAL.str = string(yyDollar[1].str) } diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql.y b/pkg/sql/parsers/dialect/mysql/mysql_sql.y index 879d7a2ef1a3e7cc68bfd17c5b030c229f4ab93b..4f72434fde554dff3d2bc5d2fee2ab67814f7fc1 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql.y +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql.y @@ -278,7 +278,7 @@ import ( %token <str> FORMAT VERBOSE CONNECTION // Load -%token <str> LOAD INFILE TERMINATED OPTIONALLY ENCLOSED ESCAPED STARTING LINES +%token <str> LOAD INFILE TERMINATED OPTIONALLY ENCLOSED ESCAPED STARTING LINES ROWS // Supported SHOW tokens %token <str> DATABASES TABLES EXTENDED FULL PROCESSLIST FIELDS COLUMNS OPEN ERRORS WARNINGS INDEXES SCHEMAS @@ -754,6 +754,10 @@ ignore_lines: { $$ = $2.(int64) } +| IGNORE INTEGRAL ROWS + { + $$ = $2.(int64) + } load_lines: { @@ -6957,6 +6961,7 @@ reserved_keyword: | ESCAPED | STARTING | LINES +| ROWS | INT1 | INT2 | INT3 diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go b/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go index eae952b4016f494c2b4fc1273573d6e8c2855d8f..92a71bb7f17e24b73632d995ec6df4f8fe3d8685 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go @@ -506,6 +506,9 @@ var ( }, { input: "load data local infile 'data' replace into table db.a lines starting by '#' terminated by '\t' ignore 2 lines", output: "load data local infile data replace into table db.a lines starting by # terminated by ignore 2 lines", + }, { + input: "load data local infile 'data' replace into table db.a lines starting by '#' terminated by '\t' ignore 2 rows", + output: "load data local infile data replace into table db.a lines starting by # terminated by ignore 2 lines", }, { input: "load data infile 'data.txt' into table db.a fields terminated by '\t' escaped by '\t'", output: "load data infile data.txt into table db.a fields terminated by \t escaped by \t", diff --git a/pkg/sql/plan/build_ddl.go b/pkg/sql/plan/build_ddl.go index 59ce38ee9503ab673189d3b881c6c09ef7a7d2c4..1bcd6921dda5d6b581b9377420ea11c3274a51b2 100644 --- a/pkg/sql/plan/build_ddl.go +++ b/pkg/sql/plan/build_ddl.go @@ -278,6 +278,7 @@ func buildTableDefs(defs tree.TableDefs, ctx CompilerContext, tableDef *TableDef var pks []string var comment string + var auto_incr bool for _, attr := range def.Attributes { if _, ok := attr.(*tree.AttributePrimaryKey); ok { if colType.GetId() == int32(types.T_blob) { @@ -293,6 +294,13 @@ func buildTableDefs(defs tree.TableDefs, ctx CompilerContext, tableDef *TableDef return errors.New(errno.InvalidOptionValue, errmsg) } } + + if _, ok := attr.(*tree.AttributeAutoIncrement); ok { + auto_incr = true + if colType.GetId() != int32(types.T_int32) && colType.GetId() != int32(types.T_int64) { + return errors.New(errno.InvalidColumnDefinition, "the auto_incr column is only support int32 and int64 type now") + } + } } if len(pks) > 0 { if len(primaryKeys) > 0 { @@ -307,11 +315,12 @@ func buildTableDefs(defs tree.TableDefs, ctx CompilerContext, tableDef *TableDef } col := &ColDef{ - Name: def.Name.Parts[0], - Alg: plan.CompressType_Lz4, - Typ: colType, - Default: defaultValue, - Comment: comment, + Name: def.Name.Parts[0], + Alg: plan.CompressType_Lz4, + Typ: colType, + Default: defaultValue, + Comment: comment, + AutoIncrement: auto_incr, } colNameMap[col.Name] = col.Typ.GetId() tableDef.Cols = append(tableDef.Cols, col) diff --git a/pkg/sql/plan/build_show.go b/pkg/sql/plan/build_show.go index 90397c019f9e08bad2c7ccc6811c7f0d6b78333f..3246bb44434d363e8bce20538bf6b83d5b35f69d 100644 --- a/pkg/sql/plan/build_show.go +++ b/pkg/sql/plan/build_show.go @@ -219,7 +219,7 @@ func buildShowTables(stmt *tree.ShowTables, ctx CompilerContext) (*Plan, error) } ddlType := plan.DataDefinition_SHOW_TABLES - sql := fmt.Sprintf("SELECT relname as Tables_in_%s FROM %s.mo_tables WHERE reldatabase = '%s'", dbName, MO_CATALOG_DB_NAME, dbName) + sql := fmt.Sprintf("SELECT relname as Tables_in_%s FROM %s.mo_tables WHERE reldatabase = '%s' and relname != '%s'", dbName, MO_CATALOG_DB_NAME, dbName, "%!%mo_increment_columns") if stmt.Where != nil { return returnByWhereAndBaseSQL(ctx, sql, stmt.Where, ddlType) diff --git a/pkg/sql/plan/build_update.go b/pkg/sql/plan/build_update.go index 7db008da965a9b1904a199e3a0e65ca3bbdbdb3c..20a527b2b627171f7ee1b70ae976649850769e44 100644 --- a/pkg/sql/plan/build_update.go +++ b/pkg/sql/plan/build_update.go @@ -130,12 +130,13 @@ func buildUpdate(stmt *tree.Update, ctx CompilerContext) (*Plan, error) { // build update node node := &Node{ - NodeType: plan.Node_UPDATE, - ObjRef: nil, - TableDef: nil, - Children: []int32{qry.Steps[len(qry.Steps)-1]}, - NodeId: int32(len(qry.Nodes)), - UpdateCtxs: updateCtxs, + NodeType: plan.Node_UPDATE, + ObjRef: nil, + TableDef: nil, + TableDefVec: tblRefs, + Children: []int32{qry.Steps[len(qry.Steps)-1]}, + NodeId: int32(len(qry.Nodes)), + UpdateCtxs: updateCtxs, } qry.Nodes = append(qry.Nodes, node) qry.Steps[len(qry.Steps)-1] = node.NodeId diff --git a/pkg/sql/plan/deepcopy.go b/pkg/sql/plan/deepcopy.go index 7dc39b5dc2b44565c9ce0b9936cca87f57187018..bb2b1fb35acf00bae5d268e5813ec63755695530 100644 --- a/pkg/sql/plan/deepcopy.go +++ b/pkg/sql/plan/deepcopy.go @@ -43,6 +43,7 @@ func DeepCopyNode(node *plan.Node) *plan.Node { OrderBy: make([]*plan.OrderBySpec, len(node.OrderBy)), DeleteTablesCtx: make([]*plan.DeleteTableCtx, len(node.DeleteTablesCtx)), UpdateCtxs: make([]*plan.UpdateCtx, len(node.UpdateCtxs)), + TableDefVec: make([]*plan.TableDef, len(node.TableDefVec)), } copy(newNode.Children, node.Children) @@ -122,6 +123,10 @@ func DeepCopyNode(node *plan.Node) *plan.Node { copy(newNode.UpdateCtxs[i].OrderAttrs, updateCtx.OrderAttrs) } + for i, tbl := range node.TableDefVec { + newNode.TableDefVec[i] = DeepCopyTableDef(tbl) + } + if node.Cost != nil { newNode.Cost = &plan.Cost{ Card: node.Cost.Card, diff --git a/pkg/vm/engine/memEngine/relation.go b/pkg/vm/engine/memEngine/relation.go index 2e22269e0413ccdd0eb35df68ffe025138780f7e..79f71a57d583a6f3097b8cc6864e38a3c14d557c 100644 --- a/pkg/vm/engine/memEngine/relation.go +++ b/pkg/vm/engine/memEngine/relation.go @@ -160,6 +160,11 @@ func (r *relation) DelTableDef(_ context.Context, _ engine.TableDef) error { return nil } +func (r *relation) GetTableID(_ context.Context) string { + //TODO + return "0" +} + func sKey(num int, id string) string { return fmt.Sprintf("%v.%v", id, num) } diff --git a/pkg/vm/engine/tae/catalog/schema.go b/pkg/vm/engine/tae/catalog/schema.go index 071b07e54b0287403b6f5f0bbfc23eead3f8c864..cc1a25dc4bafc644e699fd96d9d467bfc4a664ac 100644 --- a/pkg/vm/engine/tae/catalog/schema.go +++ b/pkg/vm/engine/tae/catalog/schema.go @@ -79,11 +79,12 @@ type ColDef struct { func (def *ColDef) GetName() string { return def.Name } func (def *ColDef) GetType() types.Type { return def.Type } -func (def *ColDef) Nullable() bool { return def.NullAbility } -func (def *ColDef) IsHidden() bool { return def.Hidden } -func (def *ColDef) IsPhyAddr() bool { return def.PhyAddr } -func (def *ColDef) IsPrimary() bool { return def.Primary } -func (def *ColDef) IsSortKey() bool { return def.SortKey } +func (def *ColDef) Nullable() bool { return def.NullAbility } +func (def *ColDef) IsHidden() bool { return def.Hidden } +func (def *ColDef) IsPhyAddr() bool { return def.PhyAddr } +func (def *ColDef) IsPrimary() bool { return def.Primary } +func (def *ColDef) IsAutoIncrement() bool { return def.AutoIncrement } +func (def *ColDef) IsSortKey() bool { return def.SortKey } type SortKey struct { Defs []*ColDef @@ -460,14 +461,15 @@ func (s *Schema) AppendPKColWithAttribute(attr engine.Attribute, idx int) error OriginString: attr.Default.OriginString, } def := &ColDef{ - Name: attr.Name, - Type: attr.Type, - SortIdx: int8(idx), - Hidden: attr.IsHidden, - SortKey: true, - Primary: true, - Comment: attr.Comment, - Default: attrDefault, + Name: attr.Name, + Type: attr.Type, + SortIdx: int8(idx), + Hidden: attr.IsHidden, + SortKey: true, + Primary: true, + Comment: attr.Comment, + Default: attrDefault, + AutoIncrement: attr.AutoIncrement, } return s.AppendColDef(def) } @@ -506,12 +508,13 @@ func (s *Schema) AppendColWithAttribute(attr engine.Attribute) error { OriginString: attr.Default.OriginString, } def := &ColDef{ - Name: attr.Name, - Type: attr.Type, - Hidden: attr.IsHidden, - SortIdx: -1, - Comment: attr.Comment, - Default: attrDefault, + Name: attr.Name, + Type: attr.Type, + Hidden: attr.IsHidden, + SortIdx: -1, + Comment: attr.Comment, + Default: attrDefault, + AutoIncrement: attr.AutoIncrement, } return s.AppendColDef(def) } diff --git a/pkg/vm/engine/tae/moengine/helper.go b/pkg/vm/engine/tae/moengine/helper.go index 0bc71ca0dd671b4743b829c62b2f72b5e2f37b6f..8d13b75bebe64637ebe3a1c76d970a65e16fe9a9 100644 --- a/pkg/vm/engine/tae/moengine/helper.go +++ b/pkg/vm/engine/tae/moengine/helper.go @@ -81,6 +81,7 @@ func SchemaToDefs(schema *catalog.Schema) (defs []engine.TableDef, err error) { OriginString: col.Default.OriginString, Expr: expr, }, + AutoIncrement: col.IsAutoIncrement(), }, } defs = append(defs, def) diff --git a/pkg/vm/engine/tae/moengine/relation.go b/pkg/vm/engine/tae/moengine/relation.go index eeeab0e1fcaf173c99e5cfa5b8386dedf43e7561..682af8327ddbc3017b4b50df70c2c2b240f473a3 100644 --- a/pkg/vm/engine/tae/moengine/relation.go +++ b/pkg/vm/engine/tae/moengine/relation.go @@ -16,6 +16,7 @@ package moengine import ( "context" + "fmt" "github.com/matrixorigin/matrixone/pkg/container/batch" "github.com/matrixorigin/matrixone/pkg/container/vector" @@ -118,3 +119,7 @@ func (rel *baseRelation) NewReader(_ context.Context, num int, _ *plan.Expr, _ [ } return rds, nil } + +func (rel *baseRelation) GetTableID(_ context.Context) string { + return fmt.Sprintf("%d", rel.handle.ID()) +} diff --git a/pkg/vm/engine/txn/table.go b/pkg/vm/engine/txn/table.go index 187dae05ecbf8d9434bcc8bc8fee793ecc74db0e..f119a681aeb40a6b03b33b9ed2773c38cd4d0c9d 100644 --- a/pkg/vm/engine/txn/table.go +++ b/pkg/vm/engine/txn/table.go @@ -274,3 +274,8 @@ func (t *Table) GetHideKeys(ctx context.Context) (attrs []*engine.Attribute, err //TODO return } + +func (t *Table) GetTableID(ctx context.Context) string { + //TODO + return "0" +} diff --git a/pkg/vm/engine/types.go b/pkg/vm/engine/types.go index 702a1e6608fb266c42c53d85c90bdb65715854bc..568339b31372b495f3c1f9d4b86d9a152369ba7f 100644 --- a/pkg/vm/engine/types.go +++ b/pkg/vm/engine/types.go @@ -54,6 +54,8 @@ type Attribute struct { Primary bool // Comment of attribute Comment string + // AutoIncrement is auto incr or not + AutoIncrement bool } type PrimaryIndexDef struct { @@ -144,6 +146,8 @@ type Relation interface { AddTableDef(context.Context, TableDef) error DelTableDef(context.Context, TableDef) error + GetTableID(context.Context) string + // second argument is the number of reader, third argument is the filter extend, foruth parameter is the payload required by the engine NewReader(context.Context, int, *plan.Expr, [][]byte) ([]Reader, error) } diff --git a/proto/plan.proto b/proto/plan.proto index 07e67513d6a068f39e52ded9496f549862830021..77ef461320c29036d4f897991bb5de5131cd8ecb 100644 --- a/proto/plan.proto +++ b/proto/plan.proto @@ -187,10 +187,11 @@ message ColDef { string name = 1; CompressType alg = 2; Type typ = 3; - Default default = 4; + Default default = 4; bool primary = 5; - int32 pkidx = 6; - string comment =7; + bool auto_increment = 6; + int32 pkidx = 7; + string comment = 8; } message Default { @@ -444,14 +445,15 @@ message Node { Expr limit = 15; Expr offset = 16; TableDef table_def = 17; - ObjectRef obj_ref = 18; - RowsetData rowset_data = 19; - string extra_options = 20; - repeated DeleteTableCtx deleteTablesCtx = 21; + repeated TableDef table_def_vec = 18; + ObjectRef obj_ref = 19; + RowsetData rowset_data = 20; + string extra_options = 21; + repeated DeleteTableCtx deleteTablesCtx = 22; - repeated int32 binding_tags = 22; + repeated int32 binding_tags = 23; - AnalyzeInfo analyze_info = 23; + AnalyzeInfo analyze_info = 24; } message DeleteTableCtx { diff --git a/test/cases/dml/delete/delete.test b/test/cases/dml/delete/delete.test index 7d2845e810a4a97743430413fa98d456887db479..4eb6f7139fc50123fb8d394d41e33358271cd360 100644 --- a/test/cases/dml/delete/delete.test +++ b/test/cases/dml/delete/delete.test @@ -108,4 +108,16 @@ insert into t2 values(1), (2), (3); delete t1, t2 from t1 join t2 on t1.a = t2.b where t1.a = 1; select * from t2; -drop database if exists db1; \ No newline at end of file + +drop table if exists t1; +create table t1(a int auto_increment, b bigint auto_increment); +insert into t1 values(null, 2), (3, null), (null, null); +select * from t1; +insert into t1 values(100, 2), (null, null), (null, null); +select * from t1; +delete from t1 where a >= 100; +select * from t1; +insert into t1 values(null, null), (null, null), (null, null); +select * from t1; + +drop database if exists db1; diff --git a/test/cases/dml/insert/insert.test b/test/cases/dml/insert/insert.test index 3db4e03ec7bb0d13cc0e85b68ada2c9dc90b87f5..792e03a373f9fe6eb6647be0f4b81e935ca2627c 100755 --- a/test/cases/dml/insert/insert.test +++ b/test/cases/dml/insert/insert.test @@ -80,3 +80,14 @@ drop table if exists t1; create table t1 (a date default DATE("2017-06-15 09:34:21")); insert into t1 (a) values (default), (default), (default); select * from t1; + +drop table if exists t1; +create table t1(a int auto_increment, b int); +insert into t1 values(null, 2), (3, null), (null, null); +select * from t1; +drop table if exists t1; +create table t1(a int auto_increment, b bigint auto_increment); +insert into t1 values(null, 2), (3, null), (null, null); +select * from t1; +insert into t1 values(100, 2), (null, null), (null, null); +select * from t1; \ No newline at end of file diff --git a/test/cases/dml/select/select.test b/test/cases/dml/select/select.test index 57e690dee17ab8e947e5e99fac93bd2de015c10a..6cfa0cfadbd36358a01621abb9111a97dfd5f26f 100755 --- a/test/cases/dml/select/select.test +++ b/test/cases/dml/select/select.test @@ -186,3 +186,16 @@ CREATE TABLE t1 (c0 varchar(0) DEFAULT NULL); insert into t1 values(); insert into t1 values(''); select * from t1; + +drop table if exists t1; +create table if not exists t1(a tinyint auto_increment); +create table if not exists t1(a smallint auto_increment); +create table if not exists t1(a int auto_increment); +select * from t1; +show columns from t1; +drop table if exists t1; +create table if not exists t1(a bigint auto_increment); +select * from t1; +drop table if exists t1; +create table if not exists t1(a int auto_increment primary key); +drop table if exists t1; \ No newline at end of file diff --git a/test/cases/dml/update/update.test b/test/cases/dml/update/update.test index d11d9d6a88eb017d62693eb85cdf57a23b6ad673..2efca075ed829b7a8fb9d72162a427c1d11bfd69 100644 --- a/test/cases/dml/update/update.test +++ b/test/cases/dml/update/update.test @@ -119,4 +119,14 @@ update t1 join t2 on t1.a = t2.a set t1.b = default, t2.a = default; select * from t1; select * from t2; +drop table if exists t1; +create table t1(a int auto_increment, b int auto_increment); +insert into t1 values(null, null), (null, null); +select * from t1; +insert into t1 values(100, 200), (null, null); +select * from t1; +update t1 set a=null; +select * from t1; +update t1 set b=null; +select * from t1; drop database if exists db1; \ No newline at end of file diff --git a/test/result/dml/delete/delete.result b/test/result/dml/delete/delete.result index b84ee088a39179d9d25da8002ac3c29523ca7bf8..4c87eb69ca02a83cda109d8b0a31196794b0f6e3 100644 --- a/test/result/dml/delete/delete.result +++ b/test/result/dml/delete/delete.result @@ -131,4 +131,36 @@ select * from t2; b 2 3 +drop table if exists t1; +create table t1(a int auto_increment, b bigint auto_increment); +insert into t1 values(null, 2), (3, null), (null, null); +select * from t1; +a b +1 2 +3 3 +4 4 +insert into t1 values(100, 2), (null, null), (null, null); +select * from t1; +a b +1 2 +3 3 +4 4 +100 2 +101 5 +102 6 +delete from t1 where a >= 100; +select * from t1; +a b +1 2 +3 3 +4 4 +insert into t1 values(null, null), (null, null), (null, null); +select * from t1; +a b +1 2 +3 3 +4 4 +103 7 +104 8 +105 9 drop database if exists db1; \ No newline at end of file diff --git a/test/result/dml/insert/insert.result b/test/result/dml/insert/insert.result index afa18aec50bf7e1aa05f4c71ab57dd5a9eb34f0c..7e1b00eb4819730c099a16ae798de2422cd6c5d6 100755 --- a/test/result/dml/insert/insert.result +++ b/test/result/dml/insert/insert.result @@ -115,3 +115,28 @@ a 2017-06-15 2017-06-15 2017-06-15 +drop table if exists t1; +create table t1(a int auto_increment, b int); +insert into t1 values(null, 2), (3, null), (null, null); +select * from t1; +a b +1 2 +3 null +4 null +drop table if exists t1; +create table t1(a int auto_increment, b bigint auto_increment); +insert into t1 values(null, 2), (3, null), (null, null); +select * from t1; +a b +1 2 +3 3 +4 4 +insert into t1 values(100, 2), (null, null), (null, null); +select * from t1; +a b +1 2 +3 3 +4 4 +100 2 +101 5 +102 6 \ No newline at end of file diff --git a/test/result/dml/select/select.result b/test/result/dml/select/select.result index 5fa15aa30d2f3150bf21dbd6116e4dd1be1baf2f..cf1352083d1f914a6d78cadc0cb8c23852542a8f 100755 --- a/test/result/dml/select/select.result +++ b/test/result/dml/select/select.result @@ -368,3 +368,21 @@ select * from t1; c0 null +drop table if exists t1; +create table if not exists t1(a tinyint auto_increment); +the auto_incr column is only support int32 and int64 type now +create table if not exists t1(a smallint auto_increment); +the auto_incr column is only support int32 and int64 type now +create table if not exists t1(a int auto_increment); +select * from t1; +a +show columns from t1; +Field Type Null Key Default Comment +a INT YES NULL +drop table if exists t1; +create table if not exists t1(a bigint auto_increment); +select * from t1; +a +drop table if exists t1; +create table if not exists t1(a int auto_increment primary key); +drop table if exists t1; \ No newline at end of file diff --git a/test/result/dml/update/update.result b/test/result/dml/update/update.result index 8f05275a2cdf03c7d8df8b583863db96812f9d0b..b0d01eb77b7984734ad169894730824553aed991 100644 --- a/test/result/dml/update/update.result +++ b/test/result/dml/update/update.result @@ -200,4 +200,33 @@ select * from t2; a b null 1 null 2 +drop table if exists t1; +create table t1(a int auto_increment, b int auto_increment); +insert into t1 values(null, null), (null, null); +select * from t1; +a b +1 1 +2 2 +insert into t1 values(100, 200), (null, null); +select * from t1; +a b +1 1 +2 2 +100 200 +101 201 +update t1 set a=null; +select * from t1; +a b +102 1 +103 2 +104 200 +105 201 +update t1 set b=null; +select * from t1; +a b +102 202 +103 203 +104 204 +105 205 drop database if exists db1; +