// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.31.0
// 	protoc        v3.19.4
// source: service_admin.proto

package pb

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// 登录
type LoginAdminRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
	Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
}

func (x *LoginAdminRequest) Reset() {
	*x = LoginAdminRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *LoginAdminRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LoginAdminRequest) ProtoMessage() {}

func (x *LoginAdminRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LoginAdminRequest.ProtoReflect.Descriptor instead.
func (*LoginAdminRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{0}
}

func (x *LoginAdminRequest) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *LoginAdminRequest) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

type LoginAdminResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AdminId int64  `protobuf:"varint,1,opt,name=adminId,proto3" json:"adminId,omitempty"`
	IsOk    bool   `protobuf:"varint,2,opt,name=isOk,proto3" json:"isOk,omitempty"`
	Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
}

func (x *LoginAdminResponse) Reset() {
	*x = LoginAdminResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *LoginAdminResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LoginAdminResponse) ProtoMessage() {}

func (x *LoginAdminResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LoginAdminResponse.ProtoReflect.Descriptor instead.
func (*LoginAdminResponse) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{1}
}

func (x *LoginAdminResponse) GetAdminId() int64 {
	if x != nil {
		return x.AdminId
	}
	return 0
}

func (x *LoginAdminResponse) GetIsOk() bool {
	if x != nil {
		return x.IsOk
	}
	return false
}

func (x *LoginAdminResponse) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

// 检查管理员是否存在
type CheckAdminExistsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AdminId int64 `protobuf:"varint,1,opt,name=adminId,proto3" json:"adminId,omitempty"`
}

func (x *CheckAdminExistsRequest) Reset() {
	*x = CheckAdminExistsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CheckAdminExistsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CheckAdminExistsRequest) ProtoMessage() {}

func (x *CheckAdminExistsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CheckAdminExistsRequest.ProtoReflect.Descriptor instead.
func (*CheckAdminExistsRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{2}
}

func (x *CheckAdminExistsRequest) GetAdminId() int64 {
	if x != nil {
		return x.AdminId
	}
	return 0
}

type CheckAdminExistsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	IsOk    bool   `protobuf:"varint,1,opt,name=isOk,proto3" json:"isOk,omitempty"`
	Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
}

func (x *CheckAdminExistsResponse) Reset() {
	*x = CheckAdminExistsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CheckAdminExistsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CheckAdminExistsResponse) ProtoMessage() {}

func (x *CheckAdminExistsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CheckAdminExistsResponse.ProtoReflect.Descriptor instead.
func (*CheckAdminExistsResponse) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{3}
}

func (x *CheckAdminExistsResponse) GetIsOk() bool {
	if x != nil {
		return x.IsOk
	}
	return false
}

func (x *CheckAdminExistsResponse) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

// 检查管理员用户名是否存在
type CheckAdminUsernameRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AdminId  int64  `protobuf:"varint,1,opt,name=adminId,proto3" json:"adminId,omitempty"`
	Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
}

func (x *CheckAdminUsernameRequest) Reset() {
	*x = CheckAdminUsernameRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CheckAdminUsernameRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CheckAdminUsernameRequest) ProtoMessage() {}

func (x *CheckAdminUsernameRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CheckAdminUsernameRequest.ProtoReflect.Descriptor instead.
func (*CheckAdminUsernameRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{4}
}

func (x *CheckAdminUsernameRequest) GetAdminId() int64 {
	if x != nil {
		return x.AdminId
	}
	return 0
}

func (x *CheckAdminUsernameRequest) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

type CheckAdminUsernameResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Exists bool `protobuf:"varint,1,opt,name=exists,proto3" json:"exists,omitempty"`
}

func (x *CheckAdminUsernameResponse) Reset() {
	*x = CheckAdminUsernameResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CheckAdminUsernameResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CheckAdminUsernameResponse) ProtoMessage() {}

func (x *CheckAdminUsernameResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CheckAdminUsernameResponse.ProtoReflect.Descriptor instead.
func (*CheckAdminUsernameResponse) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{5}
}

func (x *CheckAdminUsernameResponse) GetExists() bool {
	if x != nil {
		return x.Exists
	}
	return false
}

// 使用用管理员户名查找管理员信息
type FindAdminWithUsernameRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` // 管理员用户名
}

func (x *FindAdminWithUsernameRequest) Reset() {
	*x = FindAdminWithUsernameRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FindAdminWithUsernameRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FindAdminWithUsernameRequest) ProtoMessage() {}

func (x *FindAdminWithUsernameRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FindAdminWithUsernameRequest.ProtoReflect.Descriptor instead.
func (*FindAdminWithUsernameRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{6}
}

func (x *FindAdminWithUsernameRequest) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

type FindAdminWithUsernameResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Admin *Admin `protobuf:"bytes,1,opt,name=admin,proto3" json:"admin,omitempty"` // 管理员信息
}

func (x *FindAdminWithUsernameResponse) Reset() {
	*x = FindAdminWithUsernameResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FindAdminWithUsernameResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FindAdminWithUsernameResponse) ProtoMessage() {}

func (x *FindAdminWithUsernameResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FindAdminWithUsernameResponse.ProtoReflect.Descriptor instead.
func (*FindAdminWithUsernameResponse) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{7}
}

func (x *FindAdminWithUsernameResponse) GetAdmin() *Admin {
	if x != nil {
		return x.Admin
	}
	return nil
}

// 获取管理员名称
type FindAdminFullnameRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AdminId int64 `protobuf:"varint,1,opt,name=adminId,proto3" json:"adminId,omitempty"`
}

func (x *FindAdminFullnameRequest) Reset() {
	*x = FindAdminFullnameRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FindAdminFullnameRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FindAdminFullnameRequest) ProtoMessage() {}

func (x *FindAdminFullnameRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FindAdminFullnameRequest.ProtoReflect.Descriptor instead.
func (*FindAdminFullnameRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{8}
}

func (x *FindAdminFullnameRequest) GetAdminId() int64 {
	if x != nil {
		return x.AdminId
	}
	return 0
}

type FindAdminFullnameResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Fullname string `protobuf:"bytes,1,opt,name=fullname,proto3" json:"fullname,omitempty"`
}

func (x *FindAdminFullnameResponse) Reset() {
	*x = FindAdminFullnameResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FindAdminFullnameResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FindAdminFullnameResponse) ProtoMessage() {}

func (x *FindAdminFullnameResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FindAdminFullnameResponse.ProtoReflect.Descriptor instead.
func (*FindAdminFullnameResponse) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{9}
}

func (x *FindAdminFullnameResponse) GetFullname() string {
	if x != nil {
		return x.Fullname
	}
	return ""
}

// 获取管理员信息
type FindEnabledAdminRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AdminId int64 `protobuf:"varint,1,opt,name=adminId,proto3" json:"adminId,omitempty"`
}

func (x *FindEnabledAdminRequest) Reset() {
	*x = FindEnabledAdminRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FindEnabledAdminRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FindEnabledAdminRequest) ProtoMessage() {}

func (x *FindEnabledAdminRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FindEnabledAdminRequest.ProtoReflect.Descriptor instead.
func (*FindEnabledAdminRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{10}
}

func (x *FindEnabledAdminRequest) GetAdminId() int64 {
	if x != nil {
		return x.AdminId
	}
	return 0
}

type FindEnabledAdminResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Admin *Admin `protobuf:"bytes,1,opt,name=admin,proto3" json:"admin,omitempty"`
}

func (x *FindEnabledAdminResponse) Reset() {
	*x = FindEnabledAdminResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FindEnabledAdminResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FindEnabledAdminResponse) ProtoMessage() {}

func (x *FindEnabledAdminResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FindEnabledAdminResponse.ProtoReflect.Descriptor instead.
func (*FindEnabledAdminResponse) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{11}
}

func (x *FindEnabledAdminResponse) GetAdmin() *Admin {
	if x != nil {
		return x.Admin
	}
	return nil
}

// 创建或修改管理员
type CreateOrUpdateAdminRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
	Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
}

func (x *CreateOrUpdateAdminRequest) Reset() {
	*x = CreateOrUpdateAdminRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateOrUpdateAdminRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateOrUpdateAdminRequest) ProtoMessage() {}

func (x *CreateOrUpdateAdminRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateOrUpdateAdminRequest.ProtoReflect.Descriptor instead.
func (*CreateOrUpdateAdminRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{12}
}

func (x *CreateOrUpdateAdminRequest) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *CreateOrUpdateAdminRequest) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

type CreateOrUpdateAdminResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AdminId int64 `protobuf:"varint,1,opt,name=adminId,proto3" json:"adminId,omitempty"`
}

func (x *CreateOrUpdateAdminResponse) Reset() {
	*x = CreateOrUpdateAdminResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateOrUpdateAdminResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateOrUpdateAdminResponse) ProtoMessage() {}

func (x *CreateOrUpdateAdminResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateOrUpdateAdminResponse.ProtoReflect.Descriptor instead.
func (*CreateOrUpdateAdminResponse) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{13}
}

func (x *CreateOrUpdateAdminResponse) GetAdminId() int64 {
	if x != nil {
		return x.AdminId
	}
	return 0
}

// 修改管理员信息
type UpdateAdminInfoRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AdminId  int64  `protobuf:"varint,1,opt,name=adminId,proto3" json:"adminId,omitempty"`
	Fullname string `protobuf:"bytes,2,opt,name=fullname,proto3" json:"fullname,omitempty"`
}

func (x *UpdateAdminInfoRequest) Reset() {
	*x = UpdateAdminInfoRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateAdminInfoRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateAdminInfoRequest) ProtoMessage() {}

func (x *UpdateAdminInfoRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateAdminInfoRequest.ProtoReflect.Descriptor instead.
func (*UpdateAdminInfoRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{14}
}

func (x *UpdateAdminInfoRequest) GetAdminId() int64 {
	if x != nil {
		return x.AdminId
	}
	return 0
}

func (x *UpdateAdminInfoRequest) GetFullname() string {
	if x != nil {
		return x.Fullname
	}
	return ""
}

// 修改管理员登录信息
type UpdateAdminLoginRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AdminId  int64  `protobuf:"varint,1,opt,name=adminId,proto3" json:"adminId,omitempty"`
	Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
	Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"`
}

