Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/master' into master

icole 4 anni fa
parent
commit
8e03931b0a

+ 2 - 2
etc/transform.yaml

@@ -1,9 +1,9 @@
 Name: transform.rpc
-ListenOn: 172.16.11.5:8080
+ListenOn: 0.0.0.0:8080
 Etcd:
   Hosts:
   - 47.103.219.158:30019
-  Key: icole.rpc
+  Key: transform.rpc
 DataSource: root:gSRGZqb121TlYIbJy0@tcp(47.103.202.94:3306)/i2erp_erp1?charset=utf8&loc=Local&parseTime=true
 Table:
 Cache:

+ 35 - 0
internal/logic/get_student_logic.go

@@ -0,0 +1,35 @@
+package logic
+
+import (
+	"context"
+
+	"git.i2edu.net/i2/i2-bill-erp/internal/svc"
+	"git.i2edu.net/i2/i2-bill-erp/model"
+	"git.i2edu.net/i2/i2-bill-erp/transform"
+
+	"git.i2edu.net/i2/go-zero/core/logx"
+)
+
+type GetStudentLogic struct {
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+	logx.Logger
+}
+
+func NewGetStudentLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetStudentLogic {
+	return &GetStudentLogic{
+		ctx:    ctx,
+		svcCtx: svcCtx,
+		Logger: logx.WithContext(ctx),
+	}
+}
+
+func (l *GetStudentLogic) GetStudent(in *transform.StudentReq) (*transform.StudentRes, error) {
+	mkt := model.MktResource{}
+	err := l.svcCtx.SqlConn.QueryRowPartial(&mkt, "select id, stu_phone from mkt_resource where id=?", in.Id)
+	if err != nil {
+		logx.Error(err.Error())
+		return nil, err
+	}
+	return &transform.StudentRes{StuPhone: mkt.StuPhone.String}, nil
+}

+ 5 - 0
internal/server/transform_server.go

@@ -68,6 +68,11 @@ func (s *TransformServer) GetErpOptionset(ctx context.Context, in *transform.Opt
 	return l.GetErpOptionset(in)
 }
 
