// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.24.0
// 	protoc        v3.13.0
// source: fido2.proto

package fido2

import (
	_ "github.com/alta/protopatch/patch/gopb"
	proto "github.com/golang/protobuf/proto"
	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 DeviceType int32

const (
	UnknownDevice DeviceType = 0
	U2FDevice     DeviceType = 1
	FIDO2Device   DeviceType = 2
)

// Enum value maps for DeviceType.
var (
	DeviceType_name = map[int32]string{
		0: "UNKNOWN_DEVICE",
		1: "U2F_DEVICE",
		2: "FIDO2_DEVICE",
	}
	DeviceType_value = map[string]int32{
		"UNKNOWN_DEVICE": 0,
		"U2F_DEVICE":     1,
		"FIDO2_DEVICE":   2,
	}
)

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

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

func (DeviceType) Descriptor() protoreflect.EnumDescriptor {
	return file_fido2_proto_enumTypes[0].Descriptor()
}

func (DeviceType) Type() protoreflect.EnumType {
	return &file_fido2_proto_enumTypes[0]
}

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

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

type OptionValue int32

const (
	Default OptionValue = 0
	True    OptionValue = 1
	False   OptionValue = 2
)

// Enum value maps for OptionValue.
var (
	OptionValue_name = map[int32]string{
		0: "DEFAULT_OPTION",
		1: "TRUE",
		2: "FALSE",
	}
	OptionValue_value = map[string]int32{
		"DEFAULT_OPTION": 0,
		"TRUE":           1,
		"FALSE":          2,
	}
)

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

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

func (OptionValue) Descriptor() protoreflect.EnumDescriptor {
	return file_fido2_proto_enumTypes[1].Descriptor()
}

func (OptionValue) Type() protoreflect.EnumType {
	return &file_fido2_proto_enumTypes[1]
}

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

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

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

	Path         string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	ProductID    int32  `protobuf:"varint,2,opt,name=productId,proto3" json:"productId,omitempty"`
	VendorID     int32  `protobuf:"varint,3,opt,name=vendorId,proto3" json:"vendorId,omitempty"`
	Manufacturer string `protobuf:"bytes,4,opt,name=manufacturer,proto3" json:"manufacturer,omitempty"`
	Product      string `protobuf:"bytes,5,opt,name=product,proto3" json:"product,omitempty"`
}

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

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

func (*Device) ProtoMessage() {}

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

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

func (x *Device) GetProductID() int32 {
	if x != nil {
		return x.ProductID
	}
	return 0
}

func (x *Device) GetVendorID() int32 {
	if x != nil {
		return x.VendorID
	}
	return 0
}

func (x *Device) GetManufacturer() string {
	if x != nil {
		return x.Manufacturer
	}
	return ""
}

func (x *Device) GetProduct() string {
	if x != nil {
		return x.Product
	}
	return ""
}

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

	Name  string      `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Value OptionValue `protobuf:"varint,2,opt,name=value,proto3,enum=fido2.OptionValue" json:"value,omitempty"`
}

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

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

func (*Option) ProtoMessage() {}

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

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

func (x *Option) GetValue() OptionValue {
	if x != nil {
		return x.Value
	}
	return Default
}

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

	Versions   []string  `protobuf:"bytes,1,rep,name=versions,proto3" json:"versions,omitempty"`
	Extensions []string  `protobuf:"bytes,2,rep,name=extensions,proto3" json:"extensions,omitempty"`
	AAGUID     string    `protobuf:"bytes,3,opt,name=aaguid,proto3" json:"aaguid,omitempty"`
	Options    []*Option `protobuf:"bytes,4,rep,name=options,proto3" json:"options,omitempty"`
}

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

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

func (*DeviceInfo) ProtoMessage() {}

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

func (x *DeviceInfo) GetVersions() []string {
	if x != nil {
		return x.Versions
	}
	return nil
}

func (x *DeviceInfo) GetExtensions() []string {
	if x != nil {
		return x.Extensions
	}
	return nil
}

func (x *DeviceInfo) GetAAGUID() string {
	if x != nil {
		return x.AAGUID
	}
	return ""
}

func (x *DeviceInfo) GetOptions() []*Option {
	if x != nil {
		return x.Options
	}
	return nil
}

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

	ID   string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

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

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

func (*RelyingParty) ProtoMessage() {}

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

func (x *RelyingParty) GetID() string {
	if x != nil {
		return x.ID
	}
	return ""
}

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

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

	ID          []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name        string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	DisplayName string `protobuf:"bytes,3,opt,name=displayName,proto3" json:"displayName,omitempty"`
	Icon        string `protobuf:"bytes,4,opt,name=icon,proto3" json:"icon,omitempty"`
}

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

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

func (*User) ProtoMessage() {}

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

func (x *User) GetID() []byte {
	if x != nil {
		return x.ID
	}
	return nil
}

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

func (x *User) GetDisplayName() string {
	if x != nil {
		return x.DisplayName
	}
	return ""
}

func (x *User) GetIcon() string {
	if x != nil {
		return x.Icon
	}
	return ""
}

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

	ClientDataHash []byte `protobuf:"bytes,1,opt,name=clientDataHash,proto3" json:"clientDataHash,omitempty"`
	AuthData       []byte `protobuf:"bytes,2,opt,name=authData,proto3" json:"authData,omitempty"`
	CredentialID   []byte `protobuf:"bytes,3,opt,name=credentialId,proto3" json:"credentialId,omitempty"`
	CredentialType string `protobuf:"bytes,4,opt,name=credentialType,proto3" json:"credentialType,omitempty"`
	PubKey         []byte `protobuf:"bytes,5,opt,name=pubKey,proto3" json:"pubKey,omitempty"`
	Cert           []byte `protobuf:"bytes,6,opt,name=cert,proto3" json:"cert,omitempty"`
	Sig            []byte `protobuf:"bytes,7,opt,name=sig,proto3" json:"sig,omitempty"`
	Format         string `protobuf:"bytes,8,opt,name=format,proto3" json:"format,omitempty"`
}

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

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

func (*Attestation) ProtoMessage() {}

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

func (x *Attestation) GetClientDataHash() []byte {
	if x != nil {
		return x.ClientDataHash
	}
	return nil
}

func (x *Attestation) GetAuthData() []byte {
	if x != nil {
		return x.AuthData
	}
	return nil
}

func (x *Attestation) GetCredentialID() []byte {
	if x != nil {
		return x.CredentialID
	}
	return nil
}

func (x *Attestation) GetCredentialType() string {
	if x != nil {
		return x.CredentialType
	}
	return ""
}

func (x *Attestation) GetPubKey() []byte {
	if x != nil {
		return x.PubKey
	}
	return nil
}

func (x *Attestation) GetCert() []byte {
	if x != nil {
		return x.Cert
	}
	return nil
}

func (x *Attestation) GetSig() []byte {
	if x != nil {
		return x.Sig
	}
	return nil
}

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

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

	ID   []byte        `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Type string        `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	RP   *RelyingParty `protobuf:"bytes,10,opt,name=rp,proto3" json:"rp,omitempty"`
	User *User         `protobuf:"bytes,11,opt,name=user,proto3" json:"user,omitempty"`
}

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

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

func (*Credential) ProtoMessage() {}

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

func (x *Credential) GetID() []byte {
	if x != nil {
		return x.ID
	}
	return nil
}

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

func (x *Credential) GetRP() *RelyingParty {
	if x != nil {
		return x.RP
	}
	return nil
}

func (x *Credential) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

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

	AuthData   []byte `protobuf:"bytes,1,opt,name=authData,proto3" json:"authData,omitempty"`
	Sig        []byte `protobuf:"bytes,2,opt,name=sig,proto3" json:"sig,omitempty"`
	HMACSecret []byte `protobuf:"bytes,3,opt,name=hmacSecret,proto3" json:"hmacSecret,omitempty"`
}

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

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

func (*Assertion) ProtoMessage() {}

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

func (x *Assertion) GetAuthData() []byte {
	if x != nil {
		return x.AuthData
	}
	return nil
}

func (x *Assertion) GetSig() []byte {
	if x != nil {
		return x.Sig
	}
	return nil
}

func (x *Assertion) GetHMACSecret() []byte {
	if x != nil {
		return x.HMACSecret
	}
	return nil
}

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

	RKExisting  int32 `protobuf:"varint,1,opt,name=rkExisting,proto3" json:"rkExisting,omitempty"`
	RKRemaining int32 `protobuf:"varint,2,opt,name=rkRemaining,proto3" json:"rkRemaining,omitempty"`
}

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

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

func (*CredentialsInfo) ProtoMessage() {}

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

func (x *CredentialsInfo) GetRKExisting() int32 {
	if x != nil {
		return x.RKExisting
	}
	return 0
}

func (x *CredentialsInfo) GetRKRemaining() int32 {
	if x != nil {
		return x.RKRemaining
	}
	return 0
}

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

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

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

func (*DevicesRequest) ProtoMessage() {}

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

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

	Devices []*Device `protobuf:"bytes,1,rep,name=devices,proto3" json:"devices,omitempty"`
}

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

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

func (*DevicesResponse) ProtoMessage() {}

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

func (x *DevicesResponse) GetDevices() []*Device {
	if x != nil {
		return x.Devices
	}
	return nil
}

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

	Device string `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
}

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

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

