// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.28.1
// 	protoc        (unknown)
// source: cln/primitives.proto

package cln

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

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

type ChannelSide int32

const (
	ChannelSide_LOCAL  ChannelSide = 0
	ChannelSide_REMOTE ChannelSide = 1
)

// Enum value maps for ChannelSide.
var (
	ChannelSide_name = map[int32]string{
		0: "LOCAL",
		1: "REMOTE",
	}
	ChannelSide_value = map[string]int32{
		"LOCAL":  0,
		"REMOTE": 1,
	}
)

func (x ChannelSide) Enum() *ChannelSide {
	p := new(ChannelSide)
	*p = x
	return p
}

func (x ChannelSide) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ChannelSide) Descriptor() protoreflect.EnumDescriptor {
	return file_cln_primitives_proto_enumTypes[0].Descriptor()
}

func (ChannelSide) Type() protoreflect.EnumType {
	return &file_cln_primitives_proto_enumTypes[0]
}

func (x ChannelSide) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ChannelSide.Descriptor instead.
func (ChannelSide) EnumDescriptor() ([]byte, []int) {
	return file_cln_primitives_proto_rawDescGZIP(), []int{0}
}

type ChannelState int32

const (
	ChannelState_Openingd                ChannelState = 0
	ChannelState_ChanneldAwaitingLockin  ChannelState = 1
	ChannelState_ChanneldNormal          ChannelState = 2
	ChannelState_ChanneldShuttingDown    ChannelState = 3
	ChannelState_ClosingdSigexchange     ChannelState = 4
	ChannelState_ClosingdComplete        ChannelState = 5
	ChannelState_AwaitingUnilateral      ChannelState = 6
	ChannelState_FundingSpendSeen        ChannelState = 7
	ChannelState_Onchain                 ChannelState = 8
	ChannelState_DualopendOpenInit       ChannelState = 9
	ChannelState_DualopendAwaitingLockin ChannelState = 10
	ChannelState_ChanneldAwaitingSplice  ChannelState = 11
)

// Enum value maps for ChannelState.
var (
	ChannelState_name = map[int32]string{
		0:  "Openingd",
		1:  "ChanneldAwaitingLockin",
		2:  "ChanneldNormal",
		3:  "ChanneldShuttingDown",
		4:  "ClosingdSigexchange",
		5:  "ClosingdComplete",
		6:  "AwaitingUnilateral",
		7:  "FundingSpendSeen",
		8:  "Onchain",
		9:  "DualopendOpenInit",
		10: "DualopendAwaitingLockin",
		11: "ChanneldAwaitingSplice",
	}
	ChannelState_value = map[string]int32{
		"Openingd":                0,
		"ChanneldAwaitingLockin":  1,
		"ChanneldNormal":          2,
		"ChanneldShuttingDown":    3,
		"ClosingdSigexchange":     4,
		"ClosingdComplete":        5,
		"AwaitingUnilateral":      6,
		"FundingSpendSeen":        7,
		"Onchain":                 8,
		"DualopendOpenInit":       9,
		"DualopendAwaitingLockin": 10,
		"ChanneldAwaitingSplice":  11,
	}
)

func (x ChannelState) Enum() *ChannelState {
	p := new(ChannelState)
	*p = x
	return p
}

func (x ChannelState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ChannelState) Descriptor() protoreflect.EnumDescriptor {
	return file_cln_primitives_proto_enumTypes[1].Descriptor()
}

func (ChannelState) Type() protoreflect.EnumType {
	return &file_cln_primitives_proto_enumTypes[1]
}