+func (s *TransformServer) GetStudent(ctx context.Context, in *transform.StudentReq) (*transform.StudentRes, error) {
+	l := logic.NewGetStudentLogic(ctx, s.svcCtx)
+	return l.GetStudent(in)
+}
+
 // 获取数据权限
 func (s *TransformServer) GetDataPermission(ctx context.Context, in *transform.DataPermissionReq) (*transform.DataPermissionRes, error) {
 	l := logic.NewGetDataPermissionLogic(ctx, s.svcCtx)

+ 10 - 0
transform.proto

@@ -198,6 +198,15 @@ message MktRes {
 }
 
 
+message StudentReq {
+	int64 Id = 1;
+}
+
+message StudentRes {
+  int64 Id = 1;
+	string StuPhone = 2;
+}
+
 service Transform {
   rpc GetUser(UserRequest) returns(UserResponse);
   rpc ParseToken(TokenRequest) returns(TokenResponse);
@@ -210,6 +219,7 @@ service Transform {
   rpc GetCityIds(CityIdsReq) returns(CityIdsRes);
   rpc PostExcelLog(ExcelLogReq) returns(ExcelLogRes);
   rpc GetErpOptionset(OptionCode) returns(Options);
+  rpc GetStudent(StudentReq) returns(StudentRes);
   //获取数据权限
   rpc GetDataPermission(DataPermissionReq) returns(DataPermissionRes);
   //获取erp 渠道细分树

+ 222 - 96
transform/transform.pb.go

@@ -1821,6 +1821,92 @@ func (m *MktRes) GetStatus() int64 {
 	return 0
 }
 
+type StudentReq struct {
+	Id                   int64    `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *StudentReq) Reset()         { *m = StudentReq{} }
+func (m *StudentReq) String() string { return proto.CompactTextString(m) }
+func (*StudentReq) ProtoMessage()    {}
+func (*StudentReq) Descriptor() ([]byte, []int) {
+	return fileDescriptor_cb4a498eeb2ba07d, []int{35}
+}
+
+func (m *StudentReq) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_StudentReq.Unmarshal(m, b)
+}
+func (m *StudentReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_StudentReq.Marshal(b, m, deterministic)
+}
+func (m *StudentReq) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_StudentReq.Merge(m, src)
+}
+func (m *StudentReq) XXX_Size() int {
+	return xxx_messageInfo_StudentReq.Size(m)
+}
+func (m *StudentReq) XXX_DiscardUnknown() {
+	xxx_messageInfo_StudentReq.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_StudentReq proto.InternalMessageInfo
+
+func (m *StudentReq) GetId() int64 {
+	if m != nil {
+		return m.Id
+	}
+	return 0
+}
+
+type StudentRes struct {
+	Id                   int64    `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
+	StuPhone             string   `protobuf:"bytes,2,opt,name=StuPhone,proto3" json:"StuPhone,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *StudentRes) Reset()         { *m = StudentRes{} }
+func (m *StudentRes) String() string { return proto.CompactTextString(m) }
+func (*StudentRes) ProtoMessage()    {}
+func (*StudentRes) Descriptor() ([]byte, []int) {
+	return fileDescriptor_cb4a498eeb2ba07d, []int{36}
+}
+
+func (m *StudentRes) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_StudentRes.Unmarshal(m, b)
+}
+func (m *StudentRes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_StudentRes.Marshal(b, m, deterministic)
+}
+func (m *StudentRes) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_StudentRes.Merge(m, src)
+}
+func (m *StudentRes) XXX_Size() int {
+	return xxx_messageInfo_StudentRes.Size(m)
+}
+func (m *StudentRes) XXX_DiscardUnknown() {
+	xxx_messageInfo_StudentRes.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_StudentRes proto.InternalMessageInfo
+
+func (m *StudentRes) GetId() int64 {
+	if m != nil {
+		return m.Id
+	}
+	return 0
+}
+
+func (m *StudentRes) GetStuPhone() string {
+	if m != nil {
+		return m.StuPhone
+	}
+	return ""
+}
+
 func init() {
 	proto.RegisterType((*UserRequest)(nil), "transform.UserRequest")
 	proto.RegisterType((*UserResponse)(nil), "transform.UserResponse")
@@ -1861,108 +1947,112 @@ func init() {
 	proto.RegisterMapType((map[string]string)(nil), "transform.DataPermissionRes.MapListEntry")
 	proto.RegisterType((*MktReq)(nil), "transform.MktReq")
 	proto.RegisterType((*MktRes)(nil), "transform.MktRes")
+	proto.RegisterType((*StudentReq)(nil), "transform.StudentReq")
+	proto.RegisterType((*StudentRes)(nil), "transform.StudentRes")
 }
 
 func init() { proto.RegisterFile("transform.proto", fileDescriptor_cb4a498eeb2ba07d) }
 
 var fileDescriptor_cb4a498eeb2ba07d = []byte{
-	// 1532 bytes of a gzipped FileDescriptorProto
+	// 1567 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4b, 0x6f, 0x1b, 0xb7,
-	0x13, 0x87, 0x2c, 0xeb, 0x35, 0x92, 0x5f, 0x8c, 0xed, 0x6c, 0xf6, 0xef, 0x7f, 0x2b, 0x10, 0x69,
-	0xeb, 0x5c, 0x7c, 0x48, 0x80, 0x36, 0x30, 0x82, 0x34, 0x7e, 0x45, 0x10, 0x60, 0xd9, 0xea, 0xca,
-	0x41, 0xd1, 0x93, 0xb1, 0xd1, 0x32, 0xf2, 0x56, 0xab, 0xa5, 0xbc, 0xa4, 0xd2, 0xe8, 0x0b, 0xf4,
-	0xd0, 0x6b, 0x7b, 0xed, 0x47, 0xe9, 0xb7, 0xe8, 0xad, 0xdf, 0xa5, 0x28, 0x86, 0xe4, 0xae, 0xa8,
-	0x97, 0x93, 0x14, 0xcd, 0x8d, 0xf3, 0x9b, 0x07, 0x87, 0xb3, 0xf3, 0x92, 0x60, 0x43, 0x26, 0x7e,
-	0x2c, 0xde, 0xf0, 0x64, 0x70, 0x30, 0x4c, 0xb8, 0xe4, 0xa4, 0x92, 0x01, 0xf4, 0x09, 0x54, 0x5f,
-	0x09, 0x96, 0x78, 0xec, 0x76, 0xc4, 0x84, 0x24, 0xeb, 0xb0, 0x12, 0x06, 0x4e, 0xae, 0x9e, 0xdb,
-	0xaf, 0x78, 0x2b, 0x61, 0x40, 0xb6, 0xa1, 0x30, 0xbc, 0xe1, 0x31, 0x73, 0x56, 0x14, 0xa4, 0x09,
-	0xfa, 0x67, 0x0e, 0x6a, 0x5a, 0x4b, 0x0c, 0x79, 0x2c, 0xd8, 0x87, 0xa9, 0x21, 0x9a, 0xf0, 0x88,
-	0x09, 0x27, 0xaf, 0x51, 0x45, 0x90, 0x5d, 0x28, 0x0a, 0xe9, 0xcb, 0x91, 0x70, 0x56, 0xeb, 0xb9,
-	0xfd, 0xbc, 0x67, 0x28, 0x52, 0x87, 0x2a, 0x4b, 0x86, 0x1e, 0x8f, 0xd8, 0xd5, 0x78, 0xc8, 0x9c,
-	0x82, 0x62, 0xda, 0x10, 0x71, 0xa1, 0x3c, 0x12, 0x2c, 0xb9, 0xf0, 0x07, 0xcc, 0x29, 0x2a, 0x93,
-	0x19, 0x8d, 0xbc, 0x6e, 0x28, 0xc7, 0x8a, 0x57, 0xd2, 0xbc, 0x94, 0xc6, 0x1b, 0x7b, 0x2c, 0x0e,
-	0x58, 0xe2, 0x94, 0xf5, 0x8d, 0x9a, 0xa2, 0x0f, 0xa1, 0x76, 0xc5, 0xfb, 0x2c, 0x4e, 0x83, 0xb1,
-	0x0d, 0x05, 0x89, 0xb4, 0x79, 0x98, 0x26, 0xe8, 0xef, 0x2b, 0xb0, 0x66, 0xc4, 0xcc, 0xeb, 0x77,
-	0xa1, 0x88, 0xd1, 0x68, 0xa6, 0x11, 0x30, 0x14, 0xbe, 0x40, 0x45, 0x89, 0x47, 0xac, 0x19, 0x08,
-	0x13, 0x0b, 0x1b, 0x22, 0x0f, 0x61, 0x0d, 0xc9, 0x4e, 0xf7, 0x86, 0xf3, 0x08, 0x65, 0x74, 0x64,
-	0xa6, 0x41, 0xb2, 0x0f, 0x1b, 0x08, 0xb4, 0x13, 0xfe, 0x36, 0x8c, 0xbb, 0xca, 0xd6, 0xaa, 0x92,
-	0x9b, 0x85, 0x09, 0xd5, 0xdf, 0xe5, 0x32, 0xe9, 0xf9, 0x31, 0x8a, 0x15, 0x94, 0xd8, 0x14, 0x86,
-	0x5e, 0x75, 0xc6, 0x22, 0xb5, 0x6e, 0x02, 0x67, 0x43, 0xe4, 0x33, 0x80, 0xce, 0x58, 0x18, 0x05,
-	0x13, 0x3d, 0x0b, 0x21, 0x7b, 0x50, 0x51, 0x17, 0xab, 0x2f, 0x5c, 0x56, 0xec, 0x09, 0x40, 0x4b,
-	0x50, 0x38, 0x1b, 0x0c, 0xe5, 0x98, 0x7e, 0x0d, 0x95, 0xab, 0x84, 0xb1, 0x0b, 0x1e, 0x30, 0x41,
-	0x1e, 0x41, 0x21, 0xc6, 0x83, 0x93, 0xab, 0xe7, 0xf7, 0xab, 0x8f, 0xef, 0x1d, 0x4c, 0x72, 0x32,
-	0x15, 0xf2, 0xb4, 0x04, 0xfd, 0x35, 0x07, 0xe5, 0x14, 0xb3, 0x32, 0x2b, 0xaf, 0x32, 0x8b, 0xc0,
-	0xaa, 0x64, 0xef, 0xa4, 0x09, 0xa6, 0x3a, 0x63, 0xfc, 0x87, 0x7e, 0xc2, 0x62, 0xa9, 0xc2, 0x97,
-	0xf7, 0x0c, 0x45, 0xea, 0x90, 0x97, 0x7e, 0x4f, 0xc5, 0xaa, 0xfa, 0x78, 0xdd, 0xbe, 0xd1, 0xef,
-	0x79, 0xc8, 0x9a, 0x78, 0x55, 0x78, 0xaf, 0x57, 0x8f, 0x20, 0x7f, 0xe5, 0xf7, 0x16, 0xf9, 0x13,
-	0x63, 0x8e, 0x19, 0x7f, 0xf0, 0x4c, 0x29, 0xd4, 0x2e, 0x87, 0x32, 0xc4, 0xdc, 0x90, 0x1e, 0xbb,
-	0x45, 0x99, 0x2e, 0x0f, 0x98, 0xc9, 0x0e, 0x75, 0xa6, 0xbf, 0xe4, 0xa6, 0x84, 0x04, 0x79, 0x0e,
-	0xa5, 0x81, 0x3f, 0x3c, 0x0f, 0x85, 0x34, 0x21, 0x7a, 0x68, 0x39, 0x63, 0x4b, 0x1e, 0xb4, 0xb4,
-	0xd8, 0x59, 0x2c, 0x93, 0xb1, 0x97, 0x2a, 0xb9, 0x87, 0x50, 0xb3, 0x19, 0x64, 0x13, 0xf2, 0x7d,
-	0x36, 0x36, 0x77, 0xe2, 0x11, 0xd3, 0xf9, 0xad, 0x1f, 0x8d, 0xb2, 0xa2, 0x54, 0xc4, 0xe1, 0xca,
-	0xd3, 0x1c, 0xad, 0x03, 0xe8, 0x1b, 0x4e, 0x30, 0xe4, 0x8b, 0xdc, 0x6d, 0x40, 0xc9, 0xf8, 0xb0,
-	0x88, 0xbd, 0x28, 0x0a, 0x93, 0xeb, 0xf2, 0xd6, 0x75, 0x18, 0x9b, 0xb4, 0x6e, 0x8e, 0xc7, 0x52,
-	0x69, 0x06, 0xbe, 0xf4, 0x95, 0xb5, 0x9a, 0xa7, 0xce, 0xf4, 0xaf, 0x1c, 0x54, 0xcf, 0xde, 0x75,
-	0x59, 0x74, 0xce, 0x7b, 0x18, 0xbf, 0x5d, 0x28, 0xb6, 0x78, 0x30, 0x8a, 0xd2, 0x3b, 0x0d, 0x85,
-	0xba, 0x27, 0x3c, 0x0e, 0xd2, 0x5b, 0xf1, 0x8c, 0x75, 0x7f, 0x92, 0x30, 0x5f, 0xb2, 0xe3, 0xb1,
-	0xb9, 0x38, 0xa3, 0x31, 0xaf, 0xf5, 0xf9, 0x2a, 0x1c, 0x30, 0x53, 0x42, 0x16, 0x82, 0xd5, 0x73,
-	0xee, 0x0b, 0xf9, 0x6a, 0x18, 0x68, 0x7d, 0x53, 0x3d, 0x36, 0x46, 0xbe, 0x84, 0xf5, 0x09, 0xad,
-	0xec, 0xe8, 0x02, 0x9a, 0x41, 0x89, 0x03, 0xa5, 0x53, 0x16, 0xbd, 0x8c, 0xfc, 0x9e, 0x29, 0xa0,
-	0x94, 0xa4, 0x5f, 0xd8, 0x8f, 0x53, 0xed, 0xaf, 0xa3, 0xdb, 0x9f, 0x4e, 0x2a, 0x43, 0x61, 0x33,
-	0xca, 0x3a, 0x00, 0x06, 0x61, 0x1b, 0x0a, 0x18, 0x56, 0x5d, 0x40, 0x15, 0x4f, 0x13, 0xf4, 0xff,
-	0x50, 0xc1, 0x4f, 0x7e, 0xf9, 0xa6, 0x19, 0x4b, 0xfc, 0xe4, 0x61, 0xa0, 0x05, 0xf2, 0x1e, 0x1e,
-	0x55, 0x96, 0x59, 0x56, 0xde, 0x93, 0x65, 0xb6, 0xe4, 0x7f, 0x93, 0x65, 0x79, 0x3b, 0xcb, 0x28,
-	0xc0, 0x49, 0x28, 0xc7, 0xf3, 0xef, 0xc9, 0x4d, 0xde, 0xf3, 0x73, 0xce, 0x12, 0x12, 0xe4, 0xd9,
-	0xac, 0xbb, 0xd4, 0x72, 0x77, 0x22, 0xf7, 0x09, 0x9c, 0xdd, 0x83, 0x32, 0xe6, 0xa7, 0x72, 0x75,
-	0x13, 0xf2, 0x09, 0xbb, 0x35, 0x29, 0x8a, 0x47, 0xfa, 0x39, 0x54, 0x0c, 0x57, 0x0c, 0x31, 0x0d,
-	0x13, 0x26, 0x86, 0x69, 0x0a, 0xe3, 0x99, 0x3e, 0x83, 0xb5, 0x06, 0x93, 0x67, 0x7a, 0x58, 0xe1,
-	0x4b, 0xee, 0x43, 0x09, 0x67, 0xd3, 0x75, 0x36, 0x26, 0x8b, 0x23, 0x3d, 0x24, 0x50, 0x9b, 0x47,
-	0x59, 0xe9, 0xe0, 0x99, 0xbe, 0x98, 0xd6, 0x56, 0x15, 0x30, 0xe0, 0xaf, 0xc3, 0x49, 0x05, 0x68,
-	0xca, 0xb6, 0xba, 0x62, 0x5b, 0xa5, 0xdf, 0xc0, 0x9e, 0xb6, 0xa0, 0x7a, 0x76, 0xa7, 0x7b, 0xd3,
-	0x66, 0xc9, 0xf1, 0x58, 0xcf, 0x25, 0x34, 0xb8, 0xcc, 0x1d, 0x7a, 0x71, 0xa7, 0xa2, 0x20, 0x07,
-	0x50, 0x14, 0x2a, 0x4d, 0xcc, 0x07, 0xd9, 0xb5, 0xbb, 0x94, 0x51, 0xe1, 0x3c, 0xf2, 0x8c, 0x14,
-	0x3d, 0x87, 0xaa, 0x05, 0x7f, 0x48, 0xfb, 0x24, 0x0f, 0xa0, 0xcc, 0x51, 0x05, 0x9d, 0xd3, 0x0d,
-	0xbd, 0xc4, 0xf5, 0xe4, 0xa1, 0x47, 0xb0, 0xa1, 0xbd, 0x33, 0xb7, 0xfc, 0x0b, 0x87, 0xf6, 0x53,
-	0x13, 0x47, 0x5d, 0x19, 0xbe, 0x55, 0xd1, 0xdd, 0x51, 0x26, 0xd2, 0x58, 0xac, 0x7a, 0x05, 0xd1,
-	0xbd, 0x69, 0x06, 0xf4, 0xd9, 0xac, 0x24, 0x4e, 0xb1, 0xa2, 0xaf, 0x08, 0x73, 0xd9, 0x96, 0x75,
-	0x99, 0x91, 0x32, 0x02, 0xf4, 0x39, 0x14, 0x35, 0x42, 0xfe, 0x07, 0x15, 0x8d, 0x5d, 0x67, 0x4f,
-	0x2f, 0x6b, 0xa0, 0x19, 0xe0, 0x87, 0x18, 0xf8, 0xd7, 0x56, 0x0c, 0x8a, 0x03, 0x1f, 0x97, 0x14,
-	0xda, 0x84, 0xad, 0x53, 0x5f, 0xfa, 0x6d, 0x96, 0x0c, 0x42, 0x21, 0x42, 0x8e, 0x5b, 0x09, 0x9a,
-	0x4a, 0x46, 0x11, 0xbb, 0xb6, 0x1a, 0x70, 0x19, 0x01, 0xd5, 0xb7, 0x97, 0x26, 0xc3, 0x6f, 0xb9,
-	0x79, 0x5b, 0x82, 0x9c, 0xcc, 0xd6, 0xd6, 0x23, 0xeb, 0x31, 0x73, 0xe2, 0x9f, 0x60, 0xea, 0xfc,
-	0xbd, 0x0a, 0xc5, 0x56, 0x5f, 0x4d, 0xc8, 0x75, 0x58, 0x69, 0x66, 0x69, 0xa1, 0x8b, 0xa2, 0xd5,
-	0x6f, 0x66, 0x9d, 0x1d, 0xcf, 0xd8, 0x79, 0xdb, 0x7e, 0x22, 0xb1, 0xbb, 0x9a, 0x6d, 0x4b, 0x27,
-	0xc7, 0x0c, 0x6a, 0x6d, 0x63, 0x66, 0x9f, 0x34, 0xb8, 0x03, 0xa5, 0x8e, 0x1c, 0xa9, 0x85, 0x50,
-	0x37, 0xf6, 0x94, 0xc4, 0x99, 0x71, 0xd4, 0x63, 0x8d, 0x84, 0x8f, 0x86, 0xaa, 0x9b, 0xe7, 0xbd,
-	0x8c, 0xc6, 0x0d, 0xad, 0x23, 0x47, 0xe7, 0x61, 0xdc, 0x6f, 0xb3, 0x44, 0xf0, 0xd8, 0x74, 0xf3,
-	0x69, 0x10, 0x2d, 0x74, 0xe4, 0xc8, 0x5e, 0x88, 0x32, 0x1a, 0x03, 0xd0, 0xc1, 0x7c, 0x72, 0x2a,
-	0xba, 0xc7, 0x28, 0x02, 0xbd, 0x39, 0x0a, 0x82, 0x84, 0x09, 0xe1, 0x80, 0xf6, 0xc6, 0x90, 0x33,
-	0x53, 0xaa, 0x3a, 0x37, 0xa5, 0xac, 0xc9, 0x52, 0xd3, 0xd5, 0x61, 0x48, 0xa5, 0x79, 0xc3, 0xba,
-	0x7d, 0x9c, 0x20, 0xcc, 0x59, 0x53, 0x4c, 0x0b, 0xc1, 0xbd, 0x4d, 0x51, 0xca, 0xf0, 0xba, 0xde,
-	0xdb, 0x32, 0x00, 0xed, 0x2a, 0xe2, 0x78, 0xec, 0x6c, 0x68, 0x8f, 0x0c, 0x89, 0xfb, 0xe7, 0x05,
-	0x93, 0x3f, 0xf1, 0xa4, 0x7f, 0xca, 0xa4, 0x1f, 0xe2, 0xd6, 0xb8, 0xa9, 0x8c, 0xcf, 0xc2, 0x2a,
-	0x92, 0x26, 0xb3, 0x9d, 0x2d, 0x13, 0xc9, 0x34, 0xd3, 0x71, 0x32, 0xfb, 0x51, 0xa4, 0x96, 0x79,
-	0xa2, 0x79, 0x29, 0xad, 0x26, 0xbc, 0xaf, 0x38, 0xf7, 0xf4, 0x37, 0xd3, 0x14, 0xfa, 0xf4, 0xdd,
-	0xc8, 0xe7, 0x3f, 0xfc, 0x18, 0x3a, 0xdb, 0xfa, 0xad, 0x86, 0xc4, 0xef, 0xd2, 0xea, 0x4b, 0x65,
-	0x5c, 0x8d, 0x01, 0x67, 0x47, 0xf1, 0xa7, 0x41, 0x7c, 0xf1, 0x39, 0xf7, 0x03, 0x1d, 0xff, 0x5d,
-	0x25, 0x31, 0x01, 0x68, 0xdd, 0xe4, 0xdf, 0xd2, 0x21, 0xfc, 0xf8, 0x8f, 0x32, 0xee, 0xb0, 0xa6,
-	0x28, 0xc8, 0x21, 0x94, 0x1a, 0x4c, 0x62, 0x3a, 0x11, 0xbb, 0xcb, 0x58, 0xbf, 0x9f, 0xdc, 0xfb,
-	0x73, 0xb8, 0xf9, 0x8d, 0xf0, 0x2d, 0x40, 0xdb, 0x4f, 0x04, 0x53, 0xbf, 0x1c, 0x88, 0x2d, 0x66,
-	0xff, 0xe4, 0x70, 0x9d, 0x79, 0x86, 0x31, 0xf0, 0x14, 0xd6, 0x75, 0x37, 0xc2, 0xb1, 0x87, 0xcb,
-	0x29, 0xd9, 0xb4, 0x64, 0xd5, 0xc6, 0xed, 0x6e, 0x2f, 0xd8, 0x5f, 0x55, 0x87, 0x3c, 0x0a, 0x82,
-	0x56, 0x5f, 0x12, 0xbb, 0x5d, 0xe9, 0xca, 0x73, 0xe7, 0x20, 0x41, 0x8e, 0x60, 0x0d, 0x63, 0x94,
-	0xed, 0x9c, 0x53, 0xde, 0xda, 0x8b, 0xad, 0xbb, 0x84, 0x21, 0xc8, 0x0b, 0xa8, 0x35, 0x98, 0x9c,
-	0xfc, 0x82, 0xb9, 0xbf, 0x78, 0xcb, 0x98, 0xb6, 0x30, 0xb5, 0xa8, 0x1c, 0x02, 0x34, 0x98, 0x34,
-	0x23, 0x9e, 0xec, 0x2c, 0x1a, 0xfb, 0xb7, 0xee, 0x42, 0x18, 0x97, 0x9c, 0x5a, 0x9b, 0x0b, 0x99,
-	0x6e, 0x59, 0x53, 0x1f, 0xcb, 0xda, 0x2b, 0xdd, 0xc5, 0x38, 0x6e, 0x1d, 0xa6, 0xf1, 0x4f, 0x42,
-	0xb0, 0x33, 0xf7, 0x52, 0x6c, 0xb9, 0x2e, 0x99, 0x0f, 0x00, 0xb9, 0x84, 0xad, 0x06, 0x93, 0xd3,
-	0x0d, 0x94, 0xec, 0xdd, 0xd1, 0x5b, 0x6f, 0xdd, 0xbb, 0xb8, 0x82, 0x9c, 0x82, 0xab, 0xdd, 0x69,
-	0xf5, 0xe5, 0x05, 0x93, 0xdf, 0x67, 0x05, 0xf7, 0x51, 0x59, 0x30, 0x80, 0x07, 0x4b, 0x07, 0x3b,
-	0xf9, 0xca, 0x52, 0xb9, 0x6b, 0x6f, 0x70, 0x3f, 0x50, 0x10, 0x33, 0x00, 0x26, 0x2b, 0x0c, 0x71,
-	0xe6, 0xd4, 0xcc, 0x66, 0xe3, 0x2e, 0xe3, 0xe0, 0x57, 0xa8, 0xd9, 0xb3, 0x7e, 0xc1, 0x43, 0xdd,
-	0x39, 0xdd, 0xc9, 0x5a, 0xf0, 0x32, 0xd5, 0x36, 0x43, 0x78, 0x5e, 0x36, 0x9b, 0xff, 0xee, 0x72,
-	0x1e, 0x7a, 0x41, 0xa6, 0xdf, 0xf9, 0x31, 0x41, 0x7f, 0x5d, 0x54, 0xff, 0xb7, 0x3c, 0xf9, 0x27,
-	0x00, 0x00, 0xff, 0xff, 0x49, 0x1d, 0x86, 0xf0, 0x82, 0x11, 0x00, 0x00,
+	0x13, 0x87, 0x24, 0xeb, 0x35, 0x96, 0x5f, 0x8c, 0xed, 0x6c, 0xf6, 0xef, 0x7f, 0x6b, 0x10, 0x69,
+	0xeb, 0x5c, 0x7c, 0x48, 0x80, 0x36, 0x30, 0x82, 0x34, 0x7e, 0xc5, 0x10, 0xe0, 0x57, 0x57, 0x0e,
+	0x8a, 0x9e, 0x8c, 0x8d, 0x96, 0x91, 0xb7, 0x5a, 0x2d, 0xe5, 0x25, 0x95, 0x46, 0x5f, 0xa0, 0x87,
+	0x5e, 0xdb, 0x6b, 0xbf, 0x55, 0x6f, 0xfd, 0x24, 0xbd, 0x14, 0xc5, 0x90, 0xdc, 0x5d, 0xae, 0x1e,
+	0x4e, 0x52, 0x34, 0x37, 0xce, 0x6f, 0x86, 0xc3, 0xe1, 0xec, 0x70, 0xe6, 0x27, 0xc1, 0x8a, 0x4c,
+	0xfc, 0x58, 0xbc, 0xe1, 0xc9, 0x60, 0x77, 0x98, 0x70, 0xc9, 0x49, 0x33, 0x03, 0xe8, 0x13, 0x58,
+	0x7c, 0x25, 0x58, 0xe2, 0xb1, 0xdb, 0x11, 0x13, 0x92, 0x2c, 0x43, 0x39, 0x0c, 0x9c, 0xd2, 0x76,
+	0x69, 0xa7, 0xe9, 0x95, 0xc3, 0x80, 0xac, 0x43, 0x75, 0x78, 0xc3, 0x63, 0xe6, 0x94, 0x15, 0xa4,
+	0x05, 0xfa, 0x47, 0x09, 0x5a, 0x7a, 0x97, 0x18, 0xf2, 0x58, 0xb0, 0x0f, 0xdb, 0x86, 0x68, 0xc2,
+	0x23, 0x26, 0x9c, 0x8a, 0x46, 0x95, 0x40, 0x36, 0xa1, 0x26, 0xa4, 0x2f, 0x47, 0xc2, 0x59, 0xd8,
+	0x2e, 0xed, 0x54, 0x3c, 0x23, 0x91, 0x6d, 0x58, 0x64, 0xc9, 0xd0, 0xe3, 0x11, 0xbb, 0x1a, 0x0f,
+	0x99, 0x53, 0x55, 0x4a, 0x1b, 0x22, 0x2e, 0x34, 0x46, 0x82, 0x25, 0xe7, 0xfe, 0x80, 0x39, 0x35,
+	0xe5, 0x32, 0x93, 0x51, 0xd7, 0x0d, 0xe5, 0x58, 0xe9, 0xea, 0x5a, 0x97, 0xca, 0x78, 0x62, 0x8f,
+	0xc5, 0x01, 0x4b, 0x9c, 0x86, 0x3e, 0x51, 0x4b, 0xf4, 0x21, 0xb4, 0xae, 0x78, 0x9f, 0xc5, 0x69,
+	0x32, 0xd6, 0xa1, 0x2a, 0x51, 0x36, 0x17, 0xd3, 0x02, 0xfd, 0xbd, 0x0c, 0x4b, 0xc6, 0xcc, 0xdc,
+	0x7e, 0x13, 0x6a, 0x98, 0x8d, 0x76, 0x9a, 0x01, 0x23, 0xe1, 0x0d, 0x54, 0x96, 0x78, 0xc4, 0xda,
+	0x81, 0x30, 0xb9, 0xb0, 0x21, 0xf2, 0x10, 0x96, 0x50, 0xec, 0x74, 0x6f, 0x38, 0x8f, 0xd0, 0x46,
+	0x67, 0xa6, 0x08, 0x92, 0x1d, 0x58, 0x41, 0xe0, 0x32, 0xe1, 0x6f, 0xc3, 0xb8, 0xab, 0x7c, 0x2d,
+	0x28, 0xbb, 0x49, 0x98, 0x50, 0xfd, 0x5d, 0x2e, 0x92, 0x9e, 0x1f, 0xa3, 0x59, 0x55, 0x99, 0x15,
+	0x30, 0x8c, 0xaa, 0x33, 0x16, 0xa9, 0x77, 0x93, 0x38, 0x1b, 0x22, 0x9f, 0x01, 0x74, 0xc6, 0xc2,
+	0x6c, 0x30, 0xd9, 0xb3, 0x10, 0xb2, 0x05, 0x4d, 0x75, 0xb0, 0xfa, 0xc2, 0x0d, 0xa5, 0xce, 0x01,
+	0x5a, 0x87, 0xea, 0xf1, 0x60, 0x28, 0xc7, 0xf4, 0x6b, 0x68, 0x5e, 0x25, 0x8c, 0x9d, 0xf3, 0x80,
+	0x09, 0xf2, 0x08, 0xaa, 0x31, 0x2e, 0x9c, 0xd2, 0x76, 0x65, 0x67, 0xf1, 0xf1, 0xbd, 0xdd, 0xbc,
+	0x26, 0x53, 0x23, 0x4f, 0x5b, 0xd0, 0x5f, 0x4b, 0xd0, 0x48, 0x31, 0xab, 0xb2, 0x2a, 0xaa, 0xb2,
+	0x08, 0x2c, 0x48, 0xf6, 0x4e, 0x9a, 0x64, 0xaa, 0x35, 0xe6, 0x7f, 0xe8, 0x27, 0x2c, 0x96, 0x2a,
+	0x7d, 0x15, 0xcf, 0x48, 0x64, 0x1b, 0x2a, 0xd2, 0xef, 0xa9, 0x5c, 0x2d, 0x3e, 0x5e, 0xb6, 0x4f,
+	0xf4, 0x7b, 0x1e, 0xaa, 0xf2, 0xa8, 0xaa, 0xef, 0x8d, 0xea, 0x11, 0x54, 0xae, 0xfc, 0xde, 0xac,
+	0x78, 0x62, 0xac, 0x31, 0x13, 0x0f, 0xae, 0x29, 0x85, 0xd6, 0xc5, 0x50, 0x86, 0x58, 0x1b, 0xd2,
+	0x63, 0xb7, 0x68, 0xd3, 0xe5, 0x01, 0x33, 0xd5, 0xa1, 0xd6, 0xf4, 0x97, 0x52, 0xc1, 0x48, 0x90,
+	0xe7, 0x50, 0x1f, 0xf8, 0xc3, 0xd3, 0x50, 0x48, 0x93, 0xa2, 0x87, 0x56, 0x30, 0xb6, 0xe5, 0xee,
+	0x99, 0x36, 0x3b, 0x8e, 0x65, 0x32, 0xf6, 0xd2, 0x4d, 0xee, 0x1e, 0xb4, 0x6c, 0x05, 0x59, 0x85,
+	0x4a, 0x9f, 0x8d, 0xcd, 0x99, 0xb8, 0xc4, 0x72, 0x7e, 0xeb, 0x47, 0xa3, 0xec, 0x51, 0x2a, 0x61,
+	0xaf, 0xfc, 0xb4, 0x44, 0xb7, 0x01, 0xf4, 0x09, 0x87, 0x98, 0xf2, 0x59, 0xe1, 0x9e, 0x40, 0xdd,
+	0xc4, 0x30, 0x4b, 0x3d, 0x2b, 0x0b, 0xf9, 0x71, 0x15, 0xeb, 0x38, 0xcc, 0x4d, 0xfa, 0x6e, 0x0e,
+	0xc6, 0x52, 0xed, 0x0c, 0x7c, 0xe9, 0x2b, 0x6f, 0x2d, 0x4f, 0xad, 0xe9, 0x9f, 0x25, 0x58, 0x3c,
+	0x7e, 0xd7, 0x65, 0xd1, 0x29, 0xef, 0x61, 0xfe, 0x36, 0xa1, 0x76, 0xc6, 0x83, 0x51, 0x94, 0x9e,
+	0x69, 0x24, 0xdc, 0x7b, 0xc8, 0xe3, 0x20, 0x3d, 0x15, 0xd7, 0xf8, 0xee, 0x0f, 0x13, 0xe6, 0x4b,
+	0x76, 0x30, 0x36, 0x07, 0x67, 0x32, 0xd6, 0xb5, 0x5e, 0x5f, 0x85, 0x03, 0x66, 0x9e, 0x90, 0x85,
+	0xe0, 0xeb, 0x39, 0xf5, 0x85, 0x7c, 0x35, 0x0c, 0xf4, 0x7e, 0xf3, 0x7a, 0x6c, 0x8c, 0x7c, 0x09,
+	0xcb, 0xb9, 0xac, 0xfc, 0xe8, 0x07, 0x34, 0x81, 0x12, 0x07, 0xea, 0x47, 0x2c, 0x7a, 0x19, 0xf9,
+	0x3d, 0xf3, 0x80, 0x52, 0x91, 0x7e, 0x61, 0x5f, 0x4e, 0xb5, 0xbf, 0x8e, 0x6e, 0x7f, 0xba, 0xa8,
+	0x8c, 0x84, 0xcd, 0x28, 0xeb, 0x00, 0x98, 0x84, 0x75, 0xa8, 0x62, 0x5a, 0xf5, 0x03, 0x6a, 0x7a,
+	0x5a, 0xa0, 0xff, 0x87, 0x26, 0x7e, 0xf2, 0x8b, 0x37, 0xed, 0x58, 0xe2, 0x27, 0x0f, 0x03, 0x6d,
+	0x50, 0xf1, 0x70, 0xa9, 0xaa, 0xcc, 0xf2, 0xf2, 0x9e, 0x2a, 0xb3, 0x2d, 0xff, 0x9b, 0x2a, 0xab,
+	0xd8, 0x55, 0x46, 0x01, 0x0e, 0x43, 0x39, 0x9e, 0xbe, 0x4f, 0x29, 0xbf, 0xcf, 0xcf, 0x25, 0xcb,
+	0x48, 0x90, 0x67, 0x93, 0xe1, 0x52, 0x2b, 0xdc, 0xdc, 0xee, 0x13, 0x04, 0xbb, 0x05, 0x0d, 0xac,
+	0x4f, 0x15, 0xea, 0x2a, 0x54, 0x12, 0x76, 0x6b, 0x4a, 0x14, 0x97, 0xf4, 0x73, 0x68, 0x1a, 0xad,
+	0x18, 0x62, 0x19, 0x26, 0x4c, 0x0c, 0xd3, 0x12, 0xc6, 0x35, 0x7d, 0x06, 0x4b, 0x27, 0x4c, 0x1e,
+	0xeb, 0x61, 0x85, 0x37, 0xb9, 0x0f, 0x75, 0x9c, 0x4d, 0xd7, 0xd9, 0x98, 0xac, 0x8d, 0xf4, 0x90,
+	0xc0, 0xdd, 0x3c, 0xca, 0x9e, 0x0e, 0xae, 0xe9, 0x8b, 0xe2, 0x6e, 0xf5, 0x02, 0x06, 0xfc, 0x75,
+	0x98, 0xbf, 0x00, 0x2d, 0xd9, 0x5e, 0xcb, 0xb6, 0x57, 0xfa, 0x0d, 0x6c, 0x69, 0x0f, 0xaa, 0x67,
+	0x77, 0xba, 0x37, 0x97, 0x2c, 0x39, 0x18, 0xeb, 0xb9, 0x84, 0x0e, 0xe7, 0x85, 0x43, 0xcf, 0xef,
+	0xdc, 0x28, 0xc8, 0x2e, 0xd4, 0x84, 0x2a, 0x13, 0xf3, 0x41, 0x36, 0xed, 0x2e, 0x65, 0xb6, 0x70,
+	0x1e, 0x79, 0xc6, 0x8a, 0x9e, 0xc2, 0xa2, 0x05, 0x7f, 0x48, 0xfb, 0x24, 0x0f, 0xa0, 0xc1, 0x71,
+	0x0b, 0x06, 0xa7, 0x1b, 0x7a, 0x9d, 0xeb, 0xc9, 0x43, 0xf7, 0x61, 0x45, 0x47, 0x67, 0x4e, 0xf9,
+	0x17, 0x01, 0xed, 0xa4, 0x2e, 0xf6, 0xbb, 0x32, 0x7c, 0xab, 0xb2, 0xbb, 0xa1, 0x5c, 0xa4, 0xb9,
+	0x58, 0xf0, 0xaa, 0xa2, 0x7b, 0xd3, 0x0e, 0xe8, 0xb3, 0x49, 0x4b, 0x9c, 0x62, 0x35, 0x5f, 0x09,
+	0xe6, 0xb0, 0x35, 0xeb, 0x30, 0x63, 0x65, 0x0c, 0xe8, 0x73, 0xa8, 0x69, 0x84, 0xfc, 0x0f, 0x9a,
+	0x1a, 0xbb, 0xce, 0xae, 0xde, 0xd0, 0x40, 0x3b, 0xc0, 0x0f, 0x31, 0xf0, 0xaf, 0xad, 0x1c, 0xd4,
+	0x06, 0x3e, 0x92, 0x14, 0xda, 0x86, 0xb5, 0x23, 0x5f, 0xfa, 0x97, 0x2c, 0x19, 0x84, 0x42, 0x84,
+	0x1c, 0x59, 0x09, 0xba, 0x4a, 0x46, 0x11, 0xbb, 0xb6, 0x1a, 0x70, 0x03, 0x01, 0xd5, 0xb7, 0xe7,
+	0x16, 0xc3, 0x6f, 0xa5, 0x69, 0x5f, 0x82, 0x1c, 0x4e, 0xbe, 0xad, 0x47, 0xd6, 0x65, 0xa6, 0xcc,
+	0x3f, 0xc1, 0xd4, 0xf9, 0x7b, 0x01, 0x6a, 0x67, 0x7d, 0x35, 0x21, 0x97, 0xa1, 0xdc, 0xce, 0xca,
+	0x42, 0x3f, 0x8a, 0xb3, 0x7e, 0x3b, 0xeb, 0xec, 0xb8, 0xc6, 0xce, 0x7b, 0xe9, 0x27, 0x12, 0xbb,
+	0xab, 0x61, 0x5b, 0xba, 0x38, 0x26, 0x50, 0x8b, 0x8d, 0x19, 0x3e, 0x69, 0x70, 0x07, 0xea, 0x1d,
+	0x39, 0x52, 0x84, 0x50, 0x37, 0xf6, 0x54, 0xc4, 0x99, 0xb1, 0xdf, 0x63, 0x27, 0x09, 0x1f, 0x0d,
+	0x55, 0x37, 0xaf, 0x78, 0x99, 0x8c, 0x0c, 0xad, 0x23, 0x47, 0xa7, 0x61, 0xdc, 0xbf, 0x64, 0x89,
+	0xe0, 0xb1, 0xe9, 0xe6, 0x45, 0x10, 0x3d, 0x74, 0xe4, 0xc8, 0x26, 0x44, 0x99, 0x8c, 0x09, 0xe8,
+	0x60, 0x3d, 0x39, 0x4d, 0xdd, 0x63, 0x94, 0x80, 0xd1, 0xec, 0x07, 0x41, 0xc2, 0x84, 0x70, 0x40,
+	0x47, 0x63, 0xc4, 0x89, 0x29, 0xb5, 0x38, 0x35, 0xa5, 0xac, 0xc9, 0xd2, 0xd2, 0xaf, 0xc3, 0x88,
+	0x6a, 0xe7, 0x0d, 0xeb, 0xf6, 0x71, 0x82, 0x30, 0x67, 0x49, 0x29, 0x2d, 0x04, 0x79, 0x9b, 0x92,
+	0x94, 0xe3, 0x65, 0xcd, 0xdb, 0x32, 0x00, 0xfd, 0x2a, 0xe1, 0x60, 0xec, 0xac, 0xe8, 0x88, 0x8c,
+	0x88, 0xfc, 0xf3, 0x9c, 0xc9, 0x9f, 0x78, 0xd2, 0x3f, 0x62, 0xd2, 0x0f, 0x91, 0x35, 0xae, 0x2a,
+	0xe7, 0x93, 0xb0, 0xca, 0xa4, 0xa9, 0x6c, 0x67, 0xcd, 0x64, 0x32, 0xad, 0x74, 0x9c, 0xcc, 0x7e,
+	0x14, 0x29, 0x32, 0x4f, 0xb4, 0x2e, 0x95, 0xd5, 0x84, 0xf7, 0x95, 0xe6, 0x9e, 0xfe, 0x66, 0x5a,
+	0xc2, 0x98, 0xbe, 0x1b, 0xf9, 0xfc, 0x87, 0x1f, 0x43, 0x67, 0x5d, 0xdf, 0xd5, 0x88, 0xf8, 0x5d,
+	0xce, 0xfa, 0x52, 0x39, 0x57, 0x63, 0xc0, 0xd9, 0x50, 0xfa, 0x22, 0x88, 0x37, 0x3e, 0xe5, 0x7e,
+	0xa0, 0xf3, 0xbf, 0xa9, 0x2c, 0x72, 0x80, 0x6e, 0x9b, 0xfa, 0x9b, 0x3f, 0x84, 0xb7, 0x00, 0x3a,
+	0x72, 0x14, 0xb0, 0x78, 0x56, 0x95, 0xd2, 0xa7, 0x96, 0x56, 0x4c, 0xd5, 0xb0, 0x5d, 0x13, 0xe5,
+	0x62, 0x4d, 0x3c, 0xfe, 0xab, 0x81, 0xdc, 0xd8, 0x3c, 0x36, 0xb2, 0x07, 0xf5, 0x13, 0x26, 0xb1,
+	0x4c, 0x89, 0xdd, 0xbd, 0xac, 0xdf, 0x65, 0xee, 0xfd, 0x29, 0xdc, 0xfc, 0xf6, 0xf8, 0x16, 0xe0,
+	0xd2, 0x4f, 0x04, 0x53, 0xbf, 0x48, 0x88, 0x6d, 0x66, 0xff, 0x94, 0x71, 0x9d, 0x69, 0x85, 0x71,
+	0xf0, 0x14, 0x96, 0x75, 0x97, 0xc3, 0x71, 0x8a, 0xa4, 0x97, 0xac, 0x5a, 0xb6, 0x8a, 0xc9, 0xbb,
+	0xeb, 0x33, 0x78, 0xb1, 0xea, 0xbc, 0xfb, 0x41, 0x70, 0xd6, 0x97, 0xc4, 0x6e, 0x83, 0xfa, 0x45,
+	0xbb, 0x53, 0x90, 0x20, 0xfb, 0xb0, 0x84, 0xb9, 0xcf, 0xb8, 0x6c, 0x21, 0x5a, 0x9b, 0x30, 0xbb,
+	0x73, 0x14, 0x82, 0xbc, 0x80, 0xd6, 0x09, 0x93, 0xf9, 0x2f, 0xa3, 0xfb, 0xb3, 0xd9, 0x4b, 0xd1,
+	0x43, 0x81, 0x00, 0xed, 0x01, 0x9c, 0x30, 0x69, 0xa8, 0x03, 0xd9, 0x98, 0x45, 0x27, 0x6e, 0xdd,
+	0x99, 0x30, 0x92, 0xa7, 0xd6, 0x25, 0x17, 0x32, 0x65, 0x6f, 0x85, 0x8f, 0x65, 0xf1, 0x55, 0x77,
+	0x36, 0x8e, 0x6c, 0xc6, 0x0c, 0x94, 0x3c, 0x05, 0x1b, 0x53, 0x37, 0xc5, 0x56, 0xee, 0x92, 0xe9,
+	0x04, 0x98, 0xc8, 0x4d, 0xc1, 0x15, 0x36, 0xe6, 0x25, 0xea, 0xce, 0x84, 0x05, 0xb9, 0x80, 0xb5,
+	0x13, 0x26, 0x8b, 0x4d, 0x9d, 0x6c, 0xdd, 0xd1, 0xef, 0x6f, 0xdd, 0xbb, 0xb4, 0x82, 0x1c, 0x81,
+	0xab, 0xaf, 0x72, 0xd6, 0x97, 0xe7, 0x4c, 0x7e, 0x9f, 0x35, 0x81, 0x8f, 0xaa, 0xa0, 0x01, 0x3c,
+	0x98, 0x4b, 0x36, 0xc8, 0x57, 0xd6, 0x96, 0xbb, 0xb8, 0x8c, 0xfb, 0x81, 0x86, 0x58, 0x3d, 0x90,
+	0xd3, 0x2a, 0xe2, 0x4c, 0x6d, 0x33, 0x6c, 0xcb, 0x9d, 0xa7, 0xc1, 0x2f, 0xd8, 0xb2, 0xf9, 0xc7,
+	0x8c, 0x8b, 0xba, 0x53, 0x7b, 0x73, 0xaa, 0xf2, 0x32, 0xdd, 0x6d, 0x88, 0xc1, 0xb4, 0x6d, 0xc6,
+	0x49, 0xdc, 0xf9, 0x3a, 0x8c, 0x82, 0x14, 0xef, 0xf9, 0x31, 0x49, 0x7f, 0x5d, 0x53, 0xff, 0x01,
+	0x3d, 0xf9, 0x27, 0x00, 0x00, 0xff, 0xff, 0x2f, 0x50, 0x13, 0x5f, 0x16, 0x12, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -1988,6 +2078,7 @@ type TransformClient interface {
 	GetCityIds(ctx context.Context, in *CityIdsReq, opts ...grpc.CallOption) (*CityIdsRes, error)
 	PostExcelLog(ctx context.Context, in *ExcelLogReq, opts ...grpc.CallOption) (*ExcelLogRes, error)
 	GetErpOptionset(ctx context.Context, in *OptionCode, opts ...grpc.CallOption) (*Options, error)
+	GetStudent(ctx context.Context, in *StudentReq, opts ...grpc.CallOption) (*StudentRes, error)
 	//获取数据权限
 	GetDataPermission(ctx context.Context, in *DataPermissionReq, opts ...grpc.CallOption) (*DataPermissionRes, error)
 	//获取erp 渠道细分树
@@ -2093,6 +2184,15 @@ func (c *transformClient) GetErpOptionset(ctx context.Context, in *OptionCode, o
 	return out, nil
 }
 
+func (c *transformClient) GetStudent(ctx context.Context, in *StudentReq, opts ...grpc.CallOption) (*StudentRes, error) {
+	out := new(StudentRes)
+	err := c.cc.Invoke(ctx, "/transform.Transform/GetStudent", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 func (c *transformClient) GetDataPermission(ctx context.Context, in *DataPermissionReq, opts ...grpc.CallOption) (*DataPermissionRes, error) {
 	out := new(DataPermissionRes)
 	err := c.cc.Invoke(ctx, "/transform.Transform/GetDataPermission", in, out, opts...)
@@ -2169,6 +2269,7 @@ type TransformServer interface {
 	GetCityIds(context.Context, *CityIdsReq) (*CityIdsRes, error)
 	PostExcelLog(context.Context, *ExcelLogReq) (*ExcelLogRes, error)
 	GetErpOptionset(context.Context, *OptionCode) (*Options, error)
+	GetStudent(context.Context, *StudentReq) (*StudentRes, error)
 	//获取数据权限
 	GetDataPermission(context.Context, *DataPermissionReq) (*DataPermissionRes, error)
 	//获取erp 渠道细分树
@@ -2216,6 +2317,9 @@ func (*UnimplementedTransformServer) PostExcelLog(ctx context.Context, req *Exce
 func (*UnimplementedTransformServer) GetErpOptionset(ctx context.Context, req *OptionCode) (*Options, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetErpOptionset not implemented")
 }
+func (*UnimplementedTransformServer) GetStudent(ctx context.Context, req *StudentReq) (*StudentRes, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetStudent not implemented")
+}
 func (*UnimplementedTransformServer) GetDataPermission(ctx context.Context, req *DataPermissionReq) (*DataPermissionRes, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetDataPermission not implemented")
 }
@@ -2404,6 +2508,24 @@ func _Transform_GetErpOptionset_Handler(srv interface{}, ctx context.Context, de
 	return interceptor(ctx, in, info, handler)
 }
 
+func _Transform_GetStudent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(StudentReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(TransformServer).GetStudent(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/transform.Transform/GetStudent",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(TransformServer).GetStudent(ctx, req.(*StudentReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 func _Transform_GetDataPermission_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(DataPermissionReq)
 	if err := dec(in); err != nil {
@@ -2570,6 +2692,10 @@ var _Transform_serviceDesc = grpc.ServiceDesc{
 			MethodName: "GetErpOptionset",
 			Handler:    _Transform_GetErpOptionset_Handler,
 		},
+		{
+			MethodName: "GetStudent",
+			Handler:    _Transform_GetStudent_Handler,
+		},
 		{
 			MethodName: "GetDataPermission",
 			Handler:    _Transform_GetDataPermission_Handler,

+ 35 - 27
transformclient/transform.go

@@ -14,41 +14,43 @@ import (
 )
 
 type (
-	ResponseByte                 = transform.ResponseByte
+	ExcelLogRes                  = transform.ExcelLogRes
+	GetErpOrganSchPerByUserIdReq = transform.GetErpOrganSchPerByUserIdReq
+	DataPermissionReq            = transform.DataPermissionReq
+	OptionsetReq                 = transform.OptionsetReq
+	GetErpRoleRes                = transform.GetErpRoleRes
+	GetErpSchoolRes              = transform.GetErpSchoolRes
+	GetErpActiveReq              = transform.GetErpActiveReq
+	MktReq                       = transform.MktReq
+	ListOfInt                    = transform.ListOfInt
+	UserRequest                  = transform.UserRequest
+	Empty                        = transform.Empty
+	TreeNode                     = transform.TreeNode
+	OptionCode                   = transform.OptionCode
 	SchoolIdsReq                 = transform.SchoolIdsReq
-	OptionsetRes                 = transform.OptionsetRes
+	TokenResponse                = transform.TokenResponse
 	ExcelLogReq                  = transform.ExcelLogReq
-	ExcelLogRes                  = transform.ExcelLogRes
-	GetErpActiveRes              = transform.GetErpActiveRes
+	GetErpOrganSchPerByUserIdRes = transform.GetErpOrganSchPerByUserIdRes
+	StudentReq                   = transform.StudentReq
 	Tag                          = transform.Tag
-	ListOfInt                    = transform.ListOfInt
-	GetErpRoleReq                = transform.GetErpRoleReq
-	Active                       = transform.Active
 	MktRes                       = transform.MktRes
-	TreeNodes                    = transform.TreeNodes
-	OptionCode                   = transform.OptionCode
-	BytesResp                    = transform.BytesResp
-	DataPermissionRes            = transform.DataPermissionRes
-	UserResponse                 = transform.UserResponse
 	TokenRequest                 = transform.TokenRequest
-	UserRequest                  = transform.UserRequest
-	OptionsetReq                 = transform.OptionsetReq
-	Options                      = transform.Options
 	CityIdsRes                   = transform.CityIdsRes
-	OrganSchool                  = transform.OrganSchool
-	GetErpActiveReq              = transform.GetErpActiveReq
-	MktReq                       = transform.MktReq
-	SchoolIdsRes                 = transform.SchoolIdsRes
 	BytesReq                     = transform.BytesReq
-	GetErpRoleRes                = transform.GetErpRoleRes
-	GetErpOrganSchPerByUserIdRes = transform.GetErpOrganSchPerByUserIdRes
-	GetErpSchoolRes              = transform.GetErpSchoolRes
-	TokenResponse                = transform.TokenResponse
-	Empty                        = transform.Empty
-	TreeNode                     = transform.TreeNode
+	GetErpActiveRes              = transform.GetErpActiveRes
+	DataPermissionRes            = transform.DataPermissionRes
+	OptionsetRes                 = transform.OptionsetRes
+	BytesResp                    = transform.BytesResp
+	GetErpRoleReq                = transform.GetErpRoleReq
+	Active                       = transform.Active
+	StudentRes                   = transform.StudentRes
 	CityIdsReq                   = transform.CityIdsReq
-	GetErpOrganSchPerByUserIdReq = transform.GetErpOrganSchPerByUserIdReq
-	DataPermissionReq            = transform.DataPermissionReq
+	OrganSchool                  = transform.OrganSchool
+	UserResponse                 = transform.UserResponse
+	TreeNodes                    = transform.TreeNodes
+	Options                      = transform.Options
+	ResponseByte                 = transform.ResponseByte
+	SchoolIdsRes                 = transform.SchoolIdsRes
 
 	Transform interface {
 		GetUser(ctx context.Context, in *UserRequest) (*UserResponse, error)
@@ -62,6 +64,7 @@ type (
 		GetCityIds(ctx context.Context, in *CityIdsReq) (*CityIdsRes, error)
 		PostExcelLog(ctx context.Context, in *ExcelLogReq) (*ExcelLogRes, error)
 		GetErpOptionset(ctx context.Context, in *OptionCode) (*Options, error)
+		GetStudent(ctx context.Context, in *StudentReq) (*StudentRes, error)
 		// 获取数据权限
 		GetDataPermission(ctx context.Context, in *DataPermissionReq) (*DataPermissionRes, error)
 		// 获取erp 渠道细分树
@@ -136,6 +139,11 @@ func (m *defaultTransform) GetErpOptionset(ctx context.Context, in *OptionCode)
 	return client.GetErpOptionset(ctx, in)
 }
 
+func (m *defaultTransform) GetStudent(ctx context.Context, in *StudentReq) (*StudentRes, error) {
+	client := transform.NewTransformClient(m.cli.Conn())
+	return client.GetStudent(ctx, in)
+}
+
 // 获取数据权限
 func (m *defaultTransform) GetDataPermission(ctx context.Context, in *DataPermissionReq) (*DataPermissionRes, error) {
 	client := transform.NewTransformClient(m.cli.Conn())