func (*DeviceTypeRequest) ProtoMessage() {}

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

func (x *DeviceTypeRequest) GetDevice() string {
	if x != nil {
		return x.Device
	}
	return ""
}

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

	Type DeviceType `protobuf:"varint,1,opt,name=type,proto3,enum=fido2.DeviceType" json:"type,omitempty"`
}

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

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

func (*DeviceTypeResponse) ProtoMessage() {}

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

func (x *DeviceTypeResponse) GetType() DeviceType {
	if x != nil {
		return x.Type
	}
	return UnknownDevice
}

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

	Device string `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
}

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

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

func (*DeviceInfoRequest) ProtoMessage() {}

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

func (x *DeviceInfoRequest) GetDevice() string {
	if x != nil {
		return x.Device
	}
	return ""
}

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

	Info *DeviceInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
}

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

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

func (*DeviceInfoResponse) ProtoMessage() {}

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

func (x *DeviceInfoResponse) GetInfo() *DeviceInfo {
	if x != nil {
		return x.Info
	}
	return nil
}

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

	Device         string        `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
	ClientDataHash []byte        `protobuf:"bytes,2,opt,name=clientDataHash,proto3" json:"clientDataHash,omitempty"`
	RP             *RelyingParty `protobuf:"bytes,3,opt,name=rp,proto3" json:"rp,omitempty"`
	User           *User         `protobuf:"bytes,4,opt,name=user,proto3" json:"user,omitempty"`
	Type           string        `protobuf:"bytes,5,opt,name=type,proto3" json:"type,omitempty"`
	PIN            string        `protobuf:"bytes,6,opt,name=pin,proto3" json:"pin,omitempty"`
	Extensions     []string      `protobuf:"bytes,100,rep,name=extensions,proto3" json:"extensions,omitempty"`
	RK             string        `protobuf:"bytes,101,opt,name=rk,proto3" json:"rk,omitempty"`
	UV             string        `protobuf:"bytes,102,opt,name=uv,proto3" json:"uv,omitempty"`
}

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

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

func (*MakeCredentialRequest) ProtoMessage() {}

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

func (x *MakeCredentialRequest) GetDevice() string {
	if x != nil {
		return x.Device
	}
	return ""
}

func (x *MakeCredentialRequest) GetClientDataHash() []byte {
	if x != nil {
		return x.ClientDataHash
	}
	return nil
}

func (x *MakeCredentialRequest) GetRP() *RelyingParty {
	if x != nil {
		return x.RP
	}
	return nil
}

func (x *MakeCredentialRequest) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

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

func (x *MakeCredentialRequest) GetPIN() string {
	if x != nil {
		return x.PIN
	}
	return ""
}

func (x *MakeCredentialRequest) GetExtensions() []string {
	if x != nil {
		return x.Extensions
	}
	return nil
}

func (x *MakeCredentialRequest) GetRK() string {
	if x != nil {
		return x.RK
	}
	return ""
}

func (x *MakeCredentialRequest) GetUV() string {
	if x != nil {
		return x.UV
	}
	return ""
}

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

	Attestation *Attestation `protobuf:"bytes,1,opt,name=attestation,proto3" json:"attestation,omitempty"`
}

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

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

