// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.34.1
// 	protoc        v5.29.3
// source: client/clientpb/client.proto

package clientpb

import (
	implantpb "github.com/chainreactors/malice-network/helper/proto/implant/implantpb"
	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 Empty struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*Empty) ProtoMessage() {}

func (x *Empty) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Empty.ProtoReflect.Descriptor instead.
func (*Empty) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{0}
}

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

	Version    string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
	Commit     string `protobuf:"bytes,4,opt,name=commit,proto3" json:"commit,omitempty"`
	Dirty      bool   `protobuf:"varint,5,opt,name=dirty,proto3" json:"dirty,omitempty"`
	CompiledAt int64  `protobuf:"varint,6,opt,name=compiledAt,proto3" json:"compiledAt,omitempty"`
	Os         string `protobuf:"bytes,7,opt,name=os,proto3" json:"os,omitempty"`
	Arch       string `protobuf:"bytes,8,opt,name=arch,proto3" json:"arch,omitempty"`
}

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

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

func (*Basic) ProtoMessage() {}

func (x *Basic) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Basic.ProtoReflect.Descriptor instead.
func (*Basic) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{1}
}

func (x *Basic) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

func (x *Basic) GetCommit() string {
	if x != nil {
		return x.Commit
	}
	return ""
}

func (x *Basic) GetDirty() bool {
	if x != nil {
		return x.Dirty
	}
	return false
}

func (x *Basic) GetCompiledAt() int64 {
	if x != nil {
		return x.CompiledAt
	}
	return 0
}

func (x *Basic) GetOs() string {
	if x != nil {
		return x.Os
	}
	return ""
}

func (x *Basic) GetArch() string {
	if x != nil {
		return x.Arch
	}
	return ""
}

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

	SessionId     string             `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	RawId         uint32             `protobuf:"varint,2,opt,name=raw_id,json=rawId,proto3" json:"raw_id,omitempty"`
	Name          string             `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	Type          string             `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"`
	Note          string             `protobuf:"bytes,5,opt,name=note,proto3" json:"note,omitempty"`
	PipelineId    string             `protobuf:"bytes,6,opt,name=pipeline_id,json=pipelineId,proto3" json:"pipeline_id,omitempty"`
	ListenerId    string             `protobuf:"bytes,7,opt,name=listener_id,json=listenerId,proto3" json:"listener_id,omitempty"`
	GroupName     string             `protobuf:"bytes,8,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"`
	Target        string             `protobuf:"bytes,9,opt,name=target,proto3" json:"target,omitempty"`
	IsAlive       bool               `protobuf:"varint,10,opt,name=is_alive,json=isAlive,proto3" json:"is_alive,omitempty"`
	IsPrivilege   bool               `protobuf:"varint,11,opt,name=is_privilege,json=isPrivilege,proto3" json:"is_privilege,omitempty"`
	IsInitialized bool               `protobuf:"varint,12,opt,name=is_initialized,json=isInitialized,proto3" json:"is_initialized,omitempty"`
	LastCheckin   int64              `protobuf:"varint,13,opt,name=last_checkin,json=lastCheckin,proto3" json:"last_checkin,omitempty"`
	Tasks         *Tasks             `protobuf:"bytes,15,opt,name=tasks,proto3" json:"tasks,omitempty"`
	Filepath      string             `protobuf:"bytes,16,opt,name=filepath,proto3" json:"filepath,omitempty"`
	Locate        string             `protobuf:"bytes,17,opt,name=locate,proto3" json:"locate,omitempty"`
	Workdir       string             `protobuf:"bytes,18,opt,name=workdir,proto3" json:"workdir,omitempty"`
	Proxy         string             `protobuf:"bytes,19,opt,name=proxy,proto3" json:"proxy,omitempty"`
	Os            *implantpb.Os      `protobuf:"bytes,20,opt,name=os,proto3" json:"os,omitempty"`
	Process       *implantpb.Process `protobuf:"bytes,21,opt,name=process,proto3" json:"process,omitempty"`
	Timer         *implantpb.Timer   `protobuf:"bytes,22,opt,name=timer,proto3" json:"timer,omitempty"`
	CreatedAt     int64              `protobuf:"varint,23,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	Modules       []string           `protobuf:"bytes,30,rep,name=modules,proto3" json:"modules,omitempty"`
	Addons        []*implantpb.Addon `protobuf:"bytes,31,rep,name=addons,proto3" json:"addons,omitempty"`
	KeyPair       *KeyPair           `protobuf:"bytes,32,opt,name=key_pair,json=keyPair,proto3" json:"key_pair,omitempty"` // Age 密钥对
	Argue         map[string]string  `protobuf:"bytes,40,rep,name=argue,proto3" json:"argue,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	Data          string             `protobuf:"bytes,41,opt,name=data,proto3" json:"data,omitempty"`
	Loot          map[string]string  `protobuf:"bytes,42,rep,name=loot,proto3" json:"loot,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*Session) ProtoMessage() {}

func (x *Session) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Session.ProtoReflect.Descriptor instead.
func (*Session) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{2}
}

func (x *Session) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *Session) GetRawId() uint32 {
	if x != nil {
		return x.RawId
	}
	return 0
}

func (x *Session) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Session) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *Session) GetNote() string {
	if x != nil {
		return x.Note
	}
	return ""
}

func (x *Session) GetPipelineId() string {
	if x != nil {
		return x.PipelineId
	}
	return ""
}

func (x *Session) GetListenerId() string {
	if x != nil {
		return x.ListenerId
	}
	return ""
}

func (x *Session) GetGroupName() string {
	if x != nil {
		return x.GroupName
	}
	return ""
}

func (x *Session) GetTarget() string {
	if x != nil {
		return x.Target
	}
	return ""
}

func (x *Session) GetIsAlive() bool {
	if x != nil {
		return x.IsAlive
	}
	return false
}

func (x *Session) GetIsPrivilege() bool {
	if x != nil {
		return x.IsPrivilege
	}
	return false
}

func (x *Session) GetIsInitialized() bool {
	if x != nil {
		return x.IsInitialized
	}
	return false
}

func (x *Session) GetLastCheckin() int64 {
	if x != nil {
		return x.LastCheckin
	}
	return 0
}

func (x *Session) GetTasks() *Tasks {
	if x != nil {
		return x.Tasks
	}
	return nil
}

func (x *Session) GetFilepath() string {
	if x != nil {
		return x.Filepath
	}
	return ""
}

func (x *Session) GetLocate() string {
	if x != nil {
		return x.Locate
	}
	return ""
}

func (x *Session) GetWorkdir() string {
	if x != nil {
		return x.Workdir
	}
	return ""
}

func (x *Session) GetProxy() string {
	if x != nil {
		return x.Proxy
	}
	return ""
}

func (x *Session) GetOs() *implantpb.Os {
	if x != nil {
		return x.Os
	}
	return nil
}

func (x *Session) GetProcess() *implantpb.Process {
	if x != nil {
		return x.Process
	}
	return nil
}

func (x *Session) GetTimer() *implantpb.Timer {
	if x != nil {
		return x.Timer
	}
	return nil
}

func (x *Session) GetCreatedAt() int64 {
	if x != nil {
		return x.CreatedAt
	}
	return 0
}

func (x *Session) GetModules() []string {
	if x != nil {
		return x.Modules
	}
	return nil
}

func (x *Session) GetAddons() []*implantpb.Addon {
	if x != nil {
		return x.Addons
	}
	return nil
}

func (x *Session) GetKeyPair() *KeyPair {
	if x != nil {
		return x.KeyPair
	}
	return nil
}

func (x *Session) GetArgue() map[string]string {
	if x != nil {
		return x.Argue
	}
	return nil
}

func (x *Session) GetData() string {
	if x != nil {
		return x.Data
	}
	return ""
}

func (x *Session) GetLoot() map[string]string {
	if x != nil {
		return x.Loot
	}
	return nil
}

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

	SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	All       bool   `protobuf:"varint,2,opt,name=all,proto3" json:"all,omitempty"`
}

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

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

func (*SessionRequest) ProtoMessage() {}

func (x *SessionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 SessionRequest.ProtoReflect.Descriptor instead.
func (*SessionRequest) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{3}
}

func (x *SessionRequest) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *SessionRequest) GetAll() bool {
	if x != nil {
		return x.All
	}
	return false
}

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

	SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	All       bool   `protobuf:"varint,2,opt,name=all,proto3" json:"all,omitempty"`
}

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

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

func (*TaskRequest) ProtoMessage() {}

func (x *TaskRequest) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 TaskRequest.ProtoReflect.Descriptor instead.
func (*TaskRequest) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{4}
}

func (x *TaskRequest) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *TaskRequest) GetAll() bool {
	if x != nil {
		return x.All
	}
	return false
}

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

	Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"`
}

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

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

func (*Int) ProtoMessage() {}

func (x *Int) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Int.ProtoReflect.Descriptor instead.
func (*Int) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{5}
}

func (x *Int) GetLimit() int32 {
	if x != nil {
		return x.Limit
	}
	return 0
}

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

	Context  *TaskContext     `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"`
	Command  string           `protobuf:"bytes,2,opt,name=command,proto3" json:"command,omitempty"`
	Request  *implantpb.Spite `protobuf:"bytes,3,opt,name=request,proto3" json:"request,omitempty"`
	Created  string           `protobuf:"bytes,4,opt,name=Created,proto3" json:"Created,omitempty"`
	Finished string           `protobuf:"bytes,5,opt,name=Finished,proto3" json:"Finished,omitempty"`
	Lasted   string           `protobuf:"bytes,6,opt,name=Lasted,proto3" json:"Lasted,omitempty"`
}

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

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

func (*Audit) ProtoMessage() {}

func (x *Audit) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Audit.ProtoReflect.Descriptor instead.
func (*Audit) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{6}
}

func (x *Audit) GetContext() *TaskContext {
	if x != nil {
		return x.Context
	}
	return nil
}

func (x *Audit) GetCommand() string {
	if x != nil {
		return x.Command
	}
	return ""
}

func (x *Audit) GetRequest() *implantpb.Spite {
	if x != nil {
		return x.Request
	}
	return nil
}

func (x *Audit) GetCreated() string {
	if x != nil {
		return x.Created
	}
	return ""
}

func (x *Audit) GetFinished() string {
	if x != nil {
		return x.Finished
	}
	return ""
}

func (x *Audit) GetLasted() string {
	if x != nil {
		return x.Lasted
	}
	return ""
}

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

	Audit []*Audit `protobuf:"bytes,1,rep,name=audit,proto3" json:"audit,omitempty"`
}

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

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

func (*Audits) ProtoMessage() {}

func (x *Audits) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Audits.ProtoReflect.Descriptor instead.
func (*Audits) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{7}
}

func (x *Audits) GetAudit() []*Audit {
	if x != nil {
		return x.Audit
	}
	return nil
}

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

	SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	Op        string `protobuf:"bytes,2,opt,name=op,proto3" json:"op,omitempty"`
	Arg       string `protobuf:"bytes,3,opt,name=arg,proto3" json:"arg,omitempty"`
}

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

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

func (*BasicUpdateSession) ProtoMessage() {}

func (x *BasicUpdateSession) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 BasicUpdateSession.ProtoReflect.Descriptor instead.
func (*BasicUpdateSession) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{8}
}

func (x *BasicUpdateSession) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *BasicUpdateSession) GetOp() string {
	if x != nil {
		return x.Op
	}
	return ""
}

func (x *BasicUpdateSession) GetArg() string {
	if x != nil {
		return x.Arg
	}
	return ""
}

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

	Sessions []*Session `protobuf:"bytes,1,rep,name=sessions,proto3" json:"sessions,omitempty"`
}

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

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

func (*Sessions) ProtoMessage() {}

func (x *Sessions) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Sessions.ProtoReflect.Descriptor instead.
func (*Sessions) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{9}
}

func (x *Sessions) GetSessions() []*Session {
	if x != nil {
		return x.Sessions
	}
	return nil
}

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

	Items []*SpiteCacheItem `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
}

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

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

func (*SpiteCache) ProtoMessage() {}

func (x *SpiteCache) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 SpiteCache.ProtoReflect.Descriptor instead.
func (*SpiteCache) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{10}
}

func (x *SpiteCache) GetItems() []*SpiteCacheItem {
	if x != nil {
		return x.Items
	}
	return nil
}

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

	Index      int32            `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
	Id         string           `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
	Spite      *implantpb.Spite `protobuf:"bytes,3,opt,name=spite,proto3" json:"spite,omitempty"`
	Expiration int64            `protobuf:"varint,4,opt,name=expiration,proto3" json:"expiration,omitempty"`
}

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

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

func (*SpiteCacheItem) ProtoMessage() {}

func (x *SpiteCacheItem) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 SpiteCacheItem.ProtoReflect.Descriptor instead.
func (*SpiteCacheItem) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{11}
}

func (x *SpiteCacheItem) GetIndex() int32 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *SpiteCacheItem) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *SpiteCacheItem) GetSpite() *implantpb.Spite {
	if x != nil {
		return x.Spite
	}
	return nil
}

func (x *SpiteCacheItem) GetExpiration() int64 {
	if x != nil {
		return x.Expiration
	}
	return 0
}

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

	Id       uint32                 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Name     string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Pipeline *Pipeline              `protobuf:"bytes,3,opt,name=pipeline,proto3" json:"pipeline,omitempty"`
	Contents map[string]*WebContent `protobuf:"bytes,4,rep,name=contents,proto3" json:"contents,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Types that are assignable to Body:
	//
	//	*Job_RemAgent
	//	*Job_RemLog
	Body isJob_Body `protobuf_oneof:"body"`
}

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

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

func (*Job) ProtoMessage() {}

func (x *Job) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Job.ProtoReflect.Descriptor instead.
func (*Job) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{12}
}

func (x *Job) GetId() uint32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *Job) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Job) GetPipeline() *Pipeline {
	if x != nil {
		return x.Pipeline
	}
	return nil
}

func (x *Job) GetContents() map[string]*WebContent {
	if x != nil {
		return x.Contents
	}
	return nil
}

func (m *Job) GetBody() isJob_Body {
	if m != nil {
		return m.Body
	}
	return nil
}

func (x *Job) GetRemAgent() *REMAgent {
	if x, ok := x.GetBody().(*Job_RemAgent); ok {
		return x.RemAgent
	}
	return nil
}

func (x *Job) GetRemLog() *RemLog {
	if x, ok := x.GetBody().(*Job_RemLog); ok {
		return x.RemLog
	}
	return nil
}

type isJob_Body interface {
	isJob_Body()
}

type Job_RemAgent struct {
	RemAgent *REMAgent `protobuf:"bytes,10,opt,name=rem_agent,json=remAgent,proto3,oneof"`
}

type Job_RemLog struct {
	RemLog *RemLog `protobuf:"bytes,11,opt,name=rem_log,json=remLog,proto3,oneof"`
}

func (*Job_RemAgent) isJob_Body() {}

func (*Job_RemLog) isJob_Body() {}

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

	Job []*Job `protobuf:"bytes,1,rep,name=job,proto3" json:"job,omitempty"`
}

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

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

func (*Jobs) ProtoMessage() {}

func (x *Jobs) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Jobs.ProtoReflect.Descriptor instead.
func (*Jobs) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{13}
}

func (x *Jobs) GetJob() []*Job {
	if x != nil {
		return x.Job
	}
	return nil
}

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

	Id      uint32      `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Ctrl    string      `protobuf:"bytes,2,opt,name=ctrl,proto3" json:"ctrl,omitempty"`
	Job     *Job        `protobuf:"bytes,3,opt,name=job,proto3" json:"job,omitempty"`
	Content *WebContent `protobuf:"bytes,4,opt,name=content,proto3" json:"content,omitempty"`
	Session *Session    `protobuf:"bytes,5,opt,name=session,proto3" json:"session,omitempty"`
}

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

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

func (*JobCtrl) ProtoMessage() {}

func (x *JobCtrl) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 JobCtrl.ProtoReflect.Descriptor instead.
func (*JobCtrl) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{14}
}

func (x *JobCtrl) GetId() uint32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *JobCtrl) GetCtrl() string {
	if x != nil {
		return x.Ctrl
	}
	return ""
}

func (x *JobCtrl) GetJob() *Job {
	if x != nil {
		return x.Job
	}
	return nil
}

func (x *JobCtrl) GetContent() *WebContent {
	if x != nil {
		return x.Content
	}
	return nil
}

func (x *JobCtrl) GetSession() *Session {
	if x != nil {
		return x.Session
	}
	return nil
}

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

	ListenerId string      `protobuf:"bytes,1,opt,name=listener_id,json=listenerId,proto3" json:"listener_id,omitempty"`
	Ctrl       string      `protobuf:"bytes,2,opt,name=ctrl,proto3" json:"ctrl,omitempty"`
	Status     int32       `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"`
	Error      string      `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"`
	Job        *Job        `protobuf:"bytes,5,opt,name=job,proto3" json:"job,omitempty"`
	CtrlId     uint32      `protobuf:"varint,6,opt,name=ctrl_id,json=ctrlId,proto3" json:"ctrl_id,omitempty"`
	Content    *WebContent `protobuf:"bytes,7,opt,name=content,proto3" json:"content,omitempty"`
}

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

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

func (*JobStatus) ProtoMessage() {}

func (x *JobStatus) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 JobStatus.ProtoReflect.Descriptor instead.
func (*JobStatus) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{15}
}

func (x *JobStatus) GetListenerId() string {
	if x != nil {
		return x.ListenerId
	}
	return ""
}