func (x *UpdateAdminLoginRequest) Reset() {
	*x = UpdateAdminLoginRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateAdminLoginRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateAdminLoginRequest) ProtoMessage() {}

func (x *UpdateAdminLoginRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateAdminLoginRequest.ProtoReflect.Descriptor instead.
func (*UpdateAdminLoginRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{15}
}

func (x *UpdateAdminLoginRequest) GetAdminId() int64 {
	if x != nil {
		return x.AdminId
	}
	return 0
}

func (x *UpdateAdminLoginRequest) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *UpdateAdminLoginRequest) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

// 获取管理所有权限列表
type FindAllAdminModulesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *FindAllAdminModulesRequest) Reset() {
	*x = FindAllAdminModulesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FindAllAdminModulesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FindAllAdminModulesRequest) ProtoMessage() {}

func (x *FindAllAdminModulesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[16]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FindAllAdminModulesRequest.ProtoReflect.Descriptor instead.
func (*FindAllAdminModulesRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{16}
}

type FindAllAdminModulesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AdminModules []*AdminModuleList `protobuf:"bytes,1,rep,name=adminModules,proto3" json:"adminModules,omitempty"`
}

func (x *FindAllAdminModulesResponse) Reset() {
	*x = FindAllAdminModulesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FindAllAdminModulesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FindAllAdminModulesResponse) ProtoMessage() {}

func (x *FindAllAdminModulesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FindAllAdminModulesResponse.ProtoReflect.Descriptor instead.
func (*FindAllAdminModulesResponse) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{17}
}

func (x *FindAllAdminModulesResponse) GetAdminModules() []*AdminModuleList {
	if x != nil {
		return x.AdminModules
	}
	return nil
}

// 创建管理员
type CreateAdminRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Username    string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
	Password    string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
	Fullname    string `protobuf:"bytes,3,opt,name=fullname,proto3" json:"fullname,omitempty"`
	ModulesJSON []byte `protobuf:"bytes,4,opt,name=modulesJSON,proto3" json:"modulesJSON,omitempty"`
	IsSuper     bool   `protobuf:"varint,5,opt,name=isSuper,proto3" json:"isSuper,omitempty"`
	CanLogin    bool   `protobuf:"varint,6,opt,name=canLogin,proto3" json:"canLogin,omitempty"`
}

func (x *CreateAdminRequest) Reset() {
	*x = CreateAdminRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateAdminRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateAdminRequest) ProtoMessage() {}

func (x *CreateAdminRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[18]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateAdminRequest.ProtoReflect.Descriptor instead.
func (*CreateAdminRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{18}
}

func (x *CreateAdminRequest) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *CreateAdminRequest) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

func (x *CreateAdminRequest) GetFullname() string {
	if x != nil {
		return x.Fullname
	}
	return ""
}

func (x *CreateAdminRequest) GetModulesJSON() []byte {
	if x != nil {
		return x.ModulesJSON
	}
	return nil
}

func (x *CreateAdminRequest) GetIsSuper() bool {
	if x != nil {
		return x.IsSuper
	}
	return false
}

func (x *CreateAdminRequest) GetCanLogin() bool {
	if x != nil {
		return x.CanLogin
	}
	return false
}

type CreateAdminResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AdminId int64 `protobuf:"varint,1,opt,name=adminId,proto3" json:"adminId,omitempty"`
}

func (x *CreateAdminResponse) Reset() {
	*x = CreateAdminResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateAdminResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateAdminResponse) ProtoMessage() {}

func (x *CreateAdminResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[19]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateAdminResponse.ProtoReflect.Descriptor instead.
func (*CreateAdminResponse) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{19}
}

func (x *CreateAdminResponse) GetAdminId() int64 {
	if x != nil {
		return x.AdminId
	}
	return 0
}

// 修改管理员
type UpdateAdminRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AdminId     int64  `protobuf:"varint,1,opt,name=adminId,proto3" json:"adminId,omitempty"`
	Username    string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
	Password    string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"`
	Fullname    string `protobuf:"bytes,4,opt,name=fullname,proto3" json:"fullname,omitempty"`
	ModulesJSON []byte `protobuf:"bytes,5,opt,name=modulesJSON,proto3" json:"modulesJSON,omitempty"`
	IsSuper     bool   `protobuf:"varint,6,opt,name=isSuper,proto3" json:"isSuper,omitempty"`
	IsOn        bool   `protobuf:"varint,7,opt,name=isOn,proto3" json:"isOn,omitempty"`
	CanLogin    bool   `protobuf:"varint,8,opt,name=canLogin,proto3" json:"canLogin,omitempty"`
}

func (x *UpdateAdminRequest) Reset() {
	*x = UpdateAdminRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateAdminRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateAdminRequest) ProtoMessage() {}

func (x *UpdateAdminRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[20]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateAdminRequest.ProtoReflect.Descriptor instead.
func (*UpdateAdminRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{20}
}

func (x *UpdateAdminRequest) GetAdminId() int64 {
	if x != nil {
		return x.AdminId
	}
	return 0
}

func (x *UpdateAdminRequest) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *UpdateAdminRequest) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

func (x *UpdateAdminRequest) GetFullname() string {
	if x != nil {
		return x.Fullname
	}
	return ""
}

func (x *UpdateAdminRequest) GetModulesJSON() []byte {
	if x != nil {
		return x.ModulesJSON
	}
	return nil
}

func (x *UpdateAdminRequest) GetIsSuper() bool {
	if x != nil {
		return x.IsSuper
	}
	return false
}

func (x *UpdateAdminRequest) GetIsOn() bool {
	if x != nil {
		return x.IsOn
	}
	return false
}

func (x *UpdateAdminRequest) GetCanLogin() bool {
	if x != nil {
		return x.CanLogin
	}
	return false
}

// 计算管理员数量
type CountAllEnabledAdminsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Keyword         string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword,omitempty"`                  // 可选项，查询关键词
	HasWeakPassword bool   `protobuf:"varint,2,opt,name=hasWeakPassword,proto3" json:"hasWeakPassword,omitempty"` // 可选项，筛选有弱密码的管理员，只有超级管理员才能查询
}

func (x *CountAllEnabledAdminsRequest) Reset() {
	*x = CountAllEnabledAdminsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CountAllEnabledAdminsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CountAllEnabledAdminsRequest) ProtoMessage() {}

func (x *CountAllEnabledAdminsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[21]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CountAllEnabledAdminsRequest.ProtoReflect.Descriptor instead.
func (*CountAllEnabledAdminsRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{21}
}

func (x *CountAllEnabledAdminsRequest) GetKeyword() string {
	if x != nil {
		return x.Keyword
	}
	return ""
}

func (x *CountAllEnabledAdminsRequest) GetHasWeakPassword() bool {
	if x != nil {
		return x.HasWeakPassword
	}
	return false
}

// 列出单页的管理员
type ListEnabledAdminsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Keyword         string `protobuf:"bytes,3,opt,name=keyword,proto3" json:"keyword,omitempty"`                  // 可选项，查询关键词
	HasWeakPassword bool   `protobuf:"varint,4,opt,name=hasWeakPassword,proto3" json:"hasWeakPassword,omitempty"` // 可选项，筛选有弱密码的管理员，只有超级管理员才能查询
	Offset          int64  `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"`                   // 读取位置，从0开始
	Size            int64  `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"`                       // 读取数量
}