func (*MakeCredentialResponse) ProtoMessage() {}

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

func (x *MakeCredentialResponse) GetAttestation() *Attestation {
	if x != nil {
		return x.Attestation
	}
	return nil
}

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

	Device string `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
	PIN    string `protobuf:"bytes,2,opt,name=pin,proto3" json:"pin,omitempty"`
	OldPIN string `protobuf:"bytes,3,opt,name=oldPin,proto3" json:"oldPin,omitempty"`
}

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

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

func (*SetPINRequest) ProtoMessage() {}

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

func (x *SetPINRequest) GetDevice() string {
	if x != nil {
		return x.Device
	}
	return ""
}

func (x *SetPINRequest) GetPIN() string {
	if x != nil {
		return x.PIN
	}
	return ""
}

func (x *SetPINRequest) GetOldPIN() string {
	if x != nil {
		return x.OldPIN
	}
	return ""
}

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

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

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

func (*SetPINResponse) ProtoMessage() {}

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

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

	Device string `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
}

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

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

func (*ResetRequest) ProtoMessage() {}

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

func (x *ResetRequest) GetDevice() string {
	if x != nil {
		return x.Device
	}
	return ""
}

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

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

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

func (*ResetResponse) ProtoMessage() {}

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

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

	Device string `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
}

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

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

func (*RetryCountRequest) ProtoMessage() {}

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

func (x *RetryCountRequest) GetDevice() string {
	if x != nil {
		return x.Device
	}
	return ""
}

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

	Count int32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
}

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

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

func (*RetryCountResponse) ProtoMessage() {}

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

func (x *RetryCountResponse) GetCount() int32 {
	if x != nil {
		return x.Count
	}
	return 0
}

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

	Device         string   `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
	RPID           string   `protobuf:"bytes,2,opt,name=rpId,proto3" json:"rpId,omitempty"`
	ClientDataHash []byte   `protobuf:"bytes,3,opt,name=clientDataHash,proto3" json:"clientDataHash,omitempty"`
	CredentialID   []byte   `protobuf:"bytes,4,opt,name=credentialId,proto3" json:"credentialId,omitempty"`
	PIN            string   `protobuf:"bytes,5,opt,name=pin,proto3" json:"pin,omitempty"`
	Extensions     []string `protobuf:"bytes,100,rep,name=extensions,proto3" json:"extensions,omitempty"`
	UV             string   `protobuf:"bytes,101,opt,name=uv,proto3" json:"uv,omitempty"`
	UP             string   `protobuf:"bytes,102,opt,name=up,proto3" json:"up,omitempty"`
	HMACSalt       []byte   `protobuf:"bytes,103,opt,name=hmacSalt,proto3" json:"hmacSalt,omitempty"`
}

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

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

func (*AssertionRequest) ProtoMessage() {}

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

func (x *AssertionRequest) GetDevice() string {
	if x != nil {
		return x.Device
	}
	return ""
}

func (x *AssertionRequest) GetRPID() string {
	if x != nil {
		return x.RPID
	}
	return ""
}

func (x *AssertionRequest) GetClientDataHash() []byte {
	if x != nil {
		return x.ClientDataHash
	}
	return nil
}

func (x *AssertionRequest) GetCredentialID() []byte {
	if x != nil {
		return x.CredentialID
	}
	return nil
}

func (x *AssertionRequest) GetPIN() string {
	if x != nil {
		return x.PIN
	}
	return ""
}

func (x *AssertionRequest) GetExtensions() []string {
	if x != nil {
		return x.Extensions
	}
	return nil
}

func (x *AssertionRequest) GetUV() string {
	if x != nil {
		return x.UV
	}
	return ""
}

func (x *AssertionRequest) GetUP() string {
	if x != nil {
		return x.UP
	}
	return ""
}

func (x *AssertionRequest) GetHMACSalt() []byte {
	if x != nil {
		return x.HMACSalt
	}
	return nil
}

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

	Assertion *Assertion `protobuf:"bytes,1,opt,name=assertion,proto3" json:"assertion,omitempty"`
}

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

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

func (*AssertionResponse) ProtoMessage() {}

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

func (x *AssertionResponse) GetAssertion() *Assertion {
	if x != nil {
		return x.Assertion
	}
	return nil
}

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

	Device string `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
	PIN    string `protobuf:"bytes,2,opt,name=pin,proto3" json:"pin,omitempty"`
}

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

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

func (*CredentialsInfoRequest) ProtoMessage() {}

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

func (x *CredentialsInfoRequest) GetDevice() string {
	if x != nil {
		return x.Device
	}
	return ""
}

func (x *CredentialsInfoRequest) GetPIN() string {
	if x != nil {
		return x.PIN
	}
	return ""
}

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

	Info *CredentialsInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
}

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

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

func (*CredentialsInfoResponse) ProtoMessage() {}

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

func (x *CredentialsInfoResponse) GetInfo() *CredentialsInfo {
	if x != nil {
		return x.Info
	}
	return nil
}

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

	Device string `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
	RPID   string `protobuf:"bytes,2,opt,name=rpId,proto3" json:"rpId,omitempty"`
	PIN    string `protobuf:"bytes,3,opt,name=pin,proto3" json:"pin,omitempty"`
}

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

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

func (*CredentialsRequest) ProtoMessage() {}

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

func (x *CredentialsRequest) GetDevice() string {
	if x != nil {
		return x.Device
	}
	return ""
}

func (x *CredentialsRequest) GetRPID() string {
	if x != nil {
		return x.RPID
	}
	return ""
}

func (x *CredentialsRequest) GetPIN() string {
	if x != nil {
		return x.PIN
	}
	return ""
}

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

	Credentials []*Credential `protobuf:"bytes,1,rep,name=credentials,proto3" json:"credentials,omitempty"`
}

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

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

func (*CredentialsResponse) ProtoMessage() {}

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