func (x *JobStatus) GetCtrl() string {
	if x != nil {
		return x.Ctrl
	}
	return ""
}

func (x *JobStatus) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *JobStatus) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *JobStatus) GetJob() *Job {
	if x != nil {
		return x.Job
	}
	return nil
}

func (x *JobStatus) GetCtrlId() uint32 {
	if x != nil {
		return x.CtrlId
	}
	return 0
}

func (x *JobStatus) GetContent() *WebContent {
	if x != nil {
		return x.Content
	}
	return nil
}

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

	Id        string     `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Ip        string     `protobuf:"bytes,2,opt,name=ip,proto3" json:"ip,omitempty"`
	Active    bool       `protobuf:"varint,3,opt,name=active,proto3" json:"active,omitempty"`
	Pipelines *Pipelines `protobuf:"bytes,4,opt,name=pipelines,proto3" json:"pipelines,omitempty"`
}

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

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

func (*Listener) ProtoMessage() {}

func (x *Listener) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Listener.ProtoReflect.Descriptor instead.
func (*Listener) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{16}
}

func (x *Listener) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *Listener) GetIp() string {
	if x != nil {
		return x.Ip
	}
	return ""
}

func (x *Listener) GetActive() bool {
	if x != nil {
		return x.Active
	}
	return false
}

func (x *Listener) GetPipelines() *Pipelines {
	if x != nil {
		return x.Pipelines
	}
	return nil
}

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

	Listeners []*Listener `protobuf:"bytes,1,rep,name=listeners,proto3" json:"listeners,omitempty"`
}

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

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

func (*Listeners) ProtoMessage() {}

func (x *Listeners) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Listeners.ProtoReflect.Descriptor instead.
func (*Listeners) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{17}
}

func (x *Listeners) GetListeners() []*Listener {
	if x != nil {
		return x.Listeners
	}
	return nil
}

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

	ID     uint32 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	Name   string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"`
	Online bool   `protobuf:"varint,3,opt,name=Online,proto3" json:"Online,omitempty"`
	Type   string `protobuf:"bytes,4,opt,name=Type,proto3" json:"Type,omitempty"`
}

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

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

func (*Client) ProtoMessage() {}

func (x *Client) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Client.ProtoReflect.Descriptor instead.
func (*Client) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{18}
}

func (x *Client) GetID() uint32 {
	if x != nil {
		return x.ID
	}
	return 0
}

func (x *Client) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Client) GetOnline() bool {
	if x != nil {
		return x.Online
	}
	return false
}

func (x *Client) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

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

	Clients []*Client `protobuf:"bytes,1,rep,name=clients,proto3" json:"clients,omitempty"`
}

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

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

func (*Clients) ProtoMessage() {}

func (x *Clients) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Clients.ProtoReflect.Descriptor instead.
func (*Clients) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{19}
}

func (x *Clients) GetClients() []*Client {
	if x != nil {
		return x.Clients
	}
	return nil
}

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

	Type      string           `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	Op        string           `protobuf:"bytes,2,opt,name=op,proto3" json:"op,omitempty"`
	Formatted string           `protobuf:"bytes,4,opt,name=formatted,proto3" json:"formatted,omitempty"`
	Message   []byte           `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
	Err       string           `protobuf:"bytes,6,opt,name=err,proto3" json:"err,omitempty"` // Can't trigger normal gRPC error
	Callee    string           `protobuf:"bytes,7,opt,name=callee,proto3" json:"callee,omitempty"`
	Session   *Session         `protobuf:"bytes,10,opt,name=session,proto3" json:"session,omitempty"`
	Job       *Job             `protobuf:"bytes,11,opt,name=job,proto3" json:"job,omitempty"`
	Client    *Client          `protobuf:"bytes,12,opt,name=client,proto3" json:"client,omitempty"`
	Task      *Task            `protobuf:"bytes,13,opt,name=task,proto3" json:"task,omitempty"`
	Spite     *implantpb.Spite `protobuf:"bytes,14,opt,name=spite,proto3" json:"spite,omitempty"`
}

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

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

func (*Event) ProtoMessage() {}

func (x *Event) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Event.ProtoReflect.Descriptor instead.
func (*Event) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{20}
}

func (x *Event) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *Event) GetOp() string {
	if x != nil {
		return x.Op
	}
	return ""
}

func (x *Event) GetFormatted() string {
	if x != nil {
		return x.Formatted
	}
	return ""
}

func (x *Event) GetMessage() []byte {
	if x != nil {
		return x.Message
	}
	return nil
}

func (x *Event) GetErr() string {
	if x != nil {
		return x.Err
	}
	return ""
}

func (x *Event) GetCallee() string {
	if x != nil {
		return x.Callee
	}
	return ""
}

func (x *Event) GetSession() *Session {
	if x != nil {
		return x.Session
	}
	return nil
}

func (x *Event) GetJob() *Job {
	if x != nil {
		return x.Job
	}
	return nil
}

func (x *Event) GetClient() *Client {
	if x != nil {
		return x.Client
	}
	return nil
}

func (x *Event) GetTask() *Task {
	if x != nil {
		return x.Task
	}
	return nil
}

func (x *Event) GetSpite() *implantpb.Spite {
	if x != nil {
		return x.Spite
	}
	return nil
}

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

	Events []*Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"`
}

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

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

func (*Events) ProtoMessage() {}

func (x *Events) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Events.ProtoReflect.Descriptor instead.
func (*Events) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{21}
}

func (x *Events) GetEvents() []*Event {
	if x != nil {
		return x.Events
	}
	return nil
}

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

	Id          int32  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	EventType   string `protobuf:"bytes,2,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"`
	EventOp     string `protobuf:"bytes,3,opt,name=event_op,json=eventOp,proto3" json:"event_op,omitempty"`
	MessageName string `protobuf:"bytes,4,opt,name=message_name,json=messageName,proto3" json:"message_name,omitempty"`
	SessionId   string `protobuf:"bytes,5,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	TaskId      string `protobuf:"bytes,6,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	PipelineId  string `protobuf:"bytes,7,opt,name=pipeline_id,json=pipelineId,proto3" json:"pipeline_id,omitempty"`
	ListenerId  string `protobuf:"bytes,8,opt,name=listener_id,json=listenerId,proto3" json:"listener_id,omitempty"`
}

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

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

func (*On) ProtoMessage() {}

func (x *On) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 On.ProtoReflect.Descriptor instead.
func (*On) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{22}
}

func (x *On) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *On) GetEventType() string {
	if x != nil {
		return x.EventType
	}
	return ""
}

func (x *On) GetEventOp() string {
	if x != nil {
		return x.EventOp
	}
	return ""
}

func (x *On) GetMessageName() string {
	if x != nil {
		return x.MessageName
	}
	return ""
}

func (x *On) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *On) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

func (x *On) GetPipelineId() string {
	if x != nil {
		return x.PipelineId
	}
	return ""
}

func (x *On) GetListenerId() string {
	if x != nil {
		return x.ListenerId
	}
	return ""
}

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

	Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
	Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
}

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

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

func (*LoginReq) ProtoMessage() {}

func (x *LoginReq) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 LoginReq.ProtoReflect.Descriptor instead.
func (*LoginReq) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{23}
}

func (x *LoginReq) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

func (x *LoginReq) GetPort() uint32 {
	if x != nil {
		return x.Port
	}
	return 0
}

func (x *LoginReq) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

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

	ContextId string `protobuf:"bytes,1,opt,name=context_id,json=contextId,proto3" json:"context_id,omitempty"`
	TaskId    string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
}

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

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

func (*Sync) ProtoMessage() {}

func (x *Sync) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Sync.ProtoReflect.Descriptor instead.
func (*Sync) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{24}
}

func (x *Sync) GetContextId() string {
	if x != nil {
		return x.ContextId
	}
	return ""
}

func (x *Sync) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

	Name    string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Content []byte `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"`
}

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

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

func (*SyncResp) ProtoMessage() {}

func (x *SyncResp) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 SyncResp.ProtoReflect.Descriptor instead.
func (*SyncResp) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{25}
}

func (x *SyncResp) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *SyncResp) GetContent() []byte {
	if x != nil {
		return x.Content
	}
	return nil
}

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

	Task    *Task            `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"`
	Session *Session         `protobuf:"bytes,2,opt,name=session,proto3" json:"session,omitempty"`
	Spite   *implantpb.Spite `protobuf:"bytes,3,opt,name=spite,proto3" json:"spite,omitempty"`
}

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

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

func (*TaskContext) ProtoMessage() {}

func (x *TaskContext) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 TaskContext.ProtoReflect.Descriptor instead.
func (*TaskContext) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{26}
}

func (x *TaskContext) GetTask() *Task {
	if x != nil {
		return x.Task
	}
	return nil
}

func (x *TaskContext) GetSession() *Session {
	if x != nil {
		return x.Session
	}
	return nil
}

func (x *TaskContext) GetSpite() *implantpb.Spite {
	if x != nil {
		return x.Spite
	}
	return nil
}

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

	Task    *Task              `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"`
	Session *Session           `protobuf:"bytes,2,opt,name=session,proto3" json:"session,omitempty"`
	Spites  []*implantpb.Spite `protobuf:"bytes,3,rep,name=spites,proto3" json:"spites,omitempty"`
}

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

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

func (*TaskContexts) ProtoMessage() {}

func (x *TaskContexts) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 TaskContexts.ProtoReflect.Descriptor instead.
func (*TaskContexts) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{27}
}

func (x *TaskContexts) GetTask() *Task {
	if x != nil {
		return x.Task
	}
	return nil
}

func (x *TaskContexts) GetSession() *Session {
	if x != nil {
		return x.Session
	}
	return nil
}

func (x *TaskContexts) GetSpites() []*implantpb.Spite {
	if x != nil {
		return x.Spites
	}
	return nil
}

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

	Contexts []*TaskContext `protobuf:"bytes,1,rep,name=contexts,proto3" json:"contexts,omitempty"`
}

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

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

func (*TasksContext) ProtoMessage() {}

func (x *TasksContext) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 TasksContext.ProtoReflect.Descriptor instead.
func (*TasksContext) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{28}
}

func (x *TasksContext) GetContexts() []*TaskContext {
	if x != nil {
		return x.Contexts
	}
	return nil
}

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

	TaskId      uint32 `protobuf:"varint,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	SessionId   string `protobuf:"bytes,2,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	Type        string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
	Status      int32  `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"`
	Cur         int32  `protobuf:"varint,5,opt,name=cur,proto3" json:"cur,omitempty"`
	Total       int32  `protobuf:"varint,6,opt,name=total,proto3" json:"total,omitempty"`
	Error       string `protobuf:"bytes,7,opt,name=error,proto3" json:"error,omitempty"`
	Need        int32  `protobuf:"varint,8,opt,name=need,proto3" json:"need,omitempty"`
	Description string `protobuf:"bytes,9,opt,name=description,proto3" json:"description,omitempty"`
	Callby      string `protobuf:"bytes,10,opt,name=callby,proto3" json:"callby,omitempty"`
	Finished    bool   `protobuf:"varint,11,opt,name=finished,proto3" json:"finished,omitempty"`
	Timeout     bool   `protobuf:"varint,12,opt,name=timeout,proto3" json:"timeout,omitempty"`
}

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

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

func (*Task) ProtoMessage() {}

func (x *Task) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Task.ProtoReflect.Descriptor instead.
func (*Task) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{29}
}

func (x *Task) GetTaskId() uint32 {
	if x != nil {
		return x.TaskId
	}
	return 0
}

func (x *Task) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *Task) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *Task) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *Task) GetCur() int32 {
	if x != nil {
		return x.Cur
	}
	return 0
}

func (x *Task) GetTotal() int32 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *Task) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *Task) GetNeed() int32 {
	if x != nil {
		return x.Need
	}
	return 0
}

func (x *Task) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *Task) GetCallby() string {
	if x != nil {
		return x.Callby
	}
	return ""
}

func (x *Task) GetFinished() bool {
	if x != nil {
		return x.Finished
	}
	return false
}

func (x *Task) GetTimeout() bool {
	if x != nil {
		return x.Timeout
	}
	return false
}

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

	Tasks []*Task `protobuf:"bytes,1,rep,name=tasks,proto3" json:"tasks,omitempty"`
}

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

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

func (*Tasks) ProtoMessage() {}

func (x *Tasks) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Tasks.ProtoReflect.Descriptor instead.
func (*Tasks) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{30}
}

func (x *Tasks) GetTasks() []*Task {
	if x != nil {
		return x.Tasks
	}
	return nil
}

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

	Tasks []*TaskDesc `protobuf:"bytes,1,rep,name=tasks,proto3" json:"tasks,omitempty"`
}

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

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

func (*TaskDescs) ProtoMessage() {}

func (x *TaskDescs) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 TaskDescs.ProtoReflect.Descriptor instead.
func (*TaskDescs) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{31}
}

func (x *TaskDescs) GetTasks() []*TaskDesc {
	if x != nil {
		return x.Tasks
	}
	return nil
}

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

	TaskId    uint32 `protobuf:"varint,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	Name      string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Local     string `protobuf:"bytes,3,opt,name=local,proto3" json:"local,omitempty"`       // client
	Checksum  string `protobuf:"bytes,4,opt,name=checksum,proto3" json:"checksum,omitempty"` // server
	Remote    string `protobuf:"bytes,5,opt,name=remote,proto3" json:"remote,omitempty"`     // implant
	Op        string `protobuf:"bytes,6,opt,name=op,proto3" json:"op,omitempty"`
	SessionId string `protobuf:"bytes,7,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
}

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

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

func (*File) ProtoMessage() {}

func (x *File) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 File.ProtoReflect.Descriptor instead.
func (*File) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{32}
}

func (x *File) GetTaskId() uint32 {
	if x != nil {
		return x.TaskId
	}
	return 0
}

func (x *File) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *File) GetLocal() string {
	if x != nil {
		return x.Local
	}
	return ""
}

func (x *File) GetChecksum() string {
	if x != nil {
		return x.Checksum
	}
	return ""
}

func (x *File) GetRemote() string {
	if x != nil {
		return x.Remote
	}
	return ""
}

func (x *File) GetOp() string {
	if x != nil {
		return x.Op
	}
	return ""
}

func (x *File) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

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

	Files []*File `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"`
}

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

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

func (*Files) ProtoMessage() {}

func (x *Files) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Files.ProtoReflect.Descriptor instead.
func (*Files) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{33}
}

func (x *Files) GetFiles() []*File {
	if x != nil {
		return x.Files
	}
	return nil
}

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

	TaskId      uint32 `protobuf:"varint,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	Cur         int32  `protobuf:"varint,2,opt,name=cur,proto3" json:"cur,omitempty"`
	Total       int32  `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"`
	Type        string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"`
	Status      int32  `protobuf:"varint,5,opt,name=status,proto3" json:"status,omitempty"`
	Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
}

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

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

func (*TaskDesc) ProtoMessage() {}

func (x *TaskDesc) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 TaskDesc.ProtoReflect.Descriptor instead.
func (*TaskDesc) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{34}
}

func (x *TaskDesc) GetTaskId() uint32 {
	if x != nil {
		return x.TaskId
	}
	return 0
}

func (x *TaskDesc) GetCur() int32 {
	if x != nil {
		return x.Cur
	}
	return 0
}

func (x *TaskDesc) GetTotal() int32 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *TaskDesc) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *TaskDesc) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *TaskDesc) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

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

	Plugins []*Plugin `protobuf:"bytes,1,rep,name=plugins,proto3" json:"plugins,omitempty"`
}

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

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

func (*Plugins) ProtoMessage() {}

func (x *Plugins) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Plugins.ProtoReflect.Descriptor instead.
func (*Plugins) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{35}
}

func (x *Plugins) GetPlugins() []*Plugin {
	if x != nil {
		return x.Plugins
	}
	return nil
}

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

	Name    string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Content []byte `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"`
}

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

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

func (*Plugin) ProtoMessage() {}

func (x *Plugin) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_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 Plugin.ProtoReflect.Descriptor instead.
func (*Plugin) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{36}
}

func (x *Plugin) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Plugin) GetContent() []byte {
	if x != nil {
		return x.Content
	}
	return nil
}

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

	Bin    []byte `protobuf:"bytes,1,opt,name=bin,proto3" json:"bin,omitempty"`
	Type   string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` // donut
	Arch   string `protobuf:"bytes,3,opt,name=arch,proto3" json:"arch,omitempty"` // x86 or x64
	Params string `protobuf:"bytes,4,opt,name=params,proto3" json:"params,omitempty"`
}

func (x *EXE2Shellcode) Reset() {
	*x = EXE2Shellcode{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*EXE2Shellcode) ProtoMessage() {}

func (x *EXE2Shellcode) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[37]
	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 EXE2Shellcode.ProtoReflect.Descriptor instead.
func (*EXE2Shellcode) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{37}
}

func (x *EXE2Shellcode) GetBin() []byte {
	if x != nil {
		return x.Bin
	}
	return nil
}

func (x *EXE2Shellcode) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *EXE2Shellcode) GetArch() string {
	if x != nil {
		return x.Arch
	}
	return ""
}

func (x *EXE2Shellcode) GetParams() string {
	if x != nil {
		return x.Params
	}
	return ""
}

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

	Bin        []byte `protobuf:"bytes,1,opt,name=bin,proto3" json:"bin,omitempty"`
	Type       string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` // donut
	Arch       string `protobuf:"bytes,3,opt,name=arch,proto3" json:"arch,omitempty"` // x86 or x64
	Params     string `protobuf:"bytes,4,opt,name=params,proto3" json:"params,omitempty"`
	Entrypoint string `protobuf:"bytes,5,opt,name=entrypoint,proto3" json:"entrypoint,omitempty"`
}