func (x *ListEnabledAdminsRequest) Reset() {
	*x = ListEnabledAdminsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListEnabledAdminsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListEnabledAdminsRequest) ProtoMessage() {}

func (x *ListEnabledAdminsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[22]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListEnabledAdminsRequest.ProtoReflect.Descriptor instead.
func (*ListEnabledAdminsRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{22}
}

func (x *ListEnabledAdminsRequest) GetKeyword() string {
	if x != nil {
		return x.Keyword
	}
	return ""
}

func (x *ListEnabledAdminsRequest) GetHasWeakPassword() bool {
	if x != nil {
		return x.HasWeakPassword
	}
	return false
}

func (x *ListEnabledAdminsRequest) GetOffset() int64 {
	if x != nil {
		return x.Offset
	}
	return 0
}

func (x *ListEnabledAdminsRequest) GetSize() int64 {
	if x != nil {
		return x.Size
	}
	return 0
}

type ListEnabledAdminsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Admins []*Admin `protobuf:"bytes,1,rep,name=admins,proto3" json:"admins,omitempty"`
}

func (x *ListEnabledAdminsResponse) Reset() {
	*x = ListEnabledAdminsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListEnabledAdminsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListEnabledAdminsResponse) ProtoMessage() {}

func (x *ListEnabledAdminsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[23]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListEnabledAdminsResponse.ProtoReflect.Descriptor instead.
func (*ListEnabledAdminsResponse) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{23}
}

func (x *ListEnabledAdminsResponse) GetAdmins() []*Admin {
	if x != nil {
		return x.Admins
	}
	return nil
}

// 删除管理员
type DeleteAdminRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AdminId int64 `protobuf:"varint,1,opt,name=adminId,proto3" json:"adminId,omitempty"`
}

func (x *DeleteAdminRequest) Reset() {
	*x = DeleteAdminRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteAdminRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteAdminRequest) ProtoMessage() {}

func (x *DeleteAdminRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[24]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteAdminRequest.ProtoReflect.Descriptor instead.
func (*DeleteAdminRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{24}
}

func (x *DeleteAdminRequest) GetAdminId() int64 {
	if x != nil {
		return x.AdminId
	}
	return 0
}

// 根据用户名检查是否需要输入OTP
type CheckAdminOTPWithUsernameRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
}

func (x *CheckAdminOTPWithUsernameRequest) Reset() {
	*x = CheckAdminOTPWithUsernameRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CheckAdminOTPWithUsernameRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CheckAdminOTPWithUsernameRequest) ProtoMessage() {}

func (x *CheckAdminOTPWithUsernameRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[25]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CheckAdminOTPWithUsernameRequest.ProtoReflect.Descriptor instead.
func (*CheckAdminOTPWithUsernameRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{25}
}

func (x *CheckAdminOTPWithUsernameRequest) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

type CheckAdminOTPWithUsernameResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RequireOTP bool `protobuf:"varint,1,opt,name=requireOTP,proto3" json:"requireOTP,omitempty"`
}

func (x *CheckAdminOTPWithUsernameResponse) Reset() {
	*x = CheckAdminOTPWithUsernameResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CheckAdminOTPWithUsernameResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CheckAdminOTPWithUsernameResponse) ProtoMessage() {}

func (x *CheckAdminOTPWithUsernameResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[26]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CheckAdminOTPWithUsernameResponse.ProtoReflect.Descriptor instead.
func (*CheckAdminOTPWithUsernameResponse) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{26}
}

func (x *CheckAdminOTPWithUsernameResponse) GetRequireOTP() bool {
	if x != nil {
		return x.RequireOTP
	}
	return false
}

// 取得管理员Dashboard数据
type ComposeAdminDashboardRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ApiVersion string `protobuf:"bytes,1,opt,name=apiVersion,proto3" json:"apiVersion,omitempty"` // 当前API版本号
}

func (x *ComposeAdminDashboardRequest) Reset() {
	*x = ComposeAdminDashboardRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ComposeAdminDashboardRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ComposeAdminDashboardRequest) ProtoMessage() {}

func (x *ComposeAdminDashboardRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[27]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ComposeAdminDashboardRequest.ProtoReflect.Descriptor instead.
func (*ComposeAdminDashboardRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{27}
}

func (x *ComposeAdminDashboardRequest) GetApiVersion() string {
	if x != nil {
		return x.ApiVersion
	}
	return ""
}

type ComposeAdminDashboardResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CountNodeClusters        int64                                              `protobuf:"varint,1,opt,name=countNodeClusters,proto3" json:"countNodeClusters,omitempty"`
	CountNodes               int64                                              `protobuf:"varint,2,opt,name=countNodes,proto3" json:"countNodes,omitempty"`
	CountOfflineNodes        int64                                              `protobuf:"varint,9,opt,name=countOfflineNodes,proto3" json:"countOfflineNodes,omitempty"`
	CountServers             int64                                              `protobuf:"varint,3,opt,name=countServers,proto3" json:"countServers,omitempty"`
	CountAuditingServers     int64                                              `protobuf:"varint,13,opt,name=countAuditingServers,proto3" json:"countAuditingServers,omitempty"`
	CountUsers               int64                                              `protobuf:"varint,4,opt,name=countUsers,proto3" json:"countUsers,omitempty"`
	CountAPINodes            int64                                              `protobuf:"varint,5,opt,name=countAPINodes,proto3" json:"countAPINodes,omitempty"`
	CountOfflineAPINodes     int64                                              `protobuf:"varint,10,opt,name=countOfflineAPINodes,proto3" json:"countOfflineAPINodes,omitempty"`
	CountDBNodes             int64                                              `protobuf:"varint,6,opt,name=countDBNodes,proto3" json:"countDBNodes,omitempty"`
	CountOfflineDBNodes      int64                                              `protobuf:"varint,11,opt,name=countOfflineDBNodes,proto3" json:"countOfflineDBNodes,omitempty"`
	CountUserNodes           int64                                              `protobuf:"varint,7,opt,name=countUserNodes,proto3" json:"countUserNodes,omitempty"`
	CountOfflineUserNodes    int64                                              `protobuf:"varint,12,opt,name=countOfflineUserNodes,proto3" json:"countOfflineUserNodes,omitempty"`
	DefaultNodeClusterId     int64                                              `protobuf:"varint,8,opt,name=defaultNodeClusterId,proto3" json:"defaultNodeClusterId,omitempty"`
	DailyTrafficStats        []*ComposeAdminDashboardResponse_DailyTrafficStat  `protobuf:"bytes,30,rep,name=dailyTrafficStats,proto3" json:"dailyTrafficStats,omitempty"`
	HourlyTrafficStats       []*ComposeAdminDashboardResponse_HourlyTrafficStat `protobuf:"bytes,31,rep,name=hourlyTrafficStats,proto3" json:"hourlyTrafficStats,omitempty"`
	NodeUpgradeInfo          *ComposeAdminDashboardResponse_UpgradeInfo         `protobuf:"bytes,32,opt,name=nodeUpgradeInfo,proto3" json:"nodeUpgradeInfo,omitempty"`
	ApiNodeUpgradeInfo       *ComposeAdminDashboardResponse_UpgradeInfo         `protobuf:"bytes,33,opt,name=apiNodeUpgradeInfo,proto3" json:"apiNodeUpgradeInfo,omitempty"`
	UserNodeUpgradeInfo      *ComposeAdminDashboardResponse_UpgradeInfo         `protobuf:"bytes,35,opt,name=userNodeUpgradeInfo,proto3" json:"userNodeUpgradeInfo,omitempty"`
	AuthorityNodeUpgradeInfo *ComposeAdminDashboardResponse_UpgradeInfo         `protobuf:"bytes,36,opt,name=authorityNodeUpgradeInfo,proto3" json:"authorityNodeUpgradeInfo,omitempty"`
	NsNodeUpgradeInfo        *ComposeAdminDashboardResponse_UpgradeInfo         `protobuf:"bytes,37,opt,name=nsNodeUpgradeInfo,proto3" json:"nsNodeUpgradeInfo,omitempty"`
	ReportNodeUpgradeInfo    *ComposeAdminDashboardResponse_UpgradeInfo         `protobuf:"bytes,41,opt,name=reportNodeUpgradeInfo,proto3" json:"reportNodeUpgradeInfo,omitempty"`
	TopNodeStats             []*ComposeAdminDashboardResponse_NodeStat          `protobuf:"bytes,38,rep,name=topNodeStats,proto3" json:"topNodeStats,omitempty"`
	TopDomainStats           []*ComposeAdminDashboardResponse_DomainStat        `protobuf:"bytes,39,rep,name=topDomainStats,proto3" json:"topDomainStats,omitempty"`
	TopCountryStats          []*ComposeAdminDashboardResponse_CountryStat       `protobuf:"bytes,42,rep,name=topCountryStats,proto3" json:"topCountryStats,omitempty"`
	MetricDataCharts         []*MetricDataChart                                 `protobuf:"bytes,40,rep,name=metricDataCharts,proto3" json:"metricDataCharts,omitempty"`
}