func (x ChannelState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ChannelState.Descriptor instead.
func (ChannelState) EnumDescriptor() ([]byte, []int) {
	return file_cln_primitives_proto_rawDescGZIP(), []int{1}
}

type HtlcState int32

const (
	HtlcState_SentAddHtlc             HtlcState = 0
	HtlcState_SentAddCommit           HtlcState = 1
	HtlcState_RcvdAddRevocation       HtlcState = 2
	HtlcState_RcvdAddAckCommit        HtlcState = 3
	HtlcState_SentAddAckRevocation    HtlcState = 4
	HtlcState_RcvdAddAckRevocation    HtlcState = 5
	HtlcState_RcvdRemoveHtlc          HtlcState = 6
	HtlcState_RcvdRemoveCommit        HtlcState = 7
	HtlcState_SentRemoveRevocation    HtlcState = 8
	HtlcState_SentRemoveAckCommit     HtlcState = 9
	HtlcState_RcvdRemoveAckRevocation HtlcState = 10
	HtlcState_RcvdAddHtlc             HtlcState = 11
	HtlcState_RcvdAddCommit           HtlcState = 12
	HtlcState_SentAddRevocation       HtlcState = 13
	HtlcState_SentAddAckCommit        HtlcState = 14
	HtlcState_SentRemoveHtlc          HtlcState = 15
	HtlcState_SentRemoveCommit        HtlcState = 16
	HtlcState_RcvdRemoveRevocation    HtlcState = 17
	HtlcState_RcvdRemoveAckCommit     HtlcState = 18
	HtlcState_SentRemoveAckRevocation HtlcState = 19
)

// Enum value maps for HtlcState.
var (
	HtlcState_name = map[int32]string{
		0:  "SentAddHtlc",
		1:  "SentAddCommit",
		2:  "RcvdAddRevocation",
		3:  "RcvdAddAckCommit",
		4:  "SentAddAckRevocation",
		5:  "RcvdAddAckRevocation",
		6:  "RcvdRemoveHtlc",
		7:  "RcvdRemoveCommit",
		8:  "SentRemoveRevocation",
		9:  "SentRemoveAckCommit",
		10: "RcvdRemoveAckRevocation",
		11: "RcvdAddHtlc",
		12: "RcvdAddCommit",
		13: "SentAddRevocation",
		14: "SentAddAckCommit",
		15: "SentRemoveHtlc",
		16: "SentRemoveCommit",
		17: "RcvdRemoveRevocation",
		18: "RcvdRemoveAckCommit",
		19: "SentRemoveAckRevocation",
	}
	HtlcState_value = map[string]int32{
		"SentAddHtlc":             0,
		"SentAddCommit":           1,
		"RcvdAddRevocation":       2,
		"RcvdAddAckCommit":        3,
		"SentAddAckRevocation":    4,
		"RcvdAddAckRevocation":    5,
		"RcvdRemoveHtlc":          6,
		"RcvdRemoveCommit":        7,
		"SentRemoveRevocation":    8,
		"SentRemoveAckCommit":     9,
		"RcvdRemoveAckRevocation": 10,
		"RcvdAddHtlc":             11,
		"RcvdAddCommit":           12,
		"SentAddRevocation":       13,
		"SentAddAckCommit":        14,
		"SentRemoveHtlc":          15,
		"SentRemoveCommit":        16,
		"RcvdRemoveRevocation":    17,
		"RcvdRemoveAckCommit":     18,
		"SentRemoveAckRevocation": 19,
	}
)

func (x HtlcState) Enum() *HtlcState {
	p := new(HtlcState)
	*p = x
	return p
}

func (x HtlcState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (HtlcState) Descriptor() protoreflect.EnumDescriptor {
	return file_cln_primitives_proto_enumTypes[2].Descriptor()
}

func (HtlcState) Type() protoreflect.EnumType {
	return &file_cln_primitives_proto_enumTypes[2]
}

func (x HtlcState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use HtlcState.Descriptor instead.
func (HtlcState) EnumDescriptor() ([]byte, []int) {
	return file_cln_primitives_proto_rawDescGZIP(), []int{2}
}

type ChannelTypeName int32

const (
	ChannelTypeName_static_remotekey_even         ChannelTypeName = 0
	ChannelTypeName_anchor_outputs_even           ChannelTypeName = 1
	ChannelTypeName_anchors_zero_fee_htlc_tx_even ChannelTypeName = 2
	ChannelTypeName_scid_alias_even               ChannelTypeName = 3
	ChannelTypeName_zeroconf_even                 ChannelTypeName = 4
	ChannelTypeName_anchors_even                  ChannelTypeName = 5
)

// Enum value maps for ChannelTypeName.
var (
	ChannelTypeName_name = map[int32]string{
		0: "static_remotekey_even",
		1: "anchor_outputs_even",
		2: "anchors_zero_fee_htlc_tx_even",
		3: "scid_alias_even",
		4: "zeroconf_even",
		5: "anchors_even",
	}
	ChannelTypeName_value = map[string]int32{
		"static_remotekey_even":         0,
		"anchor_outputs_even":           1,
		"anchors_zero_fee_htlc_tx_even": 2,
		"scid_alias_even":               3,
		"zeroconf_even":                 4,
		"anchors_even":                  5,
	}
)

func (x ChannelTypeName) Enum() *ChannelTypeName {
	p := new(ChannelTypeName)
	*p = x
	return p
}

func (x ChannelTypeName) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ChannelTypeName) Descriptor() protoreflect.EnumDescriptor {
	return file_cln_primitives_proto_enumTypes[3].Descriptor()
}

func (ChannelTypeName) Type() protoreflect.EnumType {
	return &file_cln_primitives_proto_enumTypes[3]
}

func (x ChannelTypeName) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ChannelTypeName.Descriptor instead.
func (ChannelTypeName) EnumDescriptor() ([]byte, []int) {
	return file_cln_primitives_proto_rawDescGZIP(), []int{3}
}

type AutocleanSubsystem int32

const (
	AutocleanSubsystem_SUCCEEDEDFORWARDS AutocleanSubsystem = 0
	AutocleanSubsystem_FAILEDFORWARDS    AutocleanSubsystem = 1
	AutocleanSubsystem_SUCCEEDEDPAYS     AutocleanSubsystem = 2
	AutocleanSubsystem_FAILEDPAYS        AutocleanSubsystem = 3
	AutocleanSubsystem_PAIDINVOICES      AutocleanSubsystem = 4
	AutocleanSubsystem_EXPIREDINVOICES   AutocleanSubsystem = 5
)

// Enum value maps for AutocleanSubsystem.
var (
	AutocleanSubsystem_name = map[int32]string{
		0: "SUCCEEDEDFORWARDS",
		1: "FAILEDFORWARDS",
		2: "SUCCEEDEDPAYS",
		3: "FAILEDPAYS",
		4: "PAIDINVOICES",
		5: "EXPIREDINVOICES",
	}
	AutocleanSubsystem_value = map[string]int32{
		"SUCCEEDEDFORWARDS": 0,
		"FAILEDFORWARDS":    1,
		"SUCCEEDEDPAYS":     2,
		"FAILEDPAYS":        3,
		"PAIDINVOICES":      4,
		"EXPIREDINVOICES":   5,
	}
)

func (x AutocleanSubsystem) Enum() *AutocleanSubsystem {
	p := new(AutocleanSubsystem)
	*p = x
	return p
}

func (x AutocleanSubsystem) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (AutocleanSubsystem) Descriptor() protoreflect.EnumDescriptor {
	return file_cln_primitives_proto_enumTypes[4].Descriptor()
}

func (AutocleanSubsystem) Type() protoreflect.EnumType {
	return &file_cln_primitives_proto_enumTypes[4]
}

func (x AutocleanSubsystem) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use AutocleanSubsystem.Descriptor instead.
func (AutocleanSubsystem) EnumDescriptor() ([]byte, []int) {
	return file_cln_primitives_proto_rawDescGZIP(), []int{4}
}

type PluginSubcommand int32

const (
	PluginSubcommand_START    PluginSubcommand = 0
	PluginSubcommand_STOP     PluginSubcommand = 1
	PluginSubcommand_RESCAN   PluginSubcommand = 2
	PluginSubcommand_STARTDIR PluginSubcommand = 3
	PluginSubcommand_LIST     PluginSubcommand = 4
)

// Enum value maps for PluginSubcommand.
var (
	PluginSubcommand_name = map[int32]string{
		0: "START",
		1: "STOP",
		2: "RESCAN",
		3: "STARTDIR",
		4: "LIST",
	}
	PluginSubcommand_value = map[string]int32{
		"START":    0,
		"STOP":     1,
		"RESCAN":   2,
		"STARTDIR": 3,
		"LIST":     4,
	}
)

func (x PluginSubcommand) Enum() *PluginSubcommand {
	p := new(PluginSubcommand)
	*p = x
	return p
}

func (x PluginSubcommand) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (PluginSubcommand) Descriptor() protoreflect.EnumDescriptor {
	return file_cln_primitives_proto_enumTypes[5].Descriptor()
}

func (PluginSubcommand) Type() protoreflect.EnumType {
	return &file_cln_primitives_proto_enumTypes[5]
}

func (x PluginSubcommand) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use PluginSubcommand.Descriptor instead.
func (PluginSubcommand) EnumDescriptor() ([]byte, []int) {
	return file_cln_primitives_proto_rawDescGZIP(), []int{5}
}

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

	Msat uint64 `protobuf:"varint,1,opt,name=msat,proto3" json:"msat,omitempty"`
}

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

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

func (*Amount) ProtoMessage() {}

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

func (x *Amount) GetMsat() uint64 {
	if x != nil {
		return x.Msat
	}
	return 0
}

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

	// Types that are assignable to Value:
	//
	//	*AmountOrAll_Amount
	//	*AmountOrAll_All
	Value isAmountOrAll_Value `protobuf_oneof:"value"`
}

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

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