func (x *DLL2Shellcode) Reset() {
	*x = DLL2Shellcode{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DLL2Shellcode) ProtoMessage() {}

func (x *DLL2Shellcode) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[38]
	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 DLL2Shellcode.ProtoReflect.Descriptor instead.
func (*DLL2Shellcode) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{38}
}

func (x *DLL2Shellcode) GetBin() []byte {
	if x != nil {
		return x.Bin
	}
	return nil
}

func (x *DLL2Shellcode) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *DLL2Shellcode) GetArch() string {
	if x != nil {
		return x.Arch
	}
	return ""
}

func (x *DLL2Shellcode) GetParams() string {
	if x != nil {
		return x.Params
	}
	return ""
}

func (x *DLL2Shellcode) GetEntrypoint() string {
	if x != nil {
		return x.Entrypoint
	}
	return ""
}

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

	Shellcode  []byte `protobuf:"bytes,1,opt,name=shellcode,proto3" json:"shellcode,omitempty"`
	Type       string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` // sgn
	Arch       string `protobuf:"bytes,3,opt,name=arch,proto3" json:"arch,omitempty"` // x86 or x64
	Iterations int32  `protobuf:"varint,4,opt,name=iterations,proto3" json:"iterations,omitempty"`
}

func (x *ShellcodeEncode) Reset() {
	*x = ShellcodeEncode{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ShellcodeEncode) ProtoMessage() {}

func (x *ShellcodeEncode) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[39]
	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 ShellcodeEncode.ProtoReflect.Descriptor instead.
func (*ShellcodeEncode) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{39}
}

func (x *ShellcodeEncode) GetShellcode() []byte {
	if x != nil {
		return x.Shellcode
	}
	return nil
}

func (x *ShellcodeEncode) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *ShellcodeEncode) GetArch() string {
	if x != nil {
		return x.Arch
	}
	return ""
}

func (x *ShellcodeEncode) GetIterations() int32 {
	if x != nil {
		return x.Iterations
	}
	return 0
}

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

	Bin []byte `protobuf:"bytes,1,opt,name=Bin,proto3" json:"Bin,omitempty"`
}

func (x *Bin) Reset() {
	*x = Bin{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Bin) ProtoMessage() {}

func (x *Bin) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[40]
	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 Bin.ProtoReflect.Descriptor instead.
func (*Bin) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{40}
}

func (x *Bin) GetBin() []byte {
	if x != nil {
		return x.Bin
	}
	return nil
}

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

	Id           uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Bin          []byte `protobuf:"bytes,2,opt,name=bin,proto3" json:"bin,omitempty"`
	Name         string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	Type         string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"`
	Target       string `protobuf:"bytes,5,opt,name=target,proto3" json:"target,omitempty"`
	Arch         string `protobuf:"bytes,6,opt,name=arch,proto3" json:"arch,omitempty"`
	Platform     string `protobuf:"bytes,7,opt,name=platform,proto3" json:"platform,omitempty"`
	Profile      string `protobuf:"bytes,8,opt,name=profile,proto3" json:"profile,omitempty"`
	Pipeline     string `protobuf:"bytes,9,opt,name=pipeline,proto3" json:"pipeline,omitempty"`
	Format       string `protobuf:"bytes,10,opt,name=format,proto3" json:"format,omitempty"`
	CreatedAt    int64  `protobuf:"varint,11,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	Status       string `protobuf:"bytes,12,opt,name=status,proto3" json:"status,omitempty"`
	Conclusion   string `protobuf:"bytes,13,opt,name=conclusion,proto3" json:"conclusion,omitempty"`
	ProfileBytes []byte `protobuf:"bytes,14,opt,name=profile_bytes,json=profileBytes,proto3" json:"profile_bytes,omitempty"`
	ParamsBytes  []byte `protobuf:"bytes,15,opt,name=params_bytes,json=paramsBytes,proto3" json:"params_bytes,omitempty"`
	Source       string `protobuf:"bytes,16,opt,name=source,proto3" json:"source,omitempty"`
	Log          []byte `protobuf:"bytes,17,opt,name=log,proto3" json:"log,omitempty"`
	LogNum       uint32 `protobuf:"varint,18,opt,name=log_num,json=logNum,proto3" json:"log_num,omitempty"`
	Rdi          string `protobuf:"bytes,19,opt,name=rdi,proto3" json:"rdi,omitempty"`
}

func (x *Artifact) Reset() {
	*x = Artifact{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[41]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Artifact) ProtoMessage() {}

func (x *Artifact) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[41]
	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 Artifact.ProtoReflect.Descriptor instead.
func (*Artifact) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{41}
}

func (x *Artifact) GetId() uint32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *Artifact) GetBin() []byte {
	if x != nil {
		return x.Bin
	}
	return nil
}

func (x *Artifact) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Artifact) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *Artifact) GetTarget() string {
	if x != nil {
		return x.Target
	}
	return ""
}

func (x *Artifact) GetArch() string {
	if x != nil {
		return x.Arch
	}
	return ""
}

func (x *Artifact) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *Artifact) GetProfile() string {
	if x != nil {
		return x.Profile
	}
	return ""
}

func (x *Artifact) GetPipeline() string {
	if x != nil {
		return x.Pipeline
	}
	return ""
}

func (x *Artifact) GetFormat() string {
	if x != nil {
		return x.Format
	}
	return ""
}

func (x *Artifact) GetCreatedAt() int64 {
	if x != nil {
		return x.CreatedAt
	}
	return 0
}

func (x *Artifact) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *Artifact) GetConclusion() string {
	if x != nil {
		return x.Conclusion
	}
	return ""
}

func (x *Artifact) GetProfileBytes() []byte {
	if x != nil {
		return x.ProfileBytes
	}
	return nil
}

func (x *Artifact) GetParamsBytes() []byte {
	if x != nil {
		return x.ParamsBytes
	}
	return nil
}

func (x *Artifact) GetSource() string {
	if x != nil {
		return x.Source
	}
	return ""
}

func (x *Artifact) GetLog() []byte {
	if x != nil {
		return x.Log
	}
	return nil
}

func (x *Artifact) GetLogNum() uint32 {
	if x != nil {
		return x.LogNum
	}
	return 0
}

func (x *Artifact) GetRdi() string {
	if x != nil {
		return x.Rdi
	}
	return ""
}

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

	Artifacts []*Artifact `protobuf:"bytes,1,rep,name=artifacts,proto3" json:"artifacts,omitempty"`
}

func (x *Artifacts) Reset() {
	*x = Artifacts{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[42]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Artifacts) ProtoMessage() {}

func (x *Artifacts) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[42]
	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 Artifacts.ProtoReflect.Descriptor instead.
func (*Artifacts) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{42}
}

func (x *Artifacts) GetArtifacts() []*Artifact {
	if x != nil {
		return x.Artifacts
	}
	return nil
}

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

	Name       string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Target     string `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"`
	Proxy      string `protobuf:"bytes,4,opt,name=proxy,proto3" json:"proxy,omitempty"`
	Params     string `protobuf:"bytes,8,opt,name=params,proto3" json:"params,omitempty"`
	PipelineId string `protobuf:"bytes,9,opt,name=pipeline_id,json=pipelineId,proto3" json:"pipeline_id,omitempty"`
	Content    []byte `protobuf:"bytes,11,opt,name=content,proto3" json:"content,omitempty"`
	CreatedAt  int64  `protobuf:"varint,12,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
}

func (x *Profile) Reset() {
	*x = Profile{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[43]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Profile) ProtoMessage() {}

func (x *Profile) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[43]
	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 Profile.ProtoReflect.Descriptor instead.
func (*Profile) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{43}
}

func (x *Profile) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Profile) GetTarget() string {
	if x != nil {
		return x.Target
	}
	return ""
}

func (x *Profile) GetProxy() string {
	if x != nil {
		return x.Proxy
	}
	return ""
}

func (x *Profile) GetParams() string {
	if x != nil {
		return x.Params
	}
	return ""
}

func (x *Profile) GetPipelineId() string {
	if x != nil {
		return x.PipelineId
	}
	return ""
}

func (x *Profile) GetContent() []byte {
	if x != nil {
		return x.Content
	}
	return nil
}

func (x *Profile) GetCreatedAt() int64 {
	if x != nil {
		return x.CreatedAt
	}
	return 0
}

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

	Profiles []*Profile `protobuf:"bytes,1,rep,name=profiles,proto3" json:"profiles,omitempty"`
}

func (x *Profiles) Reset() {
	*x = Profiles{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[44]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Profiles) ProtoMessage() {}

func (x *Profiles) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[44]
	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 Profiles.ProtoReflect.Descriptor instead.
func (*Profiles) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{44}
}

func (x *Profiles) GetProfiles() []*Profile {
	if x != nil {
		return x.Profiles
	}
	return nil
}

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

	SessionId    string              `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	PipelineId   string              `protobuf:"bytes,2,opt,name=pipeline_id,json=pipelineId,proto3" json:"pipeline_id,omitempty"`
	ListenerId   string              `protobuf:"bytes,3,opt,name=listener_id,json=listenerId,proto3" json:"listener_id,omitempty"`
	Target       string              `protobuf:"bytes,4,opt,name=target,proto3" json:"target,omitempty"`
	RawId        uint32              `protobuf:"varint,5,opt,name=raw_id,json=rawId,proto3" json:"raw_id,omitempty"`
	Type         string              `protobuf:"bytes,6,opt,name=type,proto3" json:"type,omitempty"`
	RegisterData *implantpb.Register `protobuf:"bytes,7,opt,name=register_data,json=registerData,proto3" json:"register_data,omitempty"`
}

func (x *RegisterSession) Reset() {
	*x = RegisterSession{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[45]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RegisterSession) ProtoMessage() {}

func (x *RegisterSession) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[45]
	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 RegisterSession.ProtoReflect.Descriptor instead.
func (*RegisterSession) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{45}
}

func (x *RegisterSession) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *RegisterSession) GetPipelineId() string {
	if x != nil {
		return x.PipelineId
	}
	return ""
}

func (x *RegisterSession) GetListenerId() string {
	if x != nil {
		return x.ListenerId
	}
	return ""
}

func (x *RegisterSession) GetTarget() string {
	if x != nil {
		return x.Target
	}
	return ""
}

func (x *RegisterSession) GetRawId() uint32 {
	if x != nil {
		return x.RawId
	}
	return 0
}

func (x *RegisterSession) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *RegisterSession) GetRegisterData() *implantpb.Register {
	if x != nil {
		return x.RegisterData
	}
	return nil
}

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

	Id        string     `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Host      string     `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"`
	Name      string     `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	Addr      string     `protobuf:"bytes,4,opt,name=addr,proto3" json:"addr,omitempty"`
	Pipelines *Pipelines `protobuf:"bytes,5,opt,name=pipelines,proto3" json:"pipelines,omitempty"`
}

func (x *RegisterListener) Reset() {
	*x = RegisterListener{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[46]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RegisterListener) ProtoMessage() {}

func (x *RegisterListener) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[46]
	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 RegisterListener.ProtoReflect.Descriptor instead.
func (*RegisterListener) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{46}
}

func (x *RegisterListener) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *RegisterListener) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

func (x *RegisterListener) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *RegisterListener) GetAddr() string {
	if x != nil {
		return x.Addr
	}
	return ""
}

func (x *RegisterListener) GetPipelines() *Pipelines {
	if x != nil {
		return x.Pipelines
	}
	return nil
}

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

	ListenerId string           `protobuf:"bytes,1,opt,name=listener_id,json=listenerId,proto3" json:"listener_id,omitempty"`
	Session    *Session         `protobuf:"bytes,2,opt,name=session,proto3" json:"session,omitempty"`
	Task       *Task            `protobuf:"bytes,3,opt,name=task,proto3" json:"task,omitempty"`
	Spite      *implantpb.Spite `protobuf:"bytes,4,opt,name=spite,proto3" json:"spite,omitempty"`
}

func (x *SpiteRequest) Reset() {
	*x = SpiteRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[47]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SpiteRequest) ProtoMessage() {}

func (x *SpiteRequest) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[47]
	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 SpiteRequest.ProtoReflect.Descriptor instead.
func (*SpiteRequest) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{47}
}

func (x *SpiteRequest) GetListenerId() string {
	if x != nil {
		return x.ListenerId
	}
	return ""
}

func (x *SpiteRequest) GetSession() *Session {
	if x != nil {
		return x.Session
	}
	return nil
}

func (x *SpiteRequest) GetTask() *Task {
	if x != nil {
		return x.Task
	}
	return nil
}

func (x *SpiteRequest) GetSpite() *implantpb.Spite {
	if x != nil {
		return x.Spite
	}
	return nil
}

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

	ListenerId string           `protobuf:"bytes,1,opt,name=listener_id,json=listenerId,proto3" json:"listener_id,omitempty"`
	SessionId  string           `protobuf:"bytes,2,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	TaskId     uint32           `protobuf:"varint,3,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	Spite      *implantpb.Spite `protobuf:"bytes,4,opt,name=spite,proto3" json:"spite,omitempty"`
}

func (x *SpiteResponse) Reset() {
	*x = SpiteResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[48]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SpiteResponse) ProtoMessage() {}

func (x *SpiteResponse) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[48]
	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 SpiteResponse.ProtoReflect.Descriptor instead.
func (*SpiteResponse) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{48}
}

func (x *SpiteResponse) GetListenerId() string {
	if x != nil {
		return x.ListenerId
	}
	return ""
}

func (x *SpiteResponse) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *SpiteResponse) GetTaskId() uint32 {
	if x != nil {
		return x.TaskId
	}
	return 0
}

func (x *SpiteResponse) GetSpite() *implantpb.Spite {
	if x != nil {
		return x.Spite
	}
	return nil
}

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

	Pipelines []*Pipeline `protobuf:"bytes,1,rep,name=pipelines,proto3" json:"pipelines,omitempty"`
}

func (x *Pipelines) Reset() {
	*x = Pipelines{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[49]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Pipelines) ProtoMessage() {}

func (x *Pipelines) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[49]
	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 Pipelines.ProtoReflect.Descriptor instead.
func (*Pipelines) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{49}
}

func (x *Pipelines) GetPipelines() []*Pipeline {
	if x != nil {
		return x.Pipelines
	}
	return nil
}

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

	Name       string        `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Enable     bool          `protobuf:"varint,2,opt,name=enable,proto3" json:"enable,omitempty"`
	Type       string        `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
	ListenerId string        `protobuf:"bytes,4,opt,name=listener_id,json=listenerId,proto3" json:"listener_id,omitempty"`
	Parser     string        `protobuf:"bytes,5,opt,name=parser,proto3" json:"parser,omitempty"`
	Tls        *TLS          `protobuf:"bytes,8,opt,name=tls,proto3" json:"tls,omitempty"`
	Encryption []*Encryption `protobuf:"bytes,9,rep,name=encryption,proto3" json:"encryption,omitempty"`
	Ip         string        `protobuf:"bytes,10,opt,name=ip,proto3" json:"ip,omitempty"`
	CertName   string        `protobuf:"bytes,11,opt,name=cert_name,json=certName,proto3" json:"cert_name,omitempty"`
	Secure     *Secure       `protobuf:"bytes,12,opt,name=secure,proto3" json:"secure,omitempty"` // Age 安全配置
	// Types that are assignable to Body:
	//
	//	*Pipeline_Tcp
	//	*Pipeline_Bind
	//	*Pipeline_Rem
	//	*Pipeline_Web
	//	*Pipeline_Http
	Body isPipeline_Body `protobuf_oneof:"body"`
}

func (x *Pipeline) Reset() {
	*x = Pipeline{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[50]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Pipeline) ProtoMessage() {}

func (x *Pipeline) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[50]
	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 Pipeline.ProtoReflect.Descriptor instead.
func (*Pipeline) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{50}
}

func (x *Pipeline) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Pipeline) GetEnable() bool {
	if x != nil {
		return x.Enable
	}
	return false
}

func (x *Pipeline) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *Pipeline) GetListenerId() string {
	if x != nil {
		return x.ListenerId
	}
	return ""
}

func (x *Pipeline) GetParser() string {
	if x != nil {
		return x.Parser
	}
	return ""
}

func (x *Pipeline) GetTls() *TLS {
	if x != nil {
		return x.Tls
	}
	return nil
}

func (x *Pipeline) GetEncryption() []*Encryption {
	if x != nil {
		return x.Encryption
	}
	return nil
}

func (x *Pipeline) GetIp() string {
	if x != nil {
		return x.Ip
	}
	return ""
}

func (x *Pipeline) GetCertName() string {
	if x != nil {
		return x.CertName
	}
	return ""
}

func (x *Pipeline) GetSecure() *Secure {
	if x != nil {
		return x.Secure
	}
	return nil
}

func (m *Pipeline) GetBody() isPipeline_Body {
	if m != nil {
		return m.Body
	}
	return nil
}

func (x *Pipeline) GetTcp() *TCPPipeline {
	if x, ok := x.GetBody().(*Pipeline_Tcp); ok {
		return x.Tcp
	}
	return nil
}

func (x *Pipeline) GetBind() *BindPipeline {
	if x, ok := x.GetBody().(*Pipeline_Bind); ok {
		return x.Bind
	}
	return nil
}