func (x *ComposeAdminDashboardResponse) Reset() {
	*x = ComposeAdminDashboardResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ComposeAdminDashboardResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ComposeAdminDashboardResponse) ProtoMessage() {}

func (x *ComposeAdminDashboardResponse) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[28]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ComposeAdminDashboardResponse.ProtoReflect.Descriptor instead.
func (*ComposeAdminDashboardResponse) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{28}
}

func (x *ComposeAdminDashboardResponse) GetCountNodeClusters() int64 {
	if x != nil {
		return x.CountNodeClusters
	}
	return 0
}

func (x *ComposeAdminDashboardResponse) GetCountNodes() int64 {
	if x != nil {
		return x.CountNodes
	}
	return 0
}

func (x *ComposeAdminDashboardResponse) GetCountOfflineNodes() int64 {
	if x != nil {
		return x.CountOfflineNodes
	}
	return 0
}

func (x *ComposeAdminDashboardResponse) GetCountServers() int64 {
	if x != nil {
		return x.CountServers
	}
	return 0
}

func (x *ComposeAdminDashboardResponse) GetCountAuditingServers() int64 {
	if x != nil {
		return x.CountAuditingServers
	}
	return 0
}

func (x *ComposeAdminDashboardResponse) GetCountUsers() int64 {
	if x != nil {
		return x.CountUsers
	}
	return 0
}

func (x *ComposeAdminDashboardResponse) GetCountAPINodes() int64 {
	if x != nil {
		return x.CountAPINodes
	}
	return 0
}

func (x *ComposeAdminDashboardResponse) GetCountOfflineAPINodes() int64 {
	if x != nil {
		return x.CountOfflineAPINodes
	}
	return 0
}

func (x *ComposeAdminDashboardResponse) GetCountDBNodes() int64 {
	if x != nil {
		return x.CountDBNodes
	}
	return 0
}

func (x *ComposeAdminDashboardResponse) GetCountOfflineDBNodes() int64 {
	if x != nil {
		return x.CountOfflineDBNodes
	}
	return 0
}

func (x *ComposeAdminDashboardResponse) GetCountUserNodes() int64 {
	if x != nil {
		return x.CountUserNodes
	}
	return 0
}

func (x *ComposeAdminDashboardResponse) GetCountOfflineUserNodes() int64 {
	if x != nil {
		return x.CountOfflineUserNodes
	}
	return 0
}

func (x *ComposeAdminDashboardResponse) GetDefaultNodeClusterId() int64 {
	if x != nil {
		return x.DefaultNodeClusterId
	}
	return 0
}

func (x *ComposeAdminDashboardResponse) GetDailyTrafficStats() []*ComposeAdminDashboardResponse_DailyTrafficStat {
	if x != nil {
		return x.DailyTrafficStats
	}
	return nil
}

func (x *ComposeAdminDashboardResponse) GetHourlyTrafficStats() []*ComposeAdminDashboardResponse_HourlyTrafficStat {
	if x != nil {
		return x.HourlyTrafficStats
	}
	return nil
}

func (x *ComposeAdminDashboardResponse) GetNodeUpgradeInfo() *ComposeAdminDashboardResponse_UpgradeInfo {
	if x != nil {
		return x.NodeUpgradeInfo
	}
	return nil
}

func (x *ComposeAdminDashboardResponse) GetApiNodeUpgradeInfo() *ComposeAdminDashboardResponse_UpgradeInfo {
	if x != nil {
		return x.ApiNodeUpgradeInfo
	}
	return nil
}

func (x *ComposeAdminDashboardResponse) GetUserNodeUpgradeInfo() *ComposeAdminDashboardResponse_UpgradeInfo {
	if x != nil {
		return x.UserNodeUpgradeInfo
	}
	return nil
}

func (x *ComposeAdminDashboardResponse) GetAuthorityNodeUpgradeInfo() *ComposeAdminDashboardResponse_UpgradeInfo {
	if x != nil {
		return x.AuthorityNodeUpgradeInfo
	}
	return nil
}

func (x *ComposeAdminDashboardResponse) GetNsNodeUpgradeInfo() *ComposeAdminDashboardResponse_UpgradeInfo {
	if x != nil {
		return x.NsNodeUpgradeInfo
	}
	return nil
}

func (x *ComposeAdminDashboardResponse) GetReportNodeUpgradeInfo() *ComposeAdminDashboardResponse_UpgradeInfo {
	if x != nil {
		return x.ReportNodeUpgradeInfo
	}
	return nil
}

func (x *ComposeAdminDashboardResponse) GetTopNodeStats() []*ComposeAdminDashboardResponse_NodeStat {
	if x != nil {
		return x.TopNodeStats
	}
	return nil
}

func (x *ComposeAdminDashboardResponse) GetTopDomainStats() []*ComposeAdminDashboardResponse_DomainStat {
	if x != nil {
		return x.TopDomainStats
	}
	return nil
}

func (x *ComposeAdminDashboardResponse) GetTopCountryStats() []*ComposeAdminDashboardResponse_CountryStat {
	if x != nil {
		return x.TopCountryStats
	}
	return nil
}

func (x *ComposeAdminDashboardResponse) GetMetricDataCharts() []*MetricDataChart {
	if x != nil {
		return x.MetricDataCharts
	}
	return nil
}

// 修改管理员使用的界面风格
type UpdateAdminThemeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AdminId int64  `protobuf:"varint,1,opt,name=adminId,proto3" json:"adminId,omitempty"`
	Theme   string `protobuf:"bytes,2,opt,name=theme,proto3" json:"theme,omitempty"` // 风格代号
}

func (x *UpdateAdminThemeRequest) Reset() {
	*x = UpdateAdminThemeRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateAdminThemeRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateAdminThemeRequest) ProtoMessage() {}

func (x *UpdateAdminThemeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[29]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateAdminThemeRequest.ProtoReflect.Descriptor instead.
func (*UpdateAdminThemeRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{29}
}

func (x *UpdateAdminThemeRequest) GetAdminId() int64 {
	if x != nil {
		return x.AdminId
	}
	return 0
}

func (x *UpdateAdminThemeRequest) GetTheme() string {
	if x != nil {
		return x.Theme
	}
	return ""
}

// 修改管理员使用的语言
type UpdateAdminLangRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	LangCode string `protobuf:"bytes,1,opt,name=langCode,proto3" json:"langCode,omitempty"` // 语言代号：en-us, zh-cn, ...，如果为空表示默认
}

func (x *UpdateAdminLangRequest) Reset() {
	*x = UpdateAdminLangRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateAdminLangRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateAdminLangRequest) ProtoMessage() {}

func (x *UpdateAdminLangRequest) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[30]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateAdminLangRequest.ProtoReflect.Descriptor instead.
func (*UpdateAdminLangRequest) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{30}
}

func (x *UpdateAdminLangRequest) GetLangCode() string {
	if x != nil {
		return x.LangCode
	}
	return ""
}

type ComposeAdminDashboardResponse_DailyTrafficStat struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Day                 string `protobuf:"bytes,1,opt,name=day,proto3" json:"day,omitempty"` // 日期 YYYYMMDD
	Bytes               int64  `protobuf:"varint,2,opt,name=bytes,proto3" json:"bytes,omitempty"`
	CachedBytes         int64  `protobuf:"varint,3,opt,name=cachedBytes,proto3" json:"cachedBytes,omitempty"`
	CountRequests       int64  `protobuf:"varint,4,opt,name=countRequests,proto3" json:"countRequests,omitempty"`
	CountCachedRequests int64  `protobuf:"varint,5,opt,name=countCachedRequests,proto3" json:"countCachedRequests,omitempty"`
	CountAttackRequests int64  `protobuf:"varint,6,opt,name=countAttackRequests,proto3" json:"countAttackRequests,omitempty"`
	AttackBytes         int64  `protobuf:"varint,7,opt,name=attackBytes,proto3" json:"attackBytes,omitempty"` // 攻击流量（字节）
	CountIPs            int64  `protobuf:"varint,8,opt,name=countIPs,proto3" json:"countIPs,omitempty"`       // 独立IP数量
}

func (x *ComposeAdminDashboardResponse_DailyTrafficStat) Reset() {
	*x = ComposeAdminDashboardResponse_DailyTrafficStat{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ComposeAdminDashboardResponse_DailyTrafficStat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ComposeAdminDashboardResponse_DailyTrafficStat) ProtoMessage() {}

func (x *ComposeAdminDashboardResponse_DailyTrafficStat) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[31]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ComposeAdminDashboardResponse_DailyTrafficStat.ProtoReflect.Descriptor instead.
func (*ComposeAdminDashboardResponse_DailyTrafficStat) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{28, 0}
}