func (*AmountOrAll) ProtoMessage() {}

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

func (m *AmountOrAll) GetValue() isAmountOrAll_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (x *AmountOrAll) GetAmount() *Amount {
	if x, ok := x.GetValue().(*AmountOrAll_Amount); ok {
		return x.Amount
	}
	return nil
}

func (x *AmountOrAll) GetAll() bool {
	if x, ok := x.GetValue().(*AmountOrAll_All); ok {
		return x.All
	}
	return false
}

type isAmountOrAll_Value interface {
	isAmountOrAll_Value()
}

type AmountOrAll_Amount struct {
	Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3,oneof"`
}

type AmountOrAll_All struct {
	All bool `protobuf:"varint,2,opt,name=all,proto3,oneof"`
}

func (*AmountOrAll_Amount) isAmountOrAll_Value() {}

func (*AmountOrAll_All) isAmountOrAll_Value() {}

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

	// Types that are assignable to Value:
	//
	//	*AmountOrAny_Amount
	//	*AmountOrAny_Any
	Value isAmountOrAny_Value `protobuf_oneof:"value"`
}

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

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

func (*AmountOrAny) ProtoMessage() {}

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

func (m *AmountOrAny) GetValue() isAmountOrAny_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (x *AmountOrAny) GetAmount() *Amount {
	if x, ok := x.GetValue().(*AmountOrAny_Amount); ok {
		return x.Amount
	}
	return nil
}