func (x *Pipeline) GetRem() *REM {
	if x, ok := x.GetBody().(*Pipeline_Rem); ok {
		return x.Rem
	}
	return nil
}

func (x *Pipeline) GetWeb() *Website {
	if x, ok := x.GetBody().(*Pipeline_Web); ok {
		return x.Web
	}
	return nil
}

func (x *Pipeline) GetHttp() *HTTPPipeline {
	if x, ok := x.GetBody().(*Pipeline_Http); ok {
		return x.Http
	}
	return nil
}

type isPipeline_Body interface {
	isPipeline_Body()
}

type Pipeline_Tcp struct {
	Tcp *TCPPipeline `protobuf:"bytes,20,opt,name=tcp,proto3,oneof"`
}

type Pipeline_Bind struct {
	Bind *BindPipeline `protobuf:"bytes,21,opt,name=bind,proto3,oneof"`
}

type Pipeline_Rem struct {
	Rem *REM `protobuf:"bytes,22,opt,name=rem,proto3,oneof"`
}

type Pipeline_Web struct {
	Web *Website `protobuf:"bytes,23,opt,name=web,proto3,oneof"`
}

type Pipeline_Http struct {
	Http *HTTPPipeline `protobuf:"bytes,24,opt,name=http,proto3,oneof"`
}

func (*Pipeline_Tcp) isPipeline_Body() {}

func (*Pipeline_Bind) isPipeline_Body() {}

func (*Pipeline_Rem) isPipeline_Body() {}

func (*Pipeline_Web) isPipeline_Body() {}

func (*Pipeline_Http) isPipeline_Body() {}

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

	ListenerId string    `protobuf:"bytes,1,opt,name=listener_id,json=listenerId,proto3" json:"listener_id,omitempty"`
	Name       string    `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Pipeline   *Pipeline `protobuf:"bytes,5,opt,name=pipeline,proto3" json:"pipeline,omitempty"`
	CertName   string    `protobuf:"bytes,6,opt,name=cert_name,json=certName,proto3" json:"cert_name,omitempty"`
}

func (x *CtrlPipeline) Reset() {
	*x = CtrlPipeline{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[51]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CtrlPipeline) ProtoMessage() {}

func (x *CtrlPipeline) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[51]
	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 CtrlPipeline.ProtoReflect.Descriptor instead.
func (*CtrlPipeline) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{51}
}

func (x *CtrlPipeline) GetListenerId() string {
	if x != nil {
		return x.ListenerId
	}
	return ""
}

func (x *CtrlPipeline) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *CtrlPipeline) GetPipeline() *Pipeline {
	if x != nil {
		return x.Pipeline
	}
	return nil
}

func (x *CtrlPipeline) GetCertName() string {
	if x != nil {
		return x.CertName
	}
	return ""
}

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

	Cert        *Cert               `protobuf:"bytes,1,opt,name=cert,proto3" json:"cert,omitempty"`
	Ca          *Cert               `protobuf:"bytes,2,opt,name=ca,proto3" json:"ca,omitempty"`
	Enable      bool                `protobuf:"varint,4,opt,name=enable,proto3" json:"enable,omitempty"`
	Acme        bool                `protobuf:"varint,5,opt,name=acme,proto3" json:"acme,omitempty"`
	Domain      string              `protobuf:"bytes,6,opt,name=domain,proto3" json:"domain,omitempty"`
	CertSubject *CertificateSubject `protobuf:"bytes,7,opt,name=cert_subject,json=certSubject,proto3" json:"cert_subject,omitempty"`
}

func (x *TLS) Reset() {
	*x = TLS{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[52]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TLS) ProtoMessage() {}

func (x *TLS) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[52]
	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 TLS.ProtoReflect.Descriptor instead.
func (*TLS) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{52}
}

func (x *TLS) GetCert() *Cert {
	if x != nil {
		return x.Cert
	}
	return nil
}

func (x *TLS) GetCa() *Cert {
	if x != nil {
		return x.Ca
	}
	return nil
}

func (x *TLS) GetEnable() bool {
	if x != nil {
		return x.Enable
	}
	return false
}

func (x *TLS) GetAcme() bool {
	if x != nil {
		return x.Acme
	}
	return false
}

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

func (x *TLS) GetCertSubject() *CertificateSubject {
	if x != nil {
		return x.CertSubject
	}
	return nil
}

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

	Certs []*TLS `protobuf:"bytes,1,rep,name=certs,proto3" json:"certs,omitempty"`
}

func (x *Certs) Reset() {
	*x = Certs{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[53]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Certs) ProtoMessage() {}

func (x *Certs) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[53]
	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 Certs.ProtoReflect.Descriptor instead.
func (*Certs) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{53}
}

func (x *Certs) GetCerts() []*TLS {
	if x != nil {
		return x.Certs
	}
	return nil
}

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

	Cert string `protobuf:"bytes,1,opt,name=cert,proto3" json:"cert,omitempty"`
	Key  string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"`
}

func (x *Cert) Reset() {
	*x = Cert{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[54]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Cert) ProtoMessage() {}

func (x *Cert) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[54]
	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 Cert.ProtoReflect.Descriptor instead.
func (*Cert) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{54}
}

func (x *Cert) GetCert() string {
	if x != nil {
		return x.Cert
	}
	return ""
}

func (x *Cert) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *Cert) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Cert) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

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

	Cn       string `protobuf:"bytes,1,opt,name=cn,proto3" json:"cn,omitempty"`             // Common Name
	O        string `protobuf:"bytes,2,opt,name=o,proto3" json:"o,omitempty"`               // Organization
	C        string `protobuf:"bytes,3,opt,name=c,proto3" json:"c,omitempty"`               // Country
	L        string `protobuf:"bytes,4,opt,name=l,proto3" json:"l,omitempty"`               // Locality/City
	Ou       string `protobuf:"bytes,5,opt,name=ou,proto3" json:"ou,omitempty"`             // Organizational Unit
	St       string `protobuf:"bytes,6,opt,name=st,proto3" json:"st,omitempty"`             // State/Province
	Validity string `protobuf:"bytes,7,opt,name=validity,proto3" json:"validity,omitempty"` // Validity period in days
}

func (x *CertificateSubject) Reset() {
	*x = CertificateSubject{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[55]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CertificateSubject) ProtoMessage() {}

func (x *CertificateSubject) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[55]
	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 CertificateSubject.ProtoReflect.Descriptor instead.
func (*CertificateSubject) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{55}
}

func (x *CertificateSubject) GetCn() string {
	if x != nil {
		return x.Cn
	}
	return ""
}

func (x *CertificateSubject) GetO() string {
	if x != nil {
		return x.O
	}
	return ""
}

func (x *CertificateSubject) GetC() string {
	if x != nil {
		return x.C
	}
	return ""
}

func (x *CertificateSubject) GetL() string {
	if x != nil {
		return x.L
	}
	return ""
}

func (x *CertificateSubject) GetOu() string {
	if x != nil {
		return x.Ou
	}
	return ""
}

func (x *CertificateSubject) GetSt() string {
	if x != nil {
		return x.St
	}
	return ""
}

func (x *CertificateSubject) GetValidity() string {
	if x != nil {
		return x.Validity
	}
	return ""
}

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

	Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	Key  string `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
}

func (x *Encryption) Reset() {
	*x = Encryption{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[56]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Encryption) ProtoMessage() {}

func (x *Encryption) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[56]
	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 Encryption.ProtoReflect.Descriptor instead.
func (*Encryption) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{56}
}

func (x *Encryption) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *Encryption) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

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

	Name       string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	ListenerId string `protobuf:"bytes,2,opt,name=listener_id,json=listenerId,proto3" json:"listener_id,omitempty"`
}

func (x *BindPipeline) Reset() {
	*x = BindPipeline{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[57]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*BindPipeline) ProtoMessage() {}

func (x *BindPipeline) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[57]
	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 BindPipeline.ProtoReflect.Descriptor instead.
func (*BindPipeline) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{57}
}

func (x *BindPipeline) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *BindPipeline) GetListenerId() string {
	if x != nil {
		return x.ListenerId
	}
	return ""
}

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

	Name       string               `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	ListenerId string               `protobuf:"bytes,2,opt,name=listener_id,json=listenerId,proto3" json:"listener_id,omitempty"`
	Port       uint32               `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"`
	Host       string               `protobuf:"bytes,4,opt,name=host,proto3" json:"host,omitempty"`
	Console    string               `protobuf:"bytes,5,opt,name=console,proto3" json:"console,omitempty"`
	Link       string               `protobuf:"bytes,6,opt,name=link,proto3" json:"link,omitempty"`
	Subscribe  string               `protobuf:"bytes,7,opt,name=subscribe,proto3" json:"subscribe,omitempty"`
	Agents     map[string]*REMAgent `protobuf:"bytes,10,rep,name=agents,proto3" json:"agents,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *REM) Reset() {
	*x = REM{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[58]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*REM) ProtoMessage() {}

func (x *REM) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[58]
	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 REM.ProtoReflect.Descriptor instead.
func (*REM) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{58}
}

func (x *REM) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *REM) GetListenerId() string {
	if x != nil {
		return x.ListenerId
	}
	return ""
}

func (x *REM) GetPort() uint32 {
	if x != nil {
		return x.Port
	}
	return 0
}

func (x *REM) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

func (x *REM) GetConsole() string {
	if x != nil {
		return x.Console
	}
	return ""
}

func (x *REM) GetLink() string {
	if x != nil {
		return x.Link
	}
	return ""
}

func (x *REM) GetSubscribe() string {
	if x != nil {
		return x.Subscribe
	}
	return ""
}

func (x *REM) GetAgents() map[string]*REMAgent {
	if x != nil {
		return x.Agents
	}
	return nil
}

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

	Agents []*REMAgent `protobuf:"bytes,1,rep,name=agents,proto3" json:"agents,omitempty"`
}

func (x *REMAgents) Reset() {
	*x = REMAgents{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[59]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*REMAgents) ProtoMessage() {}

func (x *REMAgents) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[59]
	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 REMAgents.ProtoReflect.Descriptor instead.
func (*REMAgents) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{59}
}

func (x *REMAgents) GetAgents() []*REMAgent {
	if x != nil {
		return x.Agents
	}
	return nil
}

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

	PipelineId string   `protobuf:"bytes,1,opt,name=pipeline_id,json=pipelineId,proto3" json:"pipeline_id,omitempty"`
	Id         string   `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
	Mod        string   `protobuf:"bytes,3,opt,name=mod,proto3" json:"mod,omitempty"`
	Local      string   `protobuf:"bytes,4,opt,name=local,proto3" json:"local,omitempty"`
	Remote     string   `protobuf:"bytes,5,opt,name=remote,proto3" json:"remote,omitempty"`
	Enable     bool     `protobuf:"varint,6,opt,name=enable,proto3" json:"enable,omitempty"`
	Args       []string `protobuf:"bytes,7,rep,name=args,proto3" json:"args,omitempty"`
}

func (x *REMAgent) Reset() {
	*x = REMAgent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[60]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*REMAgent) ProtoMessage() {}

func (x *REMAgent) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[60]
	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 REMAgent.ProtoReflect.Descriptor instead.
func (*REMAgent) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{60}
}

func (x *REMAgent) GetPipelineId() string {
	if x != nil {
		return x.PipelineId
	}
	return ""
}

func (x *REMAgent) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *REMAgent) GetMod() string {
	if x != nil {
		return x.Mod
	}
	return ""
}

func (x *REMAgent) GetLocal() string {
	if x != nil {
		return x.Local
	}
	return ""
}

func (x *REMAgent) GetRemote() string {
	if x != nil {
		return x.Remote
	}
	return ""
}

func (x *REMAgent) GetEnable() bool {
	if x != nil {
		return x.Enable
	}
	return false
}

func (x *REMAgent) GetArgs() []string {
	if x != nil {
		return x.Args
	}
	return nil
}

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

	PipelineId string `protobuf:"bytes,1,opt,name=pipeline_id,json=pipelineId,proto3" json:"pipeline_id,omitempty"`
	AgentId    string `protobuf:"bytes,2,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"`
	Log        string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`
}

func (x *RemLog) Reset() {
	*x = RemLog{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[61]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RemLog) ProtoMessage() {}

func (x *RemLog) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[61]
	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 RemLog.ProtoReflect.Descriptor instead.
func (*RemLog) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{61}
}

func (x *RemLog) GetPipelineId() string {
	if x != nil {
		return x.PipelineId
	}
	return ""
}

func (x *RemLog) GetAgentId() string {
	if x != nil {
		return x.AgentId
	}
	return ""
}

func (x *RemLog) GetLog() string {
	if x != nil {
		return x.Log
	}
	return ""
}

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

	Name       string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	ListenerId string `protobuf:"bytes,2,opt,name=listener_id,json=listenerId,proto3" json:"listener_id,omitempty"`
	Port       uint32 `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"`
	Host       string `protobuf:"bytes,4,opt,name=host,proto3" json:"host,omitempty"`
	Proxy      string `protobuf:"bytes,5,opt,name=proxy,proto3" json:"proxy,omitempty"`
}

func (x *TCPPipeline) Reset() {
	*x = TCPPipeline{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[62]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TCPPipeline) ProtoMessage() {}

func (x *TCPPipeline) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[62]
	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 TCPPipeline.ProtoReflect.Descriptor instead.
func (*TCPPipeline) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{62}
}

func (x *TCPPipeline) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *TCPPipeline) GetListenerId() string {
	if x != nil {
		return x.ListenerId
	}
	return ""
}

func (x *TCPPipeline) GetPort() uint32 {
	if x != nil {
		return x.Port
	}
	return 0
}

func (x *TCPPipeline) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

func (x *TCPPipeline) GetProxy() string {
	if x != nil {
		return x.Proxy
	}
	return ""
}

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

	Name       string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	ListenerId string `protobuf:"bytes,2,opt,name=listener_id,json=listenerId,proto3" json:"listener_id,omitempty"`
	Port       uint32 `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"`
	Host       string `protobuf:"bytes,4,opt,name=host,proto3" json:"host,omitempty"`
	Params     string `protobuf:"bytes,5,opt,name=params,proto3" json:"params,omitempty"` // JSON serialized additional parameters
	Proxy      string `protobuf:"bytes,6,opt,name=proxy,proto3" json:"proxy,omitempty"`
}

func (x *HTTPPipeline) Reset() {
	*x = HTTPPipeline{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[63]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*HTTPPipeline) ProtoMessage() {}

func (x *HTTPPipeline) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[63]
	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 HTTPPipeline.ProtoReflect.Descriptor instead.
func (*HTTPPipeline) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{63}
}

func (x *HTTPPipeline) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *HTTPPipeline) GetListenerId() string {
	if x != nil {
		return x.ListenerId
	}
	return ""
}

func (x *HTTPPipeline) GetPort() uint32 {
	if x != nil {
		return x.Port
	}
	return 0
}

func (x *HTTPPipeline) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

func (x *HTTPPipeline) GetParams() string {
	if x != nil {
		return x.Params
	}
	return ""
}

func (x *HTTPPipeline) GetProxy() string {
	if x != nil {
		return x.Proxy
	}
	return ""
}

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

	Id          string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	WebsiteId   string `protobuf:"bytes,2,opt,name=website_id,json=websiteId,proto3" json:"website_id,omitempty"`
	File        string `protobuf:"bytes,3,opt,name=file,proto3" json:"file,omitempty"`
	Path        string `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"`
	Type        string `protobuf:"bytes,5,opt,name=type,proto3" json:"type,omitempty"`
	ContentType string `protobuf:"bytes,7,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"`
	Size        uint64 `protobuf:"varint,6,opt,name=size,proto3" json:"size,omitempty"`
	Url         string `protobuf:"bytes,8,opt,name=url,proto3" json:"url,omitempty"`
	Content     []byte `protobuf:"bytes,9,opt,name=content,proto3" json:"content,omitempty"`
	ListenerId  string `protobuf:"bytes,10,opt,name=listener_id,json=listenerId,proto3" json:"listener_id,omitempty"`
}

func (x *WebContent) Reset() {
	*x = WebContent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[64]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WebContent) ProtoMessage() {}

func (x *WebContent) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[64]
	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 WebContent.ProtoReflect.Descriptor instead.
func (*WebContent) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{64}
}

func (x *WebContent) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *WebContent) GetWebsiteId() string {
	if x != nil {
		return x.WebsiteId
	}
	return ""
}

func (x *WebContent) GetFile() string {
	if x != nil {
		return x.File
	}
	return ""
}

func (x *WebContent) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *WebContent) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *WebContent) GetContentType() string {
	if x != nil {
		return x.ContentType
	}
	return ""
}

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

func (x *WebContent) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *WebContent) GetContent() []byte {
	if x != nil {
		return x.Content
	}
	return nil
}

