// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.25.0 // protoc v3.12.4 // source: rpc.proto package gctrpc import ( context "context" proto "github.com/golang/protobuf/proto" timestamp "github.com/golang/protobuf/ptypes/timestamp" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" 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) ) // This is a compile-time assertion that a sufficiently up-to-date version // of the legacy proto package is being used. const _ = proto.ProtoPackageIsVersion4 type GetInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GetInfoRequest) Reset() { *x = GetInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetInfoRequest) ProtoMessage() {} func (x *GetInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetInfoRequest.ProtoReflect.Descriptor instead. func (*GetInfoRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{0} } type GetInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uptime string `protobuf:"bytes,1,opt,name=uptime,proto3" json:"uptime,omitempty"` AvailableExchanges int64 `protobuf:"varint,2,opt,name=available_exchanges,json=availableExchanges,proto3" json:"available_exchanges,omitempty"` EnabledExchanges int64 `protobuf:"varint,3,opt,name=enabled_exchanges,json=enabledExchanges,proto3" json:"enabled_exchanges,omitempty"` DefaultForexProvider string `protobuf:"bytes,4,opt,name=default_forex_provider,json=defaultForexProvider,proto3" json:"default_forex_provider,omitempty"` DefaultFiatCurrency string `protobuf:"bytes,5,opt,name=default_fiat_currency,json=defaultFiatCurrency,proto3" json:"default_fiat_currency,omitempty"` SubsystemStatus map[string]bool `protobuf:"bytes,6,rep,name=subsystem_status,json=subsystemStatus,proto3" json:"subsystem_status,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` RpcEndpoints map[string]*RPCEndpoint `protobuf:"bytes,7,rep,name=rpc_endpoints,json=rpcEndpoints,proto3" json:"rpc_endpoints,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *GetInfoResponse) Reset() { *x = GetInfoResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetInfoResponse) ProtoMessage() {} func (x *GetInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetInfoResponse.ProtoReflect.Descriptor instead. func (*GetInfoResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{1} } func (x *GetInfoResponse) GetUptime() string { if x != nil { return x.Uptime } return "" } func (x *GetInfoResponse) GetAvailableExchanges() int64 { if x != nil { return x.AvailableExchanges } return 0 } func (x *GetInfoResponse) GetEnabledExchanges() int64 { if x != nil { return x.EnabledExchanges } return 0 } func (x *GetInfoResponse) GetDefaultForexProvider() string { if x != nil { return x.DefaultForexProvider } return "" } func (x *GetInfoResponse) GetDefaultFiatCurrency() string { if x != nil { return x.DefaultFiatCurrency } return "" } func (x *GetInfoResponse) GetSubsystemStatus() map[string]bool { if x != nil { return x.SubsystemStatus } return nil } func (x *GetInfoResponse) GetRpcEndpoints() map[string]*RPCEndpoint { if x != nil { return x.RpcEndpoints } return nil } type GetCommunicationRelayersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GetCommunicationRelayersRequest) Reset() { *x = GetCommunicationRelayersRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetCommunicationRelayersRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetCommunicationRelayersRequest) ProtoMessage() {} func (x *GetCommunicationRelayersRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetCommunicationRelayersRequest.ProtoReflect.Descriptor instead. func (*GetCommunicationRelayersRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{2} } type CommunicationRelayer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` Connected bool `protobuf:"varint,2,opt,name=connected,proto3" json:"connected,omitempty"` } func (x *CommunicationRelayer) Reset() { *x = CommunicationRelayer{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunicationRelayer) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunicationRelayer) ProtoMessage() {} func (x *CommunicationRelayer) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 CommunicationRelayer.ProtoReflect.Descriptor instead. func (*CommunicationRelayer) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{3} } func (x *CommunicationRelayer) GetEnabled() bool { if x != nil { return x.Enabled } return false } func (x *CommunicationRelayer) GetConnected() bool { if x != nil { return x.Connected } return false } type GetCommunicationRelayersResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CommunicationRelayers map[string]*CommunicationRelayer `protobuf:"bytes,1,rep,name=communication_relayers,json=communicationRelayers,proto3" json:"communication_relayers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *GetCommunicationRelayersResponse) Reset() { *x = GetCommunicationRelayersResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetCommunicationRelayersResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetCommunicationRelayersResponse) ProtoMessage() {} func (x *GetCommunicationRelayersResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetCommunicationRelayersResponse.ProtoReflect.Descriptor instead. func (*GetCommunicationRelayersResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{4} } func (x *GetCommunicationRelayersResponse) GetCommunicationRelayers() map[string]*CommunicationRelayer { if x != nil { return x.CommunicationRelayers } return nil } type GenericSubsystemRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Subsystem string `protobuf:"bytes,1,opt,name=subsystem,proto3" json:"subsystem,omitempty"` } func (x *GenericSubsystemRequest) Reset() { *x = GenericSubsystemRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GenericSubsystemRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GenericSubsystemRequest) ProtoMessage() {} func (x *GenericSubsystemRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GenericSubsystemRequest.ProtoReflect.Descriptor instead. func (*GenericSubsystemRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{5} } func (x *GenericSubsystemRequest) GetSubsystem() string { if x != nil { return x.Subsystem } return "" } type GetSubsystemsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GetSubsystemsRequest) Reset() { *x = GetSubsystemsRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetSubsystemsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetSubsystemsRequest) ProtoMessage() {} func (x *GetSubsystemsRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetSubsystemsRequest.ProtoReflect.Descriptor instead. func (*GetSubsystemsRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{6} } type GetSusbsytemsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SubsystemsStatus map[string]bool `protobuf:"bytes,1,rep,name=subsystems_status,json=subsystemsStatus,proto3" json:"subsystems_status,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *GetSusbsytemsResponse) Reset() { *x = GetSusbsytemsResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetSusbsytemsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetSusbsytemsResponse) ProtoMessage() {} func (x *GetSusbsytemsResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetSusbsytemsResponse.ProtoReflect.Descriptor instead. func (*GetSusbsytemsResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{7} } func (x *GetSusbsytemsResponse) GetSubsystemsStatus() map[string]bool { if x != nil { return x.SubsystemsStatus } return nil } type GetRPCEndpointsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GetRPCEndpointsRequest) Reset() { *x = GetRPCEndpointsRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetRPCEndpointsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetRPCEndpointsRequest) ProtoMessage() {} func (x *GetRPCEndpointsRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetRPCEndpointsRequest.ProtoReflect.Descriptor instead. func (*GetRPCEndpointsRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{8} } type RPCEndpoint struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Started bool `protobuf:"varint,1,opt,name=started,proto3" json:"started,omitempty"` ListenAddress string `protobuf:"bytes,2,opt,name=listen_address,json=listenAddress,proto3" json:"listen_address,omitempty"` } func (x *RPCEndpoint) Reset() { *x = RPCEndpoint{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RPCEndpoint) String() string { return protoimpl.X.MessageStringOf(x) } func (*RPCEndpoint) ProtoMessage() {} func (x *RPCEndpoint) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 RPCEndpoint.ProtoReflect.Descriptor instead. func (*RPCEndpoint) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{9} } func (x *RPCEndpoint) GetStarted() bool { if x != nil { return x.Started } return false } func (x *RPCEndpoint) GetListenAddress() string { if x != nil { return x.ListenAddress } return "" } type GetRPCEndpointsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Endpoints map[string]*RPCEndpoint `protobuf:"bytes,1,rep,name=endpoints,proto3" json:"endpoints,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *GetRPCEndpointsResponse) Reset() { *x = GetRPCEndpointsResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetRPCEndpointsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetRPCEndpointsResponse) ProtoMessage() {} func (x *GetRPCEndpointsResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetRPCEndpointsResponse.ProtoReflect.Descriptor instead. func (*GetRPCEndpointsResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{10} } func (x *GetRPCEndpointsResponse) GetEndpoints() map[string]*RPCEndpoint { if x != nil { return x.Endpoints } return nil } type GenericExchangeNameRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` } func (x *GenericExchangeNameRequest) Reset() { *x = GenericExchangeNameRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GenericExchangeNameRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GenericExchangeNameRequest) ProtoMessage() {} func (x *GenericExchangeNameRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GenericExchangeNameRequest.ProtoReflect.Descriptor instead. func (*GenericExchangeNameRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{11} } func (x *GenericExchangeNameRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } type GetExchangesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` } func (x *GetExchangesRequest) Reset() { *x = GetExchangesRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetExchangesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetExchangesRequest) ProtoMessage() {} func (x *GetExchangesRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetExchangesRequest.ProtoReflect.Descriptor instead. func (*GetExchangesRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{12} } func (x *GetExchangesRequest) GetEnabled() bool { if x != nil { return x.Enabled } return false } type GetExchangesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchanges string `protobuf:"bytes,1,opt,name=exchanges,proto3" json:"exchanges,omitempty"` } func (x *GetExchangesResponse) Reset() { *x = GetExchangesResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetExchangesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetExchangesResponse) ProtoMessage() {} func (x *GetExchangesResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetExchangesResponse.ProtoReflect.Descriptor instead. func (*GetExchangesResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{13} } func (x *GetExchangesResponse) GetExchanges() string { if x != nil { return x.Exchanges } return "" } type GetExchangeOTPReponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OtpCode string `protobuf:"bytes,1,opt,name=otp_code,json=otpCode,proto3" json:"otp_code,omitempty"` } func (x *GetExchangeOTPReponse) Reset() { *x = GetExchangeOTPReponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetExchangeOTPReponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetExchangeOTPReponse) ProtoMessage() {} func (x *GetExchangeOTPReponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetExchangeOTPReponse.ProtoReflect.Descriptor instead. func (*GetExchangeOTPReponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{14} } func (x *GetExchangeOTPReponse) GetOtpCode() string { if x != nil { return x.OtpCode } return "" } type GetExchangeOTPsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GetExchangeOTPsRequest) Reset() { *x = GetExchangeOTPsRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetExchangeOTPsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetExchangeOTPsRequest) ProtoMessage() {} func (x *GetExchangeOTPsRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetExchangeOTPsRequest.ProtoReflect.Descriptor instead. func (*GetExchangeOTPsRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{15} } type GetExchangeOTPsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OtpCodes map[string]string `protobuf:"bytes,1,rep,name=otp_codes,json=otpCodes,proto3" json:"otp_codes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *GetExchangeOTPsResponse) Reset() { *x = GetExchangeOTPsResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetExchangeOTPsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetExchangeOTPsResponse) ProtoMessage() {} func (x *GetExchangeOTPsResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetExchangeOTPsResponse.ProtoReflect.Descriptor instead. func (*GetExchangeOTPsResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{16} } func (x *GetExchangeOTPsResponse) GetOtpCodes() map[string]string { if x != nil { return x.OtpCodes } return nil } type DisableExchangeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` } func (x *DisableExchangeRequest) Reset() { *x = DisableExchangeRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DisableExchangeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DisableExchangeRequest) ProtoMessage() {} func (x *DisableExchangeRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 DisableExchangeRequest.ProtoReflect.Descriptor instead. func (*DisableExchangeRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{17} } func (x *DisableExchangeRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } type PairsSupported struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AvailablePairs string `protobuf:"bytes,1,opt,name=available_pairs,json=availablePairs,proto3" json:"available_pairs,omitempty"` EnabledPairs string `protobuf:"bytes,2,opt,name=enabled_pairs,json=enabledPairs,proto3" json:"enabled_pairs,omitempty"` } func (x *PairsSupported) Reset() { *x = PairsSupported{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PairsSupported) String() string { return protoimpl.X.MessageStringOf(x) } func (*PairsSupported) ProtoMessage() {} func (x *PairsSupported) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 PairsSupported.ProtoReflect.Descriptor instead. func (*PairsSupported) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{18} } func (x *PairsSupported) GetAvailablePairs() string { if x != nil { return x.AvailablePairs } return "" } func (x *PairsSupported) GetEnabledPairs() string { if x != nil { return x.EnabledPairs } return "" } type GetExchangeInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Enabled bool `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"` Verbose bool `protobuf:"varint,3,opt,name=verbose,proto3" json:"verbose,omitempty"` UsingSandbox bool `protobuf:"varint,4,opt,name=using_sandbox,json=usingSandbox,proto3" json:"using_sandbox,omitempty"` HttpTimeout string `protobuf:"bytes,5,opt,name=http_timeout,json=httpTimeout,proto3" json:"http_timeout,omitempty"` HttpUseragent string `protobuf:"bytes,6,opt,name=http_useragent,json=httpUseragent,proto3" json:"http_useragent,omitempty"` HttpProxy string `protobuf:"bytes,7,opt,name=http_proxy,json=httpProxy,proto3" json:"http_proxy,omitempty"` BaseCurrencies string `protobuf:"bytes,8,opt,name=base_currencies,json=baseCurrencies,proto3" json:"base_currencies,omitempty"` SupportedAssets map[string]*PairsSupported `protobuf:"bytes,9,rep,name=supported_assets,json=supportedAssets,proto3" json:"supported_assets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` AuthenticatedApi bool `protobuf:"varint,10,opt,name=authenticated_api,json=authenticatedApi,proto3" json:"authenticated_api,omitempty"` } func (x *GetExchangeInfoResponse) Reset() { *x = GetExchangeInfoResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetExchangeInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetExchangeInfoResponse) ProtoMessage() {} func (x *GetExchangeInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetExchangeInfoResponse.ProtoReflect.Descriptor instead. func (*GetExchangeInfoResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{19} } func (x *GetExchangeInfoResponse) GetName() string { if x != nil { return x.Name } return "" } func (x *GetExchangeInfoResponse) GetEnabled() bool { if x != nil { return x.Enabled } return false } func (x *GetExchangeInfoResponse) GetVerbose() bool { if x != nil { return x.Verbose } return false } func (x *GetExchangeInfoResponse) GetUsingSandbox() bool { if x != nil { return x.UsingSandbox } return false } func (x *GetExchangeInfoResponse) GetHttpTimeout() string { if x != nil { return x.HttpTimeout } return "" } func (x *GetExchangeInfoResponse) GetHttpUseragent() string { if x != nil { return x.HttpUseragent } return "" } func (x *GetExchangeInfoResponse) GetHttpProxy() string { if x != nil { return x.HttpProxy } return "" } func (x *GetExchangeInfoResponse) GetBaseCurrencies() string { if x != nil { return x.BaseCurrencies } return "" } func (x *GetExchangeInfoResponse) GetSupportedAssets() map[string]*PairsSupported { if x != nil { return x.SupportedAssets } return nil } func (x *GetExchangeInfoResponse) GetAuthenticatedApi() bool { if x != nil { return x.AuthenticatedApi } return false } type GetTickerRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Pair *CurrencyPair `protobuf:"bytes,2,opt,name=pair,proto3" json:"pair,omitempty"` AssetType string `protobuf:"bytes,3,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` } func (x *GetTickerRequest) Reset() { *x = GetTickerRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetTickerRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetTickerRequest) ProtoMessage() {} func (x *GetTickerRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetTickerRequest.ProtoReflect.Descriptor instead. func (*GetTickerRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{20} } func (x *GetTickerRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *GetTickerRequest) GetPair() *CurrencyPair { if x != nil { return x.Pair } return nil } func (x *GetTickerRequest) GetAssetType() string { if x != nil { return x.AssetType } return "" } type CurrencyPair struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Delimiter string `protobuf:"bytes,1,opt,name=delimiter,proto3" json:"delimiter,omitempty"` Base string `protobuf:"bytes,2,opt,name=base,proto3" json:"base,omitempty"` Quote string `protobuf:"bytes,3,opt,name=quote,proto3" json:"quote,omitempty"` } func (x *CurrencyPair) Reset() { *x = CurrencyPair{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CurrencyPair) String() string { return protoimpl.X.MessageStringOf(x) } func (*CurrencyPair) ProtoMessage() {} func (x *CurrencyPair) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 CurrencyPair.ProtoReflect.Descriptor instead. func (*CurrencyPair) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{21} } func (x *CurrencyPair) GetDelimiter() string { if x != nil { return x.Delimiter } return "" } func (x *CurrencyPair) GetBase() string { if x != nil { return x.Base } return "" } func (x *CurrencyPair) GetQuote() string { if x != nil { return x.Quote } return "" } type TickerResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Pair *CurrencyPair `protobuf:"bytes,1,opt,name=pair,proto3" json:"pair,omitempty"` LastUpdated int64 `protobuf:"varint,2,opt,name=last_updated,json=lastUpdated,proto3" json:"last_updated,omitempty"` CurrencyPair string `protobuf:"bytes,3,opt,name=currency_pair,json=currencyPair,proto3" json:"currency_pair,omitempty"` Last float64 `protobuf:"fixed64,4,opt,name=last,proto3" json:"last,omitempty"` High float64 `protobuf:"fixed64,5,opt,name=high,proto3" json:"high,omitempty"` Low float64 `protobuf:"fixed64,6,opt,name=low,proto3" json:"low,omitempty"` Bid float64 `protobuf:"fixed64,7,opt,name=bid,proto3" json:"bid,omitempty"` Ask float64 `protobuf:"fixed64,8,opt,name=ask,proto3" json:"ask,omitempty"` Volume float64 `protobuf:"fixed64,9,opt,name=volume,proto3" json:"volume,omitempty"` PriceAth float64 `protobuf:"fixed64,10,opt,name=price_ath,json=priceAth,proto3" json:"price_ath,omitempty"` } func (x *TickerResponse) Reset() { *x = TickerResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TickerResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*TickerResponse) ProtoMessage() {} func (x *TickerResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 TickerResponse.ProtoReflect.Descriptor instead. func (*TickerResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{22} } func (x *TickerResponse) GetPair() *CurrencyPair { if x != nil { return x.Pair } return nil } func (x *TickerResponse) GetLastUpdated() int64 { if x != nil { return x.LastUpdated } return 0 } func (x *TickerResponse) GetCurrencyPair() string { if x != nil { return x.CurrencyPair } return "" } func (x *TickerResponse) GetLast() float64 { if x != nil { return x.Last } return 0 } func (x *TickerResponse) GetHigh() float64 { if x != nil { return x.High } return 0 } func (x *TickerResponse) GetLow() float64 { if x != nil { return x.Low } return 0 } func (x *TickerResponse) GetBid() float64 { if x != nil { return x.Bid } return 0 } func (x *TickerResponse) GetAsk() float64 { if x != nil { return x.Ask } return 0 } func (x *TickerResponse) GetVolume() float64 { if x != nil { return x.Volume } return 0 } func (x *TickerResponse) GetPriceAth() float64 { if x != nil { return x.PriceAth } return 0 } type GetTickersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GetTickersRequest) Reset() { *x = GetTickersRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetTickersRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetTickersRequest) ProtoMessage() {} func (x *GetTickersRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetTickersRequest.ProtoReflect.Descriptor instead. func (*GetTickersRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{23} } type Tickers struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Tickers []*TickerResponse `protobuf:"bytes,2,rep,name=tickers,proto3" json:"tickers,omitempty"` } func (x *Tickers) Reset() { *x = Tickers{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Tickers) String() string { return protoimpl.X.MessageStringOf(x) } func (*Tickers) ProtoMessage() {} func (x *Tickers) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 Tickers.ProtoReflect.Descriptor instead. func (*Tickers) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{24} } func (x *Tickers) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *Tickers) GetTickers() []*TickerResponse { if x != nil { return x.Tickers } return nil } type GetTickersResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Tickers []*Tickers `protobuf:"bytes,1,rep,name=tickers,proto3" json:"tickers,omitempty"` } func (x *GetTickersResponse) Reset() { *x = GetTickersResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetTickersResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetTickersResponse) ProtoMessage() {} func (x *GetTickersResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetTickersResponse.ProtoReflect.Descriptor instead. func (*GetTickersResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{25} } func (x *GetTickersResponse) GetTickers() []*Tickers { if x != nil { return x.Tickers } return nil } type GetOrderbookRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Pair *CurrencyPair `protobuf:"bytes,2,opt,name=pair,proto3" json:"pair,omitempty"` AssetType string `protobuf:"bytes,3,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` } func (x *GetOrderbookRequest) Reset() { *x = GetOrderbookRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetOrderbookRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetOrderbookRequest) ProtoMessage() {} func (x *GetOrderbookRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetOrderbookRequest.ProtoReflect.Descriptor instead. func (*GetOrderbookRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{26} } func (x *GetOrderbookRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *GetOrderbookRequest) GetPair() *CurrencyPair { if x != nil { return x.Pair } return nil } func (x *GetOrderbookRequest) GetAssetType() string { if x != nil { return x.AssetType } return "" } type OrderbookItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Amount float64 `protobuf:"fixed64,1,opt,name=amount,proto3" json:"amount,omitempty"` Price float64 `protobuf:"fixed64,2,opt,name=price,proto3" json:"price,omitempty"` Id int64 `protobuf:"varint,3,opt,name=id,proto3" json:"id,omitempty"` } func (x *OrderbookItem) Reset() { *x = OrderbookItem{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OrderbookItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*OrderbookItem) ProtoMessage() {} func (x *OrderbookItem) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 OrderbookItem.ProtoReflect.Descriptor instead. func (*OrderbookItem) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{27} } func (x *OrderbookItem) GetAmount() float64 { if x != nil { return x.Amount } return 0 } func (x *OrderbookItem) GetPrice() float64 { if x != nil { return x.Price } return 0 } func (x *OrderbookItem) GetId() int64 { if x != nil { return x.Id } return 0 } type OrderbookResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Pair *CurrencyPair `protobuf:"bytes,1,opt,name=pair,proto3" json:"pair,omitempty"` CurrencyPair string `protobuf:"bytes,2,opt,name=currency_pair,json=currencyPair,proto3" json:"currency_pair,omitempty"` Bids []*OrderbookItem `protobuf:"bytes,3,rep,name=bids,proto3" json:"bids,omitempty"` Asks []*OrderbookItem `protobuf:"bytes,4,rep,name=asks,proto3" json:"asks,omitempty"` LastUpdated int64 `protobuf:"varint,5,opt,name=last_updated,json=lastUpdated,proto3" json:"last_updated,omitempty"` AssetType string `protobuf:"bytes,6,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` } func (x *OrderbookResponse) Reset() { *x = OrderbookResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OrderbookResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*OrderbookResponse) ProtoMessage() {} func (x *OrderbookResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 OrderbookResponse.ProtoReflect.Descriptor instead. func (*OrderbookResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{28} } func (x *OrderbookResponse) GetPair() *CurrencyPair { if x != nil { return x.Pair } return nil } func (x *OrderbookResponse) GetCurrencyPair() string { if x != nil { return x.CurrencyPair } return "" } func (x *OrderbookResponse) GetBids() []*OrderbookItem { if x != nil { return x.Bids } return nil } func (x *OrderbookResponse) GetAsks() []*OrderbookItem { if x != nil { return x.Asks } return nil } func (x *OrderbookResponse) GetLastUpdated() int64 { if x != nil { return x.LastUpdated } return 0 } func (x *OrderbookResponse) GetAssetType() string { if x != nil { return x.AssetType } return "" } type GetOrderbooksRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GetOrderbooksRequest) Reset() { *x = GetOrderbooksRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetOrderbooksRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetOrderbooksRequest) ProtoMessage() {} func (x *GetOrderbooksRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetOrderbooksRequest.ProtoReflect.Descriptor instead. func (*GetOrderbooksRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{29} } type Orderbooks struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Orderbooks []*OrderbookResponse `protobuf:"bytes,2,rep,name=orderbooks,proto3" json:"orderbooks,omitempty"` } func (x *Orderbooks) Reset() { *x = Orderbooks{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Orderbooks) String() string { return protoimpl.X.MessageStringOf(x) } func (*Orderbooks) ProtoMessage() {} func (x *Orderbooks) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 Orderbooks.ProtoReflect.Descriptor instead. func (*Orderbooks) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{30} } func (x *Orderbooks) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *Orderbooks) GetOrderbooks() []*OrderbookResponse { if x != nil { return x.Orderbooks } return nil } type GetOrderbooksResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Orderbooks []*Orderbooks `protobuf:"bytes,1,rep,name=orderbooks,proto3" json:"orderbooks,omitempty"` } func (x *GetOrderbooksResponse) Reset() { *x = GetOrderbooksResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetOrderbooksResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetOrderbooksResponse) ProtoMessage() {} func (x *GetOrderbooksResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetOrderbooksResponse.ProtoReflect.Descriptor instead. func (*GetOrderbooksResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{31} } func (x *GetOrderbooksResponse) GetOrderbooks() []*Orderbooks { if x != nil { return x.Orderbooks } return nil } type GetAccountInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` } func (x *GetAccountInfoRequest) Reset() { *x = GetAccountInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetAccountInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetAccountInfoRequest) ProtoMessage() {} func (x *GetAccountInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetAccountInfoRequest.ProtoReflect.Descriptor instead. func (*GetAccountInfoRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{32} } func (x *GetAccountInfoRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } type Account struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` Currencies []*AccountCurrencyInfo `protobuf:"bytes,2,rep,name=currencies,proto3" json:"currencies,omitempty"` } func (x *Account) Reset() { *x = Account{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Account) String() string { return protoimpl.X.MessageStringOf(x) } func (*Account) ProtoMessage() {} func (x *Account) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 Account.ProtoReflect.Descriptor instead. func (*Account) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{33} } func (x *Account) GetId() string { if x != nil { return x.Id } return "" } func (x *Account) GetCurrencies() []*AccountCurrencyInfo { if x != nil { return x.Currencies } return nil } type AccountCurrencyInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Currency string `protobuf:"bytes,1,opt,name=currency,proto3" json:"currency,omitempty"` TotalValue float64 `protobuf:"fixed64,2,opt,name=total_value,json=totalValue,proto3" json:"total_value,omitempty"` Hold float64 `protobuf:"fixed64,3,opt,name=hold,proto3" json:"hold,omitempty"` } func (x *AccountCurrencyInfo) Reset() { *x = AccountCurrencyInfo{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AccountCurrencyInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*AccountCurrencyInfo) ProtoMessage() {} func (x *AccountCurrencyInfo) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 AccountCurrencyInfo.ProtoReflect.Descriptor instead. func (*AccountCurrencyInfo) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{34} } func (x *AccountCurrencyInfo) GetCurrency() string { if x != nil { return x.Currency } return "" } func (x *AccountCurrencyInfo) GetTotalValue() float64 { if x != nil { return x.TotalValue } return 0 } func (x *AccountCurrencyInfo) GetHold() float64 { if x != nil { return x.Hold } return 0 } type GetAccountInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Accounts []*Account `protobuf:"bytes,2,rep,name=accounts,proto3" json:"accounts,omitempty"` } func (x *GetAccountInfoResponse) Reset() { *x = GetAccountInfoResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetAccountInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetAccountInfoResponse) ProtoMessage() {} func (x *GetAccountInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetAccountInfoResponse.ProtoReflect.Descriptor instead. func (*GetAccountInfoResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{35} } func (x *GetAccountInfoResponse) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *GetAccountInfoResponse) GetAccounts() []*Account { if x != nil { return x.Accounts } return nil } type GetConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GetConfigRequest) Reset() { *x = GetConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetConfigRequest) ProtoMessage() {} func (x *GetConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetConfigRequest.ProtoReflect.Descriptor instead. func (*GetConfigRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{36} } type GetConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetConfigResponse) Reset() { *x = GetConfigResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetConfigResponse) ProtoMessage() {} func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetConfigResponse.ProtoReflect.Descriptor instead. func (*GetConfigResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{37} } func (x *GetConfigResponse) GetData() []byte { if x != nil { return x.Data } return nil } type PortfolioAddress struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` CoinType string `protobuf:"bytes,2,opt,name=coin_type,json=coinType,proto3" json:"coin_type,omitempty"` Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` Balance float64 `protobuf:"fixed64,4,opt,name=balance,proto3" json:"balance,omitempty"` } func (x *PortfolioAddress) Reset() { *x = PortfolioAddress{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PortfolioAddress) String() string { return protoimpl.X.MessageStringOf(x) } func (*PortfolioAddress) ProtoMessage() {} func (x *PortfolioAddress) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 PortfolioAddress.ProtoReflect.Descriptor instead. func (*PortfolioAddress) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{38} } func (x *PortfolioAddress) GetAddress() string { if x != nil { return x.Address } return "" } func (x *PortfolioAddress) GetCoinType() string { if x != nil { return x.CoinType } return "" } func (x *PortfolioAddress) GetDescription() string { if x != nil { return x.Description } return "" } func (x *PortfolioAddress) GetBalance() float64 { if x != nil { return x.Balance } return 0 } type GetPortfolioRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GetPortfolioRequest) Reset() { *x = GetPortfolioRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetPortfolioRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetPortfolioRequest) ProtoMessage() {} func (x *GetPortfolioRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetPortfolioRequest.ProtoReflect.Descriptor instead. func (*GetPortfolioRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{39} } type GetPortfolioResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Portfolio []*PortfolioAddress `protobuf:"bytes,1,rep,name=portfolio,proto3" json:"portfolio,omitempty"` } func (x *GetPortfolioResponse) Reset() { *x = GetPortfolioResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetPortfolioResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetPortfolioResponse) ProtoMessage() {} func (x *GetPortfolioResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetPortfolioResponse.ProtoReflect.Descriptor instead. func (*GetPortfolioResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{40} } func (x *GetPortfolioResponse) GetPortfolio() []*PortfolioAddress { if x != nil { return x.Portfolio } return nil } type GetPortfolioSummaryRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GetPortfolioSummaryRequest) Reset() { *x = GetPortfolioSummaryRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetPortfolioSummaryRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetPortfolioSummaryRequest) ProtoMessage() {} func (x *GetPortfolioSummaryRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetPortfolioSummaryRequest.ProtoReflect.Descriptor instead. func (*GetPortfolioSummaryRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{41} } type Coin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Coin string `protobuf:"bytes,1,opt,name=coin,proto3" json:"coin,omitempty"` Balance float64 `protobuf:"fixed64,2,opt,name=balance,proto3" json:"balance,omitempty"` Address string `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` Percentage float64 `protobuf:"fixed64,4,opt,name=percentage,proto3" json:"percentage,omitempty"` } func (x *Coin) Reset() { *x = Coin{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Coin) String() string { return protoimpl.X.MessageStringOf(x) } func (*Coin) ProtoMessage() {} func (x *Coin) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 Coin.ProtoReflect.Descriptor instead. func (*Coin) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{42} } func (x *Coin) GetCoin() string { if x != nil { return x.Coin } return "" } func (x *Coin) GetBalance() float64 { if x != nil { return x.Balance } return 0 } func (x *Coin) GetAddress() string { if x != nil { return x.Address } return "" } func (x *Coin) GetPercentage() float64 { if x != nil { return x.Percentage } return 0 } type OfflineCoinSummary struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` Balance float64 `protobuf:"fixed64,2,opt,name=balance,proto3" json:"balance,omitempty"` Percentage float64 `protobuf:"fixed64,3,opt,name=percentage,proto3" json:"percentage,omitempty"` } func (x *OfflineCoinSummary) Reset() { *x = OfflineCoinSummary{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OfflineCoinSummary) String() string { return protoimpl.X.MessageStringOf(x) } func (*OfflineCoinSummary) ProtoMessage() {} func (x *OfflineCoinSummary) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 OfflineCoinSummary.ProtoReflect.Descriptor instead. func (*OfflineCoinSummary) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{43} } func (x *OfflineCoinSummary) GetAddress() string { if x != nil { return x.Address } return "" } func (x *OfflineCoinSummary) GetBalance() float64 { if x != nil { return x.Balance } return 0 } func (x *OfflineCoinSummary) GetPercentage() float64 { if x != nil { return x.Percentage } return 0 } type OnlineCoinSummary struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Balance float64 `protobuf:"fixed64,1,opt,name=balance,proto3" json:"balance,omitempty"` Percentage float64 `protobuf:"fixed64,2,opt,name=percentage,proto3" json:"percentage,omitempty"` } func (x *OnlineCoinSummary) Reset() { *x = OnlineCoinSummary{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OnlineCoinSummary) String() string { return protoimpl.X.MessageStringOf(x) } func (*OnlineCoinSummary) ProtoMessage() {} func (x *OnlineCoinSummary) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 OnlineCoinSummary.ProtoReflect.Descriptor instead. func (*OnlineCoinSummary) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{44} } func (x *OnlineCoinSummary) GetBalance() float64 { if x != nil { return x.Balance } return 0 } func (x *OnlineCoinSummary) GetPercentage() float64 { if x != nil { return x.Percentage } return 0 } type OfflineCoins struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Addresses []*OfflineCoinSummary `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` } func (x *OfflineCoins) Reset() { *x = OfflineCoins{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OfflineCoins) String() string { return protoimpl.X.MessageStringOf(x) } func (*OfflineCoins) ProtoMessage() {} func (x *OfflineCoins) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 OfflineCoins.ProtoReflect.Descriptor instead. func (*OfflineCoins) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{45} } func (x *OfflineCoins) GetAddresses() []*OfflineCoinSummary { if x != nil { return x.Addresses } return nil } type OnlineCoins struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Coins map[string]*OnlineCoinSummary `protobuf:"bytes,1,rep,name=coins,proto3" json:"coins,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *OnlineCoins) Reset() { *x = OnlineCoins{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OnlineCoins) String() string { return protoimpl.X.MessageStringOf(x) } func (*OnlineCoins) ProtoMessage() {} func (x *OnlineCoins) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 OnlineCoins.ProtoReflect.Descriptor instead. func (*OnlineCoins) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{46} } func (x *OnlineCoins) GetCoins() map[string]*OnlineCoinSummary { if x != nil { return x.Coins } return nil } type GetPortfolioSummaryResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CoinTotals []*Coin `protobuf:"bytes,1,rep,name=coin_totals,json=coinTotals,proto3" json:"coin_totals,omitempty"` CoinsOffline []*Coin `protobuf:"bytes,2,rep,name=coins_offline,json=coinsOffline,proto3" json:"coins_offline,omitempty"` CoinsOfflineSummary map[string]*OfflineCoins `protobuf:"bytes,3,rep,name=coins_offline_summary,json=coinsOfflineSummary,proto3" json:"coins_offline_summary,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` CoinsOnline []*Coin `protobuf:"bytes,4,rep,name=coins_online,json=coinsOnline,proto3" json:"coins_online,omitempty"` CoinsOnlineSummary map[string]*OnlineCoins `protobuf:"bytes,5,rep,name=coins_online_summary,json=coinsOnlineSummary,proto3" json:"coins_online_summary,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *GetPortfolioSummaryResponse) Reset() { *x = GetPortfolioSummaryResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetPortfolioSummaryResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetPortfolioSummaryResponse) ProtoMessage() {} func (x *GetPortfolioSummaryResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetPortfolioSummaryResponse.ProtoReflect.Descriptor instead. func (*GetPortfolioSummaryResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{47} } func (x *GetPortfolioSummaryResponse) GetCoinTotals() []*Coin { if x != nil { return x.CoinTotals } return nil } func (x *GetPortfolioSummaryResponse) GetCoinsOffline() []*Coin { if x != nil { return x.CoinsOffline } return nil } func (x *GetPortfolioSummaryResponse) GetCoinsOfflineSummary() map[string]*OfflineCoins { if x != nil { return x.CoinsOfflineSummary } return nil } func (x *GetPortfolioSummaryResponse) GetCoinsOnline() []*Coin { if x != nil { return x.CoinsOnline } return nil } func (x *GetPortfolioSummaryResponse) GetCoinsOnlineSummary() map[string]*OnlineCoins { if x != nil { return x.CoinsOnlineSummary } return nil } type AddPortfolioAddressRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` CoinType string `protobuf:"bytes,2,opt,name=coin_type,json=coinType,proto3" json:"coin_type,omitempty"` Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` Balance float64 `protobuf:"fixed64,4,opt,name=balance,proto3" json:"balance,omitempty"` SupportedExchanges string `protobuf:"bytes,5,opt,name=supported_exchanges,json=supportedExchanges,proto3" json:"supported_exchanges,omitempty"` ColdStorage bool `protobuf:"varint,6,opt,name=cold_storage,json=coldStorage,proto3" json:"cold_storage,omitempty"` } func (x *AddPortfolioAddressRequest) Reset() { *x = AddPortfolioAddressRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AddPortfolioAddressRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*AddPortfolioAddressRequest) ProtoMessage() {} func (x *AddPortfolioAddressRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 AddPortfolioAddressRequest.ProtoReflect.Descriptor instead. func (*AddPortfolioAddressRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{48} } func (x *AddPortfolioAddressRequest) GetAddress() string { if x != nil { return x.Address } return "" } func (x *AddPortfolioAddressRequest) GetCoinType() string { if x != nil { return x.CoinType } return "" } func (x *AddPortfolioAddressRequest) GetDescription() string { if x != nil { return x.Description } return "" } func (x *AddPortfolioAddressRequest) GetBalance() float64 { if x != nil { return x.Balance } return 0 } func (x *AddPortfolioAddressRequest) GetSupportedExchanges() string { if x != nil { return x.SupportedExchanges } return "" } func (x *AddPortfolioAddressRequest) GetColdStorage() bool { if x != nil { return x.ColdStorage } return false } type RemovePortfolioAddressRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` CoinType string `protobuf:"bytes,2,opt,name=coin_type,json=coinType,proto3" json:"coin_type,omitempty"` Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` } func (x *RemovePortfolioAddressRequest) Reset() { *x = RemovePortfolioAddressRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RemovePortfolioAddressRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*RemovePortfolioAddressRequest) ProtoMessage() {} func (x *RemovePortfolioAddressRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 RemovePortfolioAddressRequest.ProtoReflect.Descriptor instead. func (*RemovePortfolioAddressRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{49} } func (x *RemovePortfolioAddressRequest) GetAddress() string { if x != nil { return x.Address } return "" } func (x *RemovePortfolioAddressRequest) GetCoinType() string { if x != nil { return x.CoinType } return "" } func (x *RemovePortfolioAddressRequest) GetDescription() string { if x != nil { return x.Description } return "" } type GetForexProvidersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GetForexProvidersRequest) Reset() { *x = GetForexProvidersRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetForexProvidersRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetForexProvidersRequest) ProtoMessage() {} func (x *GetForexProvidersRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetForexProvidersRequest.ProtoReflect.Descriptor instead. func (*GetForexProvidersRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{50} } type ForexProvider struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Enabled bool `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"` Verbose bool `protobuf:"varint,3,opt,name=verbose,proto3" json:"verbose,omitempty"` RestPollingDelay string `protobuf:"bytes,4,opt,name=rest_polling_delay,json=restPollingDelay,proto3" json:"rest_polling_delay,omitempty"` ApiKey string `protobuf:"bytes,5,opt,name=api_key,json=apiKey,proto3" json:"api_key,omitempty"` ApiKeyLevel int64 `protobuf:"varint,6,opt,name=api_key_level,json=apiKeyLevel,proto3" json:"api_key_level,omitempty"` PrimaryProvider bool `protobuf:"varint,7,opt,name=primary_provider,json=primaryProvider,proto3" json:"primary_provider,omitempty"` } func (x *ForexProvider) Reset() { *x = ForexProvider{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ForexProvider) String() string { return protoimpl.X.MessageStringOf(x) } func (*ForexProvider) ProtoMessage() {} func (x *ForexProvider) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 ForexProvider.ProtoReflect.Descriptor instead. func (*ForexProvider) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{51} } func (x *ForexProvider) GetName() string { if x != nil { return x.Name } return "" } func (x *ForexProvider) GetEnabled() bool { if x != nil { return x.Enabled } return false } func (x *ForexProvider) GetVerbose() bool { if x != nil { return x.Verbose } return false } func (x *ForexProvider) GetRestPollingDelay() string { if x != nil { return x.RestPollingDelay } return "" } func (x *ForexProvider) GetApiKey() string { if x != nil { return x.ApiKey } return "" } func (x *ForexProvider) GetApiKeyLevel() int64 { if x != nil { return x.ApiKeyLevel } return 0 } func (x *ForexProvider) GetPrimaryProvider() bool { if x != nil { return x.PrimaryProvider } return false } type GetForexProvidersResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ForexProviders []*ForexProvider `protobuf:"bytes,1,rep,name=forex_providers,json=forexProviders,proto3" json:"forex_providers,omitempty"` } func (x *GetForexProvidersResponse) Reset() { *x = GetForexProvidersResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetForexProvidersResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetForexProvidersResponse) ProtoMessage() {} func (x *GetForexProvidersResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetForexProvidersResponse.ProtoReflect.Descriptor instead. func (*GetForexProvidersResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{52} } func (x *GetForexProvidersResponse) GetForexProviders() []*ForexProvider { if x != nil { return x.ForexProviders } return nil } type GetForexRatesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GetForexRatesRequest) Reset() { *x = GetForexRatesRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetForexRatesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetForexRatesRequest) ProtoMessage() {} func (x *GetForexRatesRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetForexRatesRequest.ProtoReflect.Descriptor instead. func (*GetForexRatesRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{53} } type ForexRatesConversion struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields From string `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` To string `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"` Rate float64 `protobuf:"fixed64,3,opt,name=rate,proto3" json:"rate,omitempty"` InverseRate float64 `protobuf:"fixed64,4,opt,name=inverse_rate,json=inverseRate,proto3" json:"inverse_rate,omitempty"` } func (x *ForexRatesConversion) Reset() { *x = ForexRatesConversion{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ForexRatesConversion) String() string { return protoimpl.X.MessageStringOf(x) } func (*ForexRatesConversion) ProtoMessage() {} func (x *ForexRatesConversion) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 ForexRatesConversion.ProtoReflect.Descriptor instead. func (*ForexRatesConversion) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{54} } func (x *ForexRatesConversion) GetFrom() string { if x != nil { return x.From } return "" } func (x *ForexRatesConversion) GetTo() string { if x != nil { return x.To } return "" } func (x *ForexRatesConversion) GetRate() float64 { if x != nil { return x.Rate } return 0 } func (x *ForexRatesConversion) GetInverseRate() float64 { if x != nil { return x.InverseRate } return 0 } type GetForexRatesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ForexRates []*ForexRatesConversion `protobuf:"bytes,1,rep,name=forex_rates,json=forexRates,proto3" json:"forex_rates,omitempty"` } func (x *GetForexRatesResponse) Reset() { *x = GetForexRatesResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetForexRatesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetForexRatesResponse) ProtoMessage() {} func (x *GetForexRatesResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetForexRatesResponse.ProtoReflect.Descriptor instead. func (*GetForexRatesResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{55} } func (x *GetForexRatesResponse) GetForexRates() []*ForexRatesConversion { if x != nil { return x.ForexRates } return nil } type OrderDetails struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` BaseCurrency string `protobuf:"bytes,3,opt,name=base_currency,json=baseCurrency,proto3" json:"base_currency,omitempty"` QuoteCurrency string `protobuf:"bytes,4,opt,name=quote_currency,json=quoteCurrency,proto3" json:"quote_currency,omitempty"` AssetType string `protobuf:"bytes,5,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` OrderSide string `protobuf:"bytes,6,opt,name=order_side,json=orderSide,proto3" json:"order_side,omitempty"` OrderType string `protobuf:"bytes,7,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` CreationTime int64 `protobuf:"varint,8,opt,name=creation_time,json=creationTime,proto3" json:"creation_time,omitempty"` Status string `protobuf:"bytes,9,opt,name=status,proto3" json:"status,omitempty"` Price float64 `protobuf:"fixed64,10,opt,name=price,proto3" json:"price,omitempty"` Amount float64 `protobuf:"fixed64,11,opt,name=amount,proto3" json:"amount,omitempty"` OpenVolume float64 `protobuf:"fixed64,12,opt,name=open_volume,json=openVolume,proto3" json:"open_volume,omitempty"` Fee float64 `protobuf:"fixed64,13,opt,name=fee,proto3" json:"fee,omitempty"` Trades []*TradeHistory `protobuf:"bytes,14,rep,name=trades,proto3" json:"trades,omitempty"` } func (x *OrderDetails) Reset() { *x = OrderDetails{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OrderDetails) String() string { return protoimpl.X.MessageStringOf(x) } func (*OrderDetails) ProtoMessage() {} func (x *OrderDetails) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 OrderDetails.ProtoReflect.Descriptor instead. func (*OrderDetails) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{56} } func (x *OrderDetails) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *OrderDetails) GetId() string { if x != nil { return x.Id } return "" } func (x *OrderDetails) GetBaseCurrency() string { if x != nil { return x.BaseCurrency } return "" } func (x *OrderDetails) GetQuoteCurrency() string { if x != nil { return x.QuoteCurrency } return "" } func (x *OrderDetails) GetAssetType() string { if x != nil { return x.AssetType } return "" } func (x *OrderDetails) GetOrderSide() string { if x != nil { return x.OrderSide } return "" } func (x *OrderDetails) GetOrderType() string { if x != nil { return x.OrderType } return "" } func (x *OrderDetails) GetCreationTime() int64 { if x != nil { return x.CreationTime } return 0 } func (x *OrderDetails) GetStatus() string { if x != nil { return x.Status } return "" } func (x *OrderDetails) GetPrice() float64 { if x != nil { return x.Price } return 0 } func (x *OrderDetails) GetAmount() float64 { if x != nil { return x.Amount } return 0 } func (x *OrderDetails) GetOpenVolume() float64 { if x != nil { return x.OpenVolume } return 0 } func (x *OrderDetails) GetFee() float64 { if x != nil { return x.Fee } return 0 } func (x *OrderDetails) GetTrades() []*TradeHistory { if x != nil { return x.Trades } return nil } type TradeHistory struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CreationTime int64 `protobuf:"varint,1,opt,name=creation_time,json=creationTime,proto3" json:"creation_time,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` Price float64 `protobuf:"fixed64,3,opt,name=price,proto3" json:"price,omitempty"` Amount float64 `protobuf:"fixed64,4,opt,name=amount,proto3" json:"amount,omitempty"` Exchange string `protobuf:"bytes,5,opt,name=exchange,proto3" json:"exchange,omitempty"` AssetType string `protobuf:"bytes,6,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` OrderSide string `protobuf:"bytes,7,opt,name=order_side,json=orderSide,proto3" json:"order_side,omitempty"` Fee float64 `protobuf:"fixed64,8,opt,name=fee,proto3" json:"fee,omitempty"` } func (x *TradeHistory) Reset() { *x = TradeHistory{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TradeHistory) String() string { return protoimpl.X.MessageStringOf(x) } func (*TradeHistory) ProtoMessage() {} func (x *TradeHistory) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 TradeHistory.ProtoReflect.Descriptor instead. func (*TradeHistory) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{57} } func (x *TradeHistory) GetCreationTime() int64 { if x != nil { return x.CreationTime } return 0 } func (x *TradeHistory) GetId() string { if x != nil { return x.Id } return "" } func (x *TradeHistory) GetPrice() float64 { if x != nil { return x.Price } return 0 } func (x *TradeHistory) GetAmount() float64 { if x != nil { return x.Amount } return 0 } func (x *TradeHistory) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *TradeHistory) GetAssetType() string { if x != nil { return x.AssetType } return "" } func (x *TradeHistory) GetOrderSide() string { if x != nil { return x.OrderSide } return "" } func (x *TradeHistory) GetFee() float64 { if x != nil { return x.Fee } return 0 } type GetOrdersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` AssetType string `protobuf:"bytes,2,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` Pair *CurrencyPair `protobuf:"bytes,3,opt,name=pair,proto3" json:"pair,omitempty"` } func (x *GetOrdersRequest) Reset() { *x = GetOrdersRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetOrdersRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetOrdersRequest) ProtoMessage() {} func (x *GetOrdersRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetOrdersRequest.ProtoReflect.Descriptor instead. func (*GetOrdersRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{58} } func (x *GetOrdersRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *GetOrdersRequest) GetAssetType() string { if x != nil { return x.AssetType } return "" } func (x *GetOrdersRequest) GetPair() *CurrencyPair { if x != nil { return x.Pair } return nil } type GetOrdersResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Orders []*OrderDetails `protobuf:"bytes,1,rep,name=orders,proto3" json:"orders,omitempty"` } func (x *GetOrdersResponse) Reset() { *x = GetOrdersResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetOrdersResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetOrdersResponse) ProtoMessage() {} func (x *GetOrdersResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetOrdersResponse.ProtoReflect.Descriptor instead. func (*GetOrdersResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{59} } func (x *GetOrdersResponse) GetOrders() []*OrderDetails { if x != nil { return x.Orders } return nil } type GetOrderRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` OrderId string `protobuf:"bytes,2,opt,name=order_id,json=orderId,proto3" json:"order_id,omitempty"` } func (x *GetOrderRequest) Reset() { *x = GetOrderRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetOrderRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetOrderRequest) ProtoMessage() {} func (x *GetOrderRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetOrderRequest.ProtoReflect.Descriptor instead. func (*GetOrderRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{60} } func (x *GetOrderRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *GetOrderRequest) GetOrderId() string { if x != nil { return x.OrderId } return "" } type SubmitOrderRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Pair *CurrencyPair `protobuf:"bytes,2,opt,name=pair,proto3" json:"pair,omitempty"` Side string `protobuf:"bytes,3,opt,name=side,proto3" json:"side,omitempty"` OrderType string `protobuf:"bytes,4,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` Amount float64 `protobuf:"fixed64,5,opt,name=amount,proto3" json:"amount,omitempty"` Price float64 `protobuf:"fixed64,6,opt,name=price,proto3" json:"price,omitempty"` ClientId string `protobuf:"bytes,7,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` } func (x *SubmitOrderRequest) Reset() { *x = SubmitOrderRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SubmitOrderRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SubmitOrderRequest) ProtoMessage() {} func (x *SubmitOrderRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 SubmitOrderRequest.ProtoReflect.Descriptor instead. func (*SubmitOrderRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{61} } func (x *SubmitOrderRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *SubmitOrderRequest) GetPair() *CurrencyPair { if x != nil { return x.Pair } return nil } func (x *SubmitOrderRequest) GetSide() string { if x != nil { return x.Side } return "" } func (x *SubmitOrderRequest) GetOrderType() string { if x != nil { return x.OrderType } return "" } func (x *SubmitOrderRequest) GetAmount() float64 { if x != nil { return x.Amount } return 0 } func (x *SubmitOrderRequest) GetPrice() float64 { if x != nil { return x.Price } return 0 } func (x *SubmitOrderRequest) GetClientId() string { if x != nil { return x.ClientId } return "" } type SubmitOrderResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OrderPlaced bool `protobuf:"varint,1,opt,name=order_placed,json=orderPlaced,proto3" json:"order_placed,omitempty"` OrderId string `protobuf:"bytes,2,opt,name=order_id,json=orderId,proto3" json:"order_id,omitempty"` } func (x *SubmitOrderResponse) Reset() { *x = SubmitOrderResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SubmitOrderResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SubmitOrderResponse) ProtoMessage() {} func (x *SubmitOrderResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 SubmitOrderResponse.ProtoReflect.Descriptor instead. func (*SubmitOrderResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{62} } func (x *SubmitOrderResponse) GetOrderPlaced() bool { if x != nil { return x.OrderPlaced } return false } func (x *SubmitOrderResponse) GetOrderId() string { if x != nil { return x.OrderId } return "" } type SimulateOrderRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Pair *CurrencyPair `protobuf:"bytes,2,opt,name=pair,proto3" json:"pair,omitempty"` Amount float64 `protobuf:"fixed64,3,opt,name=amount,proto3" json:"amount,omitempty"` Side string `protobuf:"bytes,4,opt,name=side,proto3" json:"side,omitempty"` } func (x *SimulateOrderRequest) Reset() { *x = SimulateOrderRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SimulateOrderRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SimulateOrderRequest) ProtoMessage() {} func (x *SimulateOrderRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 SimulateOrderRequest.ProtoReflect.Descriptor instead. func (*SimulateOrderRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{63} } func (x *SimulateOrderRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *SimulateOrderRequest) GetPair() *CurrencyPair { if x != nil { return x.Pair } return nil } func (x *SimulateOrderRequest) GetAmount() float64 { if x != nil { return x.Amount } return 0 } func (x *SimulateOrderRequest) GetSide() string { if x != nil { return x.Side } return "" } type SimulateOrderResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Orders []*OrderbookItem `protobuf:"bytes,1,rep,name=orders,proto3" json:"orders,omitempty"` Amount float64 `protobuf:"fixed64,2,opt,name=amount,proto3" json:"amount,omitempty"` MinimumPrice float64 `protobuf:"fixed64,3,opt,name=minimum_price,json=minimumPrice,proto3" json:"minimum_price,omitempty"` MaximumPrice float64 `protobuf:"fixed64,4,opt,name=maximum_price,json=maximumPrice,proto3" json:"maximum_price,omitempty"` PercentageGainLoss float64 `protobuf:"fixed64,5,opt,name=percentage_gain_loss,json=percentageGainLoss,proto3" json:"percentage_gain_loss,omitempty"` Status string `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"` } func (x *SimulateOrderResponse) Reset() { *x = SimulateOrderResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SimulateOrderResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SimulateOrderResponse) ProtoMessage() {} func (x *SimulateOrderResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 SimulateOrderResponse.ProtoReflect.Descriptor instead. func (*SimulateOrderResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{64} } func (x *SimulateOrderResponse) GetOrders() []*OrderbookItem { if x != nil { return x.Orders } return nil } func (x *SimulateOrderResponse) GetAmount() float64 { if x != nil { return x.Amount } return 0 } func (x *SimulateOrderResponse) GetMinimumPrice() float64 { if x != nil { return x.MinimumPrice } return 0 } func (x *SimulateOrderResponse) GetMaximumPrice() float64 { if x != nil { return x.MaximumPrice } return 0 } func (x *SimulateOrderResponse) GetPercentageGainLoss() float64 { if x != nil { return x.PercentageGainLoss } return 0 } func (x *SimulateOrderResponse) GetStatus() string { if x != nil { return x.Status } return "" } type WhaleBombRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Pair *CurrencyPair `protobuf:"bytes,2,opt,name=pair,proto3" json:"pair,omitempty"` PriceTarget float64 `protobuf:"fixed64,3,opt,name=price_target,json=priceTarget,proto3" json:"price_target,omitempty"` Side string `protobuf:"bytes,4,opt,name=side,proto3" json:"side,omitempty"` } func (x *WhaleBombRequest) Reset() { *x = WhaleBombRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WhaleBombRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*WhaleBombRequest) ProtoMessage() {} func (x *WhaleBombRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 WhaleBombRequest.ProtoReflect.Descriptor instead. func (*WhaleBombRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{65} } func (x *WhaleBombRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *WhaleBombRequest) GetPair() *CurrencyPair { if x != nil { return x.Pair } return nil } func (x *WhaleBombRequest) GetPriceTarget() float64 { if x != nil { return x.PriceTarget } return 0 } func (x *WhaleBombRequest) GetSide() string { if x != nil { return x.Side } return "" } type CancelOrderRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` AccountId string `protobuf:"bytes,2,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"` OrderId string `protobuf:"bytes,3,opt,name=order_id,json=orderId,proto3" json:"order_id,omitempty"` Pair *CurrencyPair `protobuf:"bytes,4,opt,name=pair,proto3" json:"pair,omitempty"` AssetType string `protobuf:"bytes,5,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` WalletAddress string `protobuf:"bytes,6,opt,name=wallet_address,json=walletAddress,proto3" json:"wallet_address,omitempty"` Side string `protobuf:"bytes,7,opt,name=side,proto3" json:"side,omitempty"` } func (x *CancelOrderRequest) Reset() { *x = CancelOrderRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CancelOrderRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CancelOrderRequest) ProtoMessage() {} func (x *CancelOrderRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 CancelOrderRequest.ProtoReflect.Descriptor instead. func (*CancelOrderRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{66} } func (x *CancelOrderRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *CancelOrderRequest) GetAccountId() string { if x != nil { return x.AccountId } return "" } func (x *CancelOrderRequest) GetOrderId() string { if x != nil { return x.OrderId } return "" } func (x *CancelOrderRequest) GetPair() *CurrencyPair { if x != nil { return x.Pair } return nil } func (x *CancelOrderRequest) GetAssetType() string { if x != nil { return x.AssetType } return "" } func (x *CancelOrderRequest) GetWalletAddress() string { if x != nil { return x.WalletAddress } return "" } func (x *CancelOrderRequest) GetSide() string { if x != nil { return x.Side } return "" } type CancelAllOrdersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` } func (x *CancelAllOrdersRequest) Reset() { *x = CancelAllOrdersRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CancelAllOrdersRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CancelAllOrdersRequest) ProtoMessage() {} func (x *CancelAllOrdersRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 CancelAllOrdersRequest.ProtoReflect.Descriptor instead. func (*CancelAllOrdersRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{67} } func (x *CancelAllOrdersRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } type CancelAllOrdersResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Orders []*CancelAllOrdersResponse_Orders `protobuf:"bytes,1,rep,name=orders,proto3" json:"orders,omitempty"` } func (x *CancelAllOrdersResponse) Reset() { *x = CancelAllOrdersResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CancelAllOrdersResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CancelAllOrdersResponse) ProtoMessage() {} func (x *CancelAllOrdersResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 CancelAllOrdersResponse.ProtoReflect.Descriptor instead. func (*CancelAllOrdersResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{68} } func (x *CancelAllOrdersResponse) GetOrders() []*CancelAllOrdersResponse_Orders { if x != nil { return x.Orders } return nil } type GetEventsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GetEventsRequest) Reset() { *x = GetEventsRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetEventsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetEventsRequest) ProtoMessage() {} func (x *GetEventsRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetEventsRequest.ProtoReflect.Descriptor instead. func (*GetEventsRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{69} } type ConditionParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Condition string `protobuf:"bytes,1,opt,name=condition,proto3" json:"condition,omitempty"` Price float64 `protobuf:"fixed64,2,opt,name=price,proto3" json:"price,omitempty"` CheckBids bool `protobuf:"varint,3,opt,name=check_bids,json=checkBids,proto3" json:"check_bids,omitempty"` CheckBidsAndAsks bool `protobuf:"varint,4,opt,name=check_bids_and_asks,json=checkBidsAndAsks,proto3" json:"check_bids_and_asks,omitempty"` OrderbookAmount float64 `protobuf:"fixed64,5,opt,name=orderbook_amount,json=orderbookAmount,proto3" json:"orderbook_amount,omitempty"` } func (x *ConditionParams) Reset() { *x = ConditionParams{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConditionParams) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConditionParams) ProtoMessage() {} func (x *ConditionParams) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 ConditionParams.ProtoReflect.Descriptor instead. func (*ConditionParams) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{70} } func (x *ConditionParams) GetCondition() string { if x != nil { return x.Condition } return "" } func (x *ConditionParams) GetPrice() float64 { if x != nil { return x.Price } return 0 } func (x *ConditionParams) GetCheckBids() bool { if x != nil { return x.CheckBids } return false } func (x *ConditionParams) GetCheckBidsAndAsks() bool { if x != nil { return x.CheckBidsAndAsks } return false } func (x *ConditionParams) GetOrderbookAmount() float64 { if x != nil { return x.OrderbookAmount } return 0 } type GetEventsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Exchange string `protobuf:"bytes,2,opt,name=exchange,proto3" json:"exchange,omitempty"` Item string `protobuf:"bytes,3,opt,name=item,proto3" json:"item,omitempty"` ConditionParams *ConditionParams `protobuf:"bytes,4,opt,name=condition_params,json=conditionParams,proto3" json:"condition_params,omitempty"` Pair *CurrencyPair `protobuf:"bytes,5,opt,name=pair,proto3" json:"pair,omitempty"` Action string `protobuf:"bytes,6,opt,name=action,proto3" json:"action,omitempty"` Executed bool `protobuf:"varint,7,opt,name=executed,proto3" json:"executed,omitempty"` } func (x *GetEventsResponse) Reset() { *x = GetEventsResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetEventsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetEventsResponse) ProtoMessage() {} func (x *GetEventsResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetEventsResponse.ProtoReflect.Descriptor instead. func (*GetEventsResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{71} } func (x *GetEventsResponse) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *GetEventsResponse) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *GetEventsResponse) GetItem() string { if x != nil { return x.Item } return "" } func (x *GetEventsResponse) GetConditionParams() *ConditionParams { if x != nil { return x.ConditionParams } return nil } func (x *GetEventsResponse) GetPair() *CurrencyPair { if x != nil { return x.Pair } return nil } func (x *GetEventsResponse) GetAction() string { if x != nil { return x.Action } return "" } func (x *GetEventsResponse) GetExecuted() bool { if x != nil { return x.Executed } return false } type AddEventRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Item string `protobuf:"bytes,2,opt,name=item,proto3" json:"item,omitempty"` ConditionParams *ConditionParams `protobuf:"bytes,3,opt,name=condition_params,json=conditionParams,proto3" json:"condition_params,omitempty"` Pair *CurrencyPair `protobuf:"bytes,4,opt,name=pair,proto3" json:"pair,omitempty"` AssetType string `protobuf:"bytes,5,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` Action string `protobuf:"bytes,6,opt,name=action,proto3" json:"action,omitempty"` } func (x *AddEventRequest) Reset() { *x = AddEventRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AddEventRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*AddEventRequest) ProtoMessage() {} func (x *AddEventRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 AddEventRequest.ProtoReflect.Descriptor instead. func (*AddEventRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{72} } func (x *AddEventRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *AddEventRequest) GetItem() string { if x != nil { return x.Item } return "" } func (x *AddEventRequest) GetConditionParams() *ConditionParams { if x != nil { return x.ConditionParams } return nil } func (x *AddEventRequest) GetPair() *CurrencyPair { if x != nil { return x.Pair } return nil } func (x *AddEventRequest) GetAssetType() string { if x != nil { return x.AssetType } return "" } func (x *AddEventRequest) GetAction() string { if x != nil { return x.Action } return "" } type AddEventResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` } func (x *AddEventResponse) Reset() { *x = AddEventResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AddEventResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*AddEventResponse) ProtoMessage() {} func (x *AddEventResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 AddEventResponse.ProtoReflect.Descriptor instead. func (*AddEventResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{73} } func (x *AddEventResponse) GetId() int64 { if x != nil { return x.Id } return 0 } type RemoveEventRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` } func (x *RemoveEventRequest) Reset() { *x = RemoveEventRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RemoveEventRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*RemoveEventRequest) ProtoMessage() {} func (x *RemoveEventRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 RemoveEventRequest.ProtoReflect.Descriptor instead. func (*RemoveEventRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{74} } func (x *RemoveEventRequest) GetId() int64 { if x != nil { return x.Id } return 0 } type GetCryptocurrencyDepositAddressesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` } func (x *GetCryptocurrencyDepositAddressesRequest) Reset() { *x = GetCryptocurrencyDepositAddressesRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetCryptocurrencyDepositAddressesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetCryptocurrencyDepositAddressesRequest) ProtoMessage() {} func (x *GetCryptocurrencyDepositAddressesRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetCryptocurrencyDepositAddressesRequest.ProtoReflect.Descriptor instead. func (*GetCryptocurrencyDepositAddressesRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{75} } func (x *GetCryptocurrencyDepositAddressesRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } type GetCryptocurrencyDepositAddressesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Addresses map[string]string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *GetCryptocurrencyDepositAddressesResponse) Reset() { *x = GetCryptocurrencyDepositAddressesResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetCryptocurrencyDepositAddressesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetCryptocurrencyDepositAddressesResponse) ProtoMessage() {} func (x *GetCryptocurrencyDepositAddressesResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetCryptocurrencyDepositAddressesResponse.ProtoReflect.Descriptor instead. func (*GetCryptocurrencyDepositAddressesResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{76} } func (x *GetCryptocurrencyDepositAddressesResponse) GetAddresses() map[string]string { if x != nil { return x.Addresses } return nil } type GetCryptocurrencyDepositAddressRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Cryptocurrency string `protobuf:"bytes,2,opt,name=cryptocurrency,proto3" json:"cryptocurrency,omitempty"` } func (x *GetCryptocurrencyDepositAddressRequest) Reset() { *x = GetCryptocurrencyDepositAddressRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetCryptocurrencyDepositAddressRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetCryptocurrencyDepositAddressRequest) ProtoMessage() {} func (x *GetCryptocurrencyDepositAddressRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetCryptocurrencyDepositAddressRequest.ProtoReflect.Descriptor instead. func (*GetCryptocurrencyDepositAddressRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{77} } func (x *GetCryptocurrencyDepositAddressRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *GetCryptocurrencyDepositAddressRequest) GetCryptocurrency() string { if x != nil { return x.Cryptocurrency } return "" } type GetCryptocurrencyDepositAddressResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` } func (x *GetCryptocurrencyDepositAddressResponse) Reset() { *x = GetCryptocurrencyDepositAddressResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetCryptocurrencyDepositAddressResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetCryptocurrencyDepositAddressResponse) ProtoMessage() {} func (x *GetCryptocurrencyDepositAddressResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 GetCryptocurrencyDepositAddressResponse.ProtoReflect.Descriptor instead. func (*GetCryptocurrencyDepositAddressResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{78} } func (x *GetCryptocurrencyDepositAddressResponse) GetAddress() string { if x != nil { return x.Address } return "" } type WithdrawFiatRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Currency string `protobuf:"bytes,2,opt,name=currency,proto3" json:"currency,omitempty"` Amount float64 `protobuf:"fixed64,3,opt,name=amount,proto3" json:"amount,omitempty"` Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` BankAccountId string `protobuf:"bytes,5,opt,name=bank_account_id,json=bankAccountId,proto3" json:"bank_account_id,omitempty"` } func (x *WithdrawFiatRequest) Reset() { *x = WithdrawFiatRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WithdrawFiatRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*WithdrawFiatRequest) ProtoMessage() {} func (x *WithdrawFiatRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 WithdrawFiatRequest.ProtoReflect.Descriptor instead. func (*WithdrawFiatRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{79} } func (x *WithdrawFiatRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *WithdrawFiatRequest) GetCurrency() string { if x != nil { return x.Currency } return "" } func (x *WithdrawFiatRequest) GetAmount() float64 { if x != nil { return x.Amount } return 0 } func (x *WithdrawFiatRequest) GetDescription() string { if x != nil { return x.Description } return "" } func (x *WithdrawFiatRequest) GetBankAccountId() string { if x != nil { return x.BankAccountId } return "" } type WithdrawCryptoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` AddressTag string `protobuf:"bytes,3,opt,name=address_tag,json=addressTag,proto3" json:"address_tag,omitempty"` Currency string `protobuf:"bytes,4,opt,name=currency,proto3" json:"currency,omitempty"` Amount float64 `protobuf:"fixed64,5,opt,name=amount,proto3" json:"amount,omitempty"` Fee float64 `protobuf:"fixed64,6,opt,name=fee,proto3" json:"fee,omitempty"` Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"` } func (x *WithdrawCryptoRequest) Reset() { *x = WithdrawCryptoRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WithdrawCryptoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*WithdrawCryptoRequest) ProtoMessage() {} func (x *WithdrawCryptoRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 WithdrawCryptoRequest.ProtoReflect.Descriptor instead. func (*WithdrawCryptoRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{80} } func (x *WithdrawCryptoRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *WithdrawCryptoRequest) GetAddress() string { if x != nil { return x.Address } return "" } func (x *WithdrawCryptoRequest) GetAddressTag() string { if x != nil { return x.AddressTag } return "" } func (x *WithdrawCryptoRequest) GetCurrency() string { if x != nil { return x.Currency } return "" } func (x *WithdrawCryptoRequest) GetAmount() float64 { if x != nil { return x.Amount } return 0 } func (x *WithdrawCryptoRequest) GetFee() float64 { if x != nil { return x.Fee } return 0 } func (x *WithdrawCryptoRequest) GetDescription() string { if x != nil { return x.Description } return "" } type WithdrawResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` } func (x *WithdrawResponse) Reset() { *x = WithdrawResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WithdrawResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*WithdrawResponse) ProtoMessage() {} func (x *WithdrawResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 WithdrawResponse.ProtoReflect.Descriptor instead. func (*WithdrawResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{81} } func (x *WithdrawResponse) GetId() string { if x != nil { return x.Id } return "" } func (x *WithdrawResponse) GetStatus() string { if x != nil { return x.Status } return "" } type WithdrawalEventByIDRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } func (x *WithdrawalEventByIDRequest) Reset() { *x = WithdrawalEventByIDRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WithdrawalEventByIDRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*WithdrawalEventByIDRequest) ProtoMessage() {} func (x *WithdrawalEventByIDRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 WithdrawalEventByIDRequest.ProtoReflect.Descriptor instead. func (*WithdrawalEventByIDRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{82} } func (x *WithdrawalEventByIDRequest) GetId() string { if x != nil { return x.Id } return "" } type WithdrawalEventByIDResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Event *WithdrawalEventResponse `protobuf:"bytes,2,opt,name=event,proto3" json:"event,omitempty"` } func (x *WithdrawalEventByIDResponse) Reset() { *x = WithdrawalEventByIDResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WithdrawalEventByIDResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*WithdrawalEventByIDResponse) ProtoMessage() {} func (x *WithdrawalEventByIDResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_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 WithdrawalEventByIDResponse.ProtoReflect.Descriptor instead. func (*WithdrawalEventByIDResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{83} } func (x *WithdrawalEventByIDResponse) GetEvent() *WithdrawalEventResponse { if x != nil { return x.Event } return nil } type WithdrawalEventsByExchangeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` Limit int32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` } func (x *WithdrawalEventsByExchangeRequest) Reset() { *x = WithdrawalEventsByExchangeRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WithdrawalEventsByExchangeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*WithdrawalEventsByExchangeRequest) ProtoMessage() {} func (x *WithdrawalEventsByExchangeRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[84] 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 WithdrawalEventsByExchangeRequest.ProtoReflect.Descriptor instead. func (*WithdrawalEventsByExchangeRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{84} } func (x *WithdrawalEventsByExchangeRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *WithdrawalEventsByExchangeRequest) GetId() string { if x != nil { return x.Id } return "" } func (x *WithdrawalEventsByExchangeRequest) GetLimit() int32 { if x != nil { return x.Limit } return 0 } type WithdrawalEventsByDateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Start string `protobuf:"bytes,2,opt,name=start,proto3" json:"start,omitempty"` End string `protobuf:"bytes,3,opt,name=end,proto3" json:"end,omitempty"` Limit int32 `protobuf:"varint,4,opt,name=limit,proto3" json:"limit,omitempty"` } func (x *WithdrawalEventsByDateRequest) Reset() { *x = WithdrawalEventsByDateRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WithdrawalEventsByDateRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*WithdrawalEventsByDateRequest) ProtoMessage() {} func (x *WithdrawalEventsByDateRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[85] 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 WithdrawalEventsByDateRequest.ProtoReflect.Descriptor instead. func (*WithdrawalEventsByDateRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{85} } func (x *WithdrawalEventsByDateRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *WithdrawalEventsByDateRequest) GetStart() string { if x != nil { return x.Start } return "" } func (x *WithdrawalEventsByDateRequest) GetEnd() string { if x != nil { return x.End } return "" } func (x *WithdrawalEventsByDateRequest) GetLimit() int32 { if x != nil { return x.Limit } return 0 } type WithdrawalEventsByExchangeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Event []*WithdrawalEventResponse `protobuf:"bytes,2,rep,name=event,proto3" json:"event,omitempty"` } func (x *WithdrawalEventsByExchangeResponse) Reset() { *x = WithdrawalEventsByExchangeResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WithdrawalEventsByExchangeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*WithdrawalEventsByExchangeResponse) ProtoMessage() {} func (x *WithdrawalEventsByExchangeResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[86] 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 WithdrawalEventsByExchangeResponse.ProtoReflect.Descriptor instead. func (*WithdrawalEventsByExchangeResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{86} } func (x *WithdrawalEventsByExchangeResponse) GetEvent() []*WithdrawalEventResponse { if x != nil { return x.Event } return nil } type WithdrawalEventResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` Exchange *WithdrawlExchangeEvent `protobuf:"bytes,3,opt,name=exchange,proto3" json:"exchange,omitempty"` Request *WithdrawalRequestEvent `protobuf:"bytes,4,opt,name=request,proto3" json:"request,omitempty"` CreatedAt *timestamp.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` UpdatedAt *timestamp.Timestamp `protobuf:"bytes,6,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` } func (x *WithdrawalEventResponse) Reset() { *x = WithdrawalEventResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WithdrawalEventResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*WithdrawalEventResponse) ProtoMessage() {} func (x *WithdrawalEventResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[87] 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 WithdrawalEventResponse.ProtoReflect.Descriptor instead. func (*WithdrawalEventResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{87} } func (x *WithdrawalEventResponse) GetId() string { if x != nil { return x.Id } return "" } func (x *WithdrawalEventResponse) GetExchange() *WithdrawlExchangeEvent { if x != nil { return x.Exchange } return nil } func (x *WithdrawalEventResponse) GetRequest() *WithdrawalRequestEvent { if x != nil { return x.Request } return nil } func (x *WithdrawalEventResponse) GetCreatedAt() *timestamp.Timestamp { if x != nil { return x.CreatedAt } return nil } func (x *WithdrawalEventResponse) GetUpdatedAt() *timestamp.Timestamp { if x != nil { return x.UpdatedAt } return nil } type WithdrawlExchangeEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` } func (x *WithdrawlExchangeEvent) Reset() { *x = WithdrawlExchangeEvent{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WithdrawlExchangeEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*WithdrawlExchangeEvent) ProtoMessage() {} func (x *WithdrawlExchangeEvent) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[88] 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 WithdrawlExchangeEvent.ProtoReflect.Descriptor instead. func (*WithdrawlExchangeEvent) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{88} } func (x *WithdrawlExchangeEvent) GetName() string { if x != nil { return x.Name } return "" } func (x *WithdrawlExchangeEvent) GetId() string { if x != nil { return x.Id } return "" } func (x *WithdrawlExchangeEvent) GetStatus() string { if x != nil { return x.Status } return "" } type WithdrawalRequestEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Currency string `protobuf:"bytes,2,opt,name=currency,proto3" json:"currency,omitempty"` Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` Amount float64 `protobuf:"fixed64,4,opt,name=amount,proto3" json:"amount,omitempty"` Type int32 `protobuf:"varint,5,opt,name=type,proto3" json:"type,omitempty"` Fiat *FiatWithdrawalEvent `protobuf:"bytes,6,opt,name=fiat,proto3" json:"fiat,omitempty"` Crypto *CryptoWithdrawalEvent `protobuf:"bytes,7,opt,name=crypto,proto3" json:"crypto,omitempty"` } func (x *WithdrawalRequestEvent) Reset() { *x = WithdrawalRequestEvent{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WithdrawalRequestEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*WithdrawalRequestEvent) ProtoMessage() {} func (x *WithdrawalRequestEvent) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[89] 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 WithdrawalRequestEvent.ProtoReflect.Descriptor instead. func (*WithdrawalRequestEvent) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{89} } func (x *WithdrawalRequestEvent) GetCurrency() string { if x != nil { return x.Currency } return "" } func (x *WithdrawalRequestEvent) GetDescription() string { if x != nil { return x.Description } return "" } func (x *WithdrawalRequestEvent) GetAmount() float64 { if x != nil { return x.Amount } return 0 } func (x *WithdrawalRequestEvent) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *WithdrawalRequestEvent) GetFiat() *FiatWithdrawalEvent { if x != nil { return x.Fiat } return nil } func (x *WithdrawalRequestEvent) GetCrypto() *CryptoWithdrawalEvent { if x != nil { return x.Crypto } return nil } type FiatWithdrawalEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BankName string `protobuf:"bytes,1,opt,name=bank_name,json=bankName,proto3" json:"bank_name,omitempty"` AccountName string `protobuf:"bytes,2,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` AccountNumber string `protobuf:"bytes,3,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty"` Bsb string `protobuf:"bytes,4,opt,name=bsb,proto3" json:"bsb,omitempty"` Swift string `protobuf:"bytes,5,opt,name=swift,proto3" json:"swift,omitempty"` Iban string `protobuf:"bytes,6,opt,name=iban,proto3" json:"iban,omitempty"` } func (x *FiatWithdrawalEvent) Reset() { *x = FiatWithdrawalEvent{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FiatWithdrawalEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*FiatWithdrawalEvent) ProtoMessage() {} func (x *FiatWithdrawalEvent) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[90] 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 FiatWithdrawalEvent.ProtoReflect.Descriptor instead. func (*FiatWithdrawalEvent) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{90} } func (x *FiatWithdrawalEvent) GetBankName() string { if x != nil { return x.BankName } return "" } func (x *FiatWithdrawalEvent) GetAccountName() string { if x != nil { return x.AccountName } return "" } func (x *FiatWithdrawalEvent) GetAccountNumber() string { if x != nil { return x.AccountNumber } return "" } func (x *FiatWithdrawalEvent) GetBsb() string { if x != nil { return x.Bsb } return "" } func (x *FiatWithdrawalEvent) GetSwift() string { if x != nil { return x.Swift } return "" } func (x *FiatWithdrawalEvent) GetIban() string { if x != nil { return x.Iban } return "" } type CryptoWithdrawalEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` AddressTag string `protobuf:"bytes,2,opt,name=address_tag,json=addressTag,proto3" json:"address_tag,omitempty"` Fee float64 `protobuf:"fixed64,3,opt,name=fee,proto3" json:"fee,omitempty"` } func (x *CryptoWithdrawalEvent) Reset() { *x = CryptoWithdrawalEvent{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CryptoWithdrawalEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*CryptoWithdrawalEvent) ProtoMessage() {} func (x *CryptoWithdrawalEvent) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[91] 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 CryptoWithdrawalEvent.ProtoReflect.Descriptor instead. func (*CryptoWithdrawalEvent) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{91} } func (x *CryptoWithdrawalEvent) GetAddress() string { if x != nil { return x.Address } return "" } func (x *CryptoWithdrawalEvent) GetAddressTag() string { if x != nil { return x.AddressTag } return "" } func (x *CryptoWithdrawalEvent) GetFee() float64 { if x != nil { return x.Fee } return 0 } type GetLoggerDetailsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Logger string `protobuf:"bytes,1,opt,name=logger,proto3" json:"logger,omitempty"` } func (x *GetLoggerDetailsRequest) Reset() { *x = GetLoggerDetailsRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetLoggerDetailsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetLoggerDetailsRequest) ProtoMessage() {} func (x *GetLoggerDetailsRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[92] 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 GetLoggerDetailsRequest.ProtoReflect.Descriptor instead. func (*GetLoggerDetailsRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{92} } func (x *GetLoggerDetailsRequest) GetLogger() string { if x != nil { return x.Logger } return "" } type GetLoggerDetailsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Info bool `protobuf:"varint,1,opt,name=info,proto3" json:"info,omitempty"` Debug bool `protobuf:"varint,2,opt,name=debug,proto3" json:"debug,omitempty"` Warn bool `protobuf:"varint,3,opt,name=warn,proto3" json:"warn,omitempty"` Error bool `protobuf:"varint,4,opt,name=error,proto3" json:"error,omitempty"` } func (x *GetLoggerDetailsResponse) Reset() { *x = GetLoggerDetailsResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetLoggerDetailsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetLoggerDetailsResponse) ProtoMessage() {} func (x *GetLoggerDetailsResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[93] 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 GetLoggerDetailsResponse.ProtoReflect.Descriptor instead. func (*GetLoggerDetailsResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{93} } func (x *GetLoggerDetailsResponse) GetInfo() bool { if x != nil { return x.Info } return false } func (x *GetLoggerDetailsResponse) GetDebug() bool { if x != nil { return x.Debug } return false } func (x *GetLoggerDetailsResponse) GetWarn() bool { if x != nil { return x.Warn } return false } func (x *GetLoggerDetailsResponse) GetError() bool { if x != nil { return x.Error } return false } type SetLoggerDetailsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Logger string `protobuf:"bytes,1,opt,name=logger,proto3" json:"logger,omitempty"` Level string `protobuf:"bytes,2,opt,name=level,proto3" json:"level,omitempty"` } func (x *SetLoggerDetailsRequest) Reset() { *x = SetLoggerDetailsRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SetLoggerDetailsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SetLoggerDetailsRequest) ProtoMessage() {} func (x *SetLoggerDetailsRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[94] 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 SetLoggerDetailsRequest.ProtoReflect.Descriptor instead. func (*SetLoggerDetailsRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{94} } func (x *SetLoggerDetailsRequest) GetLogger() string { if x != nil { return x.Logger } return "" } func (x *SetLoggerDetailsRequest) GetLevel() string { if x != nil { return x.Level } return "" } type GetExchangePairsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Asset string `protobuf:"bytes,2,opt,name=asset,proto3" json:"asset,omitempty"` } func (x *GetExchangePairsRequest) Reset() { *x = GetExchangePairsRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetExchangePairsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetExchangePairsRequest) ProtoMessage() {} func (x *GetExchangePairsRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[95] 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 GetExchangePairsRequest.ProtoReflect.Descriptor instead. func (*GetExchangePairsRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{95} } func (x *GetExchangePairsRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *GetExchangePairsRequest) GetAsset() string { if x != nil { return x.Asset } return "" } type GetExchangePairsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SupportedAssets map[string]*PairsSupported `protobuf:"bytes,1,rep,name=supported_assets,json=supportedAssets,proto3" json:"supported_assets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *GetExchangePairsResponse) Reset() { *x = GetExchangePairsResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetExchangePairsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetExchangePairsResponse) ProtoMessage() {} func (x *GetExchangePairsResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[96] 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 GetExchangePairsResponse.ProtoReflect.Descriptor instead. func (*GetExchangePairsResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{96} } func (x *GetExchangePairsResponse) GetSupportedAssets() map[string]*PairsSupported { if x != nil { return x.SupportedAssets } return nil } type SetExchangePairRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` AssetType string `protobuf:"bytes,2,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` Pairs []*CurrencyPair `protobuf:"bytes,3,rep,name=pairs,proto3" json:"pairs,omitempty"` Enable bool `protobuf:"varint,4,opt,name=enable,proto3" json:"enable,omitempty"` } func (x *SetExchangePairRequest) Reset() { *x = SetExchangePairRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SetExchangePairRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SetExchangePairRequest) ProtoMessage() {} func (x *SetExchangePairRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[97] 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 SetExchangePairRequest.ProtoReflect.Descriptor instead. func (*SetExchangePairRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{97} } func (x *SetExchangePairRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *SetExchangePairRequest) GetAssetType() string { if x != nil { return x.AssetType } return "" } func (x *SetExchangePairRequest) GetPairs() []*CurrencyPair { if x != nil { return x.Pairs } return nil } func (x *SetExchangePairRequest) GetEnable() bool { if x != nil { return x.Enable } return false } type GetOrderbookStreamRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Pair *CurrencyPair `protobuf:"bytes,2,opt,name=pair,proto3" json:"pair,omitempty"` AssetType string `protobuf:"bytes,3,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` } func (x *GetOrderbookStreamRequest) Reset() { *x = GetOrderbookStreamRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetOrderbookStreamRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetOrderbookStreamRequest) ProtoMessage() {} func (x *GetOrderbookStreamRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[98] 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 GetOrderbookStreamRequest.ProtoReflect.Descriptor instead. func (*GetOrderbookStreamRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{98} } func (x *GetOrderbookStreamRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *GetOrderbookStreamRequest) GetPair() *CurrencyPair { if x != nil { return x.Pair } return nil } func (x *GetOrderbookStreamRequest) GetAssetType() string { if x != nil { return x.AssetType } return "" } type GetExchangeOrderbookStreamRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` } func (x *GetExchangeOrderbookStreamRequest) Reset() { *x = GetExchangeOrderbookStreamRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetExchangeOrderbookStreamRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetExchangeOrderbookStreamRequest) ProtoMessage() {} func (x *GetExchangeOrderbookStreamRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[99] 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 GetExchangeOrderbookStreamRequest.ProtoReflect.Descriptor instead. func (*GetExchangeOrderbookStreamRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{99} } func (x *GetExchangeOrderbookStreamRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } type GetTickerStreamRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Pair *CurrencyPair `protobuf:"bytes,2,opt,name=pair,proto3" json:"pair,omitempty"` AssetType string `protobuf:"bytes,3,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` } func (x *GetTickerStreamRequest) Reset() { *x = GetTickerStreamRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetTickerStreamRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetTickerStreamRequest) ProtoMessage() {} func (x *GetTickerStreamRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[100] 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 GetTickerStreamRequest.ProtoReflect.Descriptor instead. func (*GetTickerStreamRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{100} } func (x *GetTickerStreamRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *GetTickerStreamRequest) GetPair() *CurrencyPair { if x != nil { return x.Pair } return nil } func (x *GetTickerStreamRequest) GetAssetType() string { if x != nil { return x.AssetType } return "" } type GetExchangeTickerStreamRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` } func (x *GetExchangeTickerStreamRequest) Reset() { *x = GetExchangeTickerStreamRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetExchangeTickerStreamRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetExchangeTickerStreamRequest) ProtoMessage() {} func (x *GetExchangeTickerStreamRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[101] 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 GetExchangeTickerStreamRequest.ProtoReflect.Descriptor instead. func (*GetExchangeTickerStreamRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{101} } func (x *GetExchangeTickerStreamRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } type GetAuditEventRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartDate string `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` EndDate string `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` OrderBy string `protobuf:"bytes,3,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` Limit int32 `protobuf:"varint,4,opt,name=limit,proto3" json:"limit,omitempty"` Offset int32 `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"` } func (x *GetAuditEventRequest) Reset() { *x = GetAuditEventRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetAuditEventRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetAuditEventRequest) ProtoMessage() {} func (x *GetAuditEventRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[102] 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 GetAuditEventRequest.ProtoReflect.Descriptor instead. func (*GetAuditEventRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{102} } func (x *GetAuditEventRequest) GetStartDate() string { if x != nil { return x.StartDate } return "" } func (x *GetAuditEventRequest) GetEndDate() string { if x != nil { return x.EndDate } return "" } func (x *GetAuditEventRequest) GetOrderBy() string { if x != nil { return x.OrderBy } return "" } func (x *GetAuditEventRequest) GetLimit() int32 { if x != nil { return x.Limit } return 0 } func (x *GetAuditEventRequest) GetOffset() int32 { if x != nil { return x.Offset } return 0 } type GetAuditEventResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Events []*AuditEvent `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` } func (x *GetAuditEventResponse) Reset() { *x = GetAuditEventResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetAuditEventResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetAuditEventResponse) ProtoMessage() {} func (x *GetAuditEventResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[103] 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 GetAuditEventResponse.ProtoReflect.Descriptor instead. func (*GetAuditEventResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{103} } func (x *GetAuditEventResponse) GetEvents() []*AuditEvent { if x != nil { return x.Events } return nil } type GetHistoricCandlesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Pair *CurrencyPair `protobuf:"bytes,2,opt,name=pair,proto3" json:"pair,omitempty"` AssetType string `protobuf:"bytes,3,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` Start int64 `protobuf:"varint,4,opt,name=start,proto3" json:"start,omitempty"` End int64 `protobuf:"varint,5,opt,name=end,proto3" json:"end,omitempty"` TimeInterval int64 `protobuf:"varint,6,opt,name=time_interval,json=timeInterval,proto3" json:"time_interval,omitempty"` ExRequest bool `protobuf:"varint,7,opt,name=ex_request,json=exRequest,proto3" json:"ex_request,omitempty"` Sync bool `protobuf:"varint,8,opt,name=sync,proto3" json:"sync,omitempty"` UseDb bool `protobuf:"varint,9,opt,name=use_db,json=useDb,proto3" json:"use_db,omitempty"` } func (x *GetHistoricCandlesRequest) Reset() { *x = GetHistoricCandlesRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetHistoricCandlesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetHistoricCandlesRequest) ProtoMessage() {} func (x *GetHistoricCandlesRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[104] 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 GetHistoricCandlesRequest.ProtoReflect.Descriptor instead. func (*GetHistoricCandlesRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{104} } func (x *GetHistoricCandlesRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *GetHistoricCandlesRequest) GetPair() *CurrencyPair { if x != nil { return x.Pair } return nil } func (x *GetHistoricCandlesRequest) GetAssetType() string { if x != nil { return x.AssetType } return "" } func (x *GetHistoricCandlesRequest) GetStart() int64 { if x != nil { return x.Start } return 0 } func (x *GetHistoricCandlesRequest) GetEnd() int64 { if x != nil { return x.End } return 0 } func (x *GetHistoricCandlesRequest) GetTimeInterval() int64 { if x != nil { return x.TimeInterval } return 0 } func (x *GetHistoricCandlesRequest) GetExRequest() bool { if x != nil { return x.ExRequest } return false } func (x *GetHistoricCandlesRequest) GetSync() bool { if x != nil { return x.Sync } return false } func (x *GetHistoricCandlesRequest) GetUseDb() bool { if x != nil { return x.UseDb } return false } type GetHistoricCandlesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Pair *CurrencyPair `protobuf:"bytes,2,opt,name=pair,proto3" json:"pair,omitempty"` Start int64 `protobuf:"varint,3,opt,name=start,proto3" json:"start,omitempty"` End int64 `protobuf:"varint,4,opt,name=end,proto3" json:"end,omitempty"` Interval string `protobuf:"bytes,6,opt,name=interval,proto3" json:"interval,omitempty"` Candle []*Candle `protobuf:"bytes,5,rep,name=candle,proto3" json:"candle,omitempty"` } func (x *GetHistoricCandlesResponse) Reset() { *x = GetHistoricCandlesResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetHistoricCandlesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetHistoricCandlesResponse) ProtoMessage() {} func (x *GetHistoricCandlesResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[105] 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 GetHistoricCandlesResponse.ProtoReflect.Descriptor instead. func (*GetHistoricCandlesResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{105} } func (x *GetHistoricCandlesResponse) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *GetHistoricCandlesResponse) GetPair() *CurrencyPair { if x != nil { return x.Pair } return nil } func (x *GetHistoricCandlesResponse) GetStart() int64 { if x != nil { return x.Start } return 0 } func (x *GetHistoricCandlesResponse) GetEnd() int64 { if x != nil { return x.End } return 0 } func (x *GetHistoricCandlesResponse) GetInterval() string { if x != nil { return x.Interval } return "" } func (x *GetHistoricCandlesResponse) GetCandle() []*Candle { if x != nil { return x.Candle } return nil } type Candle struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Time int64 `protobuf:"varint,1,opt,name=time,proto3" json:"time,omitempty"` Low float64 `protobuf:"fixed64,2,opt,name=low,proto3" json:"low,omitempty"` High float64 `protobuf:"fixed64,3,opt,name=high,proto3" json:"high,omitempty"` Open float64 `protobuf:"fixed64,4,opt,name=open,proto3" json:"open,omitempty"` Close float64 `protobuf:"fixed64,5,opt,name=close,proto3" json:"close,omitempty"` Volume float64 `protobuf:"fixed64,6,opt,name=volume,proto3" json:"volume,omitempty"` } func (x *Candle) Reset() { *x = Candle{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Candle) String() string { return protoimpl.X.MessageStringOf(x) } func (*Candle) ProtoMessage() {} func (x *Candle) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[106] 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 Candle.ProtoReflect.Descriptor instead. func (*Candle) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{106} } func (x *Candle) GetTime() int64 { if x != nil { return x.Time } return 0 } func (x *Candle) GetLow() float64 { if x != nil { return x.Low } return 0 } func (x *Candle) GetHigh() float64 { if x != nil { return x.High } return 0 } func (x *Candle) GetOpen() float64 { if x != nil { return x.Open } return 0 } func (x *Candle) GetClose() float64 { if x != nil { return x.Close } return 0 } func (x *Candle) GetVolume() float64 { if x != nil { return x.Volume } return 0 } type AuditEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` Identifier string `protobuf:"bytes,2,opt,name=identifier,proto3" json:"identifier,omitempty"` Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` Timestamp string `protobuf:"bytes,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (x *AuditEvent) Reset() { *x = AuditEvent{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AuditEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*AuditEvent) ProtoMessage() {} func (x *AuditEvent) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[107] 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 AuditEvent.ProtoReflect.Descriptor instead. func (*AuditEvent) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{107} } func (x *AuditEvent) GetType() string { if x != nil { return x.Type } return "" } func (x *AuditEvent) GetIdentifier() string { if x != nil { return x.Identifier } return "" } func (x *AuditEvent) GetMessage() string { if x != nil { return x.Message } return "" } func (x *AuditEvent) GetTimestamp() string { if x != nil { return x.Timestamp } return "" } type GCTScript struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"` NextRun string `protobuf:"bytes,4,opt,name=next_run,json=nextRun,proto3" json:"next_run,omitempty"` } func (x *GCTScript) Reset() { *x = GCTScript{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GCTScript) String() string { return protoimpl.X.MessageStringOf(x) } func (*GCTScript) ProtoMessage() {} func (x *GCTScript) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[108] 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 GCTScript.ProtoReflect.Descriptor instead. func (*GCTScript) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{108} } func (x *GCTScript) GetUUID() string { if x != nil { return x.UUID } return "" } func (x *GCTScript) GetName() string { if x != nil { return x.Name } return "" } func (x *GCTScript) GetPath() string { if x != nil { return x.Path } return "" } func (x *GCTScript) GetNextRun() string { if x != nil { return x.NextRun } return "" } type GCTScriptExecuteRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Script *GCTScript `protobuf:"bytes,1,opt,name=script,proto3" json:"script,omitempty"` } func (x *GCTScriptExecuteRequest) Reset() { *x = GCTScriptExecuteRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GCTScriptExecuteRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GCTScriptExecuteRequest) ProtoMessage() {} func (x *GCTScriptExecuteRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[109] 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 GCTScriptExecuteRequest.ProtoReflect.Descriptor instead. func (*GCTScriptExecuteRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{109} } func (x *GCTScriptExecuteRequest) GetScript() *GCTScript { if x != nil { return x.Script } return nil } type GCTScriptStopRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Script *GCTScript `protobuf:"bytes,1,opt,name=script,proto3" json:"script,omitempty"` } func (x *GCTScriptStopRequest) Reset() { *x = GCTScriptStopRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GCTScriptStopRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GCTScriptStopRequest) ProtoMessage() {} func (x *GCTScriptStopRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[110] 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 GCTScriptStopRequest.ProtoReflect.Descriptor instead. func (*GCTScriptStopRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{110} } func (x *GCTScriptStopRequest) GetScript() *GCTScript { if x != nil { return x.Script } return nil } type GCTScriptStopAllRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GCTScriptStopAllRequest) Reset() { *x = GCTScriptStopAllRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GCTScriptStopAllRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GCTScriptStopAllRequest) ProtoMessage() {} func (x *GCTScriptStopAllRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[111] 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 GCTScriptStopAllRequest.ProtoReflect.Descriptor instead. func (*GCTScriptStopAllRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{111} } type GCTScriptStatusRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GCTScriptStatusRequest) Reset() { *x = GCTScriptStatusRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GCTScriptStatusRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GCTScriptStatusRequest) ProtoMessage() {} func (x *GCTScriptStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[112] 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 GCTScriptStatusRequest.ProtoReflect.Descriptor instead. func (*GCTScriptStatusRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{112} } type GCTScriptListAllRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GCTScriptListAllRequest) Reset() { *x = GCTScriptListAllRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GCTScriptListAllRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GCTScriptListAllRequest) ProtoMessage() {} func (x *GCTScriptListAllRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[113] 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 GCTScriptListAllRequest.ProtoReflect.Descriptor instead. func (*GCTScriptListAllRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{113} } type GCTScriptUploadRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ScriptName string `protobuf:"bytes,1,opt,name=script_name,json=scriptName,proto3" json:"script_name,omitempty"` ScriptData string `protobuf:"bytes,2,opt,name=script_data,json=scriptData,proto3" json:"script_data,omitempty"` Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` Archived bool `protobuf:"varint,4,opt,name=archived,proto3" json:"archived,omitempty"` Overwrite bool `protobuf:"varint,5,opt,name=overwrite,proto3" json:"overwrite,omitempty"` } func (x *GCTScriptUploadRequest) Reset() { *x = GCTScriptUploadRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GCTScriptUploadRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GCTScriptUploadRequest) ProtoMessage() {} func (x *GCTScriptUploadRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[114] 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 GCTScriptUploadRequest.ProtoReflect.Descriptor instead. func (*GCTScriptUploadRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{114} } func (x *GCTScriptUploadRequest) GetScriptName() string { if x != nil { return x.ScriptName } return "" } func (x *GCTScriptUploadRequest) GetScriptData() string { if x != nil { return x.ScriptData } return "" } func (x *GCTScriptUploadRequest) GetData() []byte { if x != nil { return x.Data } return nil } func (x *GCTScriptUploadRequest) GetArchived() bool { if x != nil { return x.Archived } return false } func (x *GCTScriptUploadRequest) GetOverwrite() bool { if x != nil { return x.Overwrite } return false } type GCTScriptReadScriptRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Script *GCTScript `protobuf:"bytes,1,opt,name=script,proto3" json:"script,omitempty"` } func (x *GCTScriptReadScriptRequest) Reset() { *x = GCTScriptReadScriptRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GCTScriptReadScriptRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GCTScriptReadScriptRequest) ProtoMessage() {} func (x *GCTScriptReadScriptRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[115] 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 GCTScriptReadScriptRequest.ProtoReflect.Descriptor instead. func (*GCTScriptReadScriptRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{115} } func (x *GCTScriptReadScriptRequest) GetScript() *GCTScript { if x != nil { return x.Script } return nil } type GCTScriptQueryRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Script *GCTScript `protobuf:"bytes,1,opt,name=script,proto3" json:"script,omitempty"` } func (x *GCTScriptQueryRequest) Reset() { *x = GCTScriptQueryRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GCTScriptQueryRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GCTScriptQueryRequest) ProtoMessage() {} func (x *GCTScriptQueryRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[116] 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 GCTScriptQueryRequest.ProtoReflect.Descriptor instead. func (*GCTScriptQueryRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{116} } func (x *GCTScriptQueryRequest) GetScript() *GCTScript { if x != nil { return x.Script } return nil } type GCTScriptAutoLoadRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Script string `protobuf:"bytes,1,opt,name=script,proto3" json:"script,omitempty"` Status bool `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` } func (x *GCTScriptAutoLoadRequest) Reset() { *x = GCTScriptAutoLoadRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GCTScriptAutoLoadRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GCTScriptAutoLoadRequest) ProtoMessage() {} func (x *GCTScriptAutoLoadRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[117] 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 GCTScriptAutoLoadRequest.ProtoReflect.Descriptor instead. func (*GCTScriptAutoLoadRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{117} } func (x *GCTScriptAutoLoadRequest) GetScript() string { if x != nil { return x.Script } return "" } func (x *GCTScriptAutoLoadRequest) GetStatus() bool { if x != nil { return x.Status } return false } type GCTScriptStatusResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` Scripts []*GCTScript `protobuf:"bytes,2,rep,name=scripts,proto3" json:"scripts,omitempty"` } func (x *GCTScriptStatusResponse) Reset() { *x = GCTScriptStatusResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GCTScriptStatusResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GCTScriptStatusResponse) ProtoMessage() {} func (x *GCTScriptStatusResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[118] 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 GCTScriptStatusResponse.ProtoReflect.Descriptor instead. func (*GCTScriptStatusResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{118} } func (x *GCTScriptStatusResponse) GetStatus() string { if x != nil { return x.Status } return "" } func (x *GCTScriptStatusResponse) GetScripts() []*GCTScript { if x != nil { return x.Scripts } return nil } type GCTScriptQueryResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` Script *GCTScript `protobuf:"bytes,2,opt,name=script,proto3" json:"script,omitempty"` Data string `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GCTScriptQueryResponse) Reset() { *x = GCTScriptQueryResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GCTScriptQueryResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GCTScriptQueryResponse) ProtoMessage() {} func (x *GCTScriptQueryResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[119] 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 GCTScriptQueryResponse.ProtoReflect.Descriptor instead. func (*GCTScriptQueryResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{119} } func (x *GCTScriptQueryResponse) GetStatus() string { if x != nil { return x.Status } return "" } func (x *GCTScriptQueryResponse) GetScript() *GCTScript { if x != nil { return x.Script } return nil } func (x *GCTScriptQueryResponse) GetData() string { if x != nil { return x.Data } return "" } type GenericResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` Data string `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` } func (x *GenericResponse) Reset() { *x = GenericResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GenericResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GenericResponse) ProtoMessage() {} func (x *GenericResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[120] 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 GenericResponse.ProtoReflect.Descriptor instead. func (*GenericResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{120} } func (x *GenericResponse) GetStatus() string { if x != nil { return x.Status } return "" } func (x *GenericResponse) GetData() string { if x != nil { return x.Data } return "" } type SetExchangeAssetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Asset string `protobuf:"bytes,2,opt,name=asset,proto3" json:"asset,omitempty"` Enable bool `protobuf:"varint,3,opt,name=enable,proto3" json:"enable,omitempty"` } func (x *SetExchangeAssetRequest) Reset() { *x = SetExchangeAssetRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SetExchangeAssetRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SetExchangeAssetRequest) ProtoMessage() {} func (x *SetExchangeAssetRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[121] 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 SetExchangeAssetRequest.ProtoReflect.Descriptor instead. func (*SetExchangeAssetRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{121} } func (x *SetExchangeAssetRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *SetExchangeAssetRequest) GetAsset() string { if x != nil { return x.Asset } return "" } func (x *SetExchangeAssetRequest) GetEnable() bool { if x != nil { return x.Enable } return false } type SetExchangeAllPairsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Enable bool `protobuf:"varint,2,opt,name=enable,proto3" json:"enable,omitempty"` } func (x *SetExchangeAllPairsRequest) Reset() { *x = SetExchangeAllPairsRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SetExchangeAllPairsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SetExchangeAllPairsRequest) ProtoMessage() {} func (x *SetExchangeAllPairsRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[122] 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 SetExchangeAllPairsRequest.ProtoReflect.Descriptor instead. func (*SetExchangeAllPairsRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{122} } func (x *SetExchangeAllPairsRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *SetExchangeAllPairsRequest) GetEnable() bool { if x != nil { return x.Enable } return false } type UpdateExchangeSupportedPairsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` } func (x *UpdateExchangeSupportedPairsRequest) Reset() { *x = UpdateExchangeSupportedPairsRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateExchangeSupportedPairsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateExchangeSupportedPairsRequest) ProtoMessage() {} func (x *UpdateExchangeSupportedPairsRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[123] 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 UpdateExchangeSupportedPairsRequest.ProtoReflect.Descriptor instead. func (*UpdateExchangeSupportedPairsRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{123} } func (x *UpdateExchangeSupportedPairsRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } type GetExchangeAssetsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` } func (x *GetExchangeAssetsRequest) Reset() { *x = GetExchangeAssetsRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetExchangeAssetsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetExchangeAssetsRequest) ProtoMessage() {} func (x *GetExchangeAssetsRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[124] 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 GetExchangeAssetsRequest.ProtoReflect.Descriptor instead. func (*GetExchangeAssetsRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{124} } func (x *GetExchangeAssetsRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } type GetExchangeAssetsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Assets string `protobuf:"bytes,1,opt,name=assets,proto3" json:"assets,omitempty"` } func (x *GetExchangeAssetsResponse) Reset() { *x = GetExchangeAssetsResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetExchangeAssetsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetExchangeAssetsResponse) ProtoMessage() {} func (x *GetExchangeAssetsResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[125] 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 GetExchangeAssetsResponse.ProtoReflect.Descriptor instead. func (*GetExchangeAssetsResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{125} } func (x *GetExchangeAssetsResponse) GetAssets() string { if x != nil { return x.Assets } return "" } type WebsocketGetInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` } func (x *WebsocketGetInfoRequest) Reset() { *x = WebsocketGetInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WebsocketGetInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*WebsocketGetInfoRequest) ProtoMessage() {} func (x *WebsocketGetInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[126] 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 WebsocketGetInfoRequest.ProtoReflect.Descriptor instead. func (*WebsocketGetInfoRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{126} } func (x *WebsocketGetInfoRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } type WebsocketGetInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Supported bool `protobuf:"varint,2,opt,name=supported,proto3" json:"supported,omitempty"` Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"` AuthenticatedSupported bool `protobuf:"varint,4,opt,name=authenticated_supported,json=authenticatedSupported,proto3" json:"authenticated_supported,omitempty"` Authenticated bool `protobuf:"varint,5,opt,name=authenticated,proto3" json:"authenticated,omitempty"` RunningUrl string `protobuf:"bytes,6,opt,name=running_url,json=runningUrl,proto3" json:"running_url,omitempty"` ProxyAddress string `protobuf:"bytes,7,opt,name=proxy_address,json=proxyAddress,proto3" json:"proxy_address,omitempty"` } func (x *WebsocketGetInfoResponse) Reset() { *x = WebsocketGetInfoResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WebsocketGetInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*WebsocketGetInfoResponse) ProtoMessage() {} func (x *WebsocketGetInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[127] 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 WebsocketGetInfoResponse.ProtoReflect.Descriptor instead. func (*WebsocketGetInfoResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{127} } func (x *WebsocketGetInfoResponse) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *WebsocketGetInfoResponse) GetSupported() bool { if x != nil { return x.Supported } return false } func (x *WebsocketGetInfoResponse) GetEnabled() bool { if x != nil { return x.Enabled } return false } func (x *WebsocketGetInfoResponse) GetAuthenticatedSupported() bool { if x != nil { return x.AuthenticatedSupported } return false } func (x *WebsocketGetInfoResponse) GetAuthenticated() bool { if x != nil { return x.Authenticated } return false } func (x *WebsocketGetInfoResponse) GetRunningUrl() string { if x != nil { return x.RunningUrl } return "" } func (x *WebsocketGetInfoResponse) GetProxyAddress() string { if x != nil { return x.ProxyAddress } return "" } type WebsocketSetEnabledRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Enable bool `protobuf:"varint,2,opt,name=enable,proto3" json:"enable,omitempty"` } func (x *WebsocketSetEnabledRequest) Reset() { *x = WebsocketSetEnabledRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WebsocketSetEnabledRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*WebsocketSetEnabledRequest) ProtoMessage() {} func (x *WebsocketSetEnabledRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[128] 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 WebsocketSetEnabledRequest.ProtoReflect.Descriptor instead. func (*WebsocketSetEnabledRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{128} } func (x *WebsocketSetEnabledRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *WebsocketSetEnabledRequest) GetEnable() bool { if x != nil { return x.Enable } return false } type WebsocketGetSubscriptionsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` } func (x *WebsocketGetSubscriptionsRequest) Reset() { *x = WebsocketGetSubscriptionsRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WebsocketGetSubscriptionsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*WebsocketGetSubscriptionsRequest) ProtoMessage() {} func (x *WebsocketGetSubscriptionsRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[129] 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 WebsocketGetSubscriptionsRequest.ProtoReflect.Descriptor instead. func (*WebsocketGetSubscriptionsRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{129} } func (x *WebsocketGetSubscriptionsRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } type WebsocketSubscription struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Channel string `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"` Currency string `protobuf:"bytes,2,opt,name=currency,proto3" json:"currency,omitempty"` Asset string `protobuf:"bytes,3,opt,name=asset,proto3" json:"asset,omitempty"` Params string `protobuf:"bytes,4,opt,name=params,proto3" json:"params,omitempty"` } func (x *WebsocketSubscription) Reset() { *x = WebsocketSubscription{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WebsocketSubscription) String() string { return protoimpl.X.MessageStringOf(x) } func (*WebsocketSubscription) ProtoMessage() {} func (x *WebsocketSubscription) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[130] 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 WebsocketSubscription.ProtoReflect.Descriptor instead. func (*WebsocketSubscription) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{130} } func (x *WebsocketSubscription) GetChannel() string { if x != nil { return x.Channel } return "" } func (x *WebsocketSubscription) GetCurrency() string { if x != nil { return x.Currency } return "" } func (x *WebsocketSubscription) GetAsset() string { if x != nil { return x.Asset } return "" } func (x *WebsocketSubscription) GetParams() string { if x != nil { return x.Params } return "" } type WebsocketGetSubscriptionsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Subscriptions []*WebsocketSubscription `protobuf:"bytes,2,rep,name=subscriptions,proto3" json:"subscriptions,omitempty"` } func (x *WebsocketGetSubscriptionsResponse) Reset() { *x = WebsocketGetSubscriptionsResponse{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WebsocketGetSubscriptionsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*WebsocketGetSubscriptionsResponse) ProtoMessage() {} func (x *WebsocketGetSubscriptionsResponse) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[131] 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 WebsocketGetSubscriptionsResponse.ProtoReflect.Descriptor instead. func (*WebsocketGetSubscriptionsResponse) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{131} } func (x *WebsocketGetSubscriptionsResponse) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *WebsocketGetSubscriptionsResponse) GetSubscriptions() []*WebsocketSubscription { if x != nil { return x.Subscriptions } return nil } type WebsocketSetProxyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Proxy string `protobuf:"bytes,2,opt,name=proxy,proto3" json:"proxy,omitempty"` } func (x *WebsocketSetProxyRequest) Reset() { *x = WebsocketSetProxyRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WebsocketSetProxyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*WebsocketSetProxyRequest) ProtoMessage() {} func (x *WebsocketSetProxyRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[132] 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 WebsocketSetProxyRequest.ProtoReflect.Descriptor instead. func (*WebsocketSetProxyRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{132} } func (x *WebsocketSetProxyRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *WebsocketSetProxyRequest) GetProxy() string { if x != nil { return x.Proxy } return "" } type WebsocketSetURLRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` } func (x *WebsocketSetURLRequest) Reset() { *x = WebsocketSetURLRequest{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WebsocketSetURLRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*WebsocketSetURLRequest) ProtoMessage() {} func (x *WebsocketSetURLRequest) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[133] 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 WebsocketSetURLRequest.ProtoReflect.Descriptor instead. func (*WebsocketSetURLRequest) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{133} } func (x *WebsocketSetURLRequest) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *WebsocketSetURLRequest) GetUrl() string { if x != nil { return x.Url } return "" } type CancelAllOrdersResponse_Orders struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exchange string `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"` OrderStatus map[string]string `protobuf:"bytes,2,rep,name=order_status,json=orderStatus,proto3" json:"order_status,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *CancelAllOrdersResponse_Orders) Reset() { *x = CancelAllOrdersResponse_Orders{} if protoimpl.UnsafeEnabled { mi := &file_rpc_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CancelAllOrdersResponse_Orders) String() string { return protoimpl.X.MessageStringOf(x) } func (*CancelAllOrdersResponse_Orders) ProtoMessage() {} func (x *CancelAllOrdersResponse_Orders) ProtoReflect() protoreflect.Message { mi := &file_rpc_proto_msgTypes[144] 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 CancelAllOrdersResponse_Orders.ProtoReflect.Descriptor instead. func (*CancelAllOrdersResponse_Orders) Descriptor() ([]byte, []int) { return file_rpc_proto_rawDescGZIP(), []int{68, 0} } func (x *CancelAllOrdersResponse_Orders) GetExchange() string { if x != nil { return x.Exchange } return "" } func (x *CancelAllOrdersResponse_Orders) GetOrderStatus() map[string]string { if x != nil { return x.OrderStatus } return nil } var File_rpc_proto protoreflect.FileDescriptor var file_rpc_proto_rawDesc = []byte{ 0x0a, 0x09, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x10, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb4, 0x04, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x78, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x69, 0x61, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x69, 0x61, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x57, 0x0a, 0x10, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x72, 0x70, 0x63, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x70, 0x63, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x72, 0x70, 0x63, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0x42, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 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, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x54, 0x0a, 0x11, 0x52, 0x70, 0x63, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 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, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x50, 0x43, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x21, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x14, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x22, 0x86, 0x02, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x1a, 0x66, 0x0a, 0x1a, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x79, 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, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x37, 0x0a, 0x17, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xbe, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x75, 0x73, 0x62, 0x73, 0x79, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x11, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x75, 0x73, 0x62, 0x73, 0x79, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x43, 0x0a, 0x15, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 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, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x52, 0x50, 0x43, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x0b, 0x52, 0x50, 0x43, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x52, 0x50, 0x43, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x50, 0x43, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0x51, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 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, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x50, 0x43, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x38, 0x0a, 0x1a, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x2f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x34, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x32, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x54, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x74, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x74, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x54, 0x50, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa2, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x54, 0x50, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x09, 0x6f, 0x74, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x54, 0x50, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4f, 0x74, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6f, 0x74, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x4f, 0x74, 0x70, 0x43, 0x6f, 0x64, 0x65, 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, 0x34, 0x0a, 0x16, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x5e, 0x0a, 0x0e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x69, 0x72, 0x73, 0x22, 0x82, 0x04, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x74, 0x74, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x68, 0x74, 0x74, 0x70, 0x55, 0x73, 0x65, 0x72, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x10, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x70, 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x41, 0x70, 0x69, 0x1a, 0x5a, 0x0a, 0x14, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 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, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x77, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x61, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x70, 0x61, 0x69, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x56, 0x0a, 0x0c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x22, 0x95, 0x02, 0x0a, 0x0e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x61, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x70, 0x61, 0x69, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x6c, 0x61, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x62, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 0x63, 0x65, 0x41, 0x74, 0x68, 0x22, 0x13, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x57, 0x0a, 0x07, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x22, 0x3f, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x52, 0x07, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x22, 0x7a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x61, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x70, 0x61, 0x69, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4d, 0x0a, 0x0d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0xfa, 0x01, 0x0a, 0x11, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x61, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x70, 0x61, 0x69, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x12, 0x29, 0x0a, 0x04, 0x62, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x62, 0x69, 0x64, 0x73, 0x12, 0x29, 0x0a, 0x04, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x63, 0x0a, 0x0a, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x22, 0x4b, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x22, 0x33, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x56, 0x0a, 0x07, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x0a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x22, 0x66, 0x0a, 0x13, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x61, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x27, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x85, 0x01, 0x0a, 0x10, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x22, 0x1c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x6e, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x22, 0x68, 0x0a, 0x12, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x22, 0x4d, 0x0a, 0x11, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x22, 0x48, 0x0a, 0x0c, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x98, 0x01, 0x0a, 0x0b, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x1a, 0x53, 0x0a, 0x0a, 0x43, 0x6f, 0x69, 0x6e, 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, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xcb, 0x04, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x0b, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x0d, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x5f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0c, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x70, 0x0a, 0x15, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x5f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x0c, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0b, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x6d, 0x0a, 0x14, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x1a, 0x5c, 0x0a, 0x18, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 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, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5a, 0x0a, 0x17, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe3, 0x01, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x64, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x22, 0x78, 0x0a, 0x1d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x1a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xed, 0x01, 0x0a, 0x0d, 0x46, 0x6f, 0x72, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x5b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0f, 0x66, 0x6f, 0x72, 0x65, 0x78, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x0e, 0x66, 0x6f, 0x72, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x78, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x71, 0x0a, 0x14, 0x46, 0x6f, 0x72, 0x65, 0x78, 0x52, 0x61, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x22, 0x56, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x78, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x66, 0x6f, 0x72, 0x65, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x78, 0x52, 0x61, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x66, 0x6f, 0x72, 0x65, 0x78, 0x52, 0x61, 0x74, 0x65, 0x73, 0x22, 0xaf, 0x03, 0x0a, 0x0c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xdd, 0x01, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x64, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x66, 0x65, 0x65, 0x22, 0x77, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x61, 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x70, 0x61, 0x69, 0x72, 0x22, 0x41, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x22, 0x48, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x22, 0xd8, 0x01, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x61, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x70, 0x61, 0x69, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x13, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x22, 0x88, 0x01, 0x0a, 0x14, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x61, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x70, 0x61, 0x69, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x64, 0x65, 0x22, 0xf2, 0x01, 0x0a, 0x15, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x67, 0x61, 0x69, 0x6e, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x47, 0x61, 0x69, 0x6e, 0x4c, 0x6f, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x10, 0x57, 0x68, 0x61, 0x6c, 0x65, 0x42, 0x6f, 0x6d, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x61, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x70, 0x61, 0x69, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x64, 0x65, 0x22, 0xee, 0x01, 0x0a, 0x12, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x61, 0x69, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x70, 0x61, 0x69, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x64, 0x65, 0x22, 0x34, 0x0a, 0x16, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x9c, 0x02, 0x0a, 0x17, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x1a, 0xc0, 0x01, 0x0a, 0x06, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x5a, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 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, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xbe, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x62, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x69, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x13, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x62, 0x69, 0x64, 0x73, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x69, 0x64, 0x73, 0x41, 0x6e, 0x64, 0x41, 0x73, 0x6b, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf5, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x42, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x61, 0x69, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x70, 0x61, 0x69, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x22, 0xe6, 0x01, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x42, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x61, 0x69, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x70, 0x61, 0x69, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x22, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0x24, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0x46, 0x0a, 0x28, 0x47, 0x65, 0x74, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x29, 0x47, 0x65, 0x74, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x1a, 0x3c, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 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, 0x6c, 0x0a, 0x26, 0x47, 0x65, 0x74, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x43, 0x0a, 0x27, 0x47, 0x65, 0x74, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xaf, 0x01, 0x0a, 0x13, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x46, 0x69, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x62, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xd6, 0x01, 0x0a, 0x15, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x0a, 0x10, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2c, 0x0a, 0x1a, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x54, 0x0a, 0x1b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x65, 0x0a, 0x21, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x79, 0x0a, 0x1d, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x44, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x5b, 0x0a, 0x22, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x02, 0x0a, 0x17, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x54, 0x0a, 0x16, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xea, 0x01, 0x0a, 0x16, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x66, 0x69, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x61, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x66, 0x69, 0x61, 0x74, 0x12, 0x35, 0x0a, 0x06, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x22, 0xb8, 0x01, 0x0a, 0x13, 0x46, 0x69, 0x61, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x73, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x62, 0x73, 0x62, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x77, 0x69, 0x66, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x77, 0x69, 0x66, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x62, 0x61, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x62, 0x61, 0x6e, 0x22, 0x64, 0x0a, 0x15, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x66, 0x65, 0x65, 0x22, 0x31, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x22, 0x6e, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x61, 0x72, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x77, 0x61, 0x72, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x47, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x4b, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x22, 0xd8, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x10, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x1a, 0x5a, 0x0a, 0x14, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 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, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x97, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x61, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x70, 0x61, 0x69, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3f, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x7d, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x61, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x70, 0x61, 0x69, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3c, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x43, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x97, 0x02, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x43, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x61, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x70, 0x61, 0x69, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x15, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x5f, 0x64, 0x62, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x75, 0x73, 0x65, 0x44, 0x62, 0x22, 0xce, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x43, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x61, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x70, 0x61, 0x69, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x06, 0x43, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x78, 0x0a, 0x0a, 0x41, 0x75, 0x64, 0x69, 0x74, 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, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x62, 0x0a, 0x09, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x52, 0x75, 0x6e, 0x22, 0x44, 0x0a, 0x17, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x41, 0x0a, 0x14, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x19, 0x0a, 0x17, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x18, 0x0a, 0x16, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x19, 0x0a, 0x17, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa8, 0x01, 0x0a, 0x16, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x22, 0x47, 0x0a, 0x1a, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, 0x64, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x42, 0x0a, 0x15, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x4a, 0x0a, 0x18, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x4c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x5e, 0x0a, 0x17, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x0a, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x22, 0x6f, 0x0a, 0x16, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x3d, 0x0a, 0x0f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x63, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x50, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6c, 0x6c, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 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, 0x22, 0x41, 0x0a, 0x23, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x36, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x33, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x22, 0x35, 0x0a, 0x17, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x93, 0x02, 0x0a, 0x18, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x50, 0x0a, 0x1a, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 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, 0x22, 0x3e, 0x0a, 0x20, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x7b, 0x0a, 0x15, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 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, 0x84, 0x01, 0x0a, 0x21, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x43, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x4c, 0x0a, 0x18, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x22, 0x46, 0x0a, 0x16, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x74, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x32, 0x8b, 0x3f, 0x0a, 0x0e, 0x47, 0x6f, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x54, 0x72, 0x61, 0x64, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x67, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1c, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x75, 0x73, 0x62, 0x73, 0x79, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x68, 0x0a, 0x0f, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x1f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x6a, 0x0a, 0x10, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x1f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x6f, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, 0x50, 0x43, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x50, 0x43, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x50, 0x43, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x72, 0x70, 0x63, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x93, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x27, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x63, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x6e, 0x0a, 0x0f, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x22, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x73, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x73, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x54, 0x50, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x54, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6f, 0x74, 0x70, 0x12, 0x73, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x54, 0x50, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x54, 0x50, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x54, 0x50, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6f, 0x74, 0x70, 0x73, 0x12, 0x6c, 0x0a, 0x0e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x22, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x57, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x22, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x3a, 0x01, 0x2a, 0x12, 0x5b, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x19, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x63, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x1b, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x3a, 0x01, 0x2a, 0x12, 0x67, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x1c, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x6b, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x79, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1d, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x30, 0x01, 0x12, 0x57, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x63, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x12, 0x1b, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x12, 0x7f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x22, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x76, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x22, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x64, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x7f, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x25, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x77, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x20, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x66, 0x6f, 0x72, 0x65, 0x78, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x67, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x78, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x78, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x78, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x66, 0x6f, 0x72, 0x65, 0x78, 0x72, 0x61, 0x74, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x18, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x22, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x52, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x22, 0x0c, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x01, 0x2a, 0x12, 0x62, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x22, 0x0f, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x01, 0x2a, 0x12, 0x6a, 0x0a, 0x0d, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x01, 0x2a, 0x12, 0x5e, 0x0a, 0x09, 0x57, 0x68, 0x61, 0x6c, 0x65, 0x42, 0x6f, 0x6d, 0x62, 0x12, 0x18, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x68, 0x61, 0x6c, 0x65, 0x42, 0x6f, 0x6d, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x22, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x68, 0x61, 0x6c, 0x65, 0x62, 0x6f, 0x6d, 0x62, 0x3a, 0x01, 0x2a, 0x12, 0x5e, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x22, 0x0f, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x01, 0x2a, 0x12, 0x72, 0x0a, 0x0f, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x57, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x56, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x22, 0x0c, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x64, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x5e, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x22, 0x0f, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0xb2, 0x01, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xaa, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x6c, 0x0a, 0x11, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x46, 0x69, 0x61, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x1b, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x46, 0x69, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x66, 0x69, 0x61, 0x74, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x8b, 0x01, 0x0a, 0x1b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x1d, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x22, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x77, 0x66, 0x69, 0x61, 0x74, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x82, 0x01, 0x0a, 0x13, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x44, 0x12, 0x22, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x62, 0x79, 0x69, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x97, 0x01, 0x0a, 0x1a, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x29, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x62, 0x79, 0x69, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x91, 0x01, 0x0a, 0x16, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x44, 0x61, 0x74, 0x65, 0x12, 0x25, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x44, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x62, 0x79, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x73, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x6c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x76, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x22, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x74, 0x6c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x76, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x1f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x22, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x70, 0x61, 0x69, 0x72, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x6a, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x69, 0x72, 0x12, 0x1e, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x74, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x70, 0x61, 0x69, 0x72, 0x3a, 0x01, 0x2a, 0x12, 0x74, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x21, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x30, 0x01, 0x12, 0x8c, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x29, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x30, 0x01, 0x12, 0x68, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1e, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x30, 0x01, 0x12, 0x80, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x26, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x30, 0x01, 0x12, 0x67, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x61, 0x75, 0x64, 0x69, 0x74, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x6b, 0x0a, 0x10, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x63, 0x74, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x12, 0x6b, 0x0a, 0x0f, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1e, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x22, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x63, 0x74, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x78, 0x0a, 0x13, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, 0x64, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x22, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, 0x64, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x63, 0x74, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2f, 0x72, 0x65, 0x61, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x70, 0x0a, 0x0f, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x63, 0x74, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x6c, 0x0a, 0x0e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1d, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x63, 0x74, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x65, 0x0a, 0x0d, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1c, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x63, 0x74, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2f, 0x73, 0x74, 0x6f, 0x70, 0x3a, 0x01, 0x2a, 0x12, 0x6b, 0x0a, 0x10, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x6c, 0x6c, 0x12, 0x1f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x63, 0x74, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2f, 0x73, 0x74, 0x6f, 0x70, 0x3a, 0x01, 0x2a, 0x12, 0x73, 0x0a, 0x10, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x12, 0x1f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x63, 0x74, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2f, 0x73, 0x74, 0x6f, 0x70, 0x3a, 0x01, 0x2a, 0x12, 0x77, 0x0a, 0x17, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x4c, 0x6f, 0x61, 0x64, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x43, 0x54, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x4c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x63, 0x74, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6c, 0x6f, 0x61, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x43, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x43, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x43, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x63, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x6a, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x74, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x73, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x22, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6c, 0x6c, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x70, 0x61, 0x69, 0x72, 0x73, 0x12, 0x8e, 0x01, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x2b, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x70, 0x61, 0x69, 0x72, 0x73, 0x12, 0x77, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x20, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x73, 0x0a, 0x10, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x67, 0x65, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x73, 0x0a, 0x13, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x22, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x97, 0x01, 0x0a, 0x19, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x67, 0x65, 0x74, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x6d, 0x0a, 0x11, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x20, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x65, 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x67, 0x0a, 0x0f, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x74, 0x55, 0x52, 0x4c, 0x12, 0x1e, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x74, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x63, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x65, 0x74, 0x75, 0x72, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_rpc_proto_rawDescOnce sync.Once file_rpc_proto_rawDescData = file_rpc_proto_rawDesc ) func file_rpc_proto_rawDescGZIP() []byte { file_rpc_proto_rawDescOnce.Do(func() { file_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_rpc_proto_rawDescData) }) return file_rpc_proto_rawDescData } var file_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 148) var file_rpc_proto_goTypes = []interface{}{ (*GetInfoRequest)(nil), // 0: gctrpc.GetInfoRequest (*GetInfoResponse)(nil), // 1: gctrpc.GetInfoResponse (*GetCommunicationRelayersRequest)(nil), // 2: gctrpc.GetCommunicationRelayersRequest (*CommunicationRelayer)(nil), // 3: gctrpc.CommunicationRelayer (*GetCommunicationRelayersResponse)(nil), // 4: gctrpc.GetCommunicationRelayersResponse (*GenericSubsystemRequest)(nil), // 5: gctrpc.GenericSubsystemRequest (*GetSubsystemsRequest)(nil), // 6: gctrpc.GetSubsystemsRequest (*GetSusbsytemsResponse)(nil), // 7: gctrpc.GetSusbsytemsResponse (*GetRPCEndpointsRequest)(nil), // 8: gctrpc.GetRPCEndpointsRequest (*RPCEndpoint)(nil), // 9: gctrpc.RPCEndpoint (*GetRPCEndpointsResponse)(nil), // 10: gctrpc.GetRPCEndpointsResponse (*GenericExchangeNameRequest)(nil), // 11: gctrpc.GenericExchangeNameRequest (*GetExchangesRequest)(nil), // 12: gctrpc.GetExchangesRequest (*GetExchangesResponse)(nil), // 13: gctrpc.GetExchangesResponse (*GetExchangeOTPReponse)(nil), // 14: gctrpc.GetExchangeOTPReponse (*GetExchangeOTPsRequest)(nil), // 15: gctrpc.GetExchangeOTPsRequest (*GetExchangeOTPsResponse)(nil), // 16: gctrpc.GetExchangeOTPsResponse (*DisableExchangeRequest)(nil), // 17: gctrpc.DisableExchangeRequest (*PairsSupported)(nil), // 18: gctrpc.PairsSupported (*GetExchangeInfoResponse)(nil), // 19: gctrpc.GetExchangeInfoResponse (*GetTickerRequest)(nil), // 20: gctrpc.GetTickerRequest (*CurrencyPair)(nil), // 21: gctrpc.CurrencyPair (*TickerResponse)(nil), // 22: gctrpc.TickerResponse (*GetTickersRequest)(nil), // 23: gctrpc.GetTickersRequest (*Tickers)(nil), // 24: gctrpc.Tickers (*GetTickersResponse)(nil), // 25: gctrpc.GetTickersResponse (*GetOrderbookRequest)(nil), // 26: gctrpc.GetOrderbookRequest (*OrderbookItem)(nil), // 27: gctrpc.OrderbookItem (*OrderbookResponse)(nil), // 28: gctrpc.OrderbookResponse (*GetOrderbooksRequest)(nil), // 29: gctrpc.GetOrderbooksRequest (*Orderbooks)(nil), // 30: gctrpc.Orderbooks (*GetOrderbooksResponse)(nil), // 31: gctrpc.GetOrderbooksResponse (*GetAccountInfoRequest)(nil), // 32: gctrpc.GetAccountInfoRequest (*Account)(nil), // 33: gctrpc.Account (*AccountCurrencyInfo)(nil), // 34: gctrpc.AccountCurrencyInfo (*GetAccountInfoResponse)(nil), // 35: gctrpc.GetAccountInfoResponse (*GetConfigRequest)(nil), // 36: gctrpc.GetConfigRequest (*GetConfigResponse)(nil), // 37: gctrpc.GetConfigResponse (*PortfolioAddress)(nil), // 38: gctrpc.PortfolioAddress (*GetPortfolioRequest)(nil), // 39: gctrpc.GetPortfolioRequest (*GetPortfolioResponse)(nil), // 40: gctrpc.GetPortfolioResponse (*GetPortfolioSummaryRequest)(nil), // 41: gctrpc.GetPortfolioSummaryRequest (*Coin)(nil), // 42: gctrpc.Coin (*OfflineCoinSummary)(nil), // 43: gctrpc.OfflineCoinSummary (*OnlineCoinSummary)(nil), // 44: gctrpc.OnlineCoinSummary (*OfflineCoins)(nil), // 45: gctrpc.OfflineCoins (*OnlineCoins)(nil), // 46: gctrpc.OnlineCoins (*GetPortfolioSummaryResponse)(nil), // 47: gctrpc.GetPortfolioSummaryResponse (*AddPortfolioAddressRequest)(nil), // 48: gctrpc.AddPortfolioAddressRequest (*RemovePortfolioAddressRequest)(nil), // 49: gctrpc.RemovePortfolioAddressRequest (*GetForexProvidersRequest)(nil), // 50: gctrpc.GetForexProvidersRequest (*ForexProvider)(nil), // 51: gctrpc.ForexProvider (*GetForexProvidersResponse)(nil), // 52: gctrpc.GetForexProvidersResponse (*GetForexRatesRequest)(nil), // 53: gctrpc.GetForexRatesRequest (*ForexRatesConversion)(nil), // 54: gctrpc.ForexRatesConversion (*GetForexRatesResponse)(nil), // 55: gctrpc.GetForexRatesResponse (*OrderDetails)(nil), // 56: gctrpc.OrderDetails (*TradeHistory)(nil), // 57: gctrpc.TradeHistory (*GetOrdersRequest)(nil), // 58: gctrpc.GetOrdersRequest (*GetOrdersResponse)(nil), // 59: gctrpc.GetOrdersResponse (*GetOrderRequest)(nil), // 60: gctrpc.GetOrderRequest (*SubmitOrderRequest)(nil), // 61: gctrpc.SubmitOrderRequest (*SubmitOrderResponse)(nil), // 62: gctrpc.SubmitOrderResponse (*SimulateOrderRequest)(nil), // 63: gctrpc.SimulateOrderRequest (*SimulateOrderResponse)(nil), // 64: gctrpc.SimulateOrderResponse (*WhaleBombRequest)(nil), // 65: gctrpc.WhaleBombRequest (*CancelOrderRequest)(nil), // 66: gctrpc.CancelOrderRequest (*CancelAllOrdersRequest)(nil), // 67: gctrpc.CancelAllOrdersRequest (*CancelAllOrdersResponse)(nil), // 68: gctrpc.CancelAllOrdersResponse (*GetEventsRequest)(nil), // 69: gctrpc.GetEventsRequest (*ConditionParams)(nil), // 70: gctrpc.ConditionParams (*GetEventsResponse)(nil), // 71: gctrpc.GetEventsResponse (*AddEventRequest)(nil), // 72: gctrpc.AddEventRequest (*AddEventResponse)(nil), // 73: gctrpc.AddEventResponse (*RemoveEventRequest)(nil), // 74: gctrpc.RemoveEventRequest (*GetCryptocurrencyDepositAddressesRequest)(nil), // 75: gctrpc.GetCryptocurrencyDepositAddressesRequest (*GetCryptocurrencyDepositAddressesResponse)(nil), // 76: gctrpc.GetCryptocurrencyDepositAddressesResponse (*GetCryptocurrencyDepositAddressRequest)(nil), // 77: gctrpc.GetCryptocurrencyDepositAddressRequest (*GetCryptocurrencyDepositAddressResponse)(nil), // 78: gctrpc.GetCryptocurrencyDepositAddressResponse (*WithdrawFiatRequest)(nil), // 79: gctrpc.WithdrawFiatRequest (*WithdrawCryptoRequest)(nil), // 80: gctrpc.WithdrawCryptoRequest (*WithdrawResponse)(nil), // 81: gctrpc.WithdrawResponse (*WithdrawalEventByIDRequest)(nil), // 82: gctrpc.WithdrawalEventByIDRequest (*WithdrawalEventByIDResponse)(nil), // 83: gctrpc.WithdrawalEventByIDResponse (*WithdrawalEventsByExchangeRequest)(nil), // 84: gctrpc.WithdrawalEventsByExchangeRequest (*WithdrawalEventsByDateRequest)(nil), // 85: gctrpc.WithdrawalEventsByDateRequest (*WithdrawalEventsByExchangeResponse)(nil), // 86: gctrpc.WithdrawalEventsByExchangeResponse (*WithdrawalEventResponse)(nil), // 87: gctrpc.WithdrawalEventResponse (*WithdrawlExchangeEvent)(nil), // 88: gctrpc.WithdrawlExchangeEvent (*WithdrawalRequestEvent)(nil), // 89: gctrpc.WithdrawalRequestEvent (*FiatWithdrawalEvent)(nil), // 90: gctrpc.FiatWithdrawalEvent (*CryptoWithdrawalEvent)(nil), // 91: gctrpc.CryptoWithdrawalEvent (*GetLoggerDetailsRequest)(nil), // 92: gctrpc.GetLoggerDetailsRequest (*GetLoggerDetailsResponse)(nil), // 93: gctrpc.GetLoggerDetailsResponse (*SetLoggerDetailsRequest)(nil), // 94: gctrpc.SetLoggerDetailsRequest (*GetExchangePairsRequest)(nil), // 95: gctrpc.GetExchangePairsRequest (*GetExchangePairsResponse)(nil), // 96: gctrpc.GetExchangePairsResponse (*SetExchangePairRequest)(nil), // 97: gctrpc.SetExchangePairRequest (*GetOrderbookStreamRequest)(nil), // 98: gctrpc.GetOrderbookStreamRequest (*GetExchangeOrderbookStreamRequest)(nil), // 99: gctrpc.GetExchangeOrderbookStreamRequest (*GetTickerStreamRequest)(nil), // 100: gctrpc.GetTickerStreamRequest (*GetExchangeTickerStreamRequest)(nil), // 101: gctrpc.GetExchangeTickerStreamRequest (*GetAuditEventRequest)(nil), // 102: gctrpc.GetAuditEventRequest (*GetAuditEventResponse)(nil), // 103: gctrpc.GetAuditEventResponse (*GetHistoricCandlesRequest)(nil), // 104: gctrpc.GetHistoricCandlesRequest (*GetHistoricCandlesResponse)(nil), // 105: gctrpc.GetHistoricCandlesResponse (*Candle)(nil), // 106: gctrpc.Candle (*AuditEvent)(nil), // 107: gctrpc.AuditEvent (*GCTScript)(nil), // 108: gctrpc.GCTScript (*GCTScriptExecuteRequest)(nil), // 109: gctrpc.GCTScriptExecuteRequest (*GCTScriptStopRequest)(nil), // 110: gctrpc.GCTScriptStopRequest (*GCTScriptStopAllRequest)(nil), // 111: gctrpc.GCTScriptStopAllRequest (*GCTScriptStatusRequest)(nil), // 112: gctrpc.GCTScriptStatusRequest (*GCTScriptListAllRequest)(nil), // 113: gctrpc.GCTScriptListAllRequest (*GCTScriptUploadRequest)(nil), // 114: gctrpc.GCTScriptUploadRequest (*GCTScriptReadScriptRequest)(nil), // 115: gctrpc.GCTScriptReadScriptRequest (*GCTScriptQueryRequest)(nil), // 116: gctrpc.GCTScriptQueryRequest (*GCTScriptAutoLoadRequest)(nil), // 117: gctrpc.GCTScriptAutoLoadRequest (*GCTScriptStatusResponse)(nil), // 118: gctrpc.GCTScriptStatusResponse (*GCTScriptQueryResponse)(nil), // 119: gctrpc.GCTScriptQueryResponse (*GenericResponse)(nil), // 120: gctrpc.GenericResponse (*SetExchangeAssetRequest)(nil), // 121: gctrpc.SetExchangeAssetRequest (*SetExchangeAllPairsRequest)(nil), // 122: gctrpc.SetExchangeAllPairsRequest (*UpdateExchangeSupportedPairsRequest)(nil), // 123: gctrpc.UpdateExchangeSupportedPairsRequest (*GetExchangeAssetsRequest)(nil), // 124: gctrpc.GetExchangeAssetsRequest (*GetExchangeAssetsResponse)(nil), // 125: gctrpc.GetExchangeAssetsResponse (*WebsocketGetInfoRequest)(nil), // 126: gctrpc.WebsocketGetInfoRequest (*WebsocketGetInfoResponse)(nil), // 127: gctrpc.WebsocketGetInfoResponse (*WebsocketSetEnabledRequest)(nil), // 128: gctrpc.WebsocketSetEnabledRequest (*WebsocketGetSubscriptionsRequest)(nil), // 129: gctrpc.WebsocketGetSubscriptionsRequest (*WebsocketSubscription)(nil), // 130: gctrpc.WebsocketSubscription (*WebsocketGetSubscriptionsResponse)(nil), // 131: gctrpc.WebsocketGetSubscriptionsResponse (*WebsocketSetProxyRequest)(nil), // 132: gctrpc.WebsocketSetProxyRequest (*WebsocketSetURLRequest)(nil), // 133: gctrpc.WebsocketSetURLRequest nil, // 134: gctrpc.GetInfoResponse.SubsystemStatusEntry nil, // 135: gctrpc.GetInfoResponse.RpcEndpointsEntry nil, // 136: gctrpc.GetCommunicationRelayersResponse.CommunicationRelayersEntry nil, // 137: gctrpc.GetSusbsytemsResponse.SubsystemsStatusEntry nil, // 138: gctrpc.GetRPCEndpointsResponse.EndpointsEntry nil, // 139: gctrpc.GetExchangeOTPsResponse.OtpCodesEntry nil, // 140: gctrpc.GetExchangeInfoResponse.SupportedAssetsEntry nil, // 141: gctrpc.OnlineCoins.CoinsEntry nil, // 142: gctrpc.GetPortfolioSummaryResponse.CoinsOfflineSummaryEntry nil, // 143: gctrpc.GetPortfolioSummaryResponse.CoinsOnlineSummaryEntry (*CancelAllOrdersResponse_Orders)(nil), // 144: gctrpc.CancelAllOrdersResponse.Orders nil, // 145: gctrpc.CancelAllOrdersResponse.Orders.OrderStatusEntry nil, // 146: gctrpc.GetCryptocurrencyDepositAddressesResponse.AddressesEntry nil, // 147: gctrpc.GetExchangePairsResponse.SupportedAssetsEntry (*timestamp.Timestamp)(nil), // 148: google.protobuf.Timestamp } var file_rpc_proto_depIdxs = []int32{ 134, // 0: gctrpc.GetInfoResponse.subsystem_status:type_name -> gctrpc.GetInfoResponse.SubsystemStatusEntry 135, // 1: gctrpc.GetInfoResponse.rpc_endpoints:type_name -> gctrpc.GetInfoResponse.RpcEndpointsEntry 136, // 2: gctrpc.GetCommunicationRelayersResponse.communication_relayers:type_name -> gctrpc.GetCommunicationRelayersResponse.CommunicationRelayersEntry 137, // 3: gctrpc.GetSusbsytemsResponse.subsystems_status:type_name -> gctrpc.GetSusbsytemsResponse.SubsystemsStatusEntry 138, // 4: gctrpc.GetRPCEndpointsResponse.endpoints:type_name -> gctrpc.GetRPCEndpointsResponse.EndpointsEntry 139, // 5: gctrpc.GetExchangeOTPsResponse.otp_codes:type_name -> gctrpc.GetExchangeOTPsResponse.OtpCodesEntry 140, // 6: gctrpc.GetExchangeInfoResponse.supported_assets:type_name -> gctrpc.GetExchangeInfoResponse.SupportedAssetsEntry 21, // 7: gctrpc.GetTickerRequest.pair:type_name -> gctrpc.CurrencyPair 21, // 8: gctrpc.TickerResponse.pair:type_name -> gctrpc.CurrencyPair 22, // 9: gctrpc.Tickers.tickers:type_name -> gctrpc.TickerResponse 24, // 10: gctrpc.GetTickersResponse.tickers:type_name -> gctrpc.Tickers 21, // 11: gctrpc.GetOrderbookRequest.pair:type_name -> gctrpc.CurrencyPair 21, // 12: gctrpc.OrderbookResponse.pair:type_name -> gctrpc.CurrencyPair 27, // 13: gctrpc.OrderbookResponse.bids:type_name -> gctrpc.OrderbookItem 27, // 14: gctrpc.OrderbookResponse.asks:type_name -> gctrpc.OrderbookItem 28, // 15: gctrpc.Orderbooks.orderbooks:type_name -> gctrpc.OrderbookResponse 30, // 16: gctrpc.GetOrderbooksResponse.orderbooks:type_name -> gctrpc.Orderbooks 34, // 17: gctrpc.Account.currencies:type_name -> gctrpc.AccountCurrencyInfo 33, // 18: gctrpc.GetAccountInfoResponse.accounts:type_name -> gctrpc.Account 38, // 19: gctrpc.GetPortfolioResponse.portfolio:type_name -> gctrpc.PortfolioAddress 43, // 20: gctrpc.OfflineCoins.addresses:type_name -> gctrpc.OfflineCoinSummary 141, // 21: gctrpc.OnlineCoins.coins:type_name -> gctrpc.OnlineCoins.CoinsEntry 42, // 22: gctrpc.GetPortfolioSummaryResponse.coin_totals:type_name -> gctrpc.Coin 42, // 23: gctrpc.GetPortfolioSummaryResponse.coins_offline:type_name -> gctrpc.Coin 142, // 24: gctrpc.GetPortfolioSummaryResponse.coins_offline_summary:type_name -> gctrpc.GetPortfolioSummaryResponse.CoinsOfflineSummaryEntry 42, // 25: gctrpc.GetPortfolioSummaryResponse.coins_online:type_name -> gctrpc.Coin 143, // 26: gctrpc.GetPortfolioSummaryResponse.coins_online_summary:type_name -> gctrpc.GetPortfolioSummaryResponse.CoinsOnlineSummaryEntry 51, // 27: gctrpc.GetForexProvidersResponse.forex_providers:type_name -> gctrpc.ForexProvider 54, // 28: gctrpc.GetForexRatesResponse.forex_rates:type_name -> gctrpc.ForexRatesConversion 57, // 29: gctrpc.OrderDetails.trades:type_name -> gctrpc.TradeHistory 21, // 30: gctrpc.GetOrdersRequest.pair:type_name -> gctrpc.CurrencyPair 56, // 31: gctrpc.GetOrdersResponse.orders:type_name -> gctrpc.OrderDetails 21, // 32: gctrpc.SubmitOrderRequest.pair:type_name -> gctrpc.CurrencyPair 21, // 33: gctrpc.SimulateOrderRequest.pair:type_name -> gctrpc.CurrencyPair 27, // 34: gctrpc.SimulateOrderResponse.orders:type_name -> gctrpc.OrderbookItem 21, // 35: gctrpc.WhaleBombRequest.pair:type_name -> gctrpc.CurrencyPair 21, // 36: gctrpc.CancelOrderRequest.pair:type_name -> gctrpc.CurrencyPair 144, // 37: gctrpc.CancelAllOrdersResponse.orders:type_name -> gctrpc.CancelAllOrdersResponse.Orders 70, // 38: gctrpc.GetEventsResponse.condition_params:type_name -> gctrpc.ConditionParams 21, // 39: gctrpc.GetEventsResponse.pair:type_name -> gctrpc.CurrencyPair 70, // 40: gctrpc.AddEventRequest.condition_params:type_name -> gctrpc.ConditionParams 21, // 41: gctrpc.AddEventRequest.pair:type_name -> gctrpc.CurrencyPair 146, // 42: gctrpc.GetCryptocurrencyDepositAddressesResponse.addresses:type_name -> gctrpc.GetCryptocurrencyDepositAddressesResponse.AddressesEntry 87, // 43: gctrpc.WithdrawalEventByIDResponse.event:type_name -> gctrpc.WithdrawalEventResponse 87, // 44: gctrpc.WithdrawalEventsByExchangeResponse.event:type_name -> gctrpc.WithdrawalEventResponse 88, // 45: gctrpc.WithdrawalEventResponse.exchange:type_name -> gctrpc.WithdrawlExchangeEvent 89, // 46: gctrpc.WithdrawalEventResponse.request:type_name -> gctrpc.WithdrawalRequestEvent 148, // 47: gctrpc.WithdrawalEventResponse.created_at:type_name -> google.protobuf.Timestamp 148, // 48: gctrpc.WithdrawalEventResponse.updated_at:type_name -> google.protobuf.Timestamp 90, // 49: gctrpc.WithdrawalRequestEvent.fiat:type_name -> gctrpc.FiatWithdrawalEvent 91, // 50: gctrpc.WithdrawalRequestEvent.crypto:type_name -> gctrpc.CryptoWithdrawalEvent 147, // 51: gctrpc.GetExchangePairsResponse.supported_assets:type_name -> gctrpc.GetExchangePairsResponse.SupportedAssetsEntry 21, // 52: gctrpc.SetExchangePairRequest.pairs:type_name -> gctrpc.CurrencyPair 21, // 53: gctrpc.GetOrderbookStreamRequest.pair:type_name -> gctrpc.CurrencyPair 21, // 54: gctrpc.GetTickerStreamRequest.pair:type_name -> gctrpc.CurrencyPair 107, // 55: gctrpc.GetAuditEventResponse.events:type_name -> gctrpc.AuditEvent 21, // 56: gctrpc.GetHistoricCandlesRequest.pair:type_name -> gctrpc.CurrencyPair 21, // 57: gctrpc.GetHistoricCandlesResponse.pair:type_name -> gctrpc.CurrencyPair 106, // 58: gctrpc.GetHistoricCandlesResponse.candle:type_name -> gctrpc.Candle 108, // 59: gctrpc.GCTScriptExecuteRequest.script:type_name -> gctrpc.GCTScript 108, // 60: gctrpc.GCTScriptStopRequest.script:type_name -> gctrpc.GCTScript 108, // 61: gctrpc.GCTScriptReadScriptRequest.script:type_name -> gctrpc.GCTScript 108, // 62: gctrpc.GCTScriptQueryRequest.script:type_name -> gctrpc.GCTScript 108, // 63: gctrpc.GCTScriptStatusResponse.scripts:type_name -> gctrpc.GCTScript 108, // 64: gctrpc.GCTScriptQueryResponse.script:type_name -> gctrpc.GCTScript 130, // 65: gctrpc.WebsocketGetSubscriptionsResponse.subscriptions:type_name -> gctrpc.WebsocketSubscription 9, // 66: gctrpc.GetInfoResponse.RpcEndpointsEntry.value:type_name -> gctrpc.RPCEndpoint 3, // 67: gctrpc.GetCommunicationRelayersResponse.CommunicationRelayersEntry.value:type_name -> gctrpc.CommunicationRelayer 9, // 68: gctrpc.GetRPCEndpointsResponse.EndpointsEntry.value:type_name -> gctrpc.RPCEndpoint 18, // 69: gctrpc.GetExchangeInfoResponse.SupportedAssetsEntry.value:type_name -> gctrpc.PairsSupported 44, // 70: gctrpc.OnlineCoins.CoinsEntry.value:type_name -> gctrpc.OnlineCoinSummary 45, // 71: gctrpc.GetPortfolioSummaryResponse.CoinsOfflineSummaryEntry.value:type_name -> gctrpc.OfflineCoins 46, // 72: gctrpc.GetPortfolioSummaryResponse.CoinsOnlineSummaryEntry.value:type_name -> gctrpc.OnlineCoins 145, // 73: gctrpc.CancelAllOrdersResponse.Orders.order_status:type_name -> gctrpc.CancelAllOrdersResponse.Orders.OrderStatusEntry 18, // 74: gctrpc.GetExchangePairsResponse.SupportedAssetsEntry.value:type_name -> gctrpc.PairsSupported 0, // 75: gctrpc.GoCryptoTrader.GetInfo:input_type -> gctrpc.GetInfoRequest 6, // 76: gctrpc.GoCryptoTrader.GetSubsystems:input_type -> gctrpc.GetSubsystemsRequest 5, // 77: gctrpc.GoCryptoTrader.EnableSubsystem:input_type -> gctrpc.GenericSubsystemRequest 5, // 78: gctrpc.GoCryptoTrader.DisableSubsystem:input_type -> gctrpc.GenericSubsystemRequest 8, // 79: gctrpc.GoCryptoTrader.GetRPCEndpoints:input_type -> gctrpc.GetRPCEndpointsRequest 2, // 80: gctrpc.GoCryptoTrader.GetCommunicationRelayers:input_type -> gctrpc.GetCommunicationRelayersRequest 12, // 81: gctrpc.GoCryptoTrader.GetExchanges:input_type -> gctrpc.GetExchangesRequest 11, // 82: gctrpc.GoCryptoTrader.DisableExchange:input_type -> gctrpc.GenericExchangeNameRequest 11, // 83: gctrpc.GoCryptoTrader.GetExchangeInfo:input_type -> gctrpc.GenericExchangeNameRequest 11, // 84: gctrpc.GoCryptoTrader.GetExchangeOTPCode:input_type -> gctrpc.GenericExchangeNameRequest 15, // 85: gctrpc.GoCryptoTrader.GetExchangeOTPCodes:input_type -> gctrpc.GetExchangeOTPsRequest 11, // 86: gctrpc.GoCryptoTrader.EnableExchange:input_type -> gctrpc.GenericExchangeNameRequest 20, // 87: gctrpc.GoCryptoTrader.GetTicker:input_type -> gctrpc.GetTickerRequest 23, // 88: gctrpc.GoCryptoTrader.GetTickers:input_type -> gctrpc.GetTickersRequest 26, // 89: gctrpc.GoCryptoTrader.GetOrderbook:input_type -> gctrpc.GetOrderbookRequest 29, // 90: gctrpc.GoCryptoTrader.GetOrderbooks:input_type -> gctrpc.GetOrderbooksRequest 32, // 91: gctrpc.GoCryptoTrader.GetAccountInfo:input_type -> gctrpc.GetAccountInfoRequest 32, // 92: gctrpc.GoCryptoTrader.GetAccountInfoStream:input_type -> gctrpc.GetAccountInfoRequest 36, // 93: gctrpc.GoCryptoTrader.GetConfig:input_type -> gctrpc.GetConfigRequest 39, // 94: gctrpc.GoCryptoTrader.GetPortfolio:input_type -> gctrpc.GetPortfolioRequest 41, // 95: gctrpc.GoCryptoTrader.GetPortfolioSummary:input_type -> gctrpc.GetPortfolioSummaryRequest 48, // 96: gctrpc.GoCryptoTrader.AddPortfolioAddress:input_type -> gctrpc.AddPortfolioAddressRequest 49, // 97: gctrpc.GoCryptoTrader.RemovePortfolioAddress:input_type -> gctrpc.RemovePortfolioAddressRequest 50, // 98: gctrpc.GoCryptoTrader.GetForexProviders:input_type -> gctrpc.GetForexProvidersRequest 53, // 99: gctrpc.GoCryptoTrader.GetForexRates:input_type -> gctrpc.GetForexRatesRequest 58, // 100: gctrpc.GoCryptoTrader.GetOrders:input_type -> gctrpc.GetOrdersRequest 60, // 101: gctrpc.GoCryptoTrader.GetOrder:input_type -> gctrpc.GetOrderRequest 61, // 102: gctrpc.GoCryptoTrader.SubmitOrder:input_type -> gctrpc.SubmitOrderRequest 63, // 103: gctrpc.GoCryptoTrader.SimulateOrder:input_type -> gctrpc.SimulateOrderRequest 65, // 104: gctrpc.GoCryptoTrader.WhaleBomb:input_type -> gctrpc.WhaleBombRequest 66, // 105: gctrpc.GoCryptoTrader.CancelOrder:input_type -> gctrpc.CancelOrderRequest 67, // 106: gctrpc.GoCryptoTrader.CancelAllOrders:input_type -> gctrpc.CancelAllOrdersRequest 69, // 107: gctrpc.GoCryptoTrader.GetEvents:input_type -> gctrpc.GetEventsRequest 72, // 108: gctrpc.GoCryptoTrader.AddEvent:input_type -> gctrpc.AddEventRequest 74, // 109: gctrpc.GoCryptoTrader.RemoveEvent:input_type -> gctrpc.RemoveEventRequest 75, // 110: gctrpc.GoCryptoTrader.GetCryptocurrencyDepositAddresses:input_type -> gctrpc.GetCryptocurrencyDepositAddressesRequest 77, // 111: gctrpc.GoCryptoTrader.GetCryptocurrencyDepositAddress:input_type -> gctrpc.GetCryptocurrencyDepositAddressRequest 79, // 112: gctrpc.GoCryptoTrader.WithdrawFiatFunds:input_type -> gctrpc.WithdrawFiatRequest 80, // 113: gctrpc.GoCryptoTrader.WithdrawCryptocurrencyFunds:input_type -> gctrpc.WithdrawCryptoRequest 82, // 114: gctrpc.GoCryptoTrader.WithdrawalEventByID:input_type -> gctrpc.WithdrawalEventByIDRequest 84, // 115: gctrpc.GoCryptoTrader.WithdrawalEventsByExchange:input_type -> gctrpc.WithdrawalEventsByExchangeRequest 85, // 116: gctrpc.GoCryptoTrader.WithdrawalEventsByDate:input_type -> gctrpc.WithdrawalEventsByDateRequest 92, // 117: gctrpc.GoCryptoTrader.GetLoggerDetails:input_type -> gctrpc.GetLoggerDetailsRequest 94, // 118: gctrpc.GoCryptoTrader.SetLoggerDetails:input_type -> gctrpc.SetLoggerDetailsRequest 95, // 119: gctrpc.GoCryptoTrader.GetExchangePairs:input_type -> gctrpc.GetExchangePairsRequest 97, // 120: gctrpc.GoCryptoTrader.SetExchangePair:input_type -> gctrpc.SetExchangePairRequest 98, // 121: gctrpc.GoCryptoTrader.GetOrderbookStream:input_type -> gctrpc.GetOrderbookStreamRequest 99, // 122: gctrpc.GoCryptoTrader.GetExchangeOrderbookStream:input_type -> gctrpc.GetExchangeOrderbookStreamRequest 100, // 123: gctrpc.GoCryptoTrader.GetTickerStream:input_type -> gctrpc.GetTickerStreamRequest 101, // 124: gctrpc.GoCryptoTrader.GetExchangeTickerStream:input_type -> gctrpc.GetExchangeTickerStreamRequest 102, // 125: gctrpc.GoCryptoTrader.GetAuditEvent:input_type -> gctrpc.GetAuditEventRequest 109, // 126: gctrpc.GoCryptoTrader.GCTScriptExecute:input_type -> gctrpc.GCTScriptExecuteRequest 114, // 127: gctrpc.GoCryptoTrader.GCTScriptUpload:input_type -> gctrpc.GCTScriptUploadRequest 115, // 128: gctrpc.GoCryptoTrader.GCTScriptReadScript:input_type -> gctrpc.GCTScriptReadScriptRequest 112, // 129: gctrpc.GoCryptoTrader.GCTScriptStatus:input_type -> gctrpc.GCTScriptStatusRequest 116, // 130: gctrpc.GoCryptoTrader.GCTScriptQuery:input_type -> gctrpc.GCTScriptQueryRequest 110, // 131: gctrpc.GoCryptoTrader.GCTScriptStop:input_type -> gctrpc.GCTScriptStopRequest 111, // 132: gctrpc.GoCryptoTrader.GCTScriptStopAll:input_type -> gctrpc.GCTScriptStopAllRequest 113, // 133: gctrpc.GoCryptoTrader.GCTScriptListAll:input_type -> gctrpc.GCTScriptListAllRequest 117, // 134: gctrpc.GoCryptoTrader.GCTScriptAutoLoadToggle:input_type -> gctrpc.GCTScriptAutoLoadRequest 104, // 135: gctrpc.GoCryptoTrader.GetHistoricCandles:input_type -> gctrpc.GetHistoricCandlesRequest 121, // 136: gctrpc.GoCryptoTrader.SetExchangeAsset:input_type -> gctrpc.SetExchangeAssetRequest 122, // 137: gctrpc.GoCryptoTrader.SetAllExchangePairs:input_type -> gctrpc.SetExchangeAllPairsRequest 123, // 138: gctrpc.GoCryptoTrader.UpdateExchangeSupportedPairs:input_type -> gctrpc.UpdateExchangeSupportedPairsRequest 124, // 139: gctrpc.GoCryptoTrader.GetExchangeAssets:input_type -> gctrpc.GetExchangeAssetsRequest 126, // 140: gctrpc.GoCryptoTrader.WebsocketGetInfo:input_type -> gctrpc.WebsocketGetInfoRequest 128, // 141: gctrpc.GoCryptoTrader.WebsocketSetEnabled:input_type -> gctrpc.WebsocketSetEnabledRequest 129, // 142: gctrpc.GoCryptoTrader.WebsocketGetSubscriptions:input_type -> gctrpc.WebsocketGetSubscriptionsRequest 132, // 143: gctrpc.GoCryptoTrader.WebsocketSetProxy:input_type -> gctrpc.WebsocketSetProxyRequest 133, // 144: gctrpc.GoCryptoTrader.WebsocketSetURL:input_type -> gctrpc.WebsocketSetURLRequest 1, // 145: gctrpc.GoCryptoTrader.GetInfo:output_type -> gctrpc.GetInfoResponse 7, // 146: gctrpc.GoCryptoTrader.GetSubsystems:output_type -> gctrpc.GetSusbsytemsResponse 120, // 147: gctrpc.GoCryptoTrader.EnableSubsystem:output_type -> gctrpc.GenericResponse 120, // 148: gctrpc.GoCryptoTrader.DisableSubsystem:output_type -> gctrpc.GenericResponse 10, // 149: gctrpc.GoCryptoTrader.GetRPCEndpoints:output_type -> gctrpc.GetRPCEndpointsResponse 4, // 150: gctrpc.GoCryptoTrader.GetCommunicationRelayers:output_type -> gctrpc.GetCommunicationRelayersResponse 13, // 151: gctrpc.GoCryptoTrader.GetExchanges:output_type -> gctrpc.GetExchangesResponse 120, // 152: gctrpc.GoCryptoTrader.DisableExchange:output_type -> gctrpc.GenericResponse 19, // 153: gctrpc.GoCryptoTrader.GetExchangeInfo:output_type -> gctrpc.GetExchangeInfoResponse 14, // 154: gctrpc.GoCryptoTrader.GetExchangeOTPCode:output_type -> gctrpc.GetExchangeOTPReponse 16, // 155: gctrpc.GoCryptoTrader.GetExchangeOTPCodes:output_type -> gctrpc.GetExchangeOTPsResponse 120, // 156: gctrpc.GoCryptoTrader.EnableExchange:output_type -> gctrpc.GenericResponse 22, // 157: gctrpc.GoCryptoTrader.GetTicker:output_type -> gctrpc.TickerResponse 25, // 158: gctrpc.GoCryptoTrader.GetTickers:output_type -> gctrpc.GetTickersResponse 28, // 159: gctrpc.GoCryptoTrader.GetOrderbook:output_type -> gctrpc.OrderbookResponse 31, // 160: gctrpc.GoCryptoTrader.GetOrderbooks:output_type -> gctrpc.GetOrderbooksResponse 35, // 161: gctrpc.GoCryptoTrader.GetAccountInfo:output_type -> gctrpc.GetAccountInfoResponse 35, // 162: gctrpc.GoCryptoTrader.GetAccountInfoStream:output_type -> gctrpc.GetAccountInfoResponse 37, // 163: gctrpc.GoCryptoTrader.GetConfig:output_type -> gctrpc.GetConfigResponse 40, // 164: gctrpc.GoCryptoTrader.GetPortfolio:output_type -> gctrpc.GetPortfolioResponse 47, // 165: gctrpc.GoCryptoTrader.GetPortfolioSummary:output_type -> gctrpc.GetPortfolioSummaryResponse 120, // 166: gctrpc.GoCryptoTrader.AddPortfolioAddress:output_type -> gctrpc.GenericResponse 120, // 167: gctrpc.GoCryptoTrader.RemovePortfolioAddress:output_type -> gctrpc.GenericResponse 52, // 168: gctrpc.GoCryptoTrader.GetForexProviders:output_type -> gctrpc.GetForexProvidersResponse 55, // 169: gctrpc.GoCryptoTrader.GetForexRates:output_type -> gctrpc.GetForexRatesResponse 59, // 170: gctrpc.GoCryptoTrader.GetOrders:output_type -> gctrpc.GetOrdersResponse 56, // 171: gctrpc.GoCryptoTrader.GetOrder:output_type -> gctrpc.OrderDetails 62, // 172: gctrpc.GoCryptoTrader.SubmitOrder:output_type -> gctrpc.SubmitOrderResponse 64, // 173: gctrpc.GoCryptoTrader.SimulateOrder:output_type -> gctrpc.SimulateOrderResponse 64, // 174: gctrpc.GoCryptoTrader.WhaleBomb:output_type -> gctrpc.SimulateOrderResponse 120, // 175: gctrpc.GoCryptoTrader.CancelOrder:output_type -> gctrpc.GenericResponse 68, // 176: gctrpc.GoCryptoTrader.CancelAllOrders:output_type -> gctrpc.CancelAllOrdersResponse 71, // 177: gctrpc.GoCryptoTrader.GetEvents:output_type -> gctrpc.GetEventsResponse 73, // 178: gctrpc.GoCryptoTrader.AddEvent:output_type -> gctrpc.AddEventResponse 120, // 179: gctrpc.GoCryptoTrader.RemoveEvent:output_type -> gctrpc.GenericResponse 76, // 180: gctrpc.GoCryptoTrader.GetCryptocurrencyDepositAddresses:output_type -> gctrpc.GetCryptocurrencyDepositAddressesResponse 78, // 181: gctrpc.GoCryptoTrader.GetCryptocurrencyDepositAddress:output_type -> gctrpc.GetCryptocurrencyDepositAddressResponse 81, // 182: gctrpc.GoCryptoTrader.WithdrawFiatFunds:output_type -> gctrpc.WithdrawResponse 81, // 183: gctrpc.GoCryptoTrader.WithdrawCryptocurrencyFunds:output_type -> gctrpc.WithdrawResponse 83, // 184: gctrpc.GoCryptoTrader.WithdrawalEventByID:output_type -> gctrpc.WithdrawalEventByIDResponse 86, // 185: gctrpc.GoCryptoTrader.WithdrawalEventsByExchange:output_type -> gctrpc.WithdrawalEventsByExchangeResponse 86, // 186: gctrpc.GoCryptoTrader.WithdrawalEventsByDate:output_type -> gctrpc.WithdrawalEventsByExchangeResponse 93, // 187: gctrpc.GoCryptoTrader.GetLoggerDetails:output_type -> gctrpc.GetLoggerDetailsResponse 93, // 188: gctrpc.GoCryptoTrader.SetLoggerDetails:output_type -> gctrpc.GetLoggerDetailsResponse 96, // 189: gctrpc.GoCryptoTrader.GetExchangePairs:output_type -> gctrpc.GetExchangePairsResponse 120, // 190: gctrpc.GoCryptoTrader.SetExchangePair:output_type -> gctrpc.GenericResponse 28, // 191: gctrpc.GoCryptoTrader.GetOrderbookStream:output_type -> gctrpc.OrderbookResponse 28, // 192: gctrpc.GoCryptoTrader.GetExchangeOrderbookStream:output_type -> gctrpc.OrderbookResponse 22, // 193: gctrpc.GoCryptoTrader.GetTickerStream:output_type -> gctrpc.TickerResponse 22, // 194: gctrpc.GoCryptoTrader.GetExchangeTickerStream:output_type -> gctrpc.TickerResponse 103, // 195: gctrpc.GoCryptoTrader.GetAuditEvent:output_type -> gctrpc.GetAuditEventResponse 120, // 196: gctrpc.GoCryptoTrader.GCTScriptExecute:output_type -> gctrpc.GenericResponse 120, // 197: gctrpc.GoCryptoTrader.GCTScriptUpload:output_type -> gctrpc.GenericResponse 119, // 198: gctrpc.GoCryptoTrader.GCTScriptReadScript:output_type -> gctrpc.GCTScriptQueryResponse 118, // 199: gctrpc.GoCryptoTrader.GCTScriptStatus:output_type -> gctrpc.GCTScriptStatusResponse 119, // 200: gctrpc.GoCryptoTrader.GCTScriptQuery:output_type -> gctrpc.GCTScriptQueryResponse 120, // 201: gctrpc.GoCryptoTrader.GCTScriptStop:output_type -> gctrpc.GenericResponse 120, // 202: gctrpc.GoCryptoTrader.GCTScriptStopAll:output_type -> gctrpc.GenericResponse 118, // 203: gctrpc.GoCryptoTrader.GCTScriptListAll:output_type -> gctrpc.GCTScriptStatusResponse 120, // 204: gctrpc.GoCryptoTrader.GCTScriptAutoLoadToggle:output_type -> gctrpc.GenericResponse 105, // 205: gctrpc.GoCryptoTrader.GetHistoricCandles:output_type -> gctrpc.GetHistoricCandlesResponse 120, // 206: gctrpc.GoCryptoTrader.SetExchangeAsset:output_type -> gctrpc.GenericResponse 120, // 207: gctrpc.GoCryptoTrader.SetAllExchangePairs:output_type -> gctrpc.GenericResponse 120, // 208: gctrpc.GoCryptoTrader.UpdateExchangeSupportedPairs:output_type -> gctrpc.GenericResponse 125, // 209: gctrpc.GoCryptoTrader.GetExchangeAssets:output_type -> gctrpc.GetExchangeAssetsResponse 127, // 210: gctrpc.GoCryptoTrader.WebsocketGetInfo:output_type -> gctrpc.WebsocketGetInfoResponse 120, // 211: gctrpc.GoCryptoTrader.WebsocketSetEnabled:output_type -> gctrpc.GenericResponse 131, // 212: gctrpc.GoCryptoTrader.WebsocketGetSubscriptions:output_type -> gctrpc.WebsocketGetSubscriptionsResponse 120, // 213: gctrpc.GoCryptoTrader.WebsocketSetProxy:output_type -> gctrpc.GenericResponse 120, // 214: gctrpc.GoCryptoTrader.WebsocketSetURL:output_type -> gctrpc.GenericResponse 145, // [145:215] is the sub-list for method output_type 75, // [75:145] is the sub-list for method input_type 75, // [75:75] is the sub-list for extension type_name 75, // [75:75] is the sub-list for extension extendee 0, // [0:75] is the sub-list for field type_name } func init() { file_rpc_proto_init() } func file_rpc_proto_init() { if File_rpc_proto != nil { return } if !protoimpl.UnsafeEnabled { file_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetInfoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetInfoResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCommunicationRelayersRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunicationRelayer); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCommunicationRelayersResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenericSubsystemRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetSubsystemsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetSusbsytemsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRPCEndpointsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RPCEndpoint); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRPCEndpointsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenericExchangeNameRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetExchangesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetExchangesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetExchangeOTPReponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetExchangeOTPsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetExchangeOTPsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DisableExchangeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PairsSupported); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetExchangeInfoResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetTickerRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CurrencyPair); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TickerResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetTickersRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Tickers); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetTickersResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetOrderbookRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrderbookItem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrderbookResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetOrderbooksRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Orderbooks); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetOrderbooksResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetAccountInfoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Account); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountCurrencyInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetAccountInfoResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetConfigResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortfolioAddress); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPortfolioRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPortfolioResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPortfolioSummaryRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Coin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OfflineCoinSummary); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OnlineCoinSummary); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OfflineCoins); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OnlineCoins); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPortfolioSummaryResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddPortfolioAddressRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemovePortfolioAddressRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetForexProvidersRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ForexProvider); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetForexProvidersResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetForexRatesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ForexRatesConversion); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetForexRatesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrderDetails); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TradeHistory); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetOrdersRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetOrdersResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetOrderRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubmitOrderRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubmitOrderResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SimulateOrderRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SimulateOrderResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WhaleBombRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CancelOrderRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CancelAllOrdersRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CancelAllOrdersResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetEventsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConditionParams); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetEventsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddEventRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddEventResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoveEventRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCryptocurrencyDepositAddressesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCryptocurrencyDepositAddressesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCryptocurrencyDepositAddressRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCryptocurrencyDepositAddressResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WithdrawFiatRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WithdrawCryptoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WithdrawResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WithdrawalEventByIDRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WithdrawalEventByIDResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WithdrawalEventsByExchangeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WithdrawalEventsByDateRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WithdrawalEventsByExchangeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WithdrawalEventResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WithdrawlExchangeEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WithdrawalRequestEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FiatWithdrawalEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CryptoWithdrawalEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetLoggerDetailsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetLoggerDetailsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetLoggerDetailsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetExchangePairsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetExchangePairsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetExchangePairRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetOrderbookStreamRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetExchangeOrderbookStreamRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetTickerStreamRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetExchangeTickerStreamRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetAuditEventRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetAuditEventResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetHistoricCandlesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetHistoricCandlesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Candle); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AuditEvent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GCTScript); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GCTScriptExecuteRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GCTScriptStopRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GCTScriptStopAllRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GCTScriptStatusRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GCTScriptListAllRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GCTScriptUploadRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GCTScriptReadScriptRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GCTScriptQueryRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GCTScriptAutoLoadRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GCTScriptStatusResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GCTScriptQueryResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenericResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetExchangeAssetRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetExchangeAllPairsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateExchangeSupportedPairsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetExchangeAssetsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetExchangeAssetsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WebsocketGetInfoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WebsocketGetInfoResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WebsocketSetEnabledRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WebsocketGetSubscriptionsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WebsocketSubscription); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WebsocketGetSubscriptionsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WebsocketSetProxyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WebsocketSetURLRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_rpc_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CancelAllOrdersResponse_Orders); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_rpc_proto_rawDesc, NumEnums: 0, NumMessages: 148, NumExtensions: 0, NumServices: 1, }, GoTypes: file_rpc_proto_goTypes, DependencyIndexes: file_rpc_proto_depIdxs, MessageInfos: file_rpc_proto_msgTypes, }.Build() File_rpc_proto = out.File file_rpc_proto_rawDesc = nil file_rpc_proto_goTypes = nil file_rpc_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. const _ = grpc.SupportPackageIsVersion6 // GoCryptoTraderClient is the client API for GoCryptoTrader service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type GoCryptoTraderClient interface { GetInfo(ctx context.Context, in *GetInfoRequest, opts ...grpc.CallOption) (*GetInfoResponse, error) GetSubsystems(ctx context.Context, in *GetSubsystemsRequest, opts ...grpc.CallOption) (*GetSusbsytemsResponse, error) EnableSubsystem(ctx context.Context, in *GenericSubsystemRequest, opts ...grpc.CallOption) (*GenericResponse, error) DisableSubsystem(ctx context.Context, in *GenericSubsystemRequest, opts ...grpc.CallOption) (*GenericResponse, error) GetRPCEndpoints(ctx context.Context, in *GetRPCEndpointsRequest, opts ...grpc.CallOption) (*GetRPCEndpointsResponse, error) GetCommunicationRelayers(ctx context.Context, in *GetCommunicationRelayersRequest, opts ...grpc.CallOption) (*GetCommunicationRelayersResponse, error) GetExchanges(ctx context.Context, in *GetExchangesRequest, opts ...grpc.CallOption) (*GetExchangesResponse, error) DisableExchange(ctx context.Context, in *GenericExchangeNameRequest, opts ...grpc.CallOption) (*GenericResponse, error) GetExchangeInfo(ctx context.Context, in *GenericExchangeNameRequest, opts ...grpc.CallOption) (*GetExchangeInfoResponse, error) GetExchangeOTPCode(ctx context.Context, in *GenericExchangeNameRequest, opts ...grpc.CallOption) (*GetExchangeOTPReponse, error) GetExchangeOTPCodes(ctx context.Context, in *GetExchangeOTPsRequest, opts ...grpc.CallOption) (*GetExchangeOTPsResponse, error) EnableExchange(ctx context.Context, in *GenericExchangeNameRequest, opts ...grpc.CallOption) (*GenericResponse, error) GetTicker(ctx context.Context, in *GetTickerRequest, opts ...grpc.CallOption) (*TickerResponse, error) GetTickers(ctx context.Context, in *GetTickersRequest, opts ...grpc.CallOption) (*GetTickersResponse, error) GetOrderbook(ctx context.Context, in *GetOrderbookRequest, opts ...grpc.CallOption) (*OrderbookResponse, error) GetOrderbooks(ctx context.Context, in *GetOrderbooksRequest, opts ...grpc.CallOption) (*GetOrderbooksResponse, error) GetAccountInfo(ctx context.Context, in *GetAccountInfoRequest, opts ...grpc.CallOption) (*GetAccountInfoResponse, error) GetAccountInfoStream(ctx context.Context, in *GetAccountInfoRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetAccountInfoStreamClient, error) GetConfig(ctx context.Context, in *GetConfigRequest, opts ...grpc.CallOption) (*GetConfigResponse, error) GetPortfolio(ctx context.Context, in *GetPortfolioRequest, opts ...grpc.CallOption) (*GetPortfolioResponse, error) GetPortfolioSummary(ctx context.Context, in *GetPortfolioSummaryRequest, opts ...grpc.CallOption) (*GetPortfolioSummaryResponse, error) AddPortfolioAddress(ctx context.Context, in *AddPortfolioAddressRequest, opts ...grpc.CallOption) (*GenericResponse, error) RemovePortfolioAddress(ctx context.Context, in *RemovePortfolioAddressRequest, opts ...grpc.CallOption) (*GenericResponse, error) GetForexProviders(ctx context.Context, in *GetForexProvidersRequest, opts ...grpc.CallOption) (*GetForexProvidersResponse, error) GetForexRates(ctx context.Context, in *GetForexRatesRequest, opts ...grpc.CallOption) (*GetForexRatesResponse, error) GetOrders(ctx context.Context, in *GetOrdersRequest, opts ...grpc.CallOption) (*GetOrdersResponse, error) GetOrder(ctx context.Context, in *GetOrderRequest, opts ...grpc.CallOption) (*OrderDetails, error) SubmitOrder(ctx context.Context, in *SubmitOrderRequest, opts ...grpc.CallOption) (*SubmitOrderResponse, error) SimulateOrder(ctx context.Context, in *SimulateOrderRequest, opts ...grpc.CallOption) (*SimulateOrderResponse, error) WhaleBomb(ctx context.Context, in *WhaleBombRequest, opts ...grpc.CallOption) (*SimulateOrderResponse, error) CancelOrder(ctx context.Context, in *CancelOrderRequest, opts ...grpc.CallOption) (*GenericResponse, error) CancelAllOrders(ctx context.Context, in *CancelAllOrdersRequest, opts ...grpc.CallOption) (*CancelAllOrdersResponse, error) GetEvents(ctx context.Context, in *GetEventsRequest, opts ...grpc.CallOption) (*GetEventsResponse, error) AddEvent(ctx context.Context, in *AddEventRequest, opts ...grpc.CallOption) (*AddEventResponse, error) RemoveEvent(ctx context.Context, in *RemoveEventRequest, opts ...grpc.CallOption) (*GenericResponse, error) GetCryptocurrencyDepositAddresses(ctx context.Context, in *GetCryptocurrencyDepositAddressesRequest, opts ...grpc.CallOption) (*GetCryptocurrencyDepositAddressesResponse, error) GetCryptocurrencyDepositAddress(ctx context.Context, in *GetCryptocurrencyDepositAddressRequest, opts ...grpc.CallOption) (*GetCryptocurrencyDepositAddressResponse, error) WithdrawFiatFunds(ctx context.Context, in *WithdrawFiatRequest, opts ...grpc.CallOption) (*WithdrawResponse, error) WithdrawCryptocurrencyFunds(ctx context.Context, in *WithdrawCryptoRequest, opts ...grpc.CallOption) (*WithdrawResponse, error) WithdrawalEventByID(ctx context.Context, in *WithdrawalEventByIDRequest, opts ...grpc.CallOption) (*WithdrawalEventByIDResponse, error) WithdrawalEventsByExchange(ctx context.Context, in *WithdrawalEventsByExchangeRequest, opts ...grpc.CallOption) (*WithdrawalEventsByExchangeResponse, error) WithdrawalEventsByDate(ctx context.Context, in *WithdrawalEventsByDateRequest, opts ...grpc.CallOption) (*WithdrawalEventsByExchangeResponse, error) GetLoggerDetails(ctx context.Context, in *GetLoggerDetailsRequest, opts ...grpc.CallOption) (*GetLoggerDetailsResponse, error) SetLoggerDetails(ctx context.Context, in *SetLoggerDetailsRequest, opts ...grpc.CallOption) (*GetLoggerDetailsResponse, error) GetExchangePairs(ctx context.Context, in *GetExchangePairsRequest, opts ...grpc.CallOption) (*GetExchangePairsResponse, error) SetExchangePair(ctx context.Context, in *SetExchangePairRequest, opts ...grpc.CallOption) (*GenericResponse, error) GetOrderbookStream(ctx context.Context, in *GetOrderbookStreamRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetOrderbookStreamClient, error) GetExchangeOrderbookStream(ctx context.Context, in *GetExchangeOrderbookStreamRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetExchangeOrderbookStreamClient, error) GetTickerStream(ctx context.Context, in *GetTickerStreamRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetTickerStreamClient, error) GetExchangeTickerStream(ctx context.Context, in *GetExchangeTickerStreamRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetExchangeTickerStreamClient, error) GetAuditEvent(ctx context.Context, in *GetAuditEventRequest, opts ...grpc.CallOption) (*GetAuditEventResponse, error) GCTScriptExecute(ctx context.Context, in *GCTScriptExecuteRequest, opts ...grpc.CallOption) (*GenericResponse, error) GCTScriptUpload(ctx context.Context, in *GCTScriptUploadRequest, opts ...grpc.CallOption) (*GenericResponse, error) GCTScriptReadScript(ctx context.Context, in *GCTScriptReadScriptRequest, opts ...grpc.CallOption) (*GCTScriptQueryResponse, error) GCTScriptStatus(ctx context.Context, in *GCTScriptStatusRequest, opts ...grpc.CallOption) (*GCTScriptStatusResponse, error) GCTScriptQuery(ctx context.Context, in *GCTScriptQueryRequest, opts ...grpc.CallOption) (*GCTScriptQueryResponse, error) GCTScriptStop(ctx context.Context, in *GCTScriptStopRequest, opts ...grpc.CallOption) (*GenericResponse, error) GCTScriptStopAll(ctx context.Context, in *GCTScriptStopAllRequest, opts ...grpc.CallOption) (*GenericResponse, error) GCTScriptListAll(ctx context.Context, in *GCTScriptListAllRequest, opts ...grpc.CallOption) (*GCTScriptStatusResponse, error) GCTScriptAutoLoadToggle(ctx context.Context, in *GCTScriptAutoLoadRequest, opts ...grpc.CallOption) (*GenericResponse, error) GetHistoricCandles(ctx context.Context, in *GetHistoricCandlesRequest, opts ...grpc.CallOption) (*GetHistoricCandlesResponse, error) SetExchangeAsset(ctx context.Context, in *SetExchangeAssetRequest, opts ...grpc.CallOption) (*GenericResponse, error) SetAllExchangePairs(ctx context.Context, in *SetExchangeAllPairsRequest, opts ...grpc.CallOption) (*GenericResponse, error) UpdateExchangeSupportedPairs(ctx context.Context, in *UpdateExchangeSupportedPairsRequest, opts ...grpc.CallOption) (*GenericResponse, error) GetExchangeAssets(ctx context.Context, in *GetExchangeAssetsRequest, opts ...grpc.CallOption) (*GetExchangeAssetsResponse, error) WebsocketGetInfo(ctx context.Context, in *WebsocketGetInfoRequest, opts ...grpc.CallOption) (*WebsocketGetInfoResponse, error) WebsocketSetEnabled(ctx context.Context, in *WebsocketSetEnabledRequest, opts ...grpc.CallOption) (*GenericResponse, error) WebsocketGetSubscriptions(ctx context.Context, in *WebsocketGetSubscriptionsRequest, opts ...grpc.CallOption) (*WebsocketGetSubscriptionsResponse, error) WebsocketSetProxy(ctx context.Context, in *WebsocketSetProxyRequest, opts ...grpc.CallOption) (*GenericResponse, error) WebsocketSetURL(ctx context.Context, in *WebsocketSetURLRequest, opts ...grpc.CallOption) (*GenericResponse, error) } type goCryptoTraderClient struct { cc grpc.ClientConnInterface } func NewGoCryptoTraderClient(cc grpc.ClientConnInterface) GoCryptoTraderClient { return &goCryptoTraderClient{cc} } func (c *goCryptoTraderClient) GetInfo(ctx context.Context, in *GetInfoRequest, opts ...grpc.CallOption) (*GetInfoResponse, error) { out := new(GetInfoResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetInfo", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetSubsystems(ctx context.Context, in *GetSubsystemsRequest, opts ...grpc.CallOption) (*GetSusbsytemsResponse, error) { out := new(GetSusbsytemsResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetSubsystems", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) EnableSubsystem(ctx context.Context, in *GenericSubsystemRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/EnableSubsystem", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) DisableSubsystem(ctx context.Context, in *GenericSubsystemRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/DisableSubsystem", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetRPCEndpoints(ctx context.Context, in *GetRPCEndpointsRequest, opts ...grpc.CallOption) (*GetRPCEndpointsResponse, error) { out := new(GetRPCEndpointsResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetRPCEndpoints", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetCommunicationRelayers(ctx context.Context, in *GetCommunicationRelayersRequest, opts ...grpc.CallOption) (*GetCommunicationRelayersResponse, error) { out := new(GetCommunicationRelayersResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetCommunicationRelayers", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetExchanges(ctx context.Context, in *GetExchangesRequest, opts ...grpc.CallOption) (*GetExchangesResponse, error) { out := new(GetExchangesResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetExchanges", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) DisableExchange(ctx context.Context, in *GenericExchangeNameRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/DisableExchange", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetExchangeInfo(ctx context.Context, in *GenericExchangeNameRequest, opts ...grpc.CallOption) (*GetExchangeInfoResponse, error) { out := new(GetExchangeInfoResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetExchangeInfo", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetExchangeOTPCode(ctx context.Context, in *GenericExchangeNameRequest, opts ...grpc.CallOption) (*GetExchangeOTPReponse, error) { out := new(GetExchangeOTPReponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetExchangeOTPCode", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetExchangeOTPCodes(ctx context.Context, in *GetExchangeOTPsRequest, opts ...grpc.CallOption) (*GetExchangeOTPsResponse, error) { out := new(GetExchangeOTPsResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetExchangeOTPCodes", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) EnableExchange(ctx context.Context, in *GenericExchangeNameRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/EnableExchange", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetTicker(ctx context.Context, in *GetTickerRequest, opts ...grpc.CallOption) (*TickerResponse, error) { out := new(TickerResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetTicker", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetTickers(ctx context.Context, in *GetTickersRequest, opts ...grpc.CallOption) (*GetTickersResponse, error) { out := new(GetTickersResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetTickers", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetOrderbook(ctx context.Context, in *GetOrderbookRequest, opts ...grpc.CallOption) (*OrderbookResponse, error) { out := new(OrderbookResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetOrderbook", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetOrderbooks(ctx context.Context, in *GetOrderbooksRequest, opts ...grpc.CallOption) (*GetOrderbooksResponse, error) { out := new(GetOrderbooksResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetOrderbooks", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetAccountInfo(ctx context.Context, in *GetAccountInfoRequest, opts ...grpc.CallOption) (*GetAccountInfoResponse, error) { out := new(GetAccountInfoResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetAccountInfo", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetAccountInfoStream(ctx context.Context, in *GetAccountInfoRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetAccountInfoStreamClient, error) { stream, err := c.cc.NewStream(ctx, &_GoCryptoTrader_serviceDesc.Streams[0], "/gctrpc.GoCryptoTrader/GetAccountInfoStream", opts...) if err != nil { return nil, err } x := &goCryptoTraderGetAccountInfoStreamClient{stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } if err := x.ClientStream.CloseSend(); err != nil { return nil, err } return x, nil } type GoCryptoTrader_GetAccountInfoStreamClient interface { Recv() (*GetAccountInfoResponse, error) grpc.ClientStream } type goCryptoTraderGetAccountInfoStreamClient struct { grpc.ClientStream } func (x *goCryptoTraderGetAccountInfoStreamClient) Recv() (*GetAccountInfoResponse, error) { m := new(GetAccountInfoResponse) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *goCryptoTraderClient) GetConfig(ctx context.Context, in *GetConfigRequest, opts ...grpc.CallOption) (*GetConfigResponse, error) { out := new(GetConfigResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetConfig", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetPortfolio(ctx context.Context, in *GetPortfolioRequest, opts ...grpc.CallOption) (*GetPortfolioResponse, error) { out := new(GetPortfolioResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetPortfolio", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetPortfolioSummary(ctx context.Context, in *GetPortfolioSummaryRequest, opts ...grpc.CallOption) (*GetPortfolioSummaryResponse, error) { out := new(GetPortfolioSummaryResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetPortfolioSummary", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) AddPortfolioAddress(ctx context.Context, in *AddPortfolioAddressRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/AddPortfolioAddress", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) RemovePortfolioAddress(ctx context.Context, in *RemovePortfolioAddressRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/RemovePortfolioAddress", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetForexProviders(ctx context.Context, in *GetForexProvidersRequest, opts ...grpc.CallOption) (*GetForexProvidersResponse, error) { out := new(GetForexProvidersResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetForexProviders", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetForexRates(ctx context.Context, in *GetForexRatesRequest, opts ...grpc.CallOption) (*GetForexRatesResponse, error) { out := new(GetForexRatesResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetForexRates", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetOrders(ctx context.Context, in *GetOrdersRequest, opts ...grpc.CallOption) (*GetOrdersResponse, error) { out := new(GetOrdersResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetOrders", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetOrder(ctx context.Context, in *GetOrderRequest, opts ...grpc.CallOption) (*OrderDetails, error) { out := new(OrderDetails) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetOrder", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) SubmitOrder(ctx context.Context, in *SubmitOrderRequest, opts ...grpc.CallOption) (*SubmitOrderResponse, error) { out := new(SubmitOrderResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/SubmitOrder", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) SimulateOrder(ctx context.Context, in *SimulateOrderRequest, opts ...grpc.CallOption) (*SimulateOrderResponse, error) { out := new(SimulateOrderResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/SimulateOrder", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) WhaleBomb(ctx context.Context, in *WhaleBombRequest, opts ...grpc.CallOption) (*SimulateOrderResponse, error) { out := new(SimulateOrderResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WhaleBomb", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) CancelOrder(ctx context.Context, in *CancelOrderRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/CancelOrder", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) CancelAllOrders(ctx context.Context, in *CancelAllOrdersRequest, opts ...grpc.CallOption) (*CancelAllOrdersResponse, error) { out := new(CancelAllOrdersResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/CancelAllOrders", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetEvents(ctx context.Context, in *GetEventsRequest, opts ...grpc.CallOption) (*GetEventsResponse, error) { out := new(GetEventsResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetEvents", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) AddEvent(ctx context.Context, in *AddEventRequest, opts ...grpc.CallOption) (*AddEventResponse, error) { out := new(AddEventResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/AddEvent", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) RemoveEvent(ctx context.Context, in *RemoveEventRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/RemoveEvent", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetCryptocurrencyDepositAddresses(ctx context.Context, in *GetCryptocurrencyDepositAddressesRequest, opts ...grpc.CallOption) (*GetCryptocurrencyDepositAddressesResponse, error) { out := new(GetCryptocurrencyDepositAddressesResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetCryptocurrencyDepositAddresses", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetCryptocurrencyDepositAddress(ctx context.Context, in *GetCryptocurrencyDepositAddressRequest, opts ...grpc.CallOption) (*GetCryptocurrencyDepositAddressResponse, error) { out := new(GetCryptocurrencyDepositAddressResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetCryptocurrencyDepositAddress", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) WithdrawFiatFunds(ctx context.Context, in *WithdrawFiatRequest, opts ...grpc.CallOption) (*WithdrawResponse, error) { out := new(WithdrawResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WithdrawFiatFunds", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) WithdrawCryptocurrencyFunds(ctx context.Context, in *WithdrawCryptoRequest, opts ...grpc.CallOption) (*WithdrawResponse, error) { out := new(WithdrawResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WithdrawCryptocurrencyFunds", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) WithdrawalEventByID(ctx context.Context, in *WithdrawalEventByIDRequest, opts ...grpc.CallOption) (*WithdrawalEventByIDResponse, error) { out := new(WithdrawalEventByIDResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WithdrawalEventByID", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) WithdrawalEventsByExchange(ctx context.Context, in *WithdrawalEventsByExchangeRequest, opts ...grpc.CallOption) (*WithdrawalEventsByExchangeResponse, error) { out := new(WithdrawalEventsByExchangeResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WithdrawalEventsByExchange", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) WithdrawalEventsByDate(ctx context.Context, in *WithdrawalEventsByDateRequest, opts ...grpc.CallOption) (*WithdrawalEventsByExchangeResponse, error) { out := new(WithdrawalEventsByExchangeResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WithdrawalEventsByDate", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetLoggerDetails(ctx context.Context, in *GetLoggerDetailsRequest, opts ...grpc.CallOption) (*GetLoggerDetailsResponse, error) { out := new(GetLoggerDetailsResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetLoggerDetails", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) SetLoggerDetails(ctx context.Context, in *SetLoggerDetailsRequest, opts ...grpc.CallOption) (*GetLoggerDetailsResponse, error) { out := new(GetLoggerDetailsResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/SetLoggerDetails", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetExchangePairs(ctx context.Context, in *GetExchangePairsRequest, opts ...grpc.CallOption) (*GetExchangePairsResponse, error) { out := new(GetExchangePairsResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetExchangePairs", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) SetExchangePair(ctx context.Context, in *SetExchangePairRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/SetExchangePair", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetOrderbookStream(ctx context.Context, in *GetOrderbookStreamRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetOrderbookStreamClient, error) { stream, err := c.cc.NewStream(ctx, &_GoCryptoTrader_serviceDesc.Streams[1], "/gctrpc.GoCryptoTrader/GetOrderbookStream", opts...) if err != nil { return nil, err } x := &goCryptoTraderGetOrderbookStreamClient{stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } if err := x.ClientStream.CloseSend(); err != nil { return nil, err } return x, nil } type GoCryptoTrader_GetOrderbookStreamClient interface { Recv() (*OrderbookResponse, error) grpc.ClientStream } type goCryptoTraderGetOrderbookStreamClient struct { grpc.ClientStream } func (x *goCryptoTraderGetOrderbookStreamClient) Recv() (*OrderbookResponse, error) { m := new(OrderbookResponse) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *goCryptoTraderClient) GetExchangeOrderbookStream(ctx context.Context, in *GetExchangeOrderbookStreamRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetExchangeOrderbookStreamClient, error) { stream, err := c.cc.NewStream(ctx, &_GoCryptoTrader_serviceDesc.Streams[2], "/gctrpc.GoCryptoTrader/GetExchangeOrderbookStream", opts...) if err != nil { return nil, err } x := &goCryptoTraderGetExchangeOrderbookStreamClient{stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } if err := x.ClientStream.CloseSend(); err != nil { return nil, err } return x, nil } type GoCryptoTrader_GetExchangeOrderbookStreamClient interface { Recv() (*OrderbookResponse, error) grpc.ClientStream } type goCryptoTraderGetExchangeOrderbookStreamClient struct { grpc.ClientStream } func (x *goCryptoTraderGetExchangeOrderbookStreamClient) Recv() (*OrderbookResponse, error) { m := new(OrderbookResponse) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *goCryptoTraderClient) GetTickerStream(ctx context.Context, in *GetTickerStreamRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetTickerStreamClient, error) { stream, err := c.cc.NewStream(ctx, &_GoCryptoTrader_serviceDesc.Streams[3], "/gctrpc.GoCryptoTrader/GetTickerStream", opts...) if err != nil { return nil, err } x := &goCryptoTraderGetTickerStreamClient{stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } if err := x.ClientStream.CloseSend(); err != nil { return nil, err } return x, nil } type GoCryptoTrader_GetTickerStreamClient interface { Recv() (*TickerResponse, error) grpc.ClientStream } type goCryptoTraderGetTickerStreamClient struct { grpc.ClientStream } func (x *goCryptoTraderGetTickerStreamClient) Recv() (*TickerResponse, error) { m := new(TickerResponse) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *goCryptoTraderClient) GetExchangeTickerStream(ctx context.Context, in *GetExchangeTickerStreamRequest, opts ...grpc.CallOption) (GoCryptoTrader_GetExchangeTickerStreamClient, error) { stream, err := c.cc.NewStream(ctx, &_GoCryptoTrader_serviceDesc.Streams[4], "/gctrpc.GoCryptoTrader/GetExchangeTickerStream", opts...) if err != nil { return nil, err } x := &goCryptoTraderGetExchangeTickerStreamClient{stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } if err := x.ClientStream.CloseSend(); err != nil { return nil, err } return x, nil } type GoCryptoTrader_GetExchangeTickerStreamClient interface { Recv() (*TickerResponse, error) grpc.ClientStream } type goCryptoTraderGetExchangeTickerStreamClient struct { grpc.ClientStream } func (x *goCryptoTraderGetExchangeTickerStreamClient) Recv() (*TickerResponse, error) { m := new(TickerResponse) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err } return m, nil } func (c *goCryptoTraderClient) GetAuditEvent(ctx context.Context, in *GetAuditEventRequest, opts ...grpc.CallOption) (*GetAuditEventResponse, error) { out := new(GetAuditEventResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetAuditEvent", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GCTScriptExecute(ctx context.Context, in *GCTScriptExecuteRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GCTScriptExecute", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GCTScriptUpload(ctx context.Context, in *GCTScriptUploadRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GCTScriptUpload", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GCTScriptReadScript(ctx context.Context, in *GCTScriptReadScriptRequest, opts ...grpc.CallOption) (*GCTScriptQueryResponse, error) { out := new(GCTScriptQueryResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GCTScriptReadScript", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GCTScriptStatus(ctx context.Context, in *GCTScriptStatusRequest, opts ...grpc.CallOption) (*GCTScriptStatusResponse, error) { out := new(GCTScriptStatusResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GCTScriptStatus", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GCTScriptQuery(ctx context.Context, in *GCTScriptQueryRequest, opts ...grpc.CallOption) (*GCTScriptQueryResponse, error) { out := new(GCTScriptQueryResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GCTScriptQuery", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GCTScriptStop(ctx context.Context, in *GCTScriptStopRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GCTScriptStop", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GCTScriptStopAll(ctx context.Context, in *GCTScriptStopAllRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GCTScriptStopAll", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GCTScriptListAll(ctx context.Context, in *GCTScriptListAllRequest, opts ...grpc.CallOption) (*GCTScriptStatusResponse, error) { out := new(GCTScriptStatusResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GCTScriptListAll", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GCTScriptAutoLoadToggle(ctx context.Context, in *GCTScriptAutoLoadRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GCTScriptAutoLoadToggle", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetHistoricCandles(ctx context.Context, in *GetHistoricCandlesRequest, opts ...grpc.CallOption) (*GetHistoricCandlesResponse, error) { out := new(GetHistoricCandlesResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetHistoricCandles", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) SetExchangeAsset(ctx context.Context, in *SetExchangeAssetRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/SetExchangeAsset", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) SetAllExchangePairs(ctx context.Context, in *SetExchangeAllPairsRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/SetAllExchangePairs", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) UpdateExchangeSupportedPairs(ctx context.Context, in *UpdateExchangeSupportedPairsRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/UpdateExchangeSupportedPairs", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) GetExchangeAssets(ctx context.Context, in *GetExchangeAssetsRequest, opts ...grpc.CallOption) (*GetExchangeAssetsResponse, error) { out := new(GetExchangeAssetsResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/GetExchangeAssets", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) WebsocketGetInfo(ctx context.Context, in *WebsocketGetInfoRequest, opts ...grpc.CallOption) (*WebsocketGetInfoResponse, error) { out := new(WebsocketGetInfoResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WebsocketGetInfo", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) WebsocketSetEnabled(ctx context.Context, in *WebsocketSetEnabledRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WebsocketSetEnabled", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) WebsocketGetSubscriptions(ctx context.Context, in *WebsocketGetSubscriptionsRequest, opts ...grpc.CallOption) (*WebsocketGetSubscriptionsResponse, error) { out := new(WebsocketGetSubscriptionsResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WebsocketGetSubscriptions", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) WebsocketSetProxy(ctx context.Context, in *WebsocketSetProxyRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WebsocketSetProxy", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *goCryptoTraderClient) WebsocketSetURL(ctx context.Context, in *WebsocketSetURLRequest, opts ...grpc.CallOption) (*GenericResponse, error) { out := new(GenericResponse) err := c.cc.Invoke(ctx, "/gctrpc.GoCryptoTrader/WebsocketSetURL", in, out, opts...) if err != nil { return nil, err } return out, nil } // GoCryptoTraderServer is the server API for GoCryptoTrader service. type GoCryptoTraderServer interface { GetInfo(context.Context, *GetInfoRequest) (*GetInfoResponse, error) GetSubsystems(context.Context, *GetSubsystemsRequest) (*GetSusbsytemsResponse, error) EnableSubsystem(context.Context, *GenericSubsystemRequest) (*GenericResponse, error) DisableSubsystem(context.Context, *GenericSubsystemRequest) (*GenericResponse, error) GetRPCEndpoints(context.Context, *GetRPCEndpointsRequest) (*GetRPCEndpointsResponse, error) GetCommunicationRelayers(context.Context, *GetCommunicationRelayersRequest) (*GetCommunicationRelayersResponse, error) GetExchanges(context.Context, *GetExchangesRequest) (*GetExchangesResponse, error) DisableExchange(context.Context, *GenericExchangeNameRequest) (*GenericResponse, error) GetExchangeInfo(context.Context, *GenericExchangeNameRequest) (*GetExchangeInfoResponse, error) GetExchangeOTPCode(context.Context, *GenericExchangeNameRequest) (*GetExchangeOTPReponse, error) GetExchangeOTPCodes(context.Context, *GetExchangeOTPsRequest) (*GetExchangeOTPsResponse, error) EnableExchange(context.Context, *GenericExchangeNameRequest) (*GenericResponse, error) GetTicker(context.Context, *GetTickerRequest) (*TickerResponse, error) GetTickers(context.Context, *GetTickersRequest) (*GetTickersResponse, error) GetOrderbook(context.Context, *GetOrderbookRequest) (*OrderbookResponse, error) GetOrderbooks(context.Context, *GetOrderbooksRequest) (*GetOrderbooksResponse, error) GetAccountInfo(context.Context, *GetAccountInfoRequest) (*GetAccountInfoResponse, error) GetAccountInfoStream(*GetAccountInfoRequest, GoCryptoTrader_GetAccountInfoStreamServer) error GetConfig(context.Context, *GetConfigRequest) (*GetConfigResponse, error) GetPortfolio(context.Context, *GetPortfolioRequest) (*GetPortfolioResponse, error) GetPortfolioSummary(context.Context, *GetPortfolioSummaryRequest) (*GetPortfolioSummaryResponse, error) AddPortfolioAddress(context.Context, *AddPortfolioAddressRequest) (*GenericResponse, error) RemovePortfolioAddress(context.Context, *RemovePortfolioAddressRequest) (*GenericResponse, error) GetForexProviders(context.Context, *GetForexProvidersRequest) (*GetForexProvidersResponse, error) GetForexRates(context.Context, *GetForexRatesRequest) (*GetForexRatesResponse, error) GetOrders(context.Context, *GetOrdersRequest) (*GetOrdersResponse, error) GetOrder(context.Context, *GetOrderRequest) (*OrderDetails, error) SubmitOrder(context.Context, *SubmitOrderRequest) (*SubmitOrderResponse, error) SimulateOrder(context.Context, *SimulateOrderRequest) (*SimulateOrderResponse, error) WhaleBomb(context.Context, *WhaleBombRequest) (*SimulateOrderResponse, error) CancelOrder(context.Context, *CancelOrderRequest) (*GenericResponse, error) CancelAllOrders(context.Context, *CancelAllOrdersRequest) (*CancelAllOrdersResponse, error) GetEvents(context.Context, *GetEventsRequest) (*GetEventsResponse, error) AddEvent(context.Context, *AddEventRequest) (*AddEventResponse, error) RemoveEvent(context.Context, *RemoveEventRequest) (*GenericResponse, error) GetCryptocurrencyDepositAddresses(context.Context, *GetCryptocurrencyDepositAddressesRequest) (*GetCryptocurrencyDepositAddressesResponse, error) GetCryptocurrencyDepositAddress(context.Context, *GetCryptocurrencyDepositAddressRequest) (*GetCryptocurrencyDepositAddressResponse, error) WithdrawFiatFunds(context.Context, *WithdrawFiatRequest) (*WithdrawResponse, error) WithdrawCryptocurrencyFunds(context.Context, *WithdrawCryptoRequest) (*WithdrawResponse, error) WithdrawalEventByID(context.Context, *WithdrawalEventByIDRequest) (*WithdrawalEventByIDResponse, error) WithdrawalEventsByExchange(context.Context, *WithdrawalEventsByExchangeRequest) (*WithdrawalEventsByExchangeResponse, error) WithdrawalEventsByDate(context.Context, *WithdrawalEventsByDateRequest) (*WithdrawalEventsByExchangeResponse, error) GetLoggerDetails(context.Context, *GetLoggerDetailsRequest) (*GetLoggerDetailsResponse, error) SetLoggerDetails(context.Context, *SetLoggerDetailsRequest) (*GetLoggerDetailsResponse, error) GetExchangePairs(context.Context, *GetExchangePairsRequest) (*GetExchangePairsResponse, error) SetExchangePair(context.Context, *SetExchangePairRequest) (*GenericResponse, error) GetOrderbookStream(*GetOrderbookStreamRequest, GoCryptoTrader_GetOrderbookStreamServer) error GetExchangeOrderbookStream(*GetExchangeOrderbookStreamRequest, GoCryptoTrader_GetExchangeOrderbookStreamServer) error GetTickerStream(*GetTickerStreamRequest, GoCryptoTrader_GetTickerStreamServer) error GetExchangeTickerStream(*GetExchangeTickerStreamRequest, GoCryptoTrader_GetExchangeTickerStreamServer) error GetAuditEvent(context.Context, *GetAuditEventRequest) (*GetAuditEventResponse, error) GCTScriptExecute(context.Context, *GCTScriptExecuteRequest) (*GenericResponse, error) GCTScriptUpload(context.Context, *GCTScriptUploadRequest) (*GenericResponse, error) GCTScriptReadScript(context.Context, *GCTScriptReadScriptRequest) (*GCTScriptQueryResponse, error) GCTScriptStatus(context.Context, *GCTScriptStatusRequest) (*GCTScriptStatusResponse, error) GCTScriptQuery(context.Context, *GCTScriptQueryRequest) (*GCTScriptQueryResponse, error) GCTScriptStop(context.Context, *GCTScriptStopRequest) (*GenericResponse, error) GCTScriptStopAll(context.Context, *GCTScriptStopAllRequest) (*GenericResponse, error) GCTScriptListAll(context.Context, *GCTScriptListAllRequest) (*GCTScriptStatusResponse, error) GCTScriptAutoLoadToggle(context.Context, *GCTScriptAutoLoadRequest) (*GenericResponse, error) GetHistoricCandles(context.Context, *GetHistoricCandlesRequest) (*GetHistoricCandlesResponse, error) SetExchangeAsset(context.Context, *SetExchangeAssetRequest) (*GenericResponse, error) SetAllExchangePairs(context.Context, *SetExchangeAllPairsRequest) (*GenericResponse, error) UpdateExchangeSupportedPairs(context.Context, *UpdateExchangeSupportedPairsRequest) (*GenericResponse, error) GetExchangeAssets(context.Context, *GetExchangeAssetsRequest) (*GetExchangeAssetsResponse, error) WebsocketGetInfo(context.Context, *WebsocketGetInfoRequest) (*WebsocketGetInfoResponse, error) WebsocketSetEnabled(context.Context, *WebsocketSetEnabledRequest) (*GenericResponse, error) WebsocketGetSubscriptions(context.Context, *WebsocketGetSubscriptionsRequest) (*WebsocketGetSubscriptionsResponse, error) WebsocketSetProxy(context.Context, *WebsocketSetProxyRequest) (*GenericResponse, error) WebsocketSetURL(context.Context, *WebsocketSetURLRequest) (*GenericResponse, error) } // UnimplementedGoCryptoTraderServer can be embedded to have forward compatible implementations. type UnimplementedGoCryptoTraderServer struct { } func (*UnimplementedGoCryptoTraderServer) GetInfo(context.Context, *GetInfoRequest) (*GetInfoResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetInfo not implemented") } func (*UnimplementedGoCryptoTraderServer) GetSubsystems(context.Context, *GetSubsystemsRequest) (*GetSusbsytemsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetSubsystems not implemented") } func (*UnimplementedGoCryptoTraderServer) EnableSubsystem(context.Context, *GenericSubsystemRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method EnableSubsystem not implemented") } func (*UnimplementedGoCryptoTraderServer) DisableSubsystem(context.Context, *GenericSubsystemRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DisableSubsystem not implemented") } func (*UnimplementedGoCryptoTraderServer) GetRPCEndpoints(context.Context, *GetRPCEndpointsRequest) (*GetRPCEndpointsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetRPCEndpoints not implemented") } func (*UnimplementedGoCryptoTraderServer) GetCommunicationRelayers(context.Context, *GetCommunicationRelayersRequest) (*GetCommunicationRelayersResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetCommunicationRelayers not implemented") } func (*UnimplementedGoCryptoTraderServer) GetExchanges(context.Context, *GetExchangesRequest) (*GetExchangesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetExchanges not implemented") } func (*UnimplementedGoCryptoTraderServer) DisableExchange(context.Context, *GenericExchangeNameRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DisableExchange not implemented") } func (*UnimplementedGoCryptoTraderServer) GetExchangeInfo(context.Context, *GenericExchangeNameRequest) (*GetExchangeInfoResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetExchangeInfo not implemented") } func (*UnimplementedGoCryptoTraderServer) GetExchangeOTPCode(context.Context, *GenericExchangeNameRequest) (*GetExchangeOTPReponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetExchangeOTPCode not implemented") } func (*UnimplementedGoCryptoTraderServer) GetExchangeOTPCodes(context.Context, *GetExchangeOTPsRequest) (*GetExchangeOTPsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetExchangeOTPCodes not implemented") } func (*UnimplementedGoCryptoTraderServer) EnableExchange(context.Context, *GenericExchangeNameRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method EnableExchange not implemented") } func (*UnimplementedGoCryptoTraderServer) GetTicker(context.Context, *GetTickerRequest) (*TickerResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetTicker not implemented") } func (*UnimplementedGoCryptoTraderServer) GetTickers(context.Context, *GetTickersRequest) (*GetTickersResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetTickers not implemented") } func (*UnimplementedGoCryptoTraderServer) GetOrderbook(context.Context, *GetOrderbookRequest) (*OrderbookResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetOrderbook not implemented") } func (*UnimplementedGoCryptoTraderServer) GetOrderbooks(context.Context, *GetOrderbooksRequest) (*GetOrderbooksResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetOrderbooks not implemented") } func (*UnimplementedGoCryptoTraderServer) GetAccountInfo(context.Context, *GetAccountInfoRequest) (*GetAccountInfoResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetAccountInfo not implemented") } func (*UnimplementedGoCryptoTraderServer) GetAccountInfoStream(*GetAccountInfoRequest, GoCryptoTrader_GetAccountInfoStreamServer) error { return status.Errorf(codes.Unimplemented, "method GetAccountInfoStream not implemented") } func (*UnimplementedGoCryptoTraderServer) GetConfig(context.Context, *GetConfigRequest) (*GetConfigResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetConfig not implemented") } func (*UnimplementedGoCryptoTraderServer) GetPortfolio(context.Context, *GetPortfolioRequest) (*GetPortfolioResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetPortfolio not implemented") } func (*UnimplementedGoCryptoTraderServer) GetPortfolioSummary(context.Context, *GetPortfolioSummaryRequest) (*GetPortfolioSummaryResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetPortfolioSummary not implemented") } func (*UnimplementedGoCryptoTraderServer) AddPortfolioAddress(context.Context, *AddPortfolioAddressRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AddPortfolioAddress not implemented") } func (*UnimplementedGoCryptoTraderServer) RemovePortfolioAddress(context.Context, *RemovePortfolioAddressRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RemovePortfolioAddress not implemented") } func (*UnimplementedGoCryptoTraderServer) GetForexProviders(context.Context, *GetForexProvidersRequest) (*GetForexProvidersResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetForexProviders not implemented") } func (*UnimplementedGoCryptoTraderServer) GetForexRates(context.Context, *GetForexRatesRequest) (*GetForexRatesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetForexRates not implemented") } func (*UnimplementedGoCryptoTraderServer) GetOrders(context.Context, *GetOrdersRequest) (*GetOrdersResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetOrders not implemented") } func (*UnimplementedGoCryptoTraderServer) GetOrder(context.Context, *GetOrderRequest) (*OrderDetails, error) { return nil, status.Errorf(codes.Unimplemented, "method GetOrder not implemented") } func (*UnimplementedGoCryptoTraderServer) SubmitOrder(context.Context, *SubmitOrderRequest) (*SubmitOrderResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SubmitOrder not implemented") } func (*UnimplementedGoCryptoTraderServer) SimulateOrder(context.Context, *SimulateOrderRequest) (*SimulateOrderResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SimulateOrder not implemented") } func (*UnimplementedGoCryptoTraderServer) WhaleBomb(context.Context, *WhaleBombRequest) (*SimulateOrderResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method WhaleBomb not implemented") } func (*UnimplementedGoCryptoTraderServer) CancelOrder(context.Context, *CancelOrderRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CancelOrder not implemented") } func (*UnimplementedGoCryptoTraderServer) CancelAllOrders(context.Context, *CancelAllOrdersRequest) (*CancelAllOrdersResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CancelAllOrders not implemented") } func (*UnimplementedGoCryptoTraderServer) GetEvents(context.Context, *GetEventsRequest) (*GetEventsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetEvents not implemented") } func (*UnimplementedGoCryptoTraderServer) AddEvent(context.Context, *AddEventRequest) (*AddEventResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AddEvent not implemented") } func (*UnimplementedGoCryptoTraderServer) RemoveEvent(context.Context, *RemoveEventRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveEvent not implemented") } func (*UnimplementedGoCryptoTraderServer) GetCryptocurrencyDepositAddresses(context.Context, *GetCryptocurrencyDepositAddressesRequest) (*GetCryptocurrencyDepositAddressesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetCryptocurrencyDepositAddresses not implemented") } func (*UnimplementedGoCryptoTraderServer) GetCryptocurrencyDepositAddress(context.Context, *GetCryptocurrencyDepositAddressRequest) (*GetCryptocurrencyDepositAddressResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetCryptocurrencyDepositAddress not implemented") } func (*UnimplementedGoCryptoTraderServer) WithdrawFiatFunds(context.Context, *WithdrawFiatRequest) (*WithdrawResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method WithdrawFiatFunds not implemented") } func (*UnimplementedGoCryptoTraderServer) WithdrawCryptocurrencyFunds(context.Context, *WithdrawCryptoRequest) (*WithdrawResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method WithdrawCryptocurrencyFunds not implemented") } func (*UnimplementedGoCryptoTraderServer) WithdrawalEventByID(context.Context, *WithdrawalEventByIDRequest) (*WithdrawalEventByIDResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method WithdrawalEventByID not implemented") } func (*UnimplementedGoCryptoTraderServer) WithdrawalEventsByExchange(context.Context, *WithdrawalEventsByExchangeRequest) (*WithdrawalEventsByExchangeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method WithdrawalEventsByExchange not implemented") } func (*UnimplementedGoCryptoTraderServer) WithdrawalEventsByDate(context.Context, *WithdrawalEventsByDateRequest) (*WithdrawalEventsByExchangeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method WithdrawalEventsByDate not implemented") } func (*UnimplementedGoCryptoTraderServer) GetLoggerDetails(context.Context, *GetLoggerDetailsRequest) (*GetLoggerDetailsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetLoggerDetails not implemented") } func (*UnimplementedGoCryptoTraderServer) SetLoggerDetails(context.Context, *SetLoggerDetailsRequest) (*GetLoggerDetailsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SetLoggerDetails not implemented") } func (*UnimplementedGoCryptoTraderServer) GetExchangePairs(context.Context, *GetExchangePairsRequest) (*GetExchangePairsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetExchangePairs not implemented") } func (*UnimplementedGoCryptoTraderServer) SetExchangePair(context.Context, *SetExchangePairRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SetExchangePair not implemented") } func (*UnimplementedGoCryptoTraderServer) GetOrderbookStream(*GetOrderbookStreamRequest, GoCryptoTrader_GetOrderbookStreamServer) error { return status.Errorf(codes.Unimplemented, "method GetOrderbookStream not implemented") } func (*UnimplementedGoCryptoTraderServer) GetExchangeOrderbookStream(*GetExchangeOrderbookStreamRequest, GoCryptoTrader_GetExchangeOrderbookStreamServer) error { return status.Errorf(codes.Unimplemented, "method GetExchangeOrderbookStream not implemented") } func (*UnimplementedGoCryptoTraderServer) GetTickerStream(*GetTickerStreamRequest, GoCryptoTrader_GetTickerStreamServer) error { return status.Errorf(codes.Unimplemented, "method GetTickerStream not implemented") } func (*UnimplementedGoCryptoTraderServer) GetExchangeTickerStream(*GetExchangeTickerStreamRequest, GoCryptoTrader_GetExchangeTickerStreamServer) error { return status.Errorf(codes.Unimplemented, "method GetExchangeTickerStream not implemented") } func (*UnimplementedGoCryptoTraderServer) GetAuditEvent(context.Context, *GetAuditEventRequest) (*GetAuditEventResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetAuditEvent not implemented") } func (*UnimplementedGoCryptoTraderServer) GCTScriptExecute(context.Context, *GCTScriptExecuteRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GCTScriptExecute not implemented") } func (*UnimplementedGoCryptoTraderServer) GCTScriptUpload(context.Context, *GCTScriptUploadRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GCTScriptUpload not implemented") } func (*UnimplementedGoCryptoTraderServer) GCTScriptReadScript(context.Context, *GCTScriptReadScriptRequest) (*GCTScriptQueryResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GCTScriptReadScript not implemented") } func (*UnimplementedGoCryptoTraderServer) GCTScriptStatus(context.Context, *GCTScriptStatusRequest) (*GCTScriptStatusResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GCTScriptStatus not implemented") } func (*UnimplementedGoCryptoTraderServer) GCTScriptQuery(context.Context, *GCTScriptQueryRequest) (*GCTScriptQueryResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GCTScriptQuery not implemented") } func (*UnimplementedGoCryptoTraderServer) GCTScriptStop(context.Context, *GCTScriptStopRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GCTScriptStop not implemented") } func (*UnimplementedGoCryptoTraderServer) GCTScriptStopAll(context.Context, *GCTScriptStopAllRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GCTScriptStopAll not implemented") } func (*UnimplementedGoCryptoTraderServer) GCTScriptListAll(context.Context, *GCTScriptListAllRequest) (*GCTScriptStatusResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GCTScriptListAll not implemented") } func (*UnimplementedGoCryptoTraderServer) GCTScriptAutoLoadToggle(context.Context, *GCTScriptAutoLoadRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GCTScriptAutoLoadToggle not implemented") } func (*UnimplementedGoCryptoTraderServer) GetHistoricCandles(context.Context, *GetHistoricCandlesRequest) (*GetHistoricCandlesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetHistoricCandles not implemented") } func (*UnimplementedGoCryptoTraderServer) SetExchangeAsset(context.Context, *SetExchangeAssetRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SetExchangeAsset not implemented") } func (*UnimplementedGoCryptoTraderServer) SetAllExchangePairs(context.Context, *SetExchangeAllPairsRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SetAllExchangePairs not implemented") } func (*UnimplementedGoCryptoTraderServer) UpdateExchangeSupportedPairs(context.Context, *UpdateExchangeSupportedPairsRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateExchangeSupportedPairs not implemented") } func (*UnimplementedGoCryptoTraderServer) GetExchangeAssets(context.Context, *GetExchangeAssetsRequest) (*GetExchangeAssetsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetExchangeAssets not implemented") } func (*UnimplementedGoCryptoTraderServer) WebsocketGetInfo(context.Context, *WebsocketGetInfoRequest) (*WebsocketGetInfoResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method WebsocketGetInfo not implemented") } func (*UnimplementedGoCryptoTraderServer) WebsocketSetEnabled(context.Context, *WebsocketSetEnabledRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method WebsocketSetEnabled not implemented") } func (*UnimplementedGoCryptoTraderServer) WebsocketGetSubscriptions(context.Context, *WebsocketGetSubscriptionsRequest) (*WebsocketGetSubscriptionsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method WebsocketGetSubscriptions not implemented") } func (*UnimplementedGoCryptoTraderServer) WebsocketSetProxy(context.Context, *WebsocketSetProxyRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method WebsocketSetProxy not implemented") } func (*UnimplementedGoCryptoTraderServer) WebsocketSetURL(context.Context, *WebsocketSetURLRequest) (*GenericResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method WebsocketSetURL not implemented") } func RegisterGoCryptoTraderServer(s *grpc.Server, srv GoCryptoTraderServer) { s.RegisterService(&_GoCryptoTrader_serviceDesc, srv) } func _GoCryptoTrader_GetInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetInfoRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetInfo(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetInfo", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetInfo(ctx, req.(*GetInfoRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetSubsystems_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetSubsystemsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetSubsystems(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetSubsystems", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetSubsystems(ctx, req.(*GetSubsystemsRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_EnableSubsystem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GenericSubsystemRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).EnableSubsystem(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/EnableSubsystem", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).EnableSubsystem(ctx, req.(*GenericSubsystemRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_DisableSubsystem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GenericSubsystemRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).DisableSubsystem(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/DisableSubsystem", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).DisableSubsystem(ctx, req.(*GenericSubsystemRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetRPCEndpoints_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetRPCEndpointsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetRPCEndpoints(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetRPCEndpoints", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetRPCEndpoints(ctx, req.(*GetRPCEndpointsRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetCommunicationRelayers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetCommunicationRelayersRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetCommunicationRelayers(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetCommunicationRelayers", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetCommunicationRelayers(ctx, req.(*GetCommunicationRelayersRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetExchanges_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetExchangesRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetExchanges(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetExchanges", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetExchanges(ctx, req.(*GetExchangesRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_DisableExchange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GenericExchangeNameRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).DisableExchange(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/DisableExchange", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).DisableExchange(ctx, req.(*GenericExchangeNameRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetExchangeInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GenericExchangeNameRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetExchangeInfo(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetExchangeInfo", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetExchangeInfo(ctx, req.(*GenericExchangeNameRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetExchangeOTPCode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GenericExchangeNameRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetExchangeOTPCode(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetExchangeOTPCode", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetExchangeOTPCode(ctx, req.(*GenericExchangeNameRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetExchangeOTPCodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetExchangeOTPsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetExchangeOTPCodes(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetExchangeOTPCodes", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetExchangeOTPCodes(ctx, req.(*GetExchangeOTPsRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_EnableExchange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GenericExchangeNameRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).EnableExchange(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/EnableExchange", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).EnableExchange(ctx, req.(*GenericExchangeNameRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetTicker_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetTickerRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetTicker(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetTicker", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetTicker(ctx, req.(*GetTickerRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetTickers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetTickersRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetTickers(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetTickers", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetTickers(ctx, req.(*GetTickersRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetOrderbook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetOrderbookRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetOrderbook(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetOrderbook", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetOrderbook(ctx, req.(*GetOrderbookRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetOrderbooks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetOrderbooksRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetOrderbooks(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetOrderbooks", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetOrderbooks(ctx, req.(*GetOrderbooksRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetAccountInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetAccountInfoRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetAccountInfo(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetAccountInfo", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetAccountInfo(ctx, req.(*GetAccountInfoRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetAccountInfoStream_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(GetAccountInfoRequest) if err := stream.RecvMsg(m); err != nil { return err } return srv.(GoCryptoTraderServer).GetAccountInfoStream(m, &goCryptoTraderGetAccountInfoStreamServer{stream}) } type GoCryptoTrader_GetAccountInfoStreamServer interface { Send(*GetAccountInfoResponse) error grpc.ServerStream } type goCryptoTraderGetAccountInfoStreamServer struct { grpc.ServerStream } func (x *goCryptoTraderGetAccountInfoStreamServer) Send(m *GetAccountInfoResponse) error { return x.ServerStream.SendMsg(m) } func _GoCryptoTrader_GetConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetConfigRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetConfig(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetConfig", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetConfig(ctx, req.(*GetConfigRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetPortfolio_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetPortfolioRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetPortfolio(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetPortfolio", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetPortfolio(ctx, req.(*GetPortfolioRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetPortfolioSummary_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetPortfolioSummaryRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetPortfolioSummary(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetPortfolioSummary", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetPortfolioSummary(ctx, req.(*GetPortfolioSummaryRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_AddPortfolioAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(AddPortfolioAddressRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).AddPortfolioAddress(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/AddPortfolioAddress", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).AddPortfolioAddress(ctx, req.(*AddPortfolioAddressRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_RemovePortfolioAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(RemovePortfolioAddressRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).RemovePortfolioAddress(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/RemovePortfolioAddress", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).RemovePortfolioAddress(ctx, req.(*RemovePortfolioAddressRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetForexProviders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetForexProvidersRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetForexProviders(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetForexProviders", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetForexProviders(ctx, req.(*GetForexProvidersRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetForexRates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetForexRatesRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetForexRates(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetForexRates", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetForexRates(ctx, req.(*GetForexRatesRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetOrders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetOrdersRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetOrders(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetOrders", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetOrders(ctx, req.(*GetOrdersRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetOrderRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetOrder(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetOrder", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetOrder(ctx, req.(*GetOrderRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_SubmitOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SubmitOrderRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).SubmitOrder(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/SubmitOrder", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).SubmitOrder(ctx, req.(*SubmitOrderRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_SimulateOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SimulateOrderRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).SimulateOrder(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/SimulateOrder", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).SimulateOrder(ctx, req.(*SimulateOrderRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_WhaleBomb_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(WhaleBombRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).WhaleBomb(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/WhaleBomb", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).WhaleBomb(ctx, req.(*WhaleBombRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_CancelOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CancelOrderRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).CancelOrder(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/CancelOrder", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).CancelOrder(ctx, req.(*CancelOrderRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_CancelAllOrders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CancelAllOrdersRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).CancelAllOrders(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/CancelAllOrders", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).CancelAllOrders(ctx, req.(*CancelAllOrdersRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetEventsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetEvents(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetEvents", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetEvents(ctx, req.(*GetEventsRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_AddEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(AddEventRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).AddEvent(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/AddEvent", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).AddEvent(ctx, req.(*AddEventRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_RemoveEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(RemoveEventRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).RemoveEvent(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/RemoveEvent", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).RemoveEvent(ctx, req.(*RemoveEventRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetCryptocurrencyDepositAddresses_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetCryptocurrencyDepositAddressesRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetCryptocurrencyDepositAddresses(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetCryptocurrencyDepositAddresses", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetCryptocurrencyDepositAddresses(ctx, req.(*GetCryptocurrencyDepositAddressesRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetCryptocurrencyDepositAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetCryptocurrencyDepositAddressRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetCryptocurrencyDepositAddress(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetCryptocurrencyDepositAddress", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetCryptocurrencyDepositAddress(ctx, req.(*GetCryptocurrencyDepositAddressRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_WithdrawFiatFunds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(WithdrawFiatRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).WithdrawFiatFunds(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/WithdrawFiatFunds", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).WithdrawFiatFunds(ctx, req.(*WithdrawFiatRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_WithdrawCryptocurrencyFunds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(WithdrawCryptoRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).WithdrawCryptocurrencyFunds(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/WithdrawCryptocurrencyFunds", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).WithdrawCryptocurrencyFunds(ctx, req.(*WithdrawCryptoRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_WithdrawalEventByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(WithdrawalEventByIDRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).WithdrawalEventByID(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/WithdrawalEventByID", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).WithdrawalEventByID(ctx, req.(*WithdrawalEventByIDRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_WithdrawalEventsByExchange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(WithdrawalEventsByExchangeRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).WithdrawalEventsByExchange(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/WithdrawalEventsByExchange", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).WithdrawalEventsByExchange(ctx, req.(*WithdrawalEventsByExchangeRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_WithdrawalEventsByDate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(WithdrawalEventsByDateRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).WithdrawalEventsByDate(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/WithdrawalEventsByDate", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).WithdrawalEventsByDate(ctx, req.(*WithdrawalEventsByDateRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetLoggerDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetLoggerDetailsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetLoggerDetails(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetLoggerDetails", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetLoggerDetails(ctx, req.(*GetLoggerDetailsRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_SetLoggerDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SetLoggerDetailsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).SetLoggerDetails(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/SetLoggerDetails", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).SetLoggerDetails(ctx, req.(*SetLoggerDetailsRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetExchangePairs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetExchangePairsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetExchangePairs(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetExchangePairs", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetExchangePairs(ctx, req.(*GetExchangePairsRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_SetExchangePair_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SetExchangePairRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).SetExchangePair(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/SetExchangePair", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).SetExchangePair(ctx, req.(*SetExchangePairRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetOrderbookStream_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(GetOrderbookStreamRequest) if err := stream.RecvMsg(m); err != nil { return err } return srv.(GoCryptoTraderServer).GetOrderbookStream(m, &goCryptoTraderGetOrderbookStreamServer{stream}) } type GoCryptoTrader_GetOrderbookStreamServer interface { Send(*OrderbookResponse) error grpc.ServerStream } type goCryptoTraderGetOrderbookStreamServer struct { grpc.ServerStream } func (x *goCryptoTraderGetOrderbookStreamServer) Send(m *OrderbookResponse) error { return x.ServerStream.SendMsg(m) } func _GoCryptoTrader_GetExchangeOrderbookStream_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(GetExchangeOrderbookStreamRequest) if err := stream.RecvMsg(m); err != nil { return err } return srv.(GoCryptoTraderServer).GetExchangeOrderbookStream(m, &goCryptoTraderGetExchangeOrderbookStreamServer{stream}) } type GoCryptoTrader_GetExchangeOrderbookStreamServer interface { Send(*OrderbookResponse) error grpc.ServerStream } type goCryptoTraderGetExchangeOrderbookStreamServer struct { grpc.ServerStream } func (x *goCryptoTraderGetExchangeOrderbookStreamServer) Send(m *OrderbookResponse) error { return x.ServerStream.SendMsg(m) } func _GoCryptoTrader_GetTickerStream_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(GetTickerStreamRequest) if err := stream.RecvMsg(m); err != nil { return err } return srv.(GoCryptoTraderServer).GetTickerStream(m, &goCryptoTraderGetTickerStreamServer{stream}) } type GoCryptoTrader_GetTickerStreamServer interface { Send(*TickerResponse) error grpc.ServerStream } type goCryptoTraderGetTickerStreamServer struct { grpc.ServerStream } func (x *goCryptoTraderGetTickerStreamServer) Send(m *TickerResponse) error { return x.ServerStream.SendMsg(m) } func _GoCryptoTrader_GetExchangeTickerStream_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(GetExchangeTickerStreamRequest) if err := stream.RecvMsg(m); err != nil { return err } return srv.(GoCryptoTraderServer).GetExchangeTickerStream(m, &goCryptoTraderGetExchangeTickerStreamServer{stream}) } type GoCryptoTrader_GetExchangeTickerStreamServer interface { Send(*TickerResponse) error grpc.ServerStream } type goCryptoTraderGetExchangeTickerStreamServer struct { grpc.ServerStream } func (x *goCryptoTraderGetExchangeTickerStreamServer) Send(m *TickerResponse) error { return x.ServerStream.SendMsg(m) } func _GoCryptoTrader_GetAuditEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetAuditEventRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetAuditEvent(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetAuditEvent", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetAuditEvent(ctx, req.(*GetAuditEventRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GCTScriptExecute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GCTScriptExecuteRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GCTScriptExecute(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GCTScriptExecute", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GCTScriptExecute(ctx, req.(*GCTScriptExecuteRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GCTScriptUpload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GCTScriptUploadRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GCTScriptUpload(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GCTScriptUpload", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GCTScriptUpload(ctx, req.(*GCTScriptUploadRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GCTScriptReadScript_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GCTScriptReadScriptRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GCTScriptReadScript(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GCTScriptReadScript", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GCTScriptReadScript(ctx, req.(*GCTScriptReadScriptRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GCTScriptStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GCTScriptStatusRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GCTScriptStatus(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GCTScriptStatus", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GCTScriptStatus(ctx, req.(*GCTScriptStatusRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GCTScriptQuery_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GCTScriptQueryRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GCTScriptQuery(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GCTScriptQuery", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GCTScriptQuery(ctx, req.(*GCTScriptQueryRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GCTScriptStop_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GCTScriptStopRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GCTScriptStop(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GCTScriptStop", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GCTScriptStop(ctx, req.(*GCTScriptStopRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GCTScriptStopAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GCTScriptStopAllRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GCTScriptStopAll(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GCTScriptStopAll", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GCTScriptStopAll(ctx, req.(*GCTScriptStopAllRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GCTScriptListAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GCTScriptListAllRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GCTScriptListAll(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GCTScriptListAll", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GCTScriptListAll(ctx, req.(*GCTScriptListAllRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GCTScriptAutoLoadToggle_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GCTScriptAutoLoadRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GCTScriptAutoLoadToggle(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GCTScriptAutoLoadToggle", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GCTScriptAutoLoadToggle(ctx, req.(*GCTScriptAutoLoadRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetHistoricCandles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetHistoricCandlesRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetHistoricCandles(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetHistoricCandles", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetHistoricCandles(ctx, req.(*GetHistoricCandlesRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_SetExchangeAsset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SetExchangeAssetRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).SetExchangeAsset(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/SetExchangeAsset", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).SetExchangeAsset(ctx, req.(*SetExchangeAssetRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_SetAllExchangePairs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SetExchangeAllPairsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).SetAllExchangePairs(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/SetAllExchangePairs", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).SetAllExchangePairs(ctx, req.(*SetExchangeAllPairsRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_UpdateExchangeSupportedPairs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UpdateExchangeSupportedPairsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).UpdateExchangeSupportedPairs(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/UpdateExchangeSupportedPairs", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).UpdateExchangeSupportedPairs(ctx, req.(*UpdateExchangeSupportedPairsRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_GetExchangeAssets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetExchangeAssetsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).GetExchangeAssets(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/GetExchangeAssets", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).GetExchangeAssets(ctx, req.(*GetExchangeAssetsRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_WebsocketGetInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(WebsocketGetInfoRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).WebsocketGetInfo(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/WebsocketGetInfo", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).WebsocketGetInfo(ctx, req.(*WebsocketGetInfoRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_WebsocketSetEnabled_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(WebsocketSetEnabledRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).WebsocketSetEnabled(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/WebsocketSetEnabled", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).WebsocketSetEnabled(ctx, req.(*WebsocketSetEnabledRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_WebsocketGetSubscriptions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(WebsocketGetSubscriptionsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).WebsocketGetSubscriptions(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/WebsocketGetSubscriptions", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).WebsocketGetSubscriptions(ctx, req.(*WebsocketGetSubscriptionsRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_WebsocketSetProxy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(WebsocketSetProxyRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).WebsocketSetProxy(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/WebsocketSetProxy", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).WebsocketSetProxy(ctx, req.(*WebsocketSetProxyRequest)) } return interceptor(ctx, in, info, handler) } func _GoCryptoTrader_WebsocketSetURL_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(WebsocketSetURLRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(GoCryptoTraderServer).WebsocketSetURL(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/gctrpc.GoCryptoTrader/WebsocketSetURL", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(GoCryptoTraderServer).WebsocketSetURL(ctx, req.(*WebsocketSetURLRequest)) } return interceptor(ctx, in, info, handler) } var _GoCryptoTrader_serviceDesc = grpc.ServiceDesc{ ServiceName: "gctrpc.GoCryptoTrader", HandlerType: (*GoCryptoTraderServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "GetInfo", Handler: _GoCryptoTrader_GetInfo_Handler, }, { MethodName: "GetSubsystems", Handler: _GoCryptoTrader_GetSubsystems_Handler, }, { MethodName: "EnableSubsystem", Handler: _GoCryptoTrader_EnableSubsystem_Handler, }, { MethodName: "DisableSubsystem", Handler: _GoCryptoTrader_DisableSubsystem_Handler, }, { MethodName: "GetRPCEndpoints", Handler: _GoCryptoTrader_GetRPCEndpoints_Handler, }, { MethodName: "GetCommunicationRelayers", Handler: _GoCryptoTrader_GetCommunicationRelayers_Handler, }, { MethodName: "GetExchanges", Handler: _GoCryptoTrader_GetExchanges_Handler, }, { MethodName: "DisableExchange", Handler: _GoCryptoTrader_DisableExchange_Handler, }, { MethodName: "GetExchangeInfo", Handler: _GoCryptoTrader_GetExchangeInfo_Handler, }, { MethodName: "GetExchangeOTPCode", Handler: _GoCryptoTrader_GetExchangeOTPCode_Handler, }, { MethodName: "GetExchangeOTPCodes", Handler: _GoCryptoTrader_GetExchangeOTPCodes_Handler, }, { MethodName: "EnableExchange", Handler: _GoCryptoTrader_EnableExchange_Handler, }, { MethodName: "GetTicker", Handler: _GoCryptoTrader_GetTicker_Handler, }, { MethodName: "GetTickers", Handler: _GoCryptoTrader_GetTickers_Handler, }, { MethodName: "GetOrderbook", Handler: _GoCryptoTrader_GetOrderbook_Handler, }, { MethodName: "GetOrderbooks", Handler: _GoCryptoTrader_GetOrderbooks_Handler, }, { MethodName: "GetAccountInfo", Handler: _GoCryptoTrader_GetAccountInfo_Handler, }, { MethodName: "GetConfig", Handler: _GoCryptoTrader_GetConfig_Handler, }, { MethodName: "GetPortfolio", Handler: _GoCryptoTrader_GetPortfolio_Handler, }, { MethodName: "GetPortfolioSummary", Handler: _GoCryptoTrader_GetPortfolioSummary_Handler, }, { MethodName: "AddPortfolioAddress", Handler: _GoCryptoTrader_AddPortfolioAddress_Handler, }, { MethodName: "RemovePortfolioAddress", Handler: _GoCryptoTrader_RemovePortfolioAddress_Handler, }, { MethodName: "GetForexProviders", Handler: _GoCryptoTrader_GetForexProviders_Handler, }, { MethodName: "GetForexRates", Handler: _GoCryptoTrader_GetForexRates_Handler, }, { MethodName: "GetOrders", Handler: _GoCryptoTrader_GetOrders_Handler, }, { MethodName: "GetOrder", Handler: _GoCryptoTrader_GetOrder_Handler, }, { MethodName: "SubmitOrder", Handler: _GoCryptoTrader_SubmitOrder_Handler, }, { MethodName: "SimulateOrder", Handler: _GoCryptoTrader_SimulateOrder_Handler, }, { MethodName: "WhaleBomb", Handler: _GoCryptoTrader_WhaleBomb_Handler, }, { MethodName: "CancelOrder", Handler: _GoCryptoTrader_CancelOrder_Handler, }, { MethodName: "CancelAllOrders", Handler: _GoCryptoTrader_CancelAllOrders_Handler, }, { MethodName: "GetEvents", Handler: _GoCryptoTrader_GetEvents_Handler, }, { MethodName: "AddEvent", Handler: _GoCryptoTrader_AddEvent_Handler, }, { MethodName: "RemoveEvent", Handler: _GoCryptoTrader_RemoveEvent_Handler, }, { MethodName: "GetCryptocurrencyDepositAddresses", Handler: _GoCryptoTrader_GetCryptocurrencyDepositAddresses_Handler, }, { MethodName: "GetCryptocurrencyDepositAddress", Handler: _GoCryptoTrader_GetCryptocurrencyDepositAddress_Handler, }, { MethodName: "WithdrawFiatFunds", Handler: _GoCryptoTrader_WithdrawFiatFunds_Handler, }, { MethodName: "WithdrawCryptocurrencyFunds", Handler: _GoCryptoTrader_WithdrawCryptocurrencyFunds_Handler, }, { MethodName: "WithdrawalEventByID", Handler: _GoCryptoTrader_WithdrawalEventByID_Handler, }, { MethodName: "WithdrawalEventsByExchange", Handler: _GoCryptoTrader_WithdrawalEventsByExchange_Handler, }, { MethodName: "WithdrawalEventsByDate", Handler: _GoCryptoTrader_WithdrawalEventsByDate_Handler, }, { MethodName: "GetLoggerDetails", Handler: _GoCryptoTrader_GetLoggerDetails_Handler, }, { MethodName: "SetLoggerDetails", Handler: _GoCryptoTrader_SetLoggerDetails_Handler, }, { MethodName: "GetExchangePairs", Handler: _GoCryptoTrader_GetExchangePairs_Handler, }, { MethodName: "SetExchangePair", Handler: _GoCryptoTrader_SetExchangePair_Handler, }, { MethodName: "GetAuditEvent", Handler: _GoCryptoTrader_GetAuditEvent_Handler, }, { MethodName: "GCTScriptExecute", Handler: _GoCryptoTrader_GCTScriptExecute_Handler, }, { MethodName: "GCTScriptUpload", Handler: _GoCryptoTrader_GCTScriptUpload_Handler, }, { MethodName: "GCTScriptReadScript", Handler: _GoCryptoTrader_GCTScriptReadScript_Handler, }, { MethodName: "GCTScriptStatus", Handler: _GoCryptoTrader_GCTScriptStatus_Handler, }, { MethodName: "GCTScriptQuery", Handler: _GoCryptoTrader_GCTScriptQuery_Handler, }, { MethodName: "GCTScriptStop", Handler: _GoCryptoTrader_GCTScriptStop_Handler, }, { MethodName: "GCTScriptStopAll", Handler: _GoCryptoTrader_GCTScriptStopAll_Handler, }, { MethodName: "GCTScriptListAll", Handler: _GoCryptoTrader_GCTScriptListAll_Handler, }, { MethodName: "GCTScriptAutoLoadToggle", Handler: _GoCryptoTrader_GCTScriptAutoLoadToggle_Handler, }, { MethodName: "GetHistoricCandles", Handler: _GoCryptoTrader_GetHistoricCandles_Handler, }, { MethodName: "SetExchangeAsset", Handler: _GoCryptoTrader_SetExchangeAsset_Handler, }, { MethodName: "SetAllExchangePairs", Handler: _GoCryptoTrader_SetAllExchangePairs_Handler, }, { MethodName: "UpdateExchangeSupportedPairs", Handler: _GoCryptoTrader_UpdateExchangeSupportedPairs_Handler, }, { MethodName: "GetExchangeAssets", Handler: _GoCryptoTrader_GetExchangeAssets_Handler, }, { MethodName: "WebsocketGetInfo", Handler: _GoCryptoTrader_WebsocketGetInfo_Handler, }, { MethodName: "WebsocketSetEnabled", Handler: _GoCryptoTrader_WebsocketSetEnabled_Handler, }, { MethodName: "WebsocketGetSubscriptions", Handler: _GoCryptoTrader_WebsocketGetSubscriptions_Handler, }, { MethodName: "WebsocketSetProxy", Handler: _GoCryptoTrader_WebsocketSetProxy_Handler, }, { MethodName: "WebsocketSetURL", Handler: _GoCryptoTrader_WebsocketSetURL_Handler, }, }, Streams: []grpc.StreamDesc{ { StreamName: "GetAccountInfoStream", Handler: _GoCryptoTrader_GetAccountInfoStream_Handler, ServerStreams: true, }, { StreamName: "GetOrderbookStream", Handler: _GoCryptoTrader_GetOrderbookStream_Handler, ServerStreams: true, }, { StreamName: "GetExchangeOrderbookStream", Handler: _GoCryptoTrader_GetExchangeOrderbookStream_Handler, ServerStreams: true, }, { StreamName: "GetTickerStream", Handler: _GoCryptoTrader_GetTickerStream_Handler, ServerStreams: true, }, { StreamName: "GetExchangeTickerStream", Handler: _GoCryptoTrader_GetExchangeTickerStream_Handler, ServerStreams: true, }, }, Metadata: "rpc.proto", }