func (x *AmountOrAny) GetAny() bool {
	if x, ok := x.GetValue().(*AmountOrAny_Any); ok {
		return x.Any
	}
	return false
}

type isAmountOrAny_Value interface {
	isAmountOrAny_Value()
}

type AmountOrAny_Amount struct {
	Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3,oneof"`
}

type AmountOrAny_Any struct {
	Any bool `protobuf:"varint,2,opt,name=any,proto3,oneof"`
}

func (*AmountOrAny_Amount) isAmountOrAny_Value() {}

func (*AmountOrAny_Any) isAmountOrAny_Value() {}

type ChannelStateChangeCause struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*ChannelStateChangeCause) ProtoMessage() {}

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

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

	Txid   []byte `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"`
	Outnum uint32 `protobuf:"varint,2,opt,name=outnum,proto3" json:"outnum,omitempty"`
}

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

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

func (*Outpoint) ProtoMessage() {}

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

func (x *Outpoint) GetTxid() []byte {
	if x != nil {
		return x.Txid
	}
	return nil
}

func (x *Outpoint) GetOutnum() uint32 {
	if x != nil {
		return x.Outnum
	}
	return 0
}

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

	// Types that are assignable to Style:
	//
	//	*Feerate_Slow
	//	*Feerate_Normal
	//	*Feerate_Urgent
	//	*Feerate_Perkb
	//	*Feerate_Perkw
	Style isFeerate_Style `protobuf_oneof:"style"`
}

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

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

func (*Feerate) ProtoMessage() {}

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

func (m *Feerate) GetStyle() isFeerate_Style {
	if m != nil {
		return m.Style
	}
	return nil
}

func (x *Feerate) GetSlow() bool {
	if x, ok := x.GetStyle().(*Feerate_Slow); ok {
		return x.Slow
	}
	return false
}

func (x *Feerate) GetNormal() bool {
	if x, ok := x.GetStyle().(*Feerate_Normal); ok {
		return x.Normal
	}
	return false
}

func (x *Feerate) GetUrgent() bool {
	if x, ok := x.GetStyle().(*Feerate_Urgent); ok {
		return x.Urgent
	}
	return false
}

func (x *Feerate) GetPerkb() uint32 {
	if x, ok := x.GetStyle().(*Feerate_Perkb); ok {
		return x.Perkb
	}
	return 0
}

func (x *Feerate) GetPerkw() uint32 {
	if x, ok := x.GetStyle().(*Feerate_Perkw); ok {
		return x.Perkw
	}
	return 0
}

type isFeerate_Style interface {
	isFeerate_Style()
}

type Feerate_Slow struct {
	Slow bool `protobuf:"varint,1,opt,name=slow,proto3,oneof"`
}

type Feerate_Normal struct {
	Normal bool `protobuf:"varint,2,opt,name=normal,proto3,oneof"`
}

type Feerate_Urgent struct {
	Urgent bool `protobuf:"varint,3,opt,name=urgent,proto3,oneof"`
}

type Feerate_Perkb struct {
	Perkb uint32 `protobuf:"varint,4,opt,name=perkb,proto3,oneof"`
}

type Feerate_Perkw struct {
	Perkw uint32 `protobuf:"varint,5,opt,name=perkw,proto3,oneof"`
}

func (*Feerate_Slow) isFeerate_Style() {}

func (*Feerate_Normal) isFeerate_Style() {}

func (*Feerate_Urgent) isFeerate_Style() {}

func (*Feerate_Perkb) isFeerate_Style() {}

func (*Feerate_Perkw) isFeerate_Style() {}

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

	Address string  `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Amount  *Amount `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"`
}

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

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

func (*OutputDesc) ProtoMessage() {}

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