func (x *WebContent) GetListenerId() string {
	if x != nil {
		return x.ListenerId
	}
	return ""
}

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

	Name       string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	ListenerId string                 `protobuf:"bytes,2,opt,name=listener_id,json=listenerId,proto3" json:"listener_id,omitempty"`
	Port       uint32                 `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"`
	Root       string                 `protobuf:"bytes,4,opt,name=root,proto3" json:"root,omitempty"`
	Contents   map[string]*WebContent `protobuf:"bytes,6,rep,name=contents,proto3" json:"contents,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *Website) Reset() {
	*x = Website{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[65]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Website) ProtoMessage() {}

func (x *Website) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[65]
	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 Website.ProtoReflect.Descriptor instead.
func (*Website) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{65}
}

func (x *Website) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Website) GetListenerId() string {
	if x != nil {
		return x.ListenerId
	}
	return ""
}

func (x *Website) GetPort() uint32 {
	if x != nil {
		return x.Port
	}
	return 0
}

func (x *Website) GetRoot() string {
	if x != nil {
		return x.Root
	}
	return ""
}

func (x *Website) GetContents() map[string]*WebContent {
	if x != nil {
		return x.Contents
	}
	return nil
}

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

	Websites []*Website `protobuf:"bytes,1,rep,name=websites,proto3" json:"websites,omitempty"`
}

func (x *Websites) Reset() {
	*x = Websites{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[66]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Websites) ProtoMessage() {}

func (x *Websites) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[66]
	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 Websites.ProtoReflect.Descriptor instead.
func (*Websites) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{66}
}

func (x *Websites) GetWebsites() []*Website {
	if x != nil {
		return x.Websites
	}
	return nil
}

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

	Contents []*WebContent `protobuf:"bytes,1,rep,name=contents,proto3" json:"contents,omitempty"`
}

func (x *WebContents) Reset() {
	*x = WebContents{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[67]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*WebContents) ProtoMessage() {}

func (x *WebContents) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[67]
	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 WebContents.ProtoReflect.Descriptor instead.
func (*WebContents) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{67}
}

func (x *WebContents) GetContents() []*WebContent {
	if x != nil {
		return x.Contents
	}
	return nil
}

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

	Id        string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	SessionId string   `protobuf:"bytes,2,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	Interval  uint64   `protobuf:"varint,3,opt,name=interval,proto3" json:"interval,omitempty"`
	Tasks     []uint32 `protobuf:"varint,4,rep,packed,name=tasks,proto3" json:"tasks,omitempty"`
	Force     bool     `protobuf:"varint,5,opt,name=force,proto3" json:"force,omitempty"`
}

func (x *Polling) Reset() {
	*x = Polling{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[68]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Polling) ProtoMessage() {}

func (x *Polling) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[68]
	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 Polling.ProtoReflect.Descriptor instead.
func (*Polling) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{68}
}

func (x *Polling) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *Polling) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *Polling) GetInterval() uint64 {
	if x != nil {
		return x.Interval
	}
	return 0
}

func (x *Polling) GetTasks() []uint32 {
	if x != nil {
		return x.Tasks
	}
	return nil
}

func (x *Polling) GetForce() bool {
	if x != nil {
		return x.Force
	}
	return false
}

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

	BuildName     string          `protobuf:"bytes,1,opt,name=buildName,proto3" json:"buildName,omitempty"`
	BuildType     string          `protobuf:"bytes,2,opt,name=buildType,proto3" json:"buildType,omitempty"`
	Target        string          `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"`
	Source        string          `protobuf:"bytes,4,opt,name=source,proto3" json:"source,omitempty"`
	ProfileName   string          `protobuf:"bytes,5,opt,name=profileName,proto3" json:"profileName,omitempty"`
	ArtifactId    uint32          `protobuf:"varint,6,opt,name=artifact_id,json=artifactId,proto3" json:"artifact_id,omitempty"`
	MaleficConfig []byte          `protobuf:"bytes,7,opt,name=malefic_config,json=maleficConfig,proto3" json:"malefic_config,omitempty"`
	PreludeConfig []byte          `protobuf:"bytes,8,opt,name=prelude_config,json=preludeConfig,proto3" json:"prelude_config,omitempty"`
	Resources     *BuildResources `protobuf:"bytes,9,opt,name=resources,proto3" json:"resources,omitempty"`
	// Types that are assignable to SourceConfig:
	//
	//	*BuildConfig_Docker
	//	*BuildConfig_GithubAction
	//	*BuildConfig_Saas
	SourceConfig isBuildConfig_SourceConfig `protobuf_oneof:"source_config"`
}

func (x *BuildConfig) Reset() {
	*x = BuildConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[69]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*BuildConfig) ProtoMessage() {}

func (x *BuildConfig) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[69]
	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 BuildConfig.ProtoReflect.Descriptor instead.
func (*BuildConfig) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{69}
}

func (x *BuildConfig) GetBuildName() string {
	if x != nil {
		return x.BuildName
	}
	return ""
}

func (x *BuildConfig) GetBuildType() string {
	if x != nil {
		return x.BuildType
	}
	return ""
}

func (x *BuildConfig) GetTarget() string {
	if x != nil {
		return x.Target
	}
	return ""
}

func (x *BuildConfig) GetSource() string {
	if x != nil {
		return x.Source
	}
	return ""
}

func (x *BuildConfig) GetProfileName() string {
	if x != nil {
		return x.ProfileName
	}
	return ""
}

func (x *BuildConfig) GetArtifactId() uint32 {
	if x != nil {
		return x.ArtifactId
	}
	return 0
}

func (x *BuildConfig) GetMaleficConfig() []byte {
	if x != nil {
		return x.MaleficConfig
	}
	return nil
}

func (x *BuildConfig) GetPreludeConfig() []byte {
	if x != nil {
		return x.PreludeConfig
	}
	return nil
}

func (x *BuildConfig) GetResources() *BuildResources {
	if x != nil {
		return x.Resources
	}
	return nil
}

func (m *BuildConfig) GetSourceConfig() isBuildConfig_SourceConfig {
	if m != nil {
		return m.SourceConfig
	}
	return nil
}

func (x *BuildConfig) GetDocker() *DockerBuildConfig {
	if x, ok := x.GetSourceConfig().(*BuildConfig_Docker); ok {
		return x.Docker
	}
	return nil
}

func (x *BuildConfig) GetGithubAction() *GithubActionBuildConfig {
	if x, ok := x.GetSourceConfig().(*BuildConfig_GithubAction); ok {
		return x.GithubAction
	}
	return nil
}

func (x *BuildConfig) GetSaas() *SaasBuildConfig {
	if x, ok := x.GetSourceConfig().(*BuildConfig_Saas); ok {
		return x.Saas
	}
	return nil
}

type isBuildConfig_SourceConfig interface {
	isBuildConfig_SourceConfig()
}

type BuildConfig_Docker struct {
	Docker *DockerBuildConfig `protobuf:"bytes,10,opt,name=docker,proto3,oneof"`
}

type BuildConfig_GithubAction struct {
	GithubAction *GithubActionBuildConfig `protobuf:"bytes,11,opt,name=github_action,json=githubAction,proto3,oneof"`
}

type BuildConfig_Saas struct {
	Saas *SaasBuildConfig `protobuf:"bytes,12,opt,name=saas,proto3,oneof"`
}

func (*BuildConfig_Docker) isBuildConfig_SourceConfig() {}

func (*BuildConfig_GithubAction) isBuildConfig_SourceConfig() {}

func (*BuildConfig_Saas) isBuildConfig_SourceConfig() {}

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

	Entries []*ResourceEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
}

func (x *BuildResources) Reset() {
	*x = BuildResources{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[70]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*BuildResources) ProtoMessage() {}

func (x *BuildResources) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[70]
	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 BuildResources.ProtoReflect.Descriptor instead.
func (*BuildResources) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{70}
}

func (x *BuildResources) GetEntries() []*ResourceEntry {
	if x != nil {
		return x.Entries
	}
	return nil
}

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

	Filename string `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"`
	Content  []byte `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"`
}

func (x *ResourceEntry) Reset() {
	*x = ResourceEntry{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[71]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ResourceEntry) ProtoMessage() {}

func (x *ResourceEntry) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[71]
	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 ResourceEntry.ProtoReflect.Descriptor instead.
func (*ResourceEntry) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{71}
}

func (x *ResourceEntry) GetFilename() string {
	if x != nil {
		return x.Filename
	}
	return ""
}

func (x *ResourceEntry) GetContent() []byte {
	if x != nil {
		return x.Content
	}
	return nil
}

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

	RemoteHost string   `protobuf:"bytes,1,opt,name=remote_host,json=remoteHost,proto3" json:"remote_host,omitempty"`
	Volumes    []string `protobuf:"bytes,2,rep,name=volumes,proto3" json:"volumes,omitempty"`
}

func (x *DockerBuildConfig) Reset() {
	*x = DockerBuildConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[72]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DockerBuildConfig) ProtoMessage() {}

func (x *DockerBuildConfig) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[72]
	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 DockerBuildConfig.ProtoReflect.Descriptor instead.
func (*DockerBuildConfig) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{72}
}

func (x *DockerBuildConfig) GetRemoteHost() string {
	if x != nil {
		return x.RemoteHost
	}
	return ""
}

func (x *DockerBuildConfig) GetVolumes() []string {
	if x != nil {
		return x.Volumes
	}
	return nil
}

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

	Owner      string            `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"`
	Repo       string            `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"`
	Token      string            `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"`
	WorkflowId string            `protobuf:"bytes,4,opt,name=workflow_id,json=workflowId,proto3" json:"workflow_id,omitempty"`
	Inputs     map[string]string `protobuf:"bytes,5,rep,name=inputs,proto3" json:"inputs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	IsRemove   bool              `protobuf:"varint,6,opt,name=is_remove,json=isRemove,proto3" json:"is_remove,omitempty"`
}

func (x *GithubActionBuildConfig) Reset() {
	*x = GithubActionBuildConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[73]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GithubActionBuildConfig) ProtoMessage() {}

func (x *GithubActionBuildConfig) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[73]
	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 GithubActionBuildConfig.ProtoReflect.Descriptor instead.
func (*GithubActionBuildConfig) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{73}
}

func (x *GithubActionBuildConfig) GetOwner() string {
	if x != nil {
		return x.Owner
	}
	return ""
}

func (x *GithubActionBuildConfig) GetRepo() string {
	if x != nil {
		return x.Repo
	}
	return ""
}

func (x *GithubActionBuildConfig) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *GithubActionBuildConfig) GetWorkflowId() string {
	if x != nil {
		return x.WorkflowId
	}
	return ""
}

func (x *GithubActionBuildConfig) GetInputs() map[string]string {
	if x != nil {
		return x.Inputs
	}
	return nil
}

func (x *GithubActionBuildConfig) GetIsRemove() bool {
	if x != nil {
		return x.IsRemove
	}
	return false
}

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

	Url     string            `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	Token   string            `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"`
	Headers map[string]string `protobuf:"bytes,3,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *SaasBuildConfig) Reset() {
	*x = SaasBuildConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[74]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SaasBuildConfig) ProtoMessage() {}

func (x *SaasBuildConfig) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[74]
	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 SaasBuildConfig.ProtoReflect.Descriptor instead.
func (*SaasBuildConfig) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{74}
}

func (x *SaasBuildConfig) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *SaasBuildConfig) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *SaasBuildConfig) GetHeaders() map[string]string {
	if x != nil {
		return x.Headers
	}
	return nil
}

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

	Owner      string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"`                             // Repository owner
	Repo       string `protobuf:"bytes,2,opt,name=repo,proto3" json:"repo,omitempty"`                               // Repository name
	WorkflowId string `protobuf:"bytes,3,opt,name=workflow_id,json=workflowId,proto3" json:"workflow_id,omitempty"` // Workflow file name or ID
	Token      string `protobuf:"bytes,4,opt,name=token,proto3" json:"token,omitempty"`                             // GitHub token
	IsRemove   bool   `protobuf:"varint,5,opt,name=is_remove,json=isRemove,proto3" json:"is_remove,omitempty"`
}

func (x *GithubWorkflowConfig) Reset() {
	*x = GithubWorkflowConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[75]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GithubWorkflowConfig) ProtoMessage() {}

func (x *GithubWorkflowConfig) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[75]
	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 GithubWorkflowConfig.ProtoReflect.Descriptor instead.
func (*GithubWorkflowConfig) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{75}
}

func (x *GithubWorkflowConfig) GetOwner() string {
	if x != nil {
		return x.Owner
	}
	return ""
}

func (x *GithubWorkflowConfig) GetRepo() string {
	if x != nil {
		return x.Repo
	}
	return ""
}

func (x *GithubWorkflowConfig) GetWorkflowId() string {
	if x != nil {
		return x.WorkflowId
	}
	return ""
}

func (x *GithubWorkflowConfig) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *GithubWorkflowConfig) GetIsRemove() bool {
	if x != nil {
		return x.IsRemove
	}
	return false
}

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

	Workflows []*GithubWorkflow `protobuf:"bytes,1,rep,name=workflows,proto3" json:"workflows,omitempty"` // List of workflows
}

func (x *GithubWorkflows) Reset() {
	*x = GithubWorkflows{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[76]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GithubWorkflows) ProtoMessage() {}

func (x *GithubWorkflows) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[76]
	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 GithubWorkflows.ProtoReflect.Descriptor instead.
func (*GithubWorkflows) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{76}
}

func (x *GithubWorkflows) GetWorkflows() []*GithubWorkflow {
	if x != nil {
		return x.Workflows
	}
	return nil
}

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

	Id        int64  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`                               // Workflow ID
	NodeId    string `protobuf:"bytes,2,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`          // Workflow node ID
	Name      string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`                            // Workflow name
	Path      string `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"`                            // Workflow file path
	Status    string `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"`                        // Workflow state
	CreatedAt string `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // Workflow creation time
	UpdatedAt string `protobuf:"bytes,7,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` // Workflow last updated time
	Url       string `protobuf:"bytes,8,opt,name=url,proto3" json:"url,omitempty"`                              // API URL for the workflow
	HtmlUrl   string `protobuf:"bytes,9,opt,name=html_url,json=htmlUrl,proto3" json:"html_url,omitempty"`       // HTML URL for the workflow
	BadgeUrl  string `protobuf:"bytes,10,opt,name=badge_url,json=badgeUrl,proto3" json:"badge_url,omitempty"`   // Badge URL for the workflow
}

func (x *GithubWorkflow) Reset() {
	*x = GithubWorkflow{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[77]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GithubWorkflow) ProtoMessage() {}

func (x *GithubWorkflow) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[77]
	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 GithubWorkflow.ProtoReflect.Descriptor instead.
func (*GithubWorkflow) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{77}
}

func (x *GithubWorkflow) GetId() int64 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *GithubWorkflow) GetNodeId() string {
	if x != nil {
		return x.NodeId
	}
	return ""
}

func (x *GithubWorkflow) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GithubWorkflow) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *GithubWorkflow) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *GithubWorkflow) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *GithubWorkflow) GetUpdatedAt() string {
	if x != nil {
		return x.UpdatedAt
	}
	return ""
}

func (x *GithubWorkflow) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *GithubWorkflow) GetHtmlUrl() string {
	if x != nil {
		return x.HtmlUrl
	}
	return ""
}

func (x *GithubWorkflow) GetBadgeUrl() string {
	if x != nil {
		return x.BadgeUrl
	}
	return ""
}

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

	UserName   string `protobuf:"bytes,1,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"`
	Type       string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	ExpireAt   string `protobuf:"bytes,3,opt,name=expire_at,json=expireAt,proto3" json:"expire_at,omitempty"`
	BuildCount int64  `protobuf:"varint,4,opt,name=build_count,json=buildCount,proto3" json:"build_count,omitempty"`
	MaxBuilds  int64  `protobuf:"varint,5,opt,name=max_builds,json=maxBuilds,proto3" json:"max_builds,omitempty"`
}

func (x *LicenseInfo) Reset() {
	*x = LicenseInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[78]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*LicenseInfo) ProtoMessage() {}

func (x *LicenseInfo) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[78]
	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 LicenseInfo.ProtoReflect.Descriptor instead.
func (*LicenseInfo) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{78}
}

func (x *LicenseInfo) GetUserName() string {
	if x != nil {
		return x.UserName
	}
	return ""
}

func (x *LicenseInfo) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *LicenseInfo) GetExpireAt() string {
	if x != nil {
		return x.ExpireAt
	}
	return ""
}

func (x *LicenseInfo) GetBuildCount() int64 {
	if x != nil {
		return x.BuildCount
	}
	return 0
}

func (x *LicenseInfo) GetMaxBuilds() int64 {
	if x != nil {
		return x.MaxBuilds
	}
	return 0
}

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

	TelegramEnable   bool   `protobuf:"varint,1,opt,name=telegram_enable,json=telegramEnable,proto3" json:"telegram_enable,omitempty"`
	TelegramApiKey   string `protobuf:"bytes,2,opt,name=telegram_api_key,json=telegramApiKey,proto3" json:"telegram_api_key,omitempty"`
	TelegramChatId   int64  `protobuf:"varint,3,opt,name=telegram_chat_id,json=telegramChatId,proto3" json:"telegram_chat_id,omitempty"`
	DingtalkEnable   bool   `protobuf:"varint,4,opt,name=dingtalk_enable,json=dingtalkEnable,proto3" json:"dingtalk_enable,omitempty"`
	DingtalkSecret   string `protobuf:"bytes,5,opt,name=dingtalk_secret,json=dingtalkSecret,proto3" json:"dingtalk_secret,omitempty"`
	DingtalkToken    string `protobuf:"bytes,6,opt,name=dingtalk_token,json=dingtalkToken,proto3" json:"dingtalk_token,omitempty"`
	LarkEnable       bool   `protobuf:"varint,7,opt,name=lark_enable,json=larkEnable,proto3" json:"lark_enable,omitempty"`
	LarkWebhookUrl   string `protobuf:"bytes,8,opt,name=lark_webhook_url,json=larkWebhookUrl,proto3" json:"lark_webhook_url,omitempty"`
	ServerchanEnable bool   `protobuf:"varint,9,opt,name=serverchan_enable,json=serverchanEnable,proto3" json:"serverchan_enable,omitempty"`
	ServerchanUrl    string `protobuf:"bytes,10,opt,name=serverchan_url,json=serverchanUrl,proto3" json:"serverchan_url,omitempty"`
	PushplusEnable   bool   `protobuf:"varint,11,opt,name=pushplus_enable,json=pushplusEnable,proto3" json:"pushplus_enable,omitempty"`
	PushplusToken    string `protobuf:"bytes,12,opt,name=pushplus_token,json=pushplusToken,proto3" json:"pushplus_token,omitempty"`
	PushplusTopic    string `protobuf:"bytes,13,opt,name=pushplus_topic,json=pushplusTopic,proto3" json:"pushplus_topic,omitempty"`
	PushplusChannel  string `protobuf:"bytes,14,opt,name=pushplus_channel,json=pushplusChannel,proto3" json:"pushplus_channel,omitempty"`
}