func (x *ComposeAdminDashboardResponse_DailyTrafficStat) GetDay() string {
	if x != nil {
		return x.Day
	}
	return ""
}

func (x *ComposeAdminDashboardResponse_DailyTrafficStat) GetBytes() int64 {
	if x != nil {
		return x.Bytes
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_DailyTrafficStat) GetCachedBytes() int64 {
	if x != nil {
		return x.CachedBytes
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_DailyTrafficStat) GetCountRequests() int64 {
	if x != nil {
		return x.CountRequests
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_DailyTrafficStat) GetCountCachedRequests() int64 {
	if x != nil {
		return x.CountCachedRequests
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_DailyTrafficStat) GetCountAttackRequests() int64 {
	if x != nil {
		return x.CountAttackRequests
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_DailyTrafficStat) GetAttackBytes() int64 {
	if x != nil {
		return x.AttackBytes
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_DailyTrafficStat) GetCountIPs() int64 {
	if x != nil {
		return x.CountIPs
	}
	return 0
}

type ComposeAdminDashboardResponse_HourlyTrafficStat struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Hour                string `protobuf:"bytes,1,opt,name=hour,proto3" json:"hour,omitempty"`
	Bytes               int64  `protobuf:"varint,2,opt,name=bytes,proto3" json:"bytes,omitempty"`
	CachedBytes         int64  `protobuf:"varint,3,opt,name=cachedBytes,proto3" json:"cachedBytes,omitempty"`
	CountRequests       int64  `protobuf:"varint,4,opt,name=countRequests,proto3" json:"countRequests,omitempty"`
	CountCachedRequests int64  `protobuf:"varint,5,opt,name=countCachedRequests,proto3" json:"countCachedRequests,omitempty"`
	CountAttackRequests int64  `protobuf:"varint,6,opt,name=countAttackRequests,proto3" json:"countAttackRequests,omitempty"`
	AttackBytes         int64  `protobuf:"varint,7,opt,name=attackBytes,proto3" json:"attackBytes,omitempty"`
}

func (x *ComposeAdminDashboardResponse_HourlyTrafficStat) Reset() {
	*x = ComposeAdminDashboardResponse_HourlyTrafficStat{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ComposeAdminDashboardResponse_HourlyTrafficStat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ComposeAdminDashboardResponse_HourlyTrafficStat) ProtoMessage() {}

func (x *ComposeAdminDashboardResponse_HourlyTrafficStat) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[32]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ComposeAdminDashboardResponse_HourlyTrafficStat.ProtoReflect.Descriptor instead.
func (*ComposeAdminDashboardResponse_HourlyTrafficStat) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{28, 1}
}

func (x *ComposeAdminDashboardResponse_HourlyTrafficStat) GetHour() string {
	if x != nil {
		return x.Hour
	}
	return ""
}

func (x *ComposeAdminDashboardResponse_HourlyTrafficStat) GetBytes() int64 {
	if x != nil {
		return x.Bytes
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_HourlyTrafficStat) GetCachedBytes() int64 {
	if x != nil {
		return x.CachedBytes
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_HourlyTrafficStat) GetCountRequests() int64 {
	if x != nil {
		return x.CountRequests
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_HourlyTrafficStat) GetCountCachedRequests() int64 {
	if x != nil {
		return x.CountCachedRequests
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_HourlyTrafficStat) GetCountAttackRequests() int64 {
	if x != nil {
		return x.CountAttackRequests
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_HourlyTrafficStat) GetAttackBytes() int64 {
	if x != nil {
		return x.AttackBytes
	}
	return 0
}

type ComposeAdminDashboardResponse_NodeStat struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NodeId        int64  `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"`
	NodeName      string `protobuf:"bytes,2,opt,name=nodeName,proto3" json:"nodeName,omitempty"`
	CountRequests int64  `protobuf:"varint,3,opt,name=countRequests,proto3" json:"countRequests,omitempty"`
	Bytes         int64  `protobuf:"varint,4,opt,name=bytes,proto3" json:"bytes,omitempty"`
}

func (x *ComposeAdminDashboardResponse_NodeStat) Reset() {
	*x = ComposeAdminDashboardResponse_NodeStat{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ComposeAdminDashboardResponse_NodeStat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ComposeAdminDashboardResponse_NodeStat) ProtoMessage() {}

func (x *ComposeAdminDashboardResponse_NodeStat) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[33]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ComposeAdminDashboardResponse_NodeStat.ProtoReflect.Descriptor instead.
func (*ComposeAdminDashboardResponse_NodeStat) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{28, 2}
}

func (x *ComposeAdminDashboardResponse_NodeStat) GetNodeId() int64 {
	if x != nil {
		return x.NodeId
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_NodeStat) GetNodeName() string {
	if x != nil {
		return x.NodeName
	}
	return ""
}

func (x *ComposeAdminDashboardResponse_NodeStat) GetCountRequests() int64 {
	if x != nil {
		return x.CountRequests
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_NodeStat) GetBytes() int64 {
	if x != nil {
		return x.Bytes
	}
	return 0
}

type ComposeAdminDashboardResponse_DomainStat struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ServerId      int64  `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"`
	Domain        string `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"`
	CountRequests int64  `protobuf:"varint,3,opt,name=countRequests,proto3" json:"countRequests,omitempty"`
	Bytes         int64  `protobuf:"varint,4,opt,name=bytes,proto3" json:"bytes,omitempty"`
}

func (x *ComposeAdminDashboardResponse_DomainStat) Reset() {
	*x = ComposeAdminDashboardResponse_DomainStat{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ComposeAdminDashboardResponse_DomainStat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ComposeAdminDashboardResponse_DomainStat) ProtoMessage() {}

func (x *ComposeAdminDashboardResponse_DomainStat) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[34]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ComposeAdminDashboardResponse_DomainStat.ProtoReflect.Descriptor instead.
func (*ComposeAdminDashboardResponse_DomainStat) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{28, 3}
}

func (x *ComposeAdminDashboardResponse_DomainStat) GetServerId() int64 {
	if x != nil {
		return x.ServerId
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_DomainStat) GetDomain() string {
	if x != nil {
		return x.Domain
	}
	return ""
}

func (x *ComposeAdminDashboardResponse_DomainStat) GetCountRequests() int64 {
	if x != nil {
		return x.CountRequests
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_DomainStat) GetBytes() int64 {
	if x != nil {
		return x.Bytes
	}
	return 0
}

type ComposeAdminDashboardResponse_CountryStat struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CountryName         string  `protobuf:"bytes,1,opt,name=countryName,proto3" json:"countryName,omitempty"`
	Bytes               int64   `protobuf:"varint,2,opt,name=bytes,proto3" json:"bytes,omitempty"`
	CountRequests       int64   `protobuf:"varint,3,opt,name=countRequests,proto3" json:"countRequests,omitempty"`
	Percent             float32 `protobuf:"fixed32,4,opt,name=percent,proto3" json:"percent,omitempty"` // 流量占比
	CountAttackRequests int64   `protobuf:"varint,6,opt,name=countAttackRequests,proto3" json:"countAttackRequests,omitempty"`
	AttackBytes         int64   `protobuf:"varint,7,opt,name=attackBytes,proto3" json:"attackBytes,omitempty"`
}

func (x *ComposeAdminDashboardResponse_CountryStat) Reset() {
	*x = ComposeAdminDashboardResponse_CountryStat{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ComposeAdminDashboardResponse_CountryStat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ComposeAdminDashboardResponse_CountryStat) ProtoMessage() {}

func (x *ComposeAdminDashboardResponse_CountryStat) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[35]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ComposeAdminDashboardResponse_CountryStat.ProtoReflect.Descriptor instead.
func (*ComposeAdminDashboardResponse_CountryStat) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{28, 4}
}

func (x *ComposeAdminDashboardResponse_CountryStat) GetCountryName() string {
	if x != nil {
		return x.CountryName
	}
	return ""
}

func (x *ComposeAdminDashboardResponse_CountryStat) GetBytes() int64 {
	if x != nil {
		return x.Bytes
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_CountryStat) GetCountRequests() int64 {
	if x != nil {
		return x.CountRequests
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_CountryStat) GetPercent() float32 {
	if x != nil {
		return x.Percent
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_CountryStat) GetCountAttackRequests() int64 {
	if x != nil {
		return x.CountAttackRequests
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_CountryStat) GetAttackBytes() int64 {
	if x != nil {
		return x.AttackBytes
	}
	return 0
}

// 节点升级信息
type ComposeAdminDashboardResponse_UpgradeInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CountNodes int64  `protobuf:"varint,1,opt,name=countNodes,proto3" json:"countNodes,omitempty"` // 节点数
	NewVersion string `protobuf:"bytes,2,opt,name=newVersion,proto3" json:"newVersion,omitempty"`  // 新版本
}

func (x *ComposeAdminDashboardResponse_UpgradeInfo) Reset() {
	*x = ComposeAdminDashboardResponse_UpgradeInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_service_admin_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ComposeAdminDashboardResponse_UpgradeInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ComposeAdminDashboardResponse_UpgradeInfo) ProtoMessage() {}

func (x *ComposeAdminDashboardResponse_UpgradeInfo) ProtoReflect() protoreflect.Message {
	mi := &file_service_admin_proto_msgTypes[36]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ComposeAdminDashboardResponse_UpgradeInfo.ProtoReflect.Descriptor instead.
func (*ComposeAdminDashboardResponse_UpgradeInfo) Descriptor() ([]byte, []int) {
	return file_service_admin_proto_rawDescGZIP(), []int{28, 5}
}

func (x *ComposeAdminDashboardResponse_UpgradeInfo) GetCountNodes() int64 {
	if x != nil {
		return x.CountNodes
	}
	return 0
}

func (x *ComposeAdminDashboardResponse_UpgradeInfo) GetNewVersion() string {
	if x != nil {
		return x.NewVersion
	}
	return ""
}

var File_service_admin_proto protoreflect.FileDescriptor

var file_service_admin_proto_rawDesc = []byte{
	0x0a, 0x13, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x18, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
	0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65,
	0x6c, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x1a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x5f, 0x6d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73,
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74,
	0x61, 0x74, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4b,
	0x0a, 0x11, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12,
	0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x5c, 0x0a, 0x12, 0x4c,
	0x6f, 0x67, 0x69, 0x6e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69,
	0x73, 0x4f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x12,
	0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x33, 0x0a, 0x17, 0x43, 0x68, 0x65,
	0x63, 0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x22, 0x48,
	0x0a, 0x18, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x45, 0x78, 0x69, 0x73,
	0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73,
	0x4f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x12, 0x18,
	0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x51, 0x0a, 0x19, 0x43, 0x68, 0x65, 0x63,
	0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x12,
	0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x34, 0x0a, 0x1a, 0x43,
	0x68, 0x65, 0x63, 0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d,
	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x69,
	0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x78, 0x69, 0x73, 0x74,
	0x73, 0x22, 0x3a, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x57, 0x69,
	0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x40, 0x0a,
	0x1d, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x55, 0x73,
	0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f,
	0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e,
	0x70, 0x62, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22,
	0x34, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x46, 0x75, 0x6c, 0x6c,
	0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61,
	0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x64,
	0x6d, 0x69, 0x6e, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x6d,
	0x69, 0x6e, 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x33,
	0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x64, 0x6d,
	0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x6d,
	0x69, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x64, 0x6d, 0x69,
	0x6e, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x1f, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09,
	0x2e, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e,
	0x22, 0x54, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a,
	0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61,
	0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61,
	0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x37, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x22,
	0x4e, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x6d,
	0x69, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x64, 0x6d, 0x69,
	0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x22,
	0x6b, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f,
	0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64,
	0x6d, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x64, 0x6d,
	0x69, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65,
	0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x1c, 0x0a, 0x1a,
	0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x75,
	0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x56, 0x0a, 0x1b, 0x46, 0x69,
	0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x61, 0x64, 0x6d,
	0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x13, 0x2e, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
	0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x75, 0x6c,
	0x65, 0x73, 0x22, 0xc0, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x6d,
	0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65,
	0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65,
	0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,
	0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a,
	0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12,
	0x18, 0x0a, 0x07, 0x69, 0x73, 0x53, 0x75, 0x70, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x07, 0x69, 0x73, 0x53, 0x75, 0x70, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x6e,
	0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x61, 0x6e,
	0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x22, 0x2f, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41,
	0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07,
	0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61,
	0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x22, 0xee, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a,
	0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07,
	0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e,
	0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12,
	0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d,
	0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x18, 0x0a,
	0x07, 0x69, 0x73, 0x53, 0x75, 0x70, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
	0x69, 0x73, 0x53, 0x75, 0x70, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63,
	0x61, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63,
	0x61, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x22, 0x62, 0x0a, 0x1c, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f,
	0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72,
	0x64, 0x12, 0x28, 0x0a, 0x0f, 0x68, 0x61, 0x73, 0x57, 0x65, 0x61, 0x6b, 0x50, 0x61, 0x73, 0x73,
	0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x68, 0x61, 0x73, 0x57,
	0x65, 0x61, 0x6b, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x8a, 0x01, 0x0a, 0x18,
	0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e,
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77,
	0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f,
	0x72, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x68, 0x61, 0x73, 0x57, 0x65, 0x61, 0x6b, 0x50, 0x61, 0x73,
	0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x68, 0x61, 0x73,
	0x57, 0x65, 0x61, 0x6b, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06,
	0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66,
	0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x3e, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74,
	0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x06, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e,
	0x52, 0x06, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x22, 0x2e, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18,
	0x0a, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x22, 0x3e, 0x0a, 0x20, 0x43, 0x68, 0x65, 0x63,
	0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4f, 0x54, 0x50, 0x57, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65,
	0x72, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08,
	0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x43, 0x0a, 0x21, 0x43, 0x68, 0x65, 0x63,
	0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4f, 0x54, 0x50, 0x57, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65,
	0x72, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a,
	0x0a, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x4f, 0x54, 0x50, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x4f, 0x54, 0x50, 0x22, 0x3e, 0x0a,
	0x1c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x61, 0x73,
	0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a,
	0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xfc, 0x15,
	0x0a, 0x1d, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x61,
	0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x2c, 0x0a, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a,
	0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2c, 0x0a,
	0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x64,
	0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f,
	0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12,
	0x32, 0x0a, 0x14, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67,
	0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76,
	0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
	0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x73,
	0x65, 0x72, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x50, 0x49, 0x4e,
	0x6f, 0x64, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65,
	0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x66,
	0x66, 0x6c, 0x69, 0x6e, 0x65, 0x41, 0x50, 0x49, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x22, 0x0a,
	0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x42, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x42, 0x4e, 0x6f, 0x64, 0x65,
	0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e,
	0x65, 0x44, 0x42, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x42, 0x4e, 0x6f,
	0x64, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
	0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x15, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e,
	0x6f, 0x64, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65,
	0x73, 0x12, 0x32, 0x0a, 0x14, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4e, 0x6f, 0x64, 0x65,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x14, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x60, 0x0a, 0x11, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72,
	0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x32, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x41, 0x64, 0x6d,
	0x69, 0x6e, 0x44, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63,
	0x53, 0x74, 0x61, 0x74, 0x52, 0x11, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66,
	0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x63, 0x0a, 0x12, 0x68, 0x6f, 0x75, 0x72, 0x6c,
	0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x1f, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65,
	0x41, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x54, 0x72, 0x61,
	0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x52, 0x12, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79,
	0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x57, 0x0a, 0x0f,
	0x6e, 0x6f, 0x64, 0x65, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18,
	0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f,
	0x73, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64,
	0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5d, 0x0a, 0x12, 0x61, 0x70, 0x69, 0x4e, 0x6f, 0x64, 0x65,
	0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x21, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x41, 0x64,
	0x6d, 0x69, 0x6e, 0x44, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f,
	0x52, 0x12, 0x61, 0x70, 0x69, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65,
	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5f, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65,
	0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x23, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x41, 0x64,
	0x6d, 0x69, 0x6e, 0x44, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f,
	0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64,
	0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x69, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
	0x74, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x49, 0x6e, 0x66,
	0x6f, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d,
	0x70, 0x6f, 0x73, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61,
	0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61,
	0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x18, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
	0x79, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f,
	0x12, 0x5b, 0x0a, 0x11, 0x6e, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64,
	0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x62,
	0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x61, 0x73,
	0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55,
	0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x6e, 0x73, 0x4e, 0x6f,
	0x64, 0x65, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x63, 0x0a,
	0x15, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x70, 0x67, 0x72, 0x61,
	0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70,
	0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x61,
	0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
	0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x15, 0x72, 0x65, 0x70,
	0x6f, 0x72, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x49, 0x6e,
	0x66, 0x6f, 0x12, 0x4e, 0x0a, 0x0c, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61,
	0x74, 0x73, 0x18, 0x26, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f,
	0x6d, 0x70, 0x6f, 0x73, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x61, 0x73, 0x68, 0x62, 0x6f,
	0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65,
	0x53, 0x74, 0x61, 0x74, 0x52, 0x0c, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61,
	0x74, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x74, 0x6f, 0x70, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x53,
	0x74, 0x61, 0x74, 0x73, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x62, 0x2e,
	0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x61, 0x73, 0x68,
	0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x6f,
	0x6d, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x52, 0x0e, 0x74, 0x6f, 0x70, 0x44, 0x6f, 0x6d,
	0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x57, 0x0a, 0x0f, 0x74, 0x6f, 0x70, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x2a, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x41, 0x64,
	0x6d, 0x69, 0x6e, 0x44, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74,
	0x52, 0x0f, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74,
	0x73, 0x12, 0x3f, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43,
	0x68, 0x61, 0x72, 0x74, 0x73, 0x18, 0x28, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x62,
	0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x72, 0x74,
	0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x72,
	0x74, 0x73, 0x1a, 0xa4, 0x02, 0x0a, 0x10, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66,
	0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74,
	0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12,
	0x20, 0x0a, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65,
	0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65,
	0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74,
	0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61,
	0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1a, 0x0a,
	0x08, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x50, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x08, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x50, 0x73, 0x1a, 0x8b, 0x02, 0x0a, 0x11, 0x48, 0x6f,
	0x75, 0x72, 0x6c, 0x79, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x12,
	0x12, 0x0a, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68,
	0x6f, 0x75, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x61, 0x63,
	0x68, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b,
	0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61,
	0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42,
	0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x61,
	0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x7a, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x53,
	0x74, 0x61, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e,
	0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e,
	0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x14, 0x0a,
	0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x79,
	0x74, 0x65, 0x73, 0x1a, 0x7c, 0x0a, 0x0a, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61,
	0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a,
	0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64,
	0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62,
	0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65,
	0x73, 0x1a, 0xd9, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x74, 0x61,
	0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x4e,
	0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12,
	0x18, 0x0a, 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02,
	0x52, 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74,
	0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61,
	0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x4d, 0x0a,
	0x0b, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a,
	0x6e, 0x65, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0a, 0x6e, 0x65, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x49, 0x0a, 0x17,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x54, 0x68, 0x65, 0x6d, 0x65,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e,
	0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49,
	0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x05, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x22, 0x34, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x32, 0xb7, 0x0b,
	0x0a, 0x0c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3b,
	0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x15, 0x2e, 0x70,
	0x62, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x64,
	0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x63,
	0x68, 0x65, 0x63, 0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12,
	0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x45,
	0x78, 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70,
	0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x45, 0x78, 0x69, 0x73,
	0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x63, 0x68,
	0x65, 0x63, 0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65,
	0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e,
	0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x55,
	0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x5c, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x57, 0x69, 0x74, 0x68,
	0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69,
	0x6e, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x6e,
	0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x2e,
	0x46, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65,
	0x72, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a,
	0x11, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x61,
	0x6d, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x6d, 0x69,
	0x6e, 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x46,
	0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x4d, 0x0a, 0x10, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x64,
	0x6d, 0x69, 0x6e, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61,
	0x62, 0x6c, 0x65, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56,
	0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x41, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75,
	0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41,
	0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53,
	0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x56, 0x0a, 0x13, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c,
	0x6c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1e, 0x2e,
	0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4d,
	0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e,
	0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4d,
	0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e,
	0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x16, 0x2e,
	0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35,
	0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x16, 0x2e,
	0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75,
	0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4f, 0x0a, 0x15, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c,
	0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x12, 0x20,
	0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x6c, 0x69, 0x73, 0x74, 0x45, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x62,
	0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x64, 0x6d, 0x69,
	0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x4c,
	0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12,
	0x68, 0x0a, 0x19, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4f, 0x54, 0x50,
	0x57, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x2e, 0x70,
	0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4f, 0x54, 0x50, 0x57,
	0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x64, 0x6d,
	0x69, 0x6e, 0x4f, 0x54, 0x50, 0x57, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d,
	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x63, 0x6f, 0x6d,
	0x70, 0x6f, 0x73, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61,
	0x72, 0x64, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x41,
	0x64, 0x6d, 0x69, 0x6e, 0x44, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73,
	0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x54, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x1b, 0x2e, 0x70, 0x62,
	0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x54, 0x68, 0x65, 0x6d,
	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50,
	0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x1a, 0x2e, 0x70, 0x62,
	0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x61, 0x6e, 0x67,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43,
	0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62,
	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_service_admin_proto_rawDescOnce sync.Once
	file_service_admin_proto_rawDescData = file_service_admin_proto_rawDesc
)

func file_service_admin_proto_rawDescGZIP() []byte {
	file_service_admin_proto_rawDescOnce.Do(func() {
		file_service_admin_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_admin_proto_rawDescData)
	})
	return file_service_admin_proto_rawDescData
}

var file_service_admin_proto_msgTypes = make([]protoimpl.MessageInfo, 37)
var file_service_admin_proto_goTypes = []interface{}{
	(*LoginAdminRequest)(nil),                               // 0: pb.LoginAdminRequest
	(*LoginAdminResponse)(nil),                              // 1: pb.LoginAdminResponse
	(*CheckAdminExistsRequest)(nil),                         // 2: pb.CheckAdminExistsRequest
	(*CheckAdminExistsResponse)(nil),                        // 3: pb.CheckAdminExistsResponse
	(*CheckAdminUsernameRequest)(nil),                       // 4: pb.CheckAdminUsernameRequest
	(*CheckAdminUsernameResponse)(nil),                      // 5: pb.CheckAdminUsernameResponse
	(*FindAdminWithUsernameRequest)(nil),                    // 6: pb.FindAdminWithUsernameRequest
	(*FindAdminWithUsernameResponse)(nil),                   // 7: pb.FindAdminWithUsernameResponse
	(*FindAdminFullnameRequest)(nil),                        // 8: pb.FindAdminFullnameRequest
	(*FindAdminFullnameResponse)(nil),                       // 9: pb.FindAdminFullnameResponse
	(*FindEnabledAdminRequest)(nil),                         // 10: pb.FindEnabledAdminRequest
	(*FindEnabledAdminResponse)(nil),                        // 11: pb.FindEnabledAdminResponse
	(*CreateOrUpdateAdminRequest)(nil),                      // 12: pb.CreateOrUpdateAdminRequest
	(*CreateOrUpdateAdminResponse)(nil),                     // 13: pb.CreateOrUpdateAdminResponse
	(*UpdateAdminInfoRequest)(nil),                          // 14: pb.UpdateAdminInfoRequest
	(*UpdateAdminLoginRequest)(nil),                         // 15: pb.UpdateAdminLoginRequest
	(*FindAllAdminModulesRequest)(nil),                      // 16: pb.FindAllAdminModulesRequest
	(*FindAllAdminModulesResponse)(nil),                     // 17: pb.FindAllAdminModulesResponse
	(*CreateAdminRequest)(nil),                              // 18: pb.CreateAdminRequest
	(*CreateAdminResponse)(nil),                             // 19: pb.CreateAdminResponse
	(*UpdateAdminRequest)(nil),                              // 20: pb.UpdateAdminRequest
	(*CountAllEnabledAdminsRequest)(nil),                    // 21: pb.CountAllEnabledAdminsRequest
	(*ListEnabledAdminsRequest)(nil),                        // 22: pb.ListEnabledAdminsRequest
	(*ListEnabledAdminsResponse)(nil),                       // 23: pb.ListEnabledAdminsResponse
	(*DeleteAdminRequest)(nil),                              // 24: pb.DeleteAdminRequest
	(*CheckAdminOTPWithUsernameRequest)(nil),                // 25: pb.CheckAdminOTPWithUsernameRequest
	(*CheckAdminOTPWithUsernameResponse)(nil),               // 26: pb.CheckAdminOTPWithUsernameResponse
	(*ComposeAdminDashboardRequest)(nil),                    // 27: pb.ComposeAdminDashboardRequest
	(*ComposeAdminDashboardResponse)(nil),                   // 28: pb.ComposeAdminDashboardResponse
	(*UpdateAdminThemeRequest)(nil),                         // 29: pb.UpdateAdminThemeRequest
	(*UpdateAdminLangRequest)(nil),                          // 30: pb.UpdateAdminLangRequest
	(*ComposeAdminDashboardResponse_DailyTrafficStat)(nil),  // 31: pb.ComposeAdminDashboardResponse.DailyTrafficStat
	(*ComposeAdminDashboardResponse_HourlyTrafficStat)(nil), // 32: pb.ComposeAdminDashboardResponse.HourlyTrafficStat
	(*ComposeAdminDashboardResponse_NodeStat)(nil),          // 33: pb.ComposeAdminDashboardResponse.NodeStat
	(*ComposeAdminDashboardResponse_DomainStat)(nil),        // 34: pb.ComposeAdminDashboardResponse.DomainStat
	(*ComposeAdminDashboardResponse_CountryStat)(nil),       // 35: pb.ComposeAdminDashboardResponse.CountryStat
	(*ComposeAdminDashboardResponse_UpgradeInfo)(nil),       // 36: pb.ComposeAdminDashboardResponse.UpgradeInfo
	(*Admin)(nil),            // 37: pb.Admin
	(*AdminModuleList)(nil),  // 38: pb.AdminModuleList
	(*MetricDataChart)(nil),  // 39: pb.MetricDataChart
	(*RPCSuccess)(nil),       // 40: pb.RPCSuccess
	(*RPCCountResponse)(nil), // 41: pb.RPCCountResponse
}
var file_service_admin_proto_depIdxs = []int32{
	37, // 0: pb.FindAdminWithUsernameResponse.admin:type_name -> pb.Admin
	37, // 1: pb.FindEnabledAdminResponse.admin:type_name -> pb.Admin
	38, // 2: pb.FindAllAdminModulesResponse.adminModules:type_name -> pb.AdminModuleList
	37, // 3: pb.ListEnabledAdminsResponse.admins:type_name -> pb.Admin
	31, // 4: pb.ComposeAdminDashboardResponse.dailyTrafficStats:type_name -> pb.ComposeAdminDashboardResponse.DailyTrafficStat
	32, // 5: pb.ComposeAdminDashboardResponse.hourlyTrafficStats:type_name -> pb.ComposeAdminDashboardResponse.HourlyTrafficStat
	36, // 6: pb.ComposeAdminDashboardResponse.nodeUpgradeInfo:type_name -> pb.ComposeAdminDashboardResponse.UpgradeInfo
	36, // 7: pb.ComposeAdminDashboardResponse.apiNodeUpgradeInfo:type_name -> pb.ComposeAdminDashboardResponse.UpgradeInfo
	36, // 8: pb.ComposeAdminDashboardResponse.userNodeUpgradeInfo:type_name -> pb.ComposeAdminDashboardResponse.UpgradeInfo
	36, // 9: pb.ComposeAdminDashboardResponse.authorityNodeUpgradeInfo:type_name -> pb.ComposeAdminDashboardResponse.UpgradeInfo
	36, // 10: pb.ComposeAdminDashboardResponse.nsNodeUpgradeInfo:type_name -> pb.ComposeAdminDashboardResponse.UpgradeInfo
	36, // 11: pb.ComposeAdminDashboardResponse.reportNodeUpgradeInfo:type_name -> pb.ComposeAdminDashboardResponse.UpgradeInfo
	33, // 12: pb.ComposeAdminDashboardResponse.topNodeStats:type_name -> pb.ComposeAdminDashboardResponse.NodeStat
	34, // 13: pb.ComposeAdminDashboardResponse.topDomainStats:type_name -> pb.ComposeAdminDashboardResponse.DomainStat
	35, // 14: pb.ComposeAdminDashboardResponse.topCountryStats:type_name -> pb.ComposeAdminDashboardResponse.CountryStat
	39, // 15: pb.ComposeAdminDashboardResponse.metricDataCharts:type_name -> pb.MetricDataChart
	0,  // 16: pb.AdminService.loginAdmin:input_type -> pb.LoginAdminRequest
	2,  // 17: pb.AdminService.checkAdminExists:input_type -> pb.CheckAdminExistsRequest
	4,  // 18: pb.AdminService.checkAdminUsername:input_type -> pb.CheckAdminUsernameRequest
	6,  // 19: pb.AdminService.findAdminWithUsername:input_type -> pb.FindAdminWithUsernameRequest
	8,  // 20: pb.AdminService.findAdminFullname:input_type -> pb.FindAdminFullnameRequest
	10, // 21: pb.AdminService.findEnabledAdmin:input_type -> pb.FindEnabledAdminRequest
	12, // 22: pb.AdminService.createOrUpdateAdmin:input_type -> pb.CreateOrUpdateAdminRequest
	14, // 23: pb.AdminService.updateAdminInfo:input_type -> pb.UpdateAdminInfoRequest
	15, // 24: pb.AdminService.updateAdminLogin:input_type -> pb.UpdateAdminLoginRequest
	16, // 25: pb.AdminService.findAllAdminModules:input_type -> pb.FindAllAdminModulesRequest
	18, // 26: pb.AdminService.createAdmin:input_type -> pb.CreateAdminRequest
	20, // 27: pb.AdminService.updateAdmin:input_type -> pb.UpdateAdminRequest
	21, // 28: pb.AdminService.countAllEnabledAdmins:input_type -> pb.CountAllEnabledAdminsRequest
	22, // 29: pb.AdminService.listEnabledAdmins:input_type -> pb.ListEnabledAdminsRequest
	24, // 30: pb.AdminService.deleteAdmin:input_type -> pb.DeleteAdminRequest
	25, // 31: pb.AdminService.checkAdminOTPWithUsername:input_type -> pb.CheckAdminOTPWithUsernameRequest
	27, // 32: pb.AdminService.composeAdminDashboard:input_type -> pb.ComposeAdminDashboardRequest
	29, // 33: pb.AdminService.updateAdminTheme:input_type -> pb.UpdateAdminThemeRequest
	30, // 34: pb.AdminService.updateAdminLang:input_type -> pb.UpdateAdminLangRequest
	1,  // 35: pb.AdminService.loginAdmin:output_type -> pb.LoginAdminResponse
	3,  // 36: pb.AdminService.checkAdminExists:output_type -> pb.CheckAdminExistsResponse
	5,  // 37: pb.AdminService.checkAdminUsername:output_type -> pb.CheckAdminUsernameResponse
	7,  // 38: pb.AdminService.findAdminWithUsername:output_type -> pb.FindAdminWithUsernameResponse
	9,  // 39: pb.AdminService.findAdminFullname:output_type -> pb.FindAdminFullnameResponse
	11, // 40: pb.AdminService.findEnabledAdmin:output_type -> pb.FindEnabledAdminResponse
	13, // 41: pb.AdminService.createOrUpdateAdmin:output_type -> pb.CreateOrUpdateAdminResponse
	40, // 42: pb.AdminService.updateAdminInfo:output_type -> pb.RPCSuccess
	40, // 43: pb.AdminService.updateAdminLogin:output_type -> pb.RPCSuccess
	17, // 44: pb.AdminService.findAllAdminModules:output_type -> pb.FindAllAdminModulesResponse
	19, // 45: pb.AdminService.createAdmin:output_type -> pb.CreateAdminResponse
	40, // 46: pb.AdminService.updateAdmin:output_type -> pb.RPCSuccess
	41, // 47: pb.AdminService.countAllEnabledAdmins:output_type -> pb.RPCCountResponse
	23, // 48: pb.AdminService.listEnabledAdmins:output_type -> pb.ListEnabledAdminsResponse
	40, // 49: pb.AdminService.deleteAdmin:output_type -> pb.RPCSuccess
	26, // 50: pb.AdminService.checkAdminOTPWithUsername:output_type -> pb.CheckAdminOTPWithUsernameResponse
	28, // 51: pb.AdminService.composeAdminDashboard:output_type -> pb.ComposeAdminDashboardResponse
	40, // 52: pb.AdminService.updateAdminTheme:output_type -> pb.RPCSuccess
	40, // 53: pb.AdminService.updateAdminLang:output_type -> pb.RPCSuccess
	35, // [35:54] is the sub-list for method output_type
	16, // [16:35] is the sub-list for method input_type
	16, // [16:16] is the sub-list for extension type_name
	16, // [16:16] is the sub-list for extension extendee
	0,  // [0:16] is the sub-list for field type_name
}

func init() { file_service_admin_proto_init() }
func file_service_admin_proto_init() {
	if File_service_admin_proto != nil {
		return
	}
	file_models_model_admin_proto_init()
	file_models_model_admin_list_proto_init()
	file_models_rpc_messages_proto_init()
	file_service_server_stat_board_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_service_admin_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LoginAdminRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LoginAdminResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CheckAdminExistsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CheckAdminExistsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CheckAdminUsernameRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CheckAdminUsernameResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindAdminWithUsernameRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindAdminWithUsernameResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindAdminFullnameRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindAdminFullnameResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindEnabledAdminRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindEnabledAdminResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateOrUpdateAdminRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateOrUpdateAdminResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateAdminInfoRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateAdminLoginRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindAllAdminModulesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FindAllAdminModulesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateAdminRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateAdminResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateAdminRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CountAllEnabledAdminsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListEnabledAdminsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListEnabledAdminsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteAdminRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CheckAdminOTPWithUsernameRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CheckAdminOTPWithUsernameResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ComposeAdminDashboardRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ComposeAdminDashboardResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateAdminThemeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateAdminLangRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ComposeAdminDashboardResponse_DailyTrafficStat); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ComposeAdminDashboardResponse_HourlyTrafficStat); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ComposeAdminDashboardResponse_NodeStat); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ComposeAdminDashboardResponse_DomainStat); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ComposeAdminDashboardResponse_CountryStat); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_service_admin_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ComposeAdminDashboardResponse_UpgradeInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_service_admin_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   37,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_service_admin_proto_goTypes,
		DependencyIndexes: file_service_admin_proto_depIdxs,
		MessageInfos:      file_service_admin_proto_msgTypes,
	}.Build()
	File_service_admin_proto = out.File
	file_service_admin_proto_rawDesc = nil
	file_service_admin_proto_goTypes = nil
	file_service_admin_proto_depIdxs = nil
}