func (x *OutputDesc) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *OutputDesc) GetAmount() *Amount {
	if x != nil {
		return x.Amount
	}
	return nil
}

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

	Id          []byte  `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Scid        string  `protobuf:"bytes,2,opt,name=scid,proto3" json:"scid,omitempty"`
	Feebase     *Amount `protobuf:"bytes,3,opt,name=feebase,proto3" json:"feebase,omitempty"`
	Feeprop     uint32  `protobuf:"varint,4,opt,name=feeprop,proto3" json:"feeprop,omitempty"`
	Expirydelta uint32  `protobuf:"varint,5,opt,name=expirydelta,proto3" json:"expirydelta,omitempty"`
}

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

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

func (*RouteHop) ProtoMessage() {}

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

func (x *RouteHop) GetId() []byte {
	if x != nil {
		return x.Id
	}
	return nil
}

func (x *RouteHop) GetScid() string {
	if x != nil {
		return x.Scid
	}
	return ""
}

func (x *RouteHop) GetFeebase() *Amount {
	if x != nil {
		return x.Feebase
	}
	return nil
}

func (x *RouteHop) GetFeeprop() uint32 {
	if x != nil {
		return x.Feeprop
	}
	return 0
}

func (x *RouteHop) GetExpirydelta() uint32 {
	if x != nil {
		return x.Expirydelta
	}
	return 0
}

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

	Hops []*RouteHop `protobuf:"bytes,1,rep,name=hops,proto3" json:"hops,omitempty"`
}

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

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

func (*Routehint) ProtoMessage() {}

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

func (x *Routehint) GetHops() []*RouteHop {
	if x != nil {
		return x.Hops
	}
	return nil
}

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

	Hints []*Routehint `protobuf:"bytes,2,rep,name=hints,proto3" json:"hints,omitempty"`
}

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

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

func (*RoutehintList) ProtoMessage() {}

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

func (x *RoutehintList) GetHints() []*Routehint {
	if x != nil {
		return x.Hints
	}
	return nil
}

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

	Pubkey                    []byte  `protobuf:"bytes,1,opt,name=pubkey,proto3" json:"pubkey,omitempty"`
	ShortChannelId            string  `protobuf:"bytes,2,opt,name=short_channel_id,json=shortChannelId,proto3" json:"short_channel_id,omitempty"`
	FeeBaseMsat               *Amount `protobuf:"bytes,3,opt,name=fee_base_msat,json=feeBaseMsat,proto3" json:"fee_base_msat,omitempty"`
	FeeProportionalMillionths uint32  `protobuf:"varint,4,opt,name=fee_proportional_millionths,json=feeProportionalMillionths,proto3" json:"fee_proportional_millionths,omitempty"`
	CltvExpiryDelta           uint32  `protobuf:"varint,5,opt,name=cltv_expiry_delta,json=cltvExpiryDelta,proto3" json:"cltv_expiry_delta,omitempty"`
}

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

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

func (*DecodeRouteHop) ProtoMessage() {}

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

func (x *DecodeRouteHop) GetPubkey() []byte {
	if x != nil {
		return x.Pubkey
	}
	return nil
}

func (x *DecodeRouteHop) GetShortChannelId() string {
	if x != nil {
		return x.ShortChannelId
	}
	return ""
}

func (x *DecodeRouteHop) GetFeeBaseMsat() *Amount {
	if x != nil {
		return x.FeeBaseMsat
	}
	return nil
}

func (x *DecodeRouteHop) GetFeeProportionalMillionths() uint32 {
	if x != nil {
		return x.FeeProportionalMillionths
	}
	return 0
}

func (x *DecodeRouteHop) GetCltvExpiryDelta() uint32 {
	if x != nil {
		return x.CltvExpiryDelta
	}
	return 0
}

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

	Hops []*DecodeRouteHop `protobuf:"bytes,1,rep,name=hops,proto3" json:"hops,omitempty"`
}

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

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

func (*DecodeRoutehint) ProtoMessage() {}

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

func (x *DecodeRoutehint) GetHops() []*DecodeRouteHop {
	if x != nil {
		return x.Hops
	}
	return nil
}

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

	Hints []*DecodeRoutehint `protobuf:"bytes,2,rep,name=hints,proto3" json:"hints,omitempty"`
}

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

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

func (*DecodeRoutehintList) ProtoMessage() {}

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

func (x *DecodeRoutehintList) GetHints() []*DecodeRoutehint {
	if x != nil {
		return x.Hints
	}
	return nil
}

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

	Type  uint64 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
	Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}

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

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

func (*TlvEntry) ProtoMessage() {}

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

func (x *TlvEntry) GetType() uint64 {
	if x != nil {
		return x.Type
	}
	return 0
}

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

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

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

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

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

func (*TlvStream) ProtoMessage() {}

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

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

var File_cln_primitives_proto protoreflect.FileDescriptor

var file_cln_primitives_proto_rawDesc = []byte{
	0x0a, 0x14, 0x63, 0x6c, 0x6e, 0x2f, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x63, 0x6c, 0x6e, 0x22, 0x1c, 0x0a, 0x06, 0x41,
	0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x04, 0x6d, 0x73, 0x61, 0x74, 0x22, 0x51, 0x0a, 0x0b, 0x41, 0x6d, 0x6f,
	0x75, 0x6e, 0x74, 0x4f, 0x72, 0x41, 0x6c, 0x6c, 0x12, 0x25, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75,
	0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41,
	0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12,
	0x12, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x03,
	0x61, 0x6c, 0x6c, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x51, 0x0a, 0x0b,
	0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x41, 0x6e, 0x79, 0x12, 0x25, 0x0a, 0x06, 0x61,
	0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c,
	0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75,
	0x6e, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48,
	0x00, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22,
	0x19, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x61, 0x75, 0x73, 0x65, 0x22, 0x36, 0x0a, 0x08, 0x4f, 0x75,
	0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75,
	0x74, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x6e,
	0x75, 0x6d, 0x22, 0x8c, 0x01, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x14,
	0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04,
	0x73, 0x6c, 0x6f, 0x77, 0x12, 0x18, 0x0a, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x12, 0x18,
	0x0a, 0x06, 0x75, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00,
	0x52, 0x06, 0x75, 0x72, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x05, 0x70, 0x65, 0x72, 0x6b,
	0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x70, 0x65, 0x72, 0x6b, 0x62,
	0x12, 0x16, 0x0a, 0x05, 0x70, 0x65, 0x72, 0x6b, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48,
	0x00, 0x52, 0x05, 0x70, 0x65, 0x72, 0x6b, 0x77, 0x42, 0x07, 0x0a, 0x05, 0x73, 0x74, 0x79, 0x6c,
	0x65, 0x22, 0x4b, 0x0a, 0x0a, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x65, 0x73, 0x63, 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, 0x23, 0x0a, 0x06, 0x61, 0x6d, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e,
	0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91,
	0x01, 0x0a, 0x08, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73,
	0x63, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x63, 0x69, 0x64, 0x12,
	0x25, 0x0a, 0x07, 0x66, 0x65, 0x65, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x66,
	0x65, 0x65, 0x62, 0x61, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x65, 0x65, 0x70, 0x72, 0x6f,
	0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x66, 0x65, 0x65, 0x70, 0x72, 0x6f, 0x70,
	0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x64, 0x65, 0x6c,
	0x74, 0x61, 0x22, 0x2e, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x68, 0x69, 0x6e, 0x74, 0x12,
	0x21, 0x0a, 0x04, 0x68, 0x6f, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e,
	0x63, 0x6c, 0x6e, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x6f, 0x70, 0x52, 0x04, 0x68, 0x6f,
	0x70, 0x73, 0x22, 0x35, 0x0a, 0x0d, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x68, 0x69, 0x6e, 0x74, 0x4c,
	0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x05, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x68, 0x69,
	0x6e, 0x74, 0x52, 0x05, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x22, 0xef, 0x01, 0x0a, 0x0e, 0x44, 0x65,
	0x63, 0x6f, 0x64, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x6f, 0x70, 0x12, 0x16, 0x0a, 0x06,
	0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x75,
	0x62, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
	0x73, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x2f,
	0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75,
	0x6e, 0x74, 0x52, 0x0b, 0x66, 0x65, 0x65, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x73, 0x61, 0x74, 0x12,
	0x3e, 0x0a, 0x1b, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f,
	0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x19, 0x66, 0x65, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74,
	0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x12,
	0x2a, 0x0a, 0x11, 0x63, 0x6c, 0x74, 0x76, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x64,
	0x65, 0x6c, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6c, 0x74, 0x76,
	0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x22, 0x3a, 0x0a, 0x0f, 0x44,
	0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x68, 0x69, 0x6e, 0x74, 0x12, 0x27,
	0x0a, 0x04, 0x68, 0x6f, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63,
	0x6c, 0x6e, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x6f,
	0x70, 0x52, 0x04, 0x68, 0x6f, 0x70, 0x73, 0x22, 0x41, 0x0a, 0x13, 0x44, 0x65, 0x63, 0x6f, 0x64,
	0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x68, 0x69, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a,
	0x0a, 0x05, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,
	0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x68,
	0x69, 0x6e, 0x74, 0x52, 0x05, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x34, 0x0a, 0x08, 0x54, 0x6c,
	0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x22, 0x34, 0x0a, 0x09, 0x54, 0x6c, 0x76, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x27, 0x0a,
	0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d,
	0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x54, 0x6c, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65,
	0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2a, 0x24, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65,
	0x6c, 0x53, 0x69, 0x64, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x00,
	0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x10, 0x01, 0x2a, 0xa0, 0x02, 0x0a,
	0x0c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0c, 0x0a,
	0x08, 0x4f, 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x64, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x43,
	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x41, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x4c,
	0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x6e,
	0x65, 0x6c, 0x64, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x43,
	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x53, 0x68, 0x75, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x44,
	0x6f, 0x77, 0x6e, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67,
	0x64, 0x53, 0x69, 0x67, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x04, 0x12, 0x14,
	0x0a, 0x10, 0x43, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65,
	0x74, 0x65, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67,
	0x55, 0x6e, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10,
	0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x65, 0x6e,
	0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x6e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x10, 0x08, 0x12,
	0x15, 0x0a, 0x11, 0x44, 0x75, 0x61, 0x6c, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x4f, 0x70, 0x65, 0x6e,
	0x49, 0x6e, 0x69, 0x74, 0x10, 0x09, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x75, 0x61, 0x6c, 0x6f, 0x70,
	0x65, 0x6e, 0x64, 0x41, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x63, 0x6b, 0x69,
	0x6e, 0x10, 0x0a, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x41,
	0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x10, 0x0b, 0x2a,
	0xd5, 0x03, 0x0a, 0x09, 0x48, 0x74, 0x6c, 0x63, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a,
	0x0b, 0x53, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x48, 0x74, 0x6c, 0x63, 0x10, 0x00, 0x12, 0x11,
	0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10,
	0x01, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x63, 0x76, 0x64, 0x41, 0x64, 0x64, 0x52, 0x65, 0x76, 0x6f,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x63, 0x76, 0x64,
	0x41, 0x64, 0x64, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x03, 0x12, 0x18,
	0x0a, 0x14, 0x53, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x41, 0x63, 0x6b, 0x52, 0x65, 0x76, 0x6f,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x63, 0x76, 0x64,
	0x41, 0x64, 0x64, 0x41, 0x63, 0x6b, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x63, 0x76, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65,
	0x48, 0x74, 0x6c, 0x63, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x63, 0x76, 0x64, 0x52, 0x65,
	0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14,
	0x53, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x74, 0x52, 0x65,
	0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x09, 0x12,
	0x1b, 0x0a, 0x17, 0x52, 0x63, 0x76, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6b,
	0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b,
	0x52, 0x63, 0x76, 0x64, 0x41, 0x64, 0x64, 0x48, 0x74, 0x6c, 0x63, 0x10, 0x0b, 0x12, 0x11, 0x0a,
	0x0d, 0x52, 0x63, 0x76, 0x64, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x0c,
	0x12, 0x15, 0x0a, 0x11, 0x53, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x52, 0x65, 0x76, 0x6f, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x0d, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x74, 0x41,
	0x64, 0x64, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x0e, 0x12, 0x12, 0x0a,
	0x0e, 0x53, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x74, 0x6c, 0x63, 0x10,
	0x0f, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43,
	0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x10, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x63, 0x76, 0x64, 0x52,
	0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10,
	0x11, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x63, 0x76, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41,
	0x63, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x12, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x65,
	0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6b, 0x52, 0x65, 0x76, 0x6f, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x13, 0x2a, 0xa2, 0x01, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e,
	0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x73,
	0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x6b, 0x65, 0x79, 0x5f,
	0x65, 0x76, 0x65, 0x6e, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72,
	0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x10, 0x01, 0x12,
	0x21, 0x0a, 0x1d, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x5f, 0x7a, 0x65, 0x72, 0x6f, 0x5f,
	0x66, 0x65, 0x65, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x74, 0x78, 0x5f, 0x65, 0x76, 0x65, 0x6e,
	0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x73, 0x63, 0x69, 0x64, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73,
	0x5f, 0x65, 0x76, 0x65, 0x6e, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x7a, 0x65, 0x72, 0x6f, 0x63,
	0x6f, 0x6e, 0x66, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x61, 0x6e,
	0x63, 0x68, 0x6f, 0x72, 0x73, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x10, 0x05, 0x2a, 0x89, 0x01, 0x0a,
	0x12, 0x41, 0x75, 0x74, 0x6f, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73,
	0x74, 0x65, 0x6d, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44,
	0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x53, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x41,
	0x49, 0x4c, 0x45, 0x44, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x53, 0x10, 0x01, 0x12, 0x11,
	0x0a, 0x0d, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x50, 0x41, 0x59, 0x53, 0x10,
	0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x50, 0x41, 0x59, 0x53, 0x10,
	0x03, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x41, 0x49, 0x44, 0x49, 0x4e, 0x56, 0x4f, 0x49, 0x43, 0x45,
	0x53, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x49, 0x4e,
	0x56, 0x4f, 0x49, 0x43, 0x45, 0x53, 0x10, 0x05, 0x2a, 0x4b, 0x0a, 0x10, 0x50, 0x6c, 0x75, 0x67,
	0x69, 0x6e, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x09, 0x0a, 0x05,
	0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x54, 0x4f, 0x50, 0x10,
	0x01, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x53, 0x43, 0x41, 0x4e, 0x10, 0x02, 0x12, 0x0c, 0x0a,
	0x08, 0x53, 0x54, 0x41, 0x52, 0x54, 0x44, 0x49, 0x52, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x4c,
	0x49, 0x53, 0x54, 0x10, 0x04, 0x42, 0x7e, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6c, 0x6e,
	0x42, 0x0f, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74,
	0x6f, 0x50, 0x01, 0x5a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
	0x41, 0x72, 0x6b, 0x4c, 0x61, 0x62, 0x73, 0x48, 0x51, 0x2f, 0x66, 0x75, 0x6c, 0x6d, 0x69, 0x6e,
	0x65, 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x63, 0x6c, 0x6e, 0xa2, 0x02, 0x03, 0x43, 0x58,
	0x58, 0xaa, 0x02, 0x03, 0x43, 0x6c, 0x6e, 0xca, 0x02, 0x03, 0x43, 0x6c, 0x6e, 0xe2, 0x02, 0x0f,
	0x43, 0x6c, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea,
	0x02, 0x03, 0x43, 0x6c, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_cln_primitives_proto_rawDescOnce sync.Once
	file_cln_primitives_proto_rawDescData = file_cln_primitives_proto_rawDesc
)

func file_cln_primitives_proto_rawDescGZIP() []byte {
	file_cln_primitives_proto_rawDescOnce.Do(func() {
		file_cln_primitives_proto_rawDescData = protoimpl.X.CompressGZIP(file_cln_primitives_proto_rawDescData)
	})
	return file_cln_primitives_proto_rawDescData
}

var file_cln_primitives_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
var file_cln_primitives_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
var file_cln_primitives_proto_goTypes = []interface{}{
	(ChannelSide)(0),                // 0: cln.ChannelSide
	(ChannelState)(0),               // 1: cln.ChannelState
	(HtlcState)(0),                  // 2: cln.HtlcState
	(ChannelTypeName)(0),            // 3: cln.ChannelTypeName
	(AutocleanSubsystem)(0),         // 4: cln.AutocleanSubsystem
	(PluginSubcommand)(0),           // 5: cln.PluginSubcommand
	(*Amount)(nil),                  // 6: cln.Amount
	(*AmountOrAll)(nil),             // 7: cln.AmountOrAll
	(*AmountOrAny)(nil),             // 8: cln.AmountOrAny
	(*ChannelStateChangeCause)(nil), // 9: cln.ChannelStateChangeCause
	(*Outpoint)(nil),                // 10: cln.Outpoint
	(*Feerate)(nil),                 // 11: cln.Feerate
	(*OutputDesc)(nil),              // 12: cln.OutputDesc
	(*RouteHop)(nil),                // 13: cln.RouteHop
	(*Routehint)(nil),               // 14: cln.Routehint
	(*RoutehintList)(nil),           // 15: cln.RoutehintList
	(*DecodeRouteHop)(nil),          // 16: cln.DecodeRouteHop
	(*DecodeRoutehint)(nil),         // 17: cln.DecodeRoutehint
	(*DecodeRoutehintList)(nil),     // 18: cln.DecodeRoutehintList
	(*TlvEntry)(nil),                // 19: cln.TlvEntry
	(*TlvStream)(nil),               // 20: cln.TlvStream
}
var file_cln_primitives_proto_depIdxs = []int32{
	6,  // 0: cln.AmountOrAll.amount:type_name -> cln.Amount
	6,  // 1: cln.AmountOrAny.amount:type_name -> cln.Amount
	6,  // 2: cln.OutputDesc.amount:type_name -> cln.Amount
	6,  // 3: cln.RouteHop.feebase:type_name -> cln.Amount
	13, // 4: cln.Routehint.hops:type_name -> cln.RouteHop
	14, // 5: cln.RoutehintList.hints:type_name -> cln.Routehint
	6,  // 6: cln.DecodeRouteHop.fee_base_msat:type_name -> cln.Amount
	16, // 7: cln.DecodeRoutehint.hops:type_name -> cln.DecodeRouteHop
	17, // 8: cln.DecodeRoutehintList.hints:type_name -> cln.DecodeRoutehint
	19, // 9: cln.TlvStream.entries:type_name -> cln.TlvEntry
	10, // [10:10] is the sub-list for method output_type
	10, // [10:10] is the sub-list for method input_type
	10, // [10:10] is the sub-list for extension type_name
	10, // [10:10] is the sub-list for extension extendee
	0,  // [0:10] is the sub-list for field type_name
}

func init() { file_cln_primitives_proto_init() }
func file_cln_primitives_proto_init() {
	if File_cln_primitives_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_cln_primitives_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Amount); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_cln_primitives_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AmountOrAll); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_cln_primitives_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AmountOrAny); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_cln_primitives_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ChannelStateChangeCause); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_cln_primitives_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Outpoint); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_cln_primitives_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Feerate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_cln_primitives_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OutputDesc); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_cln_primitives_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RouteHop); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_cln_primitives_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Routehint); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_cln_primitives_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoutehintList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_cln_primitives_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DecodeRouteHop); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_cln_primitives_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DecodeRoutehint); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_cln_primitives_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DecodeRoutehintList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_cln_primitives_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TlvEntry); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_cln_primitives_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TlvStream); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_cln_primitives_proto_msgTypes[1].OneofWrappers = []interface{}{
		(*AmountOrAll_Amount)(nil),
		(*AmountOrAll_All)(nil),
	}
	file_cln_primitives_proto_msgTypes[2].OneofWrappers = []interface{}{
		(*AmountOrAny_Amount)(nil),
		(*AmountOrAny_Any)(nil),
	}
	file_cln_primitives_proto_msgTypes[5].OneofWrappers = []interface{}{
		(*Feerate_Slow)(nil),
		(*Feerate_Normal)(nil),
		(*Feerate_Urgent)(nil),
		(*Feerate_Perkb)(nil),
		(*Feerate_Perkw)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_cln_primitives_proto_rawDesc,
			NumEnums:      6,
			NumMessages:   15,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_cln_primitives_proto_goTypes,
		DependencyIndexes: file_cln_primitives_proto_depIdxs,
		EnumInfos:         file_cln_primitives_proto_enumTypes,
		MessageInfos:      file_cln_primitives_proto_msgTypes,
	}.Build()
	File_cln_primitives_proto = out.File
	file_cln_primitives_proto_rawDesc = nil
	file_cln_primitives_proto_goTypes = nil
	file_cln_primitives_proto_depIdxs = nil
}