func (x *Notify) Reset() {
	*x = Notify{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[79]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Notify) ProtoMessage() {}

func (x *Notify) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[79]
	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 Notify.ProtoReflect.Descriptor instead.
func (*Notify) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{79}
}

func (x *Notify) GetTelegramEnable() bool {
	if x != nil {
		return x.TelegramEnable
	}
	return false
}

func (x *Notify) GetTelegramApiKey() string {
	if x != nil {
		return x.TelegramApiKey
	}
	return ""
}

func (x *Notify) GetTelegramChatId() int64 {
	if x != nil {
		return x.TelegramChatId
	}
	return 0
}

func (x *Notify) GetDingtalkEnable() bool {
	if x != nil {
		return x.DingtalkEnable
	}
	return false
}

func (x *Notify) GetDingtalkSecret() string {
	if x != nil {
		return x.DingtalkSecret
	}
	return ""
}

func (x *Notify) GetDingtalkToken() string {
	if x != nil {
		return x.DingtalkToken
	}
	return ""
}

func (x *Notify) GetLarkEnable() bool {
	if x != nil {
		return x.LarkEnable
	}
	return false
}

func (x *Notify) GetLarkWebhookUrl() string {
	if x != nil {
		return x.LarkWebhookUrl
	}
	return ""
}

func (x *Notify) GetServerchanEnable() bool {
	if x != nil {
		return x.ServerchanEnable
	}
	return false
}

func (x *Notify) GetServerchanUrl() string {
	if x != nil {
		return x.ServerchanUrl
	}
	return ""
}

func (x *Notify) GetPushplusEnable() bool {
	if x != nil {
		return x.PushplusEnable
	}
	return false
}

func (x *Notify) GetPushplusToken() string {
	if x != nil {
		return x.PushplusToken
	}
	return ""
}

func (x *Notify) GetPushplusTopic() string {
	if x != nil {
		return x.PushplusTopic
	}
	return ""
}

func (x *Notify) GetPushplusChannel() string {
	if x != nil {
		return x.PushplusChannel
	}
	return ""
}

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

	Id       string    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Session  *Session  `protobuf:"bytes,2,opt,name=session,proto3" json:"session,omitempty"`
	Task     *Task     `protobuf:"bytes,3,opt,name=task,proto3" json:"task,omitempty"`
	Pipeline *Pipeline `protobuf:"bytes,4,opt,name=pipeline,proto3" json:"pipeline,omitempty"`
	Listener *Listener `protobuf:"bytes,5,opt,name=listener,proto3" json:"listener,omitempty"`
	Type     string    `protobuf:"bytes,6,opt,name=type,proto3" json:"type,omitempty"`
	Value    []byte    `protobuf:"bytes,7,opt,name=value,proto3" json:"value,omitempty"`
	Content  []byte    `protobuf:"bytes,8,opt,name=content,proto3" json:"content,omitempty"`
	Nonce    string    `protobuf:"bytes,9,opt,name=nonce,proto3" json:"nonce,omitempty"`
}

func (x *Context) Reset() {
	*x = Context{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[80]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Context) ProtoMessage() {}

func (x *Context) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[80]
	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 Context.ProtoReflect.Descriptor instead.
func (*Context) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{80}
}

func (x *Context) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *Context) GetSession() *Session {
	if x != nil {
		return x.Session
	}
	return nil
}

func (x *Context) GetTask() *Task {
	if x != nil {
		return x.Task
	}
	return nil
}

func (x *Context) GetPipeline() *Pipeline {
	if x != nil {
		return x.Pipeline
	}
	return nil
}

func (x *Context) GetListener() *Listener {
	if x != nil {
		return x.Listener
	}
	return nil
}

func (x *Context) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *Context) GetValue() []byte {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *Context) GetContent() []byte {
	if x != nil {
		return x.Content
	}
	return nil
}

func (x *Context) GetNonce() string {
	if x != nil {
		return x.Nonce
	}
	return ""
}

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

	Contexts []*Context `protobuf:"bytes,1,rep,name=contexts,proto3" json:"contexts,omitempty"`
}

func (x *Contexts) Reset() {
	*x = Contexts{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[81]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Contexts) ProtoMessage() {}

func (x *Contexts) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[81]
	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 Contexts.ProtoReflect.Descriptor instead.
func (*Contexts) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{81}
}

func (x *Contexts) GetContexts() []*Context {
	if x != nil {
		return x.Contexts
	}
	return nil
}

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

	PublicKey  string `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`    // 公钥
	PrivateKey string `protobuf:"bytes,2,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"` // 私钥
}

func (x *KeyPair) Reset() {
	*x = KeyPair{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[82]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*KeyPair) ProtoMessage() {}

func (x *KeyPair) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[82]
	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 KeyPair.ProtoReflect.Descriptor instead.
func (*KeyPair) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{82}
}

func (x *KeyPair) GetPublicKey() string {
	if x != nil {
		return x.PublicKey
	}
	return ""
}

func (x *KeyPair) GetPrivateKey() string {
	if x != nil {
		return x.PrivateKey
	}
	return ""
}

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

	Enable         bool     `protobuf:"varint,1,opt,name=enable,proto3" json:"enable,omitempty"`                                      // 是否启用安全模式
	ServerKeypair  *KeyPair `protobuf:"bytes,2,opt,name=server_keypair,json=serverKeypair,proto3" json:"server_keypair,omitempty"`    // server密钥对
	ImplantKeypair *KeyPair `protobuf:"bytes,3,opt,name=implant_keypair,json=implantKeypair,proto3" json:"implant_keypair,omitempty"` // implant密钥对
}