func (x *CredentialsResponse) GetCredentials() []*Credential {
	if x != nil {
		return x.Credentials
	}
	return nil
}

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

	Device string `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
	PIN    string `protobuf:"bytes,2,opt,name=pin,proto3" json:"pin,omitempty"`
}

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

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

func (*RelyingPartiesRequest) ProtoMessage() {}

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

func (x *RelyingPartiesRequest) GetDevice() string {
	if x != nil {
		return x.Device
	}
	return ""
}

func (x *RelyingPartiesRequest) GetPIN() string {
	if x != nil {
		return x.PIN
	}
	return ""
}

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

	Parties []*RelyingParty `protobuf:"bytes,1,rep,name=parties,proto3" json:"parties,omitempty"`
}

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

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

func (*RelyingPartiesResponse) ProtoMessage() {}

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

func (x *RelyingPartiesResponse) GetParties() []*RelyingParty {
	if x != nil {
		return x.Parties
	}
	return nil
}

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

	Device         string        `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
	PIN            string        `protobuf:"bytes,2,opt,name=pin,proto3" json:"pin,omitempty"`
	ClientDataHash []byte        `protobuf:"bytes,10,opt,name=clientDataHash,proto3" json:"clientDataHash,omitempty"`
	RP             *RelyingParty `protobuf:"bytes,11,opt,name=rp,proto3" json:"rp,omitempty"`
	User           *User         `protobuf:"bytes,12,opt,name=user,proto3" json:"user,omitempty"`
	RK             OptionValue   `protobuf:"varint,20,opt,name=rk,proto3,enum=fido2.OptionValue" json:"rk,omitempty"`
}

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

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

func (*GenerateHMACSecretRequest) ProtoMessage() {}

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

func (x *GenerateHMACSecretRequest) GetDevice() string {
	if x != nil {
		return x.Device
	}
	return ""
}

func (x *GenerateHMACSecretRequest) GetPIN() string {
	if x != nil {
		return x.PIN
	}
	return ""
}

func (x *GenerateHMACSecretRequest) GetClientDataHash() []byte {
	if x != nil {
		return x.ClientDataHash
	}
	return nil
}

func (x *GenerateHMACSecretRequest) GetRP() *RelyingParty {
	if x != nil {
		return x.RP
	}
	return nil
}

func (x *GenerateHMACSecretRequest) GetUser() *User {
	if x != nil {
		return x.User
	}
	return nil
}

func (x *GenerateHMACSecretRequest) GetRK() OptionValue {
	if x != nil {
		return x.RK
	}
	return Default
}

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

	CredentialID []byte `protobuf:"bytes,2,opt,name=credentialId,proto3" json:"credentialId,omitempty"`
}

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

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

func (*GenerateHMACSecretResponse) ProtoMessage() {}

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