func (x *Secure) Reset() {
	*x = Secure{}
	if protoimpl.UnsafeEnabled {
		mi := &file_client_clientpb_client_proto_msgTypes[83]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Secure) ProtoMessage() {}

func (x *Secure) ProtoReflect() protoreflect.Message {
	mi := &file_client_clientpb_client_proto_msgTypes[83]
	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 Secure.ProtoReflect.Descriptor instead.
func (*Secure) Descriptor() ([]byte, []int) {
	return file_client_clientpb_client_proto_rawDescGZIP(), []int{83}
}

func (x *Secure) GetEnable() bool {
	if x != nil {
		return x.Enable
	}
	return false
}

func (x *Secure) GetServerKeypair() *KeyPair {
	if x != nil {
		return x.ServerKeypair
	}
	return nil
}

func (x *Secure) GetImplantKeypair() *KeyPair {
	if x != nil {
		return x.ImplantKeypair
	}
	return nil
}

var File_client_clientpb_client_proto protoreflect.FileDescriptor

var file_client_clientpb_client_proto_rawDesc = []byte{
	0x0a, 0x1c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70,
	0x62, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x1a, 0x1f, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e,
	0x74, 0x2f, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x70, 0x62, 0x2f, 0x69, 0x6d, 0x70, 0x6c,
	0x61, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x69, 0x6d, 0x70, 0x6c, 0x61,
	0x6e, 0x74, 0x2f, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x70, 0x62, 0x2f, 0x6d, 0x6f, 0x64,
	0x75, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70,
	0x74, 0x79, 0x22, 0x93, 0x01, 0x0a, 0x05, 0x42, 0x61, 0x73, 0x69, 0x63, 0x12, 0x18, 0x0a, 0x07,
	0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x14,
	0x0a, 0x05, 0x64, 0x69, 0x72, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x64,
	0x69, 0x72, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x64,
	0x41, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c,
	0x65, 0x64, 0x41, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x02, 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x22, 0xf5, 0x07, 0x0a, 0x07, 0x53, 0x65, 0x73,
	0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
	0x6e, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x72, 0x61, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x61, 0x77, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12,
	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69,
	0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x69, 0x70,
	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65,
	0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x69,
	0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75,
	0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65,
	0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12,
	0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73,
	0x5f, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x0b, 0x69, 0x73, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x12, 0x25, 0x0a,
	0x0e, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18,
	0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c,
	0x69, 0x7a, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x65,
	0x63, 0x6b, 0x69, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74,
	0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x12, 0x25, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73,
	0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70,
	0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1a,
	0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f,
	0x63, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x6f, 0x63, 0x61,
	0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x64, 0x69, 0x72, 0x18, 0x12, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x64, 0x69, 0x72, 0x12, 0x14, 0x0a, 0x05,
	0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x6f,
	0x78, 0x79, 0x12, 0x1c, 0x0a, 0x02, 0x6f, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c,
	0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x4f, 0x73, 0x52, 0x02, 0x6f, 0x73,
	0x12, 0x2b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x6f,
	0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a,
	0x05, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d,
	0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x52, 0x05, 0x74,
	0x69, 0x6d, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f,
	0x61, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x1e,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x27, 0x0a,
	0x06, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
	0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x6f, 0x6e, 0x52, 0x06,
	0x61, 0x64, 0x64, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x70, 0x61,
	0x69, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e,
	0x74, 0x70, 0x62, 0x2e, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x07, 0x6b, 0x65, 0x79,
	0x50, 0x61, 0x69, 0x72, 0x12, 0x32, 0x0a, 0x05, 0x61, 0x72, 0x67, 0x75, 0x65, 0x18, 0x28, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53,
	0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x72, 0x67, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x52, 0x05, 0x61, 0x72, 0x67, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61,
	0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2f, 0x0a, 0x04,
	0x6c, 0x6f, 0x6f, 0x74, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6c, 0x69,
	0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f,
	0x6f, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6c, 0x6f, 0x6f, 0x74, 0x1a, 0x38, 0x0a,
	0x0a, 0x41, 0x72, 0x67, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x4c, 0x6f, 0x6f, 0x74, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x22, 0x41, 0x0a, 0x0e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49,
	0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03,
	0x61, 0x6c, 0x6c, 0x22, 0x3e, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49,
	0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03,
	0x61, 0x6c, 0x6c, 0x22, 0x1b, 0x0a, 0x03, 0x49, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69,
	0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74,
	0x22, 0xcc, 0x01, 0x0a, 0x05, 0x41, 0x75, 0x64, 0x69, 0x74, 0x12, 0x2f, 0x0a, 0x07, 0x63, 0x6f,
	0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x74, 0x65,
	0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63,
	0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f,
	0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x2a, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74,
	0x70, 0x62, 0x2e, 0x53, 0x70, 0x69, 0x74, 0x65, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x46,
	0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x46,
	0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x61, 0x73, 0x74, 0x65,
	0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, 0x61, 0x73, 0x74, 0x65, 0x64, 0x22,
	0x2f, 0x0a, 0x06, 0x41, 0x75, 0x64, 0x69, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x05, 0x61, 0x75, 0x64,
	0x69, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e,
	0x74, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x74,
	0x22, 0x55, 0x0a, 0x12, 0x42, 0x61, 0x73, 0x69, 0x63, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53,
	0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
	0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73,
	0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x72, 0x67, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x61, 0x72, 0x67, 0x22, 0x39, 0x0a, 0x08, 0x53, 0x65, 0x73, 0x73, 0x69,
	0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x08, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62,
	0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
	0x6e, 0x73, 0x22, 0x3c, 0x0a, 0x0a, 0x53, 0x70, 0x69, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65,
	0x12, 0x2e, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x18, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x70, 0x69, 0x74, 0x65,
	0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73,
	0x22, 0x7e, 0x0a, 0x0e, 0x53, 0x70, 0x69, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x74,
	0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x70, 0x69, 0x74,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e,
	0x74, 0x70, 0x62, 0x2e, 0x53, 0x70, 0x69, 0x74, 0x65, 0x52, 0x05, 0x73, 0x70, 0x69, 0x74, 0x65,
	0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x22, 0xcd, 0x02, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x08,
	0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
	0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69,
	0x6e, 0x65, 0x52, 0x08, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x37, 0x0a, 0x08,
	0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b,
	0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x43, 0x6f,
	0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x63, 0x6f, 0x6e,
	0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x5f, 0x61, 0x67, 0x65,
	0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e,
	0x74, 0x70, 0x62, 0x2e, 0x52, 0x45, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x08,
	0x72, 0x65, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x5f,
	0x6c, 0x6f, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x6d, 0x4c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x06, 0x72,
	0x65, 0x6d, 0x4c, 0x6f, 0x67, 0x1a, 0x51, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79,
	0x22, 0x27, 0x0a, 0x04, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x1f, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62,
	0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0xab, 0x01, 0x0a, 0x07, 0x4a, 0x6f,
	0x62, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x74, 0x72, 0x6c, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x74, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x03, 0x6a, 0x6f, 0x62,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70,
	0x62, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x2e, 0x0a, 0x07, 0x63, 0x6f,
	0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
	0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x07, 0x73, 0x65,
	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07,
	0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xd8, 0x01, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65,
	0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74,
	0x65, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x74, 0x72, 0x6c, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x74, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62,
	0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x74, 0x72,
	0x6c, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x63, 0x74, 0x72, 0x6c,
	0x49, 0x64, 0x12, 0x2e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57,
	0x65, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65,
	0x6e, 0x74, 0x22, 0x75, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x0e,
	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x0e,
	0x0a, 0x02, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x16,
	0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06,
	0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69,
	0x6e, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x09,
	0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x22, 0x3d, 0x0a, 0x09, 0x4c, 0x69, 0x73,
	0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e,
	0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x6c,
	0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x22, 0x58, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02,
	0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x12,
	0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x54, 0x79,
	0x70, 0x65, 0x22, 0x35, 0x0a, 0x07, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2a, 0x0a,
	0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10,
	0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd1, 0x02, 0x0a, 0x05, 0x45, 0x76,
	0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61,
	0x74, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6f, 0x72, 0x6d,
	0x61, 0x74, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12,
	0x10, 0x0a, 0x03, 0x65, 0x72, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x72,
	0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x73, 0x65, 0x73,
	0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6c, 0x69,
	0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73,
	0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x0b, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x4a,
	0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x28, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e,
	0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x70, 0x62, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e,
	0x74, 0x12, 0x22, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0e, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52,
	0x04, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x70, 0x69, 0x74, 0x65, 0x18, 0x0e,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x70, 0x62,
	0x2e, 0x53, 0x70, 0x69, 0x74, 0x65, 0x52, 0x05, 0x73, 0x70, 0x69, 0x74, 0x65, 0x22, 0x31, 0x0a,
	0x06, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x70, 0x62, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73,
	0x22, 0xeb, 0x01, 0x0a, 0x02, 0x4f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74,
	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x76, 0x65,
	0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f,
	0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4f,
	0x70, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f,
	0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
	0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b,
	0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0a, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a,
	0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x22, 0x46,
	0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f,
	0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12,
	0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f,
	0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3e, 0x0a, 0x04, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x1d,
	0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a,
	0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x38, 0x0a, 0x08, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65,
	0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
	0x22, 0x86, 0x01, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
	0x12, 0x22, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e,
	0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x04,
	0x74, 0x61, 0x73, 0x6b, 0x12, 0x2b, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62,
	0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
	0x6e, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x70, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x10, 0x2e, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x70, 0x69,
	0x74, 0x65, 0x52, 0x05, 0x73, 0x70, 0x69, 0x74, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x0c, 0x54, 0x61,
	0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x04, 0x74, 0x61,
	0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e,
	0x74, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x2b,
	0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69,
	0x6f, 0x6e, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x73,
	0x70, 0x69, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x69, 0x6d,
	0x70, 0x6c, 0x61, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x70, 0x69, 0x74, 0x65, 0x52, 0x06, 0x73,
	0x70, 0x69, 0x74, 0x65, 0x73, 0x22, 0x41, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x43, 0x6f,
	0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x31, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x08,
	0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x22, 0xac, 0x02, 0x0a, 0x04, 0x54, 0x61, 0x73,
	0x6b, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65,
	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
	0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x75, 0x72, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x03, 0x63, 0x75, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x14, 0x0a,
	0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72,
	0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x04, 0x6e, 0x65, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c,
	0x6c, 0x62, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x62,
	0x79, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x0b, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x18, 0x0a,
	0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
	0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x2d, 0x0a, 0x05, 0x54, 0x61, 0x73, 0x6b, 0x73,
	0x12, 0x24, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x0e, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52,
	0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x35, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65,
	0x73, 0x63, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x61,
	0x73, 0x6b, 0x44, 0x65, 0x73, 0x63, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0xac, 0x01,
	0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12,
	0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65,
	0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x65,
	0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x0e, 0x0a,
	0x02, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x1d, 0x0a,
	0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x2d, 0x0a, 0x05,
	0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e,
	0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x99, 0x01, 0x0a, 0x08,
	0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x73, 0x63, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b,
	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49,
	0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x75, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03,
	0x63, 0x75, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x07, 0x50, 0x6c, 0x75, 0x67, 0x69,
	0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x50,
	0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x07, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x22, 0x36,
	0x0a, 0x06, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07,
	0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63,
	0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x61, 0x0a, 0x0d, 0x45, 0x58, 0x45, 0x32, 0x53, 0x68,
	0x65, 0x6c, 0x6c, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x69, 0x6e, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x62, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a,
	0x04, 0x61, 0x72, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x63,
	0x68, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x0d, 0x44, 0x4c,
	0x4c, 0x32, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x62,
	0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x62, 0x69, 0x6e, 0x12, 0x12, 0x0a,
	0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70,
	0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x61, 0x72, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1e, 0x0a,
	0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x77, 0x0a,
	0x0f, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x63, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65,
	0x12, 0x1c, 0x0a, 0x09, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12,
	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x74, 0x65, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x74, 0x65, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x17, 0x0a, 0x03, 0x42, 0x69, 0x6e, 0x12, 0x10, 0x0a,
	0x03, 0x42, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x42, 0x69, 0x6e, 0x22,
	0xde, 0x03, 0x0a, 0x08, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03,
	0x62, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x62, 0x69, 0x6e, 0x12, 0x12,
	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12,
	0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72,
	0x63, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18,
	0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x69, 0x70, 0x65,
	0x6c, 0x69, 0x6e, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x69, 0x70, 0x65,
	0x6c, 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x0a,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x0a,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f,
	0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x63, 0x6c, 0x75, 0x73,
	0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x62,
	0x79, 0x74, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x66,
	0x69, 0x6c, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x61,
	0x6d, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b,
	0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x17, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x5f, 0x6e, 0x75, 0x6d,
	0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x6f, 0x67, 0x4e, 0x75, 0x6d, 0x12, 0x10,
	0x0a, 0x03, 0x72, 0x64, 0x69, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x64, 0x69,
	0x22, 0x3d, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x30, 0x0a,
	0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x72, 0x74, 0x69,
	0x66, 0x61, 0x63, 0x74, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x22,
	0xbd, 0x01, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
	0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x16, 0x0a,
	0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70,
	0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e,
	0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x69, 0x70, 0x65,
	0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
	0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
	0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22,
	0x39, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x08, 0x70,
	0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
	0x52, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0xee, 0x01, 0x0a, 0x0f, 0x52,
	0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d,
	0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a,
	0x0b, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0a, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1f,
	0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12,
	0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x72, 0x61, 0x77, 0x5f, 0x69,
	0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x61, 0x77, 0x49, 0x64, 0x12, 0x12,
	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64,
	0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x6f, 0x64, 0x75,
	0x6c, 0x65, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0c, 0x72,
	0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x22, 0x91, 0x01, 0x0a, 0x10,
	0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72,
	0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
	0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x31, 0x0a, 0x09,
	0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x13, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c,
	0x69, 0x6e, 0x65, 0x73, 0x52, 0x09, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x22,
	0xa8, 0x01, 0x0a, 0x0c, 0x53, 0x70, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x49,
	0x64, 0x12, 0x2b, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x65,
	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22,
	0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63,
	0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x74, 0x61,
	0x73, 0x6b, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x70, 0x69, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x10, 0x2e, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x70,
	0x69, 0x74, 0x65, 0x52, 0x05, 0x73, 0x70, 0x69, 0x74, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x0d, 0x53,
	0x70, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
	0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a,
	0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07,
	0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74,
	0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x70, 0x69, 0x74, 0x65, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x70, 0x62,
	0x2e, 0x53, 0x70, 0x69, 0x74, 0x65, 0x52, 0x05, 0x73, 0x70, 0x69, 0x74, 0x65, 0x22, 0x3d, 0x0a,
	0x09, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x70, 0x69,
	0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e,
	0x65, 0x52, 0x09, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x22, 0x8a, 0x04, 0x0a,
	0x08, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a,
	0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65,
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73,
	0x74, 0x65, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
	0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61,
	0x72, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x73,
	0x65, 0x72, 0x12, 0x1f, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0d, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x4c, 0x53, 0x52, 0x03,
	0x74, 0x6c, 0x73, 0x12, 0x34, 0x0a, 0x0a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x70, 0x62, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65,
	0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x65, 0x72,
	0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x65,
	0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65,
	0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70,
	0x62, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x52, 0x06, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65,
	0x12, 0x29, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x43, 0x50, 0x50, 0x69, 0x70, 0x65,
	0x6c, 0x69, 0x6e, 0x65, 0x48, 0x00, 0x52, 0x03, 0x74, 0x63, 0x70, 0x12, 0x2c, 0x0a, 0x04, 0x62,
	0x69, 0x6e, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x70, 0x62, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e,
	0x65, 0x48, 0x00, 0x52, 0x04, 0x62, 0x69, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x03, 0x72, 0x65, 0x6d,
	0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70,
	0x62, 0x2e, 0x52, 0x45, 0x4d, 0x48, 0x00, 0x52, 0x03, 0x72, 0x65, 0x6d, 0x12, 0x25, 0x0a, 0x03,
	0x77, 0x65, 0x62, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x48, 0x00, 0x52, 0x03,
	0x77, 0x65, 0x62, 0x12, 0x2c, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x18, 0x18, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x48, 0x54, 0x54,
	0x50, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x48, 0x00, 0x52, 0x04, 0x68, 0x74, 0x74,
	0x70, 0x42, 0x06, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x90, 0x01, 0x0a, 0x0c, 0x43, 0x74,
	0x72, 0x6c, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69,
	0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
	0x2e, 0x0a, 0x08, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x70,
	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x08, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12,
	0x1b, 0x0a, 0x09, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x08, 0x63, 0x65, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xce, 0x01, 0x0a,
	0x03, 0x54, 0x4c, 0x53, 0x12, 0x22, 0x0a, 0x04, 0x63, 0x65, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x65,
	0x72, 0x74, 0x52, 0x04, 0x63, 0x65, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x02, 0x63, 0x61, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e,
	0x43, 0x65, 0x72, 0x74, 0x52, 0x02, 0x63, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x12, 0x12, 0x0a, 0x04, 0x61, 0x63, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04,
	0x61, 0x63, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x3f, 0x0a, 0x0c,
	0x63, 0x65, 0x72, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x07, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x65,
	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74,
	0x52, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x2c, 0x0a,
	0x05, 0x43, 0x65, 0x72, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x05, 0x63, 0x65, 0x72, 0x74, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62,
	0x2e, 0x54, 0x4c, 0x53, 0x52, 0x05, 0x63, 0x65, 0x72, 0x74, 0x73, 0x22, 0x54, 0x0a, 0x04, 0x43,
	0x65, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x65, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x63, 0x65, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a,
	0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70,
	0x65, 0x22, 0x8a, 0x01, 0x0a, 0x12, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
	0x65, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x63, 0x6e, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x63, 0x6e, 0x12, 0x0c, 0x0a, 0x01, 0x6f, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x01, 0x6f, 0x12, 0x0c, 0x0a, 0x01, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x01, 0x63, 0x12, 0x0c, 0x0a, 0x01, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x01, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
	0x6f, 0x75, 0x12, 0x0e, 0x0a, 0x02, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
	0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x22, 0x32,
	0x0a, 0x0a, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04,
	0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
	0x65, 0x79, 0x22, 0x43, 0x0a, 0x0c, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69,
	0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e,
	0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x69, 0x73,
	0x74, 0x65, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x22, 0xb0, 0x02, 0x0a, 0x03, 0x52, 0x45, 0x4d, 0x12,
	0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x5f,
	0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e,
	0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07,
	0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63,
	0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75,
	0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x61, 0x67, 0x65, 0x6e,
	0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e,
	0x74, 0x70, 0x62, 0x2e, 0x52, 0x45, 0x4d, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x52, 0x06, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x4d, 0x0a, 0x0b, 0x41,
	0x67, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x52, 0x45, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x37, 0x0a, 0x09, 0x52, 0x45,
	0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x06, 0x61, 0x67, 0x65, 0x6e, 0x74,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x70, 0x62, 0x2e, 0x52, 0x45, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x67, 0x65,
	0x6e, 0x74, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x08, 0x52, 0x45, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74,
	0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49,
	0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x6d, 0x6f, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d,
	0x6f, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74,
	0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67,
	0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x22, 0x56, 0x0a,
	0x06, 0x52, 0x65, 0x6d, 0x4c, 0x6f, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x69, 0x70, 0x65, 0x6c,
	0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x69,
	0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e,
	0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e,
	0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x6c, 0x6f, 0x67, 0x22, 0x80, 0x01, 0x0a, 0x0b, 0x54, 0x43, 0x50, 0x50, 0x69, 0x70,
	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73,
	0x74, 0x65, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
	0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f,
	0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12,
	0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f,
	0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x22, 0x99, 0x01, 0x0a, 0x0c, 0x48, 0x54, 0x54,
	0x50, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a,
	0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12,
	0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f,
	0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x14,
	0x0a, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70,
	0x72, 0x6f, 0x78, 0x79, 0x22, 0xfb, 0x01, 0x0a, 0x0a, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x74,
	0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x69,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65,
	0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x21,
	0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65,
	0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
	0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64,
	0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72,
	0x49, 0x64, 0x22, 0xf6, 0x01, 0x0a, 0x07, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x12,
	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x5f, 0x69,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65,
	0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x3b, 0x0a, 0x08, 0x63,
	0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65,
	0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08,
	0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x51, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74,
	0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6c, 0x69,
	0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x39, 0x0a, 0x08, 0x57,
	0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x08, 0x77, 0x65, 0x62, 0x73, 0x69,
	0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x52, 0x08, 0x77, 0x65,
	0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x22, 0x3f, 0x0a, 0x0b, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e,
	0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x63,
	0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x80, 0x01, 0x0a, 0x07, 0x50, 0x6f, 0x6c, 0x6c,
	0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
	0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x14,
	0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05, 0x74,
	0x61, 0x73, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x85, 0x04, 0x0a, 0x0b, 0x42,
	0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x75,
	0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62,
	0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x75, 0x69, 0x6c,
	0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x75, 0x69,
	0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x16,
	0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c,
	0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f,
	0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69,
	0x66, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x61,
	0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x6c,
	0x65, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x0d, 0x6d, 0x61, 0x6c, 0x65, 0x66, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x6c, 0x75, 0x64,
	0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x36, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6c, 0x69,
	0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12,
	0x35, 0x0a, 0x06, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1b, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x44, 0x6f, 0x63, 0x6b, 0x65,
	0x72, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x06,
	0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x0d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
	0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x48, 0x00, 0x52, 0x0c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x2f, 0x0a, 0x04, 0x73, 0x61, 0x61, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
	0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x61, 0x61, 0x73, 0x42, 0x75,
	0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x04, 0x73, 0x61, 0x61,
	0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x22, 0x43, 0x0a, 0x0e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62,
	0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07,
	0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0x45, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65,
	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x4e,
	0x0a, 0x11, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x68, 0x6f,
	0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65,
	0x48, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x22, 0x99,
	0x02, 0x0a, 0x17, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42,
	0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77,
	0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72,
	0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x72, 0x65, 0x70, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f,
	0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x69,
	0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x49,
	0x6e, 0x70, 0x75, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75,
	0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x1a,
	0x39, 0x0a, 0x0b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
	0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb7, 0x01, 0x0a, 0x0f, 0x53,
	0x61, 0x61, 0x73, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x10,
	0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c,
	0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x40, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x70, 0x62, 0x2e, 0x53, 0x61, 0x61, 0x73, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
	0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x3a, 0x02, 0x38, 0x01, 0x22, 0x94, 0x01, 0x0a, 0x14, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x57,
	0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x0a,
	0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77,
	0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x66,
	0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x6f,
	0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65,
	0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b,
	0x0a, 0x09, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x08, 0x69, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x22, 0x49, 0x0a, 0x0f, 0x47,
	0x69, 0x74, 0x68, 0x75, 0x62, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x36,
	0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x69, 0x74,
	0x68, 0x75, 0x62, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x09, 0x77, 0x6f, 0x72,
	0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, 0x81, 0x02, 0x0a, 0x0e, 0x47, 0x69, 0x74, 0x68, 0x75,
	0x62, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64,
	0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65,
	0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41,
	0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74,
	0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75,
	0x72, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x74, 0x6d, 0x6c, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x74, 0x6d, 0x6c, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a,
	0x09, 0x62, 0x61, 0x64, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x62, 0x61, 0x64, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x22, 0x9b, 0x01, 0x0a, 0x0b, 0x4c,
	0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73,
	0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75,
	0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65,
	0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x41, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x75, 0x69, 0x6c,
	0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62,
	0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78,
	0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d,
	0x61, 0x78, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x22, 0xbf, 0x04, 0x0a, 0x06, 0x4e, 0x6f, 0x74,
	0x69, 0x66, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x65, 0x6c, 0x65, 0x67, 0x72, 0x61, 0x6d, 0x5f,
	0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x74, 0x65,
	0x6c, 0x65, 0x67, 0x72, 0x61, 0x6d, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x10,
	0x74, 0x65, 0x6c, 0x65, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x65, 0x6c, 0x65, 0x67, 0x72, 0x61, 0x6d,
	0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x65, 0x6c, 0x65, 0x67, 0x72,
	0x61, 0x6d, 0x5f, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x0e, 0x74, 0x65, 0x6c, 0x65, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x68, 0x61, 0x74, 0x49, 0x64,
	0x12, 0x27, 0x0a, 0x0f, 0x64, 0x69, 0x6e, 0x67, 0x74, 0x61, 0x6c, 0x6b, 0x5f, 0x65, 0x6e, 0x61,
	0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x64, 0x69, 0x6e, 0x67, 0x74,
	0x61, 0x6c, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x69, 0x6e,
	0x67, 0x74, 0x61, 0x6c, 0x6b, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0e, 0x64, 0x69, 0x6e, 0x67, 0x74, 0x61, 0x6c, 0x6b, 0x53, 0x65, 0x63, 0x72,
	0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x69, 0x6e, 0x67, 0x74, 0x61, 0x6c, 0x6b, 0x5f, 0x74,
	0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x69, 0x6e, 0x67,
	0x74, 0x61, 0x6c, 0x6b, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x61, 0x72,
	0x6b, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a,
	0x6c, 0x61, 0x72, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61,
	0x72, 0x6b, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x72, 0x6b, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f,
	0x6b, 0x55, 0x72, 0x6c, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x63, 0x68,
	0x61, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x5f,
	0x75, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65,
	0x72, 0x63, 0x68, 0x61, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x75, 0x73, 0x68,
	0x70, 0x6c, 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0e, 0x70, 0x75, 0x73, 0x68, 0x70, 0x6c, 0x75, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x75, 0x73, 0x68, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x74, 0x6f,
	0x6b, 0x65, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x75, 0x73, 0x68, 0x70,
	0x6c, 0x75, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x75, 0x73, 0x68,
	0x70, 0x6c, 0x75, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0d, 0x70, 0x75, 0x73, 0x68, 0x70, 0x6c, 0x75, 0x73, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12,
	0x29, 0x0a, 0x10, 0x70, 0x75, 0x73, 0x68, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x6e,
	0x6e, 0x65, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x75, 0x73, 0x68, 0x70,
	0x6c, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0xa4, 0x02, 0x0a, 0x07, 0x43,
	0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
	0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x70, 0x62, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73,
	0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73,
	0x6b, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x2e, 0x0a, 0x08, 0x70, 0x69, 0x70, 0x65, 0x6c,
	0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x08, 0x70,
	0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x65,
	0x6e, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x52, 0x08, 0x6c,
	0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e,
	0x6f, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63,
	0x65, 0x22, 0x39, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x12, 0x2d, 0x0a,
	0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65,
	0x78, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x22, 0x49, 0x0a, 0x07,
	0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69,
	0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62,
	0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74,
	0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69,
	0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x96, 0x01, 0x0a, 0x06, 0x53, 0x65, 0x63, 0x75,
	0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x38, 0x0a, 0x0e, 0x73, 0x65,
	0x72, 0x76, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x70, 0x61, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x4b, 0x65,
	0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4b, 0x65, 0x79,
	0x70, 0x61, 0x69, 0x72, 0x12, 0x3a, 0x0a, 0x0f, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x5f,
	0x6b, 0x65, 0x79, 0x70, 0x61, 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72,
	0x52, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x70, 0x61, 0x69, 0x72,
	0x42, 0x46, 0x5a, 0x44, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63,
	0x68, 0x61, 0x69, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x6d, 0x61, 0x6c,
	0x69, 0x63, 0x65, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x68, 0x65, 0x6c, 0x70,
	0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_client_clientpb_client_proto_rawDescOnce sync.Once
	file_client_clientpb_client_proto_rawDescData = file_client_clientpb_client_proto_rawDesc
)

func file_client_clientpb_client_proto_rawDescGZIP() []byte {
	file_client_clientpb_client_proto_rawDescOnce.Do(func() {
		file_client_clientpb_client_proto_rawDescData = protoimpl.X.CompressGZIP(file_client_clientpb_client_proto_rawDescData)
	})
	return file_client_clientpb_client_proto_rawDescData
}

var file_client_clientpb_client_proto_msgTypes = make([]protoimpl.MessageInfo, 91)
var file_client_clientpb_client_proto_goTypes = []interface{}{
	(*Empty)(nil),                   // 0: clientpb.Empty
	(*Basic)(nil),                   // 1: clientpb.Basic
	(*Session)(nil),                 // 2: clientpb.Session
	(*SessionRequest)(nil),          // 3: clientpb.SessionRequest
	(*TaskRequest)(nil),             // 4: clientpb.TaskRequest
	(*Int)(nil),                     // 5: clientpb.Int
	(*Audit)(nil),                   // 6: clientpb.Audit
	(*Audits)(nil),                  // 7: clientpb.Audits
	(*BasicUpdateSession)(nil),      // 8: clientpb.BasicUpdateSession
	(*Sessions)(nil),                // 9: clientpb.Sessions
	(*SpiteCache)(nil),              // 10: clientpb.SpiteCache
	(*SpiteCacheItem)(nil),          // 11: clientpb.SpiteCacheItem
	(*Job)(nil),                     // 12: clientpb.Job
	(*Jobs)(nil),                    // 13: clientpb.Jobs
	(*JobCtrl)(nil),                 // 14: clientpb.JobCtrl
	(*JobStatus)(nil),               // 15: clientpb.JobStatus
	(*Listener)(nil),                // 16: clientpb.Listener
	(*Listeners)(nil),               // 17: clientpb.Listeners
	(*Client)(nil),                  // 18: clientpb.Client
	(*Clients)(nil),                 // 19: clientpb.Clients
	(*Event)(nil),                   // 20: clientpb.Event
	(*Events)(nil),                  // 21: clientpb.Events
	(*On)(nil),                      // 22: clientpb.On
	(*LoginReq)(nil),                // 23: clientpb.LoginReq
	(*Sync)(nil),                    // 24: clientpb.Sync
	(*SyncResp)(nil),                // 25: clientpb.SyncResp
	(*TaskContext)(nil),             // 26: clientpb.TaskContext
	(*TaskContexts)(nil),            // 27: clientpb.TaskContexts
	(*TasksContext)(nil),            // 28: clientpb.TasksContext
	(*Task)(nil),                    // 29: clientpb.Task
	(*Tasks)(nil),                   // 30: clientpb.Tasks
	(*TaskDescs)(nil),               // 31: clientpb.TaskDescs
	(*File)(nil),                    // 32: clientpb.File
	(*Files)(nil),                   // 33: clientpb.Files
	(*TaskDesc)(nil),                // 34: clientpb.TaskDesc
	(*Plugins)(nil),                 // 35: clientpb.Plugins
	(*Plugin)(nil),                  // 36: clientpb.Plugin
	(*EXE2Shellcode)(nil),           // 37: clientpb.EXE2Shellcode
	(*DLL2Shellcode)(nil),           // 38: clientpb.DLL2Shellcode
	(*ShellcodeEncode)(nil),         // 39: clientpb.ShellcodeEncode
	(*Bin)(nil),                     // 40: clientpb.Bin
	(*Artifact)(nil),                // 41: clientpb.Artifact
	(*Artifacts)(nil),               // 42: clientpb.Artifacts
	(*Profile)(nil),                 // 43: clientpb.Profile
	(*Profiles)(nil),                // 44: clientpb.Profiles
	(*RegisterSession)(nil),         // 45: clientpb.RegisterSession
	(*RegisterListener)(nil),        // 46: clientpb.RegisterListener
	(*SpiteRequest)(nil),            // 47: clientpb.SpiteRequest
	(*SpiteResponse)(nil),           // 48: clientpb.SpiteResponse
	(*Pipelines)(nil),               // 49: clientpb.Pipelines
	(*Pipeline)(nil),                // 50: clientpb.Pipeline
	(*CtrlPipeline)(nil),            // 51: clientpb.CtrlPipeline
	(*TLS)(nil),                     // 52: clientpb.TLS
	(*Certs)(nil),                   // 53: clientpb.Certs
	(*Cert)(nil),                    // 54: clientpb.Cert
	(*CertificateSubject)(nil),      // 55: clientpb.CertificateSubject
	(*Encryption)(nil),              // 56: clientpb.Encryption
	(*BindPipeline)(nil),            // 57: clientpb.BindPipeline
	(*REM)(nil),                     // 58: clientpb.REM
	(*REMAgents)(nil),               // 59: clientpb.REMAgents
	(*REMAgent)(nil),                // 60: clientpb.REMAgent
	(*RemLog)(nil),                  // 61: clientpb.RemLog
	(*TCPPipeline)(nil),             // 62: clientpb.TCPPipeline
	(*HTTPPipeline)(nil),            // 63: clientpb.HTTPPipeline
	(*WebContent)(nil),              // 64: clientpb.WebContent
	(*Website)(nil),                 // 65: clientpb.Website
	(*Websites)(nil),                // 66: clientpb.Websites
	(*WebContents)(nil),             // 67: clientpb.WebContents
	(*Polling)(nil),                 // 68: clientpb.Polling
	(*BuildConfig)(nil),             // 69: clientpb.BuildConfig
	(*BuildResources)(nil),          // 70: clientpb.BuildResources
	(*ResourceEntry)(nil),           // 71: clientpb.ResourceEntry
	(*DockerBuildConfig)(nil),       // 72: clientpb.DockerBuildConfig
	(*GithubActionBuildConfig)(nil), // 73: clientpb.GithubActionBuildConfig
	(*SaasBuildConfig)(nil),         // 74: clientpb.SaasBuildConfig
	(*GithubWorkflowConfig)(nil),    // 75: clientpb.GithubWorkflowConfig
	(*GithubWorkflows)(nil),         // 76: clientpb.GithubWorkflows
	(*GithubWorkflow)(nil),          // 77: clientpb.GithubWorkflow
	(*LicenseInfo)(nil),             // 78: clientpb.LicenseInfo
	(*Notify)(nil),                  // 79: clientpb.Notify
	(*Context)(nil),                 // 80: clientpb.Context
	(*Contexts)(nil),                // 81: clientpb.Contexts
	(*KeyPair)(nil),                 // 82: clientpb.KeyPair
	(*Secure)(nil),                  // 83: clientpb.Secure
	nil,                             // 84: clientpb.Session.ArgueEntry
	nil,                             // 85: clientpb.Session.LootEntry
	nil,                             // 86: clientpb.Job.ContentsEntry
	nil,                             // 87: clientpb.REM.AgentsEntry
	nil,                             // 88: clientpb.Website.ContentsEntry
	nil,                             // 89: clientpb.GithubActionBuildConfig.InputsEntry
	nil,                             // 90: clientpb.SaasBuildConfig.HeadersEntry
	(*implantpb.Os)(nil),            // 91: modulepb.Os
	(*implantpb.Process)(nil),       // 92: modulepb.Process
	(*implantpb.Timer)(nil),         // 93: modulepb.Timer
	(*implantpb.Addon)(nil),         // 94: modulepb.Addon
	(*implantpb.Spite)(nil),         // 95: implantpb.Spite
	(*implantpb.Register)(nil),      // 96: modulepb.Register
}
var file_client_clientpb_client_proto_depIdxs = []int32{
	30, // 0: clientpb.Session.tasks:type_name -> clientpb.Tasks
	91, // 1: clientpb.Session.os:type_name -> modulepb.Os
	92, // 2: clientpb.Session.process:type_name -> modulepb.Process
	93, // 3: clientpb.Session.timer:type_name -> modulepb.Timer
	94, // 4: clientpb.Session.addons:type_name -> modulepb.Addon
	82, // 5: clientpb.Session.key_pair:type_name -> clientpb.KeyPair
	84, // 6: clientpb.Session.argue:type_name -> clientpb.Session.ArgueEntry
	85, // 7: clientpb.Session.loot:type_name -> clientpb.Session.LootEntry
	26, // 8: clientpb.Audit.context:type_name -> clientpb.TaskContext
	95, // 9: clientpb.Audit.request:type_name -> implantpb.Spite
	6,  // 10: clientpb.Audits.audit:type_name -> clientpb.Audit
	2,  // 11: clientpb.Sessions.sessions:type_name -> clientpb.Session
	11, // 12: clientpb.SpiteCache.items:type_name -> clientpb.SpiteCacheItem
	95, // 13: clientpb.SpiteCacheItem.spite:type_name -> implantpb.Spite
	50, // 14: clientpb.Job.pipeline:type_name -> clientpb.Pipeline
	86, // 15: clientpb.Job.contents:type_name -> clientpb.Job.ContentsEntry
	60, // 16: clientpb.Job.rem_agent:type_name -> clientpb.REMAgent
	61, // 17: clientpb.Job.rem_log:type_name -> clientpb.RemLog
	12, // 18: clientpb.Jobs.job:type_name -> clientpb.Job
	12, // 19: clientpb.JobCtrl.job:type_name -> clientpb.Job
	64, // 20: clientpb.JobCtrl.content:type_name -> clientpb.WebContent
	2,  // 21: clientpb.JobCtrl.session:type_name -> clientpb.Session
	12, // 22: clientpb.JobStatus.job:type_name -> clientpb.Job
	64, // 23: clientpb.JobStatus.content:type_name -> clientpb.WebContent
	49, // 24: clientpb.Listener.pipelines:type_name -> clientpb.Pipelines
	16, // 25: clientpb.Listeners.listeners:type_name -> clientpb.Listener
	18, // 26: clientpb.Clients.clients:type_name -> clientpb.Client
	2,  // 27: clientpb.Event.session:type_name -> clientpb.Session
	12, // 28: clientpb.Event.job:type_name -> clientpb.Job
	18, // 29: clientpb.Event.client:type_name -> clientpb.Client
	29, // 30: clientpb.Event.task:type_name -> clientpb.Task
	95, // 31: clientpb.Event.spite:type_name -> implantpb.Spite
	20, // 32: clientpb.Events.events:type_name -> clientpb.Event
	29, // 33: clientpb.TaskContext.task:type_name -> clientpb.Task
	2,  // 34: clientpb.TaskContext.session:type_name -> clientpb.Session
	95, // 35: clientpb.TaskContext.spite:type_name -> implantpb.Spite
	29, // 36: clientpb.TaskContexts.task:type_name -> clientpb.Task
	2,  // 37: clientpb.TaskContexts.session:type_name -> clientpb.Session
	95, // 38: clientpb.TaskContexts.spites:type_name -> implantpb.Spite
	26, // 39: clientpb.TasksContext.contexts:type_name -> clientpb.TaskContext
	29, // 40: clientpb.Tasks.tasks:type_name -> clientpb.Task
	34, // 41: clientpb.TaskDescs.tasks:type_name -> clientpb.TaskDesc
	32, // 42: clientpb.Files.files:type_name -> clientpb.File
	36, // 43: clientpb.Plugins.plugins:type_name -> clientpb.Plugin
	41, // 44: clientpb.Artifacts.artifacts:type_name -> clientpb.Artifact
	43, // 45: clientpb.Profiles.profiles:type_name -> clientpb.Profile
	96, // 46: clientpb.RegisterSession.register_data:type_name -> modulepb.Register
	49, // 47: clientpb.RegisterListener.pipelines:type_name -> clientpb.Pipelines
	2,  // 48: clientpb.SpiteRequest.session:type_name -> clientpb.Session
	29, // 49: clientpb.SpiteRequest.task:type_name -> clientpb.Task
	95, // 50: clientpb.SpiteRequest.spite:type_name -> implantpb.Spite
	95, // 51: clientpb.SpiteResponse.spite:type_name -> implantpb.Spite
	50, // 52: clientpb.Pipelines.pipelines:type_name -> clientpb.Pipeline
	52, // 53: clientpb.Pipeline.tls:type_name -> clientpb.TLS
	56, // 54: clientpb.Pipeline.encryption:type_name -> clientpb.Encryption
	83, // 55: clientpb.Pipeline.secure:type_name -> clientpb.Secure
	62, // 56: clientpb.Pipeline.tcp:type_name -> clientpb.TCPPipeline
	57, // 57: clientpb.Pipeline.bind:type_name -> clientpb.BindPipeline
	58, // 58: clientpb.Pipeline.rem:type_name -> clientpb.REM
	65, // 59: clientpb.Pipeline.web:type_name -> clientpb.Website
	63, // 60: clientpb.Pipeline.http:type_name -> clientpb.HTTPPipeline
	50, // 61: clientpb.CtrlPipeline.pipeline:type_name -> clientpb.Pipeline
	54, // 62: clientpb.TLS.cert:type_name -> clientpb.Cert
	54, // 63: clientpb.TLS.ca:type_name -> clientpb.Cert
	55, // 64: clientpb.TLS.cert_subject:type_name -> clientpb.CertificateSubject
	52, // 65: clientpb.Certs.certs:type_name -> clientpb.TLS
	87, // 66: clientpb.REM.agents:type_name -> clientpb.REM.AgentsEntry
	60, // 67: clientpb.REMAgents.agents:type_name -> clientpb.REMAgent
	88, // 68: clientpb.Website.contents:type_name -> clientpb.Website.ContentsEntry
	65, // 69: clientpb.Websites.websites:type_name -> clientpb.Website
	64, // 70: clientpb.WebContents.contents:type_name -> clientpb.WebContent
	70, // 71: clientpb.BuildConfig.resources:type_name -> clientpb.BuildResources
	72, // 72: clientpb.BuildConfig.docker:type_name -> clientpb.DockerBuildConfig
	73, // 73: clientpb.BuildConfig.github_action:type_name -> clientpb.GithubActionBuildConfig
	74, // 74: clientpb.BuildConfig.saas:type_name -> clientpb.SaasBuildConfig
	71, // 75: clientpb.BuildResources.entries:type_name -> clientpb.ResourceEntry
	89, // 76: clientpb.GithubActionBuildConfig.inputs:type_name -> clientpb.GithubActionBuildConfig.InputsEntry
	90, // 77: clientpb.SaasBuildConfig.headers:type_name -> clientpb.SaasBuildConfig.HeadersEntry
	77, // 78: clientpb.GithubWorkflows.workflows:type_name -> clientpb.GithubWorkflow
	2,  // 79: clientpb.Context.session:type_name -> clientpb.Session
	29, // 80: clientpb.Context.task:type_name -> clientpb.Task
	50, // 81: clientpb.Context.pipeline:type_name -> clientpb.Pipeline
	16, // 82: clientpb.Context.listener:type_name -> clientpb.Listener
	80, // 83: clientpb.Contexts.contexts:type_name -> clientpb.Context
	82, // 84: clientpb.Secure.server_keypair:type_name -> clientpb.KeyPair
	82, // 85: clientpb.Secure.implant_keypair:type_name -> clientpb.KeyPair
	64, // 86: clientpb.Job.ContentsEntry.value:type_name -> clientpb.WebContent
	60, // 87: clientpb.REM.AgentsEntry.value:type_name -> clientpb.REMAgent
	64, // 88: clientpb.Website.ContentsEntry.value:type_name -> clientpb.WebContent
	89, // [89:89] is the sub-list for method output_type
	89, // [89:89] is the sub-list for method input_type
	89, // [89:89] is the sub-list for extension type_name
	89, // [89:89] is the sub-list for extension extendee
	0,  // [0:89] is the sub-list for field type_name
}

func init() { file_client_clientpb_client_proto_init() }
func file_client_clientpb_client_proto_init() {
	if File_client_clientpb_client_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_client_clientpb_client_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Empty); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Basic); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Session); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SessionRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TaskRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Int); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Audit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Audits); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BasicUpdateSession); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Sessions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SpiteCache); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SpiteCacheItem); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Job); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Jobs); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*JobCtrl); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*JobStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Listener); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Listeners); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Client); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Clients); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Event); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Events); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*On); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LoginReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Sync); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SyncResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TaskContext); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TaskContexts); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TasksContext); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Task); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Tasks); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TaskDescs); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*File); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Files); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TaskDesc); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Plugins); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Plugin); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EXE2Shellcode); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DLL2Shellcode); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ShellcodeEncode); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Bin); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Artifact); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Artifacts); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Profile); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Profiles); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RegisterSession); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RegisterListener); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SpiteRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SpiteResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Pipelines); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Pipeline); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CtrlPipeline); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TLS); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Certs); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Cert); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CertificateSubject); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Encryption); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BindPipeline); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*REM); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*REMAgents); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*REMAgent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RemLog); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TCPPipeline); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HTTPPipeline); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WebContent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Website); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Websites); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WebContents); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Polling); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BuildConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BuildResources); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResourceEntry); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DockerBuildConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GithubActionBuildConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SaasBuildConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GithubWorkflowConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GithubWorkflows); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GithubWorkflow); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LicenseInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Notify); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Context); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Contexts); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*KeyPair); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_client_clientpb_client_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Secure); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_client_clientpb_client_proto_msgTypes[12].OneofWrappers = []interface{}{
		(*Job_RemAgent)(nil),
		(*Job_RemLog)(nil),
	}
	file_client_clientpb_client_proto_msgTypes[50].OneofWrappers = []interface{}{
		(*Pipeline_Tcp)(nil),
		(*Pipeline_Bind)(nil),
		(*Pipeline_Rem)(nil),
		(*Pipeline_Web)(nil),
		(*Pipeline_Http)(nil),
	}
	file_client_clientpb_client_proto_msgTypes[69].OneofWrappers = []interface{}{
		(*BuildConfig_Docker)(nil),
		(*BuildConfig_GithubAction)(nil),
		(*BuildConfig_Saas)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_client_clientpb_client_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   91,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_client_clientpb_client_proto_goTypes,
		DependencyIndexes: file_client_clientpb_client_proto_depIdxs,
		MessageInfos:      file_client_clientpb_client_proto_msgTypes,
	}.Build()
	File_client_clientpb_client_proto = out.File
	file_client_clientpb_client_proto_rawDesc = nil
	file_client_clientpb_client_proto_goTypes = nil
	file_client_clientpb_client_proto_depIdxs = nil
}