func (x *GenerateHMACSecretResponse) GetCredentialID() []byte {
	if x != nil {
		return x.CredentialID
	}
	return nil
}

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

	Device         string `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
	PIN            string `protobuf:"bytes,2,opt,name=pin,proto3" json:"pin,omitempty"`
	RPID           string `protobuf:"bytes,10,opt,name=rpId,proto3" json:"rpId,omitempty"`
	ClientDataHash []byte `protobuf:"bytes,11,opt,name=clientDataHash,proto3" json:"clientDataHash,omitempty"`
	CredentialID   []byte `protobuf:"bytes,12,opt,name=credentialId,proto3" json:"credentialId,omitempty"`
	Salt           []byte `protobuf:"bytes,13,opt,name=salt,proto3" json:"salt,omitempty"`
}

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

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

func (*HMACSecretRequest) ProtoMessage() {}

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

func (x *HMACSecretRequest) GetDevice() string {
	if x != nil {
		return x.Device
	}
	return ""
}

func (x *HMACSecretRequest) GetPIN() string {
	if x != nil {
		return x.PIN
	}
	return ""
}

func (x *HMACSecretRequest) GetRPID() string {
	if x != nil {
		return x.RPID
	}
	return ""
}

func (x *HMACSecretRequest) GetClientDataHash() []byte {
	if x != nil {
		return x.ClientDataHash
	}
	return nil
}

func (x *HMACSecretRequest) GetCredentialID() []byte {
	if x != nil {
		return x.CredentialID
	}
	return nil
}

func (x *HMACSecretRequest) GetSalt() []byte {
	if x != nil {
		return x.Salt
	}
	return nil
}

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

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

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

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

func (*HMACSecretResponse) ProtoMessage() {}

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

func (x *HMACSecretResponse) GetHMACSecret() []byte {
	if x != nil {
		return x.HMACSecret
	}
	return nil
}

var File_fido2_proto protoreflect.FileDescriptor

var file_fido2_proto_rawDesc = []byte{
	0x0a, 0x0b, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x66,
	0x69, 0x64, 0x6f, 0x32, 0x1a, 0x0e, 0x70, 0x61, 0x74, 0x63, 0x68, 0x2f, 0x67, 0x6f, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb5, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12,
	0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70,
	0x61, 0x74, 0x68, 0x12, 0x2d, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x0f, 0xca, 0xb5, 0x03, 0x0b, 0x0a, 0x09, 0x50, 0x72,
	0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
	0x49, 0x64, 0x12, 0x2a, 0x0a, 0x08, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x05, 0x42, 0x0e, 0xca, 0xb5, 0x03, 0x0a, 0x0a, 0x08, 0x56, 0x65, 0x6e, 0x64,
	0x6f, 0x72, 0x49, 0x44, 0x52, 0x08, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x22,
	0x0a, 0x0c, 0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, 0x72, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72,
	0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0x46, 0x0a, 0x06,
	0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x66, 0x69, 0x64, 0x6f,
	0x32, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49,
	0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12,
	0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12,
	0x24, 0x0a, 0x06, 0x61, 0x61, 0x67, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x0c, 0xca, 0xb5, 0x03, 0x08, 0x0a, 0x06, 0x41, 0x41, 0x47, 0x55, 0x49, 0x44, 0x52, 0x06, 0x61,
	0x61, 0x67, 0x75, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x4f,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x3c,
	0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x74, 0x79, 0x12, 0x18,
	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xca, 0xb5, 0x03, 0x04,
	0x0a, 0x02, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6a, 0x0a, 0x04,
	0x55, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c,
	0x42, 0x08, 0xca, 0xb5, 0x03, 0x04, 0x0a, 0x02, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12,
	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x87, 0x02, 0x0a, 0x0b, 0x41, 0x74, 0x74,
	0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x61, 0x73, 0x68,
	0x12, 0x1a, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x0c,
	0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0c, 0x42, 0x12, 0xca, 0xb5, 0x03, 0x0e, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e,
	0x74, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69,
	0x61, 0x6c, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69,
	0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72,
	0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06,
	0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x75,
	0x62, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x65, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x04, 0x63, 0x65, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f,
	0x72, 0x6d, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d,
	0x61, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61,
	0x6c, 0x12, 0x18, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x08, 0xca,
	0xb5, 0x03, 0x04, 0x0a, 0x02, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
	0x2d, 0x0a, 0x02, 0x72, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x69,
	0x64, 0x6f, 0x32, 0x2e, 0x52, 0x65, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x74, 0x79,
	0x42, 0x08, 0xca, 0xb5, 0x03, 0x04, 0x0a, 0x02, 0x52, 0x50, 0x52, 0x02, 0x72, 0x70, 0x12, 0x1f,
	0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x66,
	0x69, 0x64, 0x6f, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22,
	0x6b, 0x0a, 0x09, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08,
	0x61, 0x75, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08,
	0x61, 0x75, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x12, 0x30, 0x0a, 0x0a, 0x68, 0x6d,
	0x61, 0x63, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x10,
	0xca, 0xb5, 0x03, 0x0c, 0x0a, 0x0a, 0x48, 0x4d, 0x41, 0x43, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74,
	0x52, 0x0a, 0x68, 0x6d, 0x61, 0x63, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x78, 0x0a, 0x0f,
	0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12,
	0x30, 0x0a, 0x0a, 0x72, 0x6b, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x42, 0x10, 0xca, 0xb5, 0x03, 0x0c, 0x0a, 0x0a, 0x52, 0x4b, 0x45, 0x78, 0x69,
	0x73, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x72, 0x6b, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e,
	0x67, 0x12, 0x33, 0x0a, 0x0b, 0x72, 0x6b, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x11, 0xca, 0xb5, 0x03, 0x0d, 0x0a, 0x0b, 0x52, 0x4b,
	0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x72, 0x6b, 0x52, 0x65, 0x6d,
	0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x10, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3a, 0x0a, 0x0f, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x07, 0x64,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66,
	0x69, 0x64, 0x6f, 0x32, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x73, 0x22, 0x2b, 0x0a, 0x11, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79,
	0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x22, 0x3b, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x44, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2b,
	0x0a, 0x11, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x3b, 0x0a, 0x12, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x25, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x11, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0xac, 0x02, 0x0a, 0x15, 0x4d, 0x61, 0x6b,
	0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x61,
	0x73, 0x68, 0x12, 0x2d, 0x0a, 0x02, 0x72, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
	0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x52, 0x65, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x50, 0x61,
	0x72, 0x74, 0x79, 0x42, 0x08, 0xca, 0xb5, 0x03, 0x04, 0x0a, 0x02, 0x52, 0x50, 0x52, 0x02, 0x72,
	0x70, 0x12, 0x1f, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0b, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73,
	0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x09, 0xca, 0xb5, 0x03, 0x05, 0x0a, 0x03, 0x50, 0x49, 0x4e, 0x52, 0x03,
	0x70, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
	0x73, 0x18, 0x64, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
	0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x02, 0x72, 0x6b, 0x18, 0x65, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x08, 0xca, 0xb5, 0x03, 0x04, 0x0a, 0x02, 0x52, 0x4b, 0x52, 0x02, 0x72, 0x6b, 0x12, 0x18, 0x0a,
	0x02, 0x75, 0x76, 0x18, 0x66, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xca, 0xb5, 0x03, 0x04, 0x0a,
	0x02, 0x55, 0x56, 0x52, 0x02, 0x75, 0x76, 0x22, 0x4e, 0x0a, 0x16, 0x4d, 0x61, 0x6b, 0x65, 0x43,
	0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x34, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x41,
	0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x65,
	0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6a, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x50, 0x49,
	0x4e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x12, 0x1b, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xca,
	0xb5, 0x03, 0x05, 0x0a, 0x03, 0x50, 0x49, 0x4e, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x12, 0x24, 0x0a,
	0x06, 0x6f, 0x6c, 0x64, 0x50, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0c, 0xca,
	0xb5, 0x03, 0x08, 0x0a, 0x06, 0x4f, 0x6c, 0x64, 0x50, 0x49, 0x4e, 0x52, 0x06, 0x6f, 0x6c, 0x64,
	0x50, 0x69, 0x6e, 0x22, 0x10, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x50, 0x49, 0x4e, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x0f, 0x0a,
	0x0d, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b,
	0x0a, 0x11, 0x52, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x2a, 0x0a, 0x12, 0x52,
	0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc7, 0x02, 0x0a, 0x10, 0x41, 0x73, 0x73, 0x65,
	0x72, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x04, 0x72, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x0a, 0xca, 0xb5, 0x03, 0x06, 0x0a, 0x04, 0x52, 0x50, 0x49, 0x44, 0x52, 0x04,
	0x72, 0x70, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x61,
	0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x12, 0x36, 0x0a, 0x0c,
	0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x0c, 0x42, 0x12, 0xca, 0xb5, 0x03, 0x0e, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e,
	0x74, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69,
	0x61, 0x6c, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x09, 0xca, 0xb5, 0x03, 0x05, 0x0a, 0x03, 0x50, 0x49, 0x4e, 0x52, 0x03, 0x70, 0x69,
	0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18,
	0x64, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
	0x73, 0x12, 0x18, 0x0a, 0x02, 0x75, 0x76, 0x18, 0x65, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xca,
	0xb5, 0x03, 0x04, 0x0a, 0x02, 0x55, 0x56, 0x52, 0x02, 0x75, 0x76, 0x12, 0x18, 0x0a, 0x02, 0x75,
	0x70, 0x18, 0x66, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xca, 0xb5, 0x03, 0x04, 0x0a, 0x02, 0x55,
	0x50, 0x52, 0x02, 0x75, 0x70, 0x12, 0x2a, 0x0a, 0x08, 0x68, 0x6d, 0x61, 0x63, 0x53, 0x61, 0x6c,
	0x74, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x0e, 0xca, 0xb5, 0x03, 0x0a, 0x0a, 0x08, 0x48,
	0x4d, 0x41, 0x43, 0x53, 0x61, 0x6c, 0x74, 0x52, 0x08, 0x68, 0x6d, 0x61, 0x63, 0x53, 0x61, 0x6c,
	0x74, 0x22, 0x43, 0x0a, 0x11, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74,
	0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x69, 0x64, 0x6f,
	0x32, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x61, 0x73, 0x73,
	0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4d, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e,
	0x74, 0x69, 0x61, 0x6c, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xca, 0xb5, 0x03, 0x05, 0x0a, 0x03, 0x50, 0x49, 0x4e,
	0x52, 0x03, 0x70, 0x69, 0x6e, 0x22, 0x45, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74,
	0x69, 0x61, 0x6c, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x2a, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
	0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61,
	0x6c, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x69, 0x0a, 0x12,
	0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x04, 0x72, 0x70,
	0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xca, 0xb5, 0x03, 0x06, 0x0a, 0x04,
	0x52, 0x50, 0x49, 0x44, 0x52, 0x04, 0x72, 0x70, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x03, 0x70, 0x69,
	0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xca, 0xb5, 0x03, 0x05, 0x0a, 0x03, 0x50,
	0x49, 0x4e, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x22, 0x4a, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x64, 0x65,
	0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33,
	0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64,
	0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69,
	0x61, 0x6c, 0x73, 0x22, 0x4c, 0x0a, 0x15, 0x52, 0x65, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x50, 0x61,
	0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x09, 0xca, 0xb5, 0x03, 0x05, 0x0a, 0x03, 0x50, 0x49, 0x4e, 0x52, 0x03, 0x70, 0x69,
	0x6e, 0x22, 0x47, 0x0a, 0x16, 0x52, 0x65, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x74,
	0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x70,
	0x61, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66,
	0x69, 0x64, 0x6f, 0x32, 0x2e, 0x52, 0x65, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x74,
	0x79, 0x52, 0x07, 0x70, 0x61, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xf6, 0x01, 0x0a, 0x19, 0x47,
	0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x48, 0x4d, 0x41, 0x43, 0x53, 0x65, 0x63, 0x72, 0x65,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x12, 0x1b, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xca,
	0xb5, 0x03, 0x05, 0x0a, 0x03, 0x50, 0x49, 0x4e, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x12, 0x26, 0x0a,
	0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74,
	0x61, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2d, 0x0a, 0x02, 0x72, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x13, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x52, 0x65, 0x6c, 0x79, 0x69, 0x6e,
	0x67, 0x50, 0x61, 0x72, 0x74, 0x79, 0x42, 0x08, 0xca, 0xb5, 0x03, 0x04, 0x0a, 0x02, 0x52, 0x50,
	0x52, 0x02, 0x72, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52,
	0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x02, 0x72, 0x6b, 0x18, 0x14, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x12, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x08, 0xca, 0xb5, 0x03, 0x04, 0x0a, 0x02, 0x52, 0x4b, 0x52,
	0x02, 0x72, 0x6b, 0x22, 0x54, 0x0a, 0x1a, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x48,
	0x4d, 0x41, 0x43, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x36, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x12, 0xca, 0xb5, 0x03, 0x0e, 0x0a, 0x0c, 0x43,
	0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x52, 0x0c, 0x63, 0x72, 0x65,
	0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x22, 0xdc, 0x01, 0x0a, 0x11, 0x48, 0x4d,
	0x41, 0x43, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xca, 0xb5, 0x03, 0x05, 0x0a, 0x03, 0x50, 0x49, 0x4e, 0x52,
	0x03, 0x70, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x04, 0x72, 0x70, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x0a, 0xca, 0xb5, 0x03, 0x06, 0x0a, 0x04, 0x52, 0x50, 0x49, 0x44, 0x52, 0x04,
	0x72, 0x70, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x61,
	0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x12, 0x36, 0x0a, 0x0c,
	0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01,
	0x28, 0x0c, 0x42, 0x12, 0xca, 0xb5, 0x03, 0x0e, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e,
	0x74, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69,
	0x61, 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x18, 0x0d, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x22, 0x46, 0x0a, 0x12, 0x48, 0x4d, 0x41, 0x43,
	0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30,
	0x0a, 0x0a, 0x68, 0x6d, 0x61, 0x63, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0c, 0x42, 0x10, 0xca, 0xb5, 0x03, 0x0c, 0x0a, 0x0a, 0x48, 0x4d, 0x41, 0x43, 0x53, 0x65,
	0x63, 0x72, 0x65, 0x74, 0x52, 0x0a, 0x68, 0x6d, 0x61, 0x63, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74,
	0x2a, 0x8d, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x27, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43,
	0x45, 0x10, 0x00, 0x1a, 0x13, 0xca, 0xb5, 0x03, 0x0f, 0x0a, 0x0d, 0x55, 0x6e, 0x6b, 0x6e, 0x6f,
	0x77, 0x6e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x55, 0x32, 0x46, 0x5f,
	0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x10, 0x01, 0x1a, 0x0f, 0xca, 0xb5, 0x03, 0x0b, 0x0a, 0x09,
	0x55, 0x32, 0x46, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x46, 0x49, 0x44,
	0x4f, 0x32, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x10, 0x02, 0x1a, 0x11, 0xca, 0xb5, 0x03,
	0x0d, 0x0a, 0x0b, 0x46, 0x49, 0x44, 0x4f, 0x32, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x1a, 0x10,
	0xca, 0xb5, 0x03, 0x0c, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65,
	0x2a, 0x71, 0x0a, 0x0b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12,
	0x21, 0x0a, 0x0e, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f,
	0x4e, 0x10, 0x00, 0x1a, 0x0d, 0xca, 0xb5, 0x03, 0x09, 0x0a, 0x07, 0x44, 0x65, 0x66, 0x61, 0x75,
	0x6c, 0x74, 0x12, 0x14, 0x0a, 0x04, 0x54, 0x52, 0x55, 0x45, 0x10, 0x01, 0x1a, 0x0a, 0xca, 0xb5,
	0x03, 0x06, 0x0a, 0x04, 0x54, 0x72, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x46, 0x41, 0x4c, 0x53,
	0x45, 0x10, 0x02, 0x1a, 0x0b, 0xca, 0xb5, 0x03, 0x07, 0x0a, 0x05, 0x46, 0x61, 0x6c, 0x73, 0x65,
	0x1a, 0x11, 0xca, 0xb5, 0x03, 0x0d, 0x0a, 0x0b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x32, 0xa3, 0x07, 0x0a, 0x05, 0x46, 0x49, 0x44, 0x4f, 0x32, 0x12, 0x3a, 0x0a,
	0x07, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x15, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32,
	0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x16, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x19, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43,
	0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x2e, 0x66,
	0x69, 0x64, 0x6f, 0x32, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x4d, 0x61, 0x6b, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65,
	0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x1c, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x4d, 0x61,
	0x6b, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x4d, 0x61, 0x6b, 0x65,
	0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x06, 0x53, 0x65, 0x74, 0x50, 0x49, 0x4e, 0x12, 0x14,
	0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x49, 0x4e, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x53, 0x65, 0x74,
	0x50, 0x49, 0x4e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x34, 0x0a,
	0x05, 0x52, 0x65, 0x73, 0x65, 0x74, 0x12, 0x13, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x52,
	0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x66, 0x69,
	0x64, 0x6f, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x52, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x12, 0x18, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x66, 0x69,
	0x64, 0x6f, 0x32, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, 0x41, 0x73, 0x73, 0x65,
	0x72, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x41, 0x73,
	0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18,
	0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0f, 0x43, 0x72,
	0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e,
	0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c,
	0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x66,
	0x69, 0x64, 0x6f, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x46,
	0x0a, 0x0b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x19, 0x2e,
	0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c,
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32,
	0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x79, 0x69, 0x6e,
	0x67, 0x50, 0x61, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32,
	0x2e, 0x52, 0x65, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x52,
	0x65, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x12, 0x47, 0x65, 0x6e, 0x65, 0x72,
	0x61, 0x74, 0x65, 0x48, 0x4d, 0x41, 0x43, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x20, 0x2e,
	0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x48, 0x4d,
	0x41, 0x43, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x21, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65,
	0x48, 0x4d, 0x41, 0x43, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x48, 0x4d, 0x41, 0x43, 0x53, 0x65, 0x63, 0x72,
	0x65, 0x74, 0x12, 0x18, 0x2e, 0x66, 0x69, 0x64, 0x6f, 0x32, 0x2e, 0x48, 0x4d, 0x41, 0x43, 0x53,
	0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x66,
	0x69, 0x64, 0x6f, 0x32, 0x2e, 0x48, 0x4d, 0x41, 0x43, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x09, 0x5a, 0x07, 0x2e, 0x3b, 0x66,
	0x69, 0x64, 0x6f, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_fido2_proto_rawDescOnce sync.Once
	file_fido2_proto_rawDescData = file_fido2_proto_rawDesc
)

func file_fido2_proto_rawDescGZIP() []byte {
	file_fido2_proto_rawDescOnce.Do(func() {
		file_fido2_proto_rawDescData = protoimpl.X.CompressGZIP(file_fido2_proto_rawDescData)
	})
	return file_fido2_proto_rawDescData
}

var file_fido2_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_fido2_proto_msgTypes = make([]protoimpl.MessageInfo, 35)
var file_fido2_proto_goTypes = []interface{}{
	(DeviceType)(0),                    // 0: fido2.DeviceType
	(OptionValue)(0),                   // 1: fido2.OptionValue
	(*Device)(nil),                     // 2: fido2.Device
	(*Option)(nil),                     // 3: fido2.Option
	(*DeviceInfo)(nil),                 // 4: fido2.DeviceInfo
	(*RelyingParty)(nil),               // 5: fido2.RelyingParty
	(*User)(nil),                       // 6: fido2.User
	(*Attestation)(nil),                // 7: fido2.Attestation
	(*Credential)(nil),                 // 8: fido2.Credential
	(*Assertion)(nil),                  // 9: fido2.Assertion
	(*CredentialsInfo)(nil),            // 10: fido2.CredentialsInfo
	(*DevicesRequest)(nil),             // 11: fido2.DevicesRequest
	(*DevicesResponse)(nil),            // 12: fido2.DevicesResponse
	(*DeviceTypeRequest)(nil),          // 13: fido2.DeviceTypeRequest
	(*DeviceTypeResponse)(nil),         // 14: fido2.DeviceTypeResponse
	(*DeviceInfoRequest)(nil),          // 15: fido2.DeviceInfoRequest
	(*DeviceInfoResponse)(nil),         // 16: fido2.DeviceInfoResponse
	(*MakeCredentialRequest)(nil),      // 17: fido2.MakeCredentialRequest
	(*MakeCredentialResponse)(nil),     // 18: fido2.MakeCredentialResponse
	(*SetPINRequest)(nil),              // 19: fido2.SetPINRequest
	(*SetPINResponse)(nil),             // 20: fido2.SetPINResponse
	(*ResetRequest)(nil),               // 21: fido2.ResetRequest
	(*ResetResponse)(nil),              // 22: fido2.ResetResponse
	(*RetryCountRequest)(nil),          // 23: fido2.RetryCountRequest
	(*RetryCountResponse)(nil),         // 24: fido2.RetryCountResponse
	(*AssertionRequest)(nil),           // 25: fido2.AssertionRequest
	(*AssertionResponse)(nil),          // 26: fido2.AssertionResponse
	(*CredentialsInfoRequest)(nil),     // 27: fido2.CredentialsInfoRequest
	(*CredentialsInfoResponse)(nil),    // 28: fido2.CredentialsInfoResponse
	(*CredentialsRequest)(nil),         // 29: fido2.CredentialsRequest
	(*CredentialsResponse)(nil),        // 30: fido2.CredentialsResponse
	(*RelyingPartiesRequest)(nil),      // 31: fido2.RelyingPartiesRequest
	(*RelyingPartiesResponse)(nil),     // 32: fido2.RelyingPartiesResponse
	(*GenerateHMACSecretRequest)(nil),  // 33: fido2.GenerateHMACSecretRequest
	(*GenerateHMACSecretResponse)(nil), // 34: fido2.GenerateHMACSecretResponse
	(*HMACSecretRequest)(nil),          // 35: fido2.HMACSecretRequest
	(*HMACSecretResponse)(nil),         // 36: fido2.HMACSecretResponse
}
var file_fido2_proto_depIdxs = []int32{
	1,  // 0: fido2.Option.value:type_name -> fido2.OptionValue
	3,  // 1: fido2.DeviceInfo.options:type_name -> fido2.Option
	5,  // 2: fido2.Credential.rp:type_name -> fido2.RelyingParty
	6,  // 3: fido2.Credential.user:type_name -> fido2.User
	2,  // 4: fido2.DevicesResponse.devices:type_name -> fido2.Device
	0,  // 5: fido2.DeviceTypeResponse.type:type_name -> fido2.DeviceType
	4,  // 6: fido2.DeviceInfoResponse.info:type_name -> fido2.DeviceInfo
	5,  // 7: fido2.MakeCredentialRequest.rp:type_name -> fido2.RelyingParty
	6,  // 8: fido2.MakeCredentialRequest.user:type_name -> fido2.User
	7,  // 9: fido2.MakeCredentialResponse.attestation:type_name -> fido2.Attestation
	9,  // 10: fido2.AssertionResponse.assertion:type_name -> fido2.Assertion
	10, // 11: fido2.CredentialsInfoResponse.info:type_name -> fido2.CredentialsInfo
	8,  // 12: fido2.CredentialsResponse.credentials:type_name -> fido2.Credential
	5,  // 13: fido2.RelyingPartiesResponse.parties:type_name -> fido2.RelyingParty
	5,  // 14: fido2.GenerateHMACSecretRequest.rp:type_name -> fido2.RelyingParty
	6,  // 15: fido2.GenerateHMACSecretRequest.user:type_name -> fido2.User
	1,  // 16: fido2.GenerateHMACSecretRequest.rk:type_name -> fido2.OptionValue
	11, // 17: fido2.FIDO2.Devices:input_type -> fido2.DevicesRequest
	15, // 18: fido2.FIDO2.DeviceInfo:input_type -> fido2.DeviceInfoRequest
	13, // 19: fido2.FIDO2.DeviceType:input_type -> fido2.DeviceTypeRequest
	17, // 20: fido2.FIDO2.MakeCredential:input_type -> fido2.MakeCredentialRequest
	19, // 21: fido2.FIDO2.SetPIN:input_type -> fido2.SetPINRequest
	21, // 22: fido2.FIDO2.Reset:input_type -> fido2.ResetRequest
	23, // 23: fido2.FIDO2.RetryCount:input_type -> fido2.RetryCountRequest
	25, // 24: fido2.FIDO2.Assertion:input_type -> fido2.AssertionRequest
	27, // 25: fido2.FIDO2.CredentialsInfo:input_type -> fido2.CredentialsInfoRequest
	29, // 26: fido2.FIDO2.Credentials:input_type -> fido2.CredentialsRequest
	31, // 27: fido2.FIDO2.RelyingParties:input_type -> fido2.RelyingPartiesRequest
	33, // 28: fido2.FIDO2.GenerateHMACSecret:input_type -> fido2.GenerateHMACSecretRequest
	35, // 29: fido2.FIDO2.HMACSecret:input_type -> fido2.HMACSecretRequest
	12, // 30: fido2.FIDO2.Devices:output_type -> fido2.DevicesResponse
	16, // 31: fido2.FIDO2.DeviceInfo:output_type -> fido2.DeviceInfoResponse
	14, // 32: fido2.FIDO2.DeviceType:output_type -> fido2.DeviceTypeResponse
	18, // 33: fido2.FIDO2.MakeCredential:output_type -> fido2.MakeCredentialResponse
	20, // 34: fido2.FIDO2.SetPIN:output_type -> fido2.SetPINResponse
	22, // 35: fido2.FIDO2.Reset:output_type -> fido2.ResetResponse
	24, // 36: fido2.FIDO2.RetryCount:output_type -> fido2.RetryCountResponse
	26, // 37: fido2.FIDO2.Assertion:output_type -> fido2.AssertionResponse
	28, // 38: fido2.FIDO2.CredentialsInfo:output_type -> fido2.CredentialsInfoResponse
	30, // 39: fido2.FIDO2.Credentials:output_type -> fido2.CredentialsResponse
	32, // 40: fido2.FIDO2.RelyingParties:output_type -> fido2.RelyingPartiesResponse
	34, // 41: fido2.FIDO2.GenerateHMACSecret:output_type -> fido2.GenerateHMACSecretResponse
	36, // 42: fido2.FIDO2.HMACSecret:output_type -> fido2.HMACSecretResponse
	30, // [30:43] is the sub-list for method output_type
	17, // [17:30] is the sub-list for method input_type
	17, // [17:17] is the sub-list for extension type_name
	17, // [17:17] is the sub-list for extension extendee
	0,  // [0:17] is the sub-list for field type_name
}

func init() { file_fido2_proto_init() }
func file_fido2_proto_init() {
	if File_fido2_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_fido2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Device); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Option); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeviceInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RelyingParty); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*User); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Attestation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Credential); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Assertion); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CredentialsInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DevicesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DevicesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeviceTypeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeviceTypeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeviceInfoRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeviceInfoResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MakeCredentialRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MakeCredentialResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SetPINRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SetPINResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResetRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResetResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RetryCountRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RetryCountResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AssertionRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AssertionResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CredentialsInfoRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CredentialsInfoResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CredentialsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CredentialsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RelyingPartiesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RelyingPartiesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GenerateHMACSecretRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GenerateHMACSecretResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HMACSecretRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_fido2_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HMACSecretResponse); 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_fido2_proto_rawDesc,
			NumEnums:      2,
			NumMessages:   35,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_fido2_proto_goTypes,
		DependencyIndexes: file_fido2_proto_depIdxs,
		EnumInfos:         file_fido2_proto_enumTypes,
		MessageInfos:      file_fido2_proto_msgTypes,
	}.Build()
	File_fido2_proto = out.File
	file_fido2_proto_rawDesc = nil
	file_fido2_proto_goTypes = nil
	file_fido2_proto_depIdxs = nil
}
