// Copyright 2025 The Bucketeer Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.26.0
// 	protoc        v4.23.4
// source: proto/feature/service.proto

package feature

import (
	context "context"
	common "github.com/bucketeer-io/bucketeer/v2/proto/common"
	user "github.com/bucketeer-io/bucketeer/v2/proto/user"
	_ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
	reflect "reflect"
	sync "sync"
)

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

type ChangeType int32

const (
	ChangeType_UNSPECIFIED ChangeType = 0
	ChangeType_CREATE      ChangeType = 1
	ChangeType_UPDATE      ChangeType = 2
	ChangeType_DELETE      ChangeType = 3
)

// Enum value maps for ChangeType.
var (
	ChangeType_name = map[int32]string{
		0: "UNSPECIFIED",
		1: "CREATE",
		2: "UPDATE",
		3: "DELETE",
	}
	ChangeType_value = map[string]int32{
		"UNSPECIFIED": 0,
		"CREATE":      1,
		"UPDATE":      2,
		"DELETE":      3,
	}
)

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

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

func (ChangeType) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_feature_service_proto_enumTypes[0].Descriptor()
}

func (ChangeType) Type() protoreflect.EnumType {
	return &file_proto_feature_service_proto_enumTypes[0]
}

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

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

type ListFeaturesRequest_OrderBy int32

const (
	ListFeaturesRequest_DEFAULT    ListFeaturesRequest_OrderBy = 0
	ListFeaturesRequest_NAME       ListFeaturesRequest_OrderBy = 1
	ListFeaturesRequest_CREATED_AT ListFeaturesRequest_OrderBy = 2
	ListFeaturesRequest_UPDATED_AT ListFeaturesRequest_OrderBy = 3
	ListFeaturesRequest_TAGS       ListFeaturesRequest_OrderBy = 4
	ListFeaturesRequest_ENABLED    ListFeaturesRequest_OrderBy = 5
	ListFeaturesRequest_AUTO_OPS   ListFeaturesRequest_OrderBy = 6
)

// Enum value maps for ListFeaturesRequest_OrderBy.
var (
	ListFeaturesRequest_OrderBy_name = map[int32]string{
		0: "DEFAULT",
		1: "NAME",
		2: "CREATED_AT",
		3: "UPDATED_AT",
		4: "TAGS",
		5: "ENABLED",
		6: "AUTO_OPS",
	}
	ListFeaturesRequest_OrderBy_value = map[string]int32{
		"DEFAULT":    0,
		"NAME":       1,
		"CREATED_AT": 2,
		"UPDATED_AT": 3,
		"TAGS":       4,
		"ENABLED":    5,
		"AUTO_OPS":   6,
	}
)

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

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

func (ListFeaturesRequest_OrderBy) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_feature_service_proto_enumTypes[1].Descriptor()
}

func (ListFeaturesRequest_OrderBy) Type() protoreflect.EnumType {
	return &file_proto_feature_service_proto_enumTypes[1]
}

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

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

type ListFeaturesRequest_OrderDirection int32

const (
	ListFeaturesRequest_ASC  ListFeaturesRequest_OrderDirection = 0
	ListFeaturesRequest_DESC ListFeaturesRequest_OrderDirection = 1
)

// Enum value maps for ListFeaturesRequest_OrderDirection.
var (
	ListFeaturesRequest_OrderDirection_name = map[int32]string{
		0: "ASC",
		1: "DESC",
	}
	ListFeaturesRequest_OrderDirection_value = map[string]int32{
		"ASC":  0,
		"DESC": 1,
	}
)

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

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

func (ListFeaturesRequest_OrderDirection) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_feature_service_proto_enumTypes[2].Descriptor()
}

func (ListFeaturesRequest_OrderDirection) Type() protoreflect.EnumType {
	return &file_proto_feature_service_proto_enumTypes[2]
}

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

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

type UpdateFeatureTargetingRequest_From int32

const (
	UpdateFeatureTargetingRequest_UNKNOWN UpdateFeatureTargetingRequest_From = 0
	UpdateFeatureTargetingRequest_USER    UpdateFeatureTargetingRequest_From = 1
	UpdateFeatureTargetingRequest_OPS     UpdateFeatureTargetingRequest_From = 2
)

// Enum value maps for UpdateFeatureTargetingRequest_From.
var (
	UpdateFeatureTargetingRequest_From_name = map[int32]string{
		0: "UNKNOWN",
		1: "USER",
		2: "OPS",
	}
	UpdateFeatureTargetingRequest_From_value = map[string]int32{
		"UNKNOWN": 0,
		"USER":    1,
		"OPS":     2,
	}
)

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

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

func (UpdateFeatureTargetingRequest_From) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_feature_service_proto_enumTypes[3].Descriptor()
}

func (UpdateFeatureTargetingRequest_From) Type() protoreflect.EnumType {
	return &file_proto_feature_service_proto_enumTypes[3]
}

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

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

type ListSegmentsRequest_OrderBy int32

const (
	ListSegmentsRequest_DEFAULT     ListSegmentsRequest_OrderBy = 0
	ListSegmentsRequest_NAME        ListSegmentsRequest_OrderBy = 1
	ListSegmentsRequest_CREATED_AT  ListSegmentsRequest_OrderBy = 2
	ListSegmentsRequest_UPDATED_AT  ListSegmentsRequest_OrderBy = 3
	ListSegmentsRequest_CONNECTIONS ListSegmentsRequest_OrderBy = 4
	ListSegmentsRequest_USERS       ListSegmentsRequest_OrderBy = 5
)

// Enum value maps for ListSegmentsRequest_OrderBy.
var (
	ListSegmentsRequest_OrderBy_name = map[int32]string{
		0: "DEFAULT",
		1: "NAME",
		2: "CREATED_AT",
		3: "UPDATED_AT",
		4: "CONNECTIONS",
		5: "USERS",
	}
	ListSegmentsRequest_OrderBy_value = map[string]int32{
		"DEFAULT":     0,
		"NAME":        1,
		"CREATED_AT":  2,
		"UPDATED_AT":  3,
		"CONNECTIONS": 4,
		"USERS":       5,
	}
)

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

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

func (ListSegmentsRequest_OrderBy) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_feature_service_proto_enumTypes[4].Descriptor()
}

func (ListSegmentsRequest_OrderBy) Type() protoreflect.EnumType {
	return &file_proto_feature_service_proto_enumTypes[4]
}

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

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

type ListSegmentsRequest_OrderDirection int32

const (
	ListSegmentsRequest_ASC  ListSegmentsRequest_OrderDirection = 0
	ListSegmentsRequest_DESC ListSegmentsRequest_OrderDirection = 1
)

// Enum value maps for ListSegmentsRequest_OrderDirection.
var (
	ListSegmentsRequest_OrderDirection_name = map[int32]string{
		0: "ASC",
		1: "DESC",
	}
	ListSegmentsRequest_OrderDirection_value = map[string]int32{
		"ASC":  0,
		"DESC": 1,
	}
)

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

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

func (ListSegmentsRequest_OrderDirection) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_feature_service_proto_enumTypes[5].Descriptor()
}

func (ListSegmentsRequest_OrderDirection) Type() protoreflect.EnumType {
	return &file_proto_feature_service_proto_enumTypes[5]
}

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

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

type ListTagsRequest_OrderBy int32

const (
	ListTagsRequest_DEFAULT    ListTagsRequest_OrderBy = 0
	ListTagsRequest_ID         ListTagsRequest_OrderBy = 1
	ListTagsRequest_CREATED_AT ListTagsRequest_OrderBy = 2
	ListTagsRequest_UPDATED_AT ListTagsRequest_OrderBy = 3
	ListTagsRequest_NAME       ListTagsRequest_OrderBy = 4
)

// Enum value maps for ListTagsRequest_OrderBy.
var (
	ListTagsRequest_OrderBy_name = map[int32]string{
		0: "DEFAULT",
		1: "ID",
		2: "CREATED_AT",
		3: "UPDATED_AT",
		4: "NAME",
	}
	ListTagsRequest_OrderBy_value = map[string]int32{
		"DEFAULT":    0,
		"ID":         1,
		"CREATED_AT": 2,
		"UPDATED_AT": 3,
		"NAME":       4,
	}
)

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

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

func (ListTagsRequest_OrderBy) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_feature_service_proto_enumTypes[6].Descriptor()
}

func (ListTagsRequest_OrderBy) Type() protoreflect.EnumType {
	return &file_proto_feature_service_proto_enumTypes[6]
}

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

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

type ListTagsRequest_OrderDirection int32

const (
	ListTagsRequest_ASC  ListTagsRequest_OrderDirection = 0
	ListTagsRequest_DESC ListTagsRequest_OrderDirection = 1
)

// Enum value maps for ListTagsRequest_OrderDirection.
var (
	ListTagsRequest_OrderDirection_name = map[int32]string{
		0: "ASC",
		1: "DESC",
	}
	ListTagsRequest_OrderDirection_value = map[string]int32{
		"ASC":  0,
		"DESC": 1,
	}
)

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

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

func (ListTagsRequest_OrderDirection) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_feature_service_proto_enumTypes[7].Descriptor()
}

func (ListTagsRequest_OrderDirection) Type() protoreflect.EnumType {
	return &file_proto_feature_service_proto_enumTypes[7]
}

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

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

type ListFlagTriggersRequest_OrderBy int32

const (
	ListFlagTriggersRequest_DEFAULT    ListFlagTriggersRequest_OrderBy = 0
	ListFlagTriggersRequest_CREATED_AT ListFlagTriggersRequest_OrderBy = 1
	ListFlagTriggersRequest_UPDATED_AT ListFlagTriggersRequest_OrderBy = 2
)

// Enum value maps for ListFlagTriggersRequest_OrderBy.
var (
	ListFlagTriggersRequest_OrderBy_name = map[int32]string{
		0: "DEFAULT",
		1: "CREATED_AT",
		2: "UPDATED_AT",
	}
	ListFlagTriggersRequest_OrderBy_value = map[string]int32{
		"DEFAULT":    0,
		"CREATED_AT": 1,
		"UPDATED_AT": 2,
	}
)

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

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

func (ListFlagTriggersRequest_OrderBy) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_feature_service_proto_enumTypes[8].Descriptor()
}

func (ListFlagTriggersRequest_OrderBy) Type() protoreflect.EnumType {
	return &file_proto_feature_service_proto_enumTypes[8]
}

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

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

type ListFlagTriggersRequest_OrderDirection int32

const (
	ListFlagTriggersRequest_ASC  ListFlagTriggersRequest_OrderDirection = 0
	ListFlagTriggersRequest_DESC ListFlagTriggersRequest_OrderDirection = 1
)

// Enum value maps for ListFlagTriggersRequest_OrderDirection.
var (
	ListFlagTriggersRequest_OrderDirection_name = map[int32]string{
		0: "ASC",
		1: "DESC",
	}
	ListFlagTriggersRequest_OrderDirection_value = map[string]int32{
		"ASC":  0,
		"DESC": 1,
	}
)

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

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

func (ListFlagTriggersRequest_OrderDirection) Descriptor() protoreflect.EnumDescriptor {
	return file_proto_feature_service_proto_enumTypes[9].Descriptor()
}

func (ListFlagTriggersRequest_OrderDirection) Type() protoreflect.EnumType {
	return &file_proto_feature_service_proto_enumTypes[9]
}

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

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

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

	Id             string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	EnvironmentId  string                 `protobuf:"bytes,3,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
	FeatureVersion *wrapperspb.Int32Value `protobuf:"bytes,4,opt,name=feature_version,json=featureVersion,proto3" json:"feature_version"`
}

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

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

func (*GetFeatureRequest) ProtoMessage() {}

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

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

func (x *GetFeatureRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

func (x *GetFeatureRequest) GetFeatureVersion() *wrapperspb.Int32Value {
	if x != nil {
		return x.FeatureVersion
	}
	return nil
}

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

	Feature *Feature `protobuf:"bytes,1,opt,name=feature,proto3" json:"feature"`
}

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

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

func (*GetFeatureResponse) ProtoMessage() {}

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

func (x *GetFeatureResponse) GetFeature() *Feature {
	if x != nil {
		return x.Feature
	}
	return nil
}

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

	Ids           []string `protobuf:"bytes,2,rep,name=ids,proto3" json:"ids"`
	EnvironmentId string   `protobuf:"bytes,3,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*GetFeaturesRequest) ProtoMessage() {}

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

func (x *GetFeaturesRequest) GetIds() []string {
	if x != nil {
		return x.Ids
	}
	return nil
}

func (x *GetFeaturesRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

	Features []*Feature `protobuf:"bytes,1,rep,name=features,proto3" json:"features"`
}

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

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

func (*GetFeaturesResponse) ProtoMessage() {}

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

func (x *GetFeaturesResponse) GetFeatures() []*Feature {
	if x != nil {
		return x.Features
	}
	return nil
}

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

	PageSize             int64                              `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size"`
	Cursor               string                             `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor"`
	Tags                 []string                           `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags"`
	OrderBy              ListFeaturesRequest_OrderBy        `protobuf:"varint,4,opt,name=order_by,json=orderBy,proto3,enum=bucketeer.feature.ListFeaturesRequest_OrderBy" json:"order_by"`
	OrderDirection       ListFeaturesRequest_OrderDirection `protobuf:"varint,5,opt,name=order_direction,json=orderDirection,proto3,enum=bucketeer.feature.ListFeaturesRequest_OrderDirection" json:"order_direction"`
	Maintainer           string                             `protobuf:"bytes,7,opt,name=maintainer,proto3" json:"maintainer"`
	Enabled              *wrapperspb.BoolValue              `protobuf:"bytes,8,opt,name=enabled,proto3" json:"enabled"`
	HasExperiment        *wrapperspb.BoolValue              `protobuf:"bytes,9,opt,name=has_experiment,json=hasExperiment,proto3" json:"has_experiment"`
	SearchKeyword        string                             `protobuf:"bytes,10,opt,name=search_keyword,json=searchKeyword,proto3" json:"search_keyword"`
	Archived             *wrapperspb.BoolValue              `protobuf:"bytes,11,opt,name=archived,proto3" json:"archived"`
	HasPrerequisites     *wrapperspb.BoolValue              `protobuf:"bytes,12,opt,name=has_prerequisites,json=hasPrerequisites,proto3" json:"has_prerequisites"`
	EnvironmentId        string                             `protobuf:"bytes,13,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
	Status               FeatureLastUsedInfo_Status         `protobuf:"varint,14,opt,name=status,proto3,enum=bucketeer.feature.FeatureLastUsedInfo_Status" json:"status"`
	HasFeatureFlagAsRule *wrapperspb.BoolValue              `protobuf:"bytes,15,opt,name=has_feature_flag_as_rule,json=hasFeatureFlagAsRule,proto3" json:"has_feature_flag_as_rule"`
}

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

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

func (*ListFeaturesRequest) ProtoMessage() {}

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

func (x *ListFeaturesRequest) GetPageSize() int64 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListFeaturesRequest) GetCursor() string {
	if x != nil {
		return x.Cursor
	}
	return ""
}

func (x *ListFeaturesRequest) GetTags() []string {
	if x != nil {
		return x.Tags
	}
	return nil
}

func (x *ListFeaturesRequest) GetOrderBy() ListFeaturesRequest_OrderBy {
	if x != nil {
		return x.OrderBy
	}
	return ListFeaturesRequest_DEFAULT
}

func (x *ListFeaturesRequest) GetOrderDirection() ListFeaturesRequest_OrderDirection {
	if x != nil {
		return x.OrderDirection
	}
	return ListFeaturesRequest_ASC
}

func (x *ListFeaturesRequest) GetMaintainer() string {
	if x != nil {
		return x.Maintainer
	}
	return ""
}

func (x *ListFeaturesRequest) GetEnabled() *wrapperspb.BoolValue {
	if x != nil {
		return x.Enabled
	}
	return nil
}

func (x *ListFeaturesRequest) GetHasExperiment() *wrapperspb.BoolValue {
	if x != nil {
		return x.HasExperiment
	}
	return nil
}

func (x *ListFeaturesRequest) GetSearchKeyword() string {
	if x != nil {
		return x.SearchKeyword
	}
	return ""
}

func (x *ListFeaturesRequest) GetArchived() *wrapperspb.BoolValue {
	if x != nil {
		return x.Archived
	}
	return nil
}

func (x *ListFeaturesRequest) GetHasPrerequisites() *wrapperspb.BoolValue {
	if x != nil {
		return x.HasPrerequisites
	}
	return nil
}

func (x *ListFeaturesRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

func (x *ListFeaturesRequest) GetStatus() FeatureLastUsedInfo_Status {
	if x != nil {
		return x.Status
	}
	return FeatureLastUsedInfo_UNKNOWN
}

func (x *ListFeaturesRequest) GetHasFeatureFlagAsRule() *wrapperspb.BoolValue {
	if x != nil {
		return x.HasFeatureFlagAsRule
	}
	return nil
}

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

	Total    int32 `protobuf:"varint,1,opt,name=total,proto3" json:"total"`
	Active   int32 `protobuf:"varint,2,opt,name=active,proto3" json:"active"`
	Inactive int32 `protobuf:"varint,3,opt,name=inactive,proto3" json:"inactive"`
}

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

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

func (*FeatureSummary) ProtoMessage() {}

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

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

func (x *FeatureSummary) GetActive() int32 {
	if x != nil {
		return x.Active
	}
	return 0
}

func (x *FeatureSummary) GetInactive() int32 {
	if x != nil {
		return x.Inactive
	}
	return 0
}

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

	Features             []*Feature      `protobuf:"bytes,1,rep,name=features,proto3" json:"features"`
	Cursor               string          `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor"`
	TotalCount           int64           `protobuf:"varint,3,opt,name=total_count,json=totalCount,proto3" json:"total_count"`
	FeatureCountByStatus *FeatureSummary `protobuf:"bytes,4,opt,name=feature_count_by_status,json=featureCountByStatus,proto3" json:"feature_count_by_status"`
}

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

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

func (*ListFeaturesResponse) ProtoMessage() {}

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

func (x *ListFeaturesResponse) GetFeatures() []*Feature {
	if x != nil {
		return x.Features
	}
	return nil
}

func (x *ListFeaturesResponse) GetCursor() string {
	if x != nil {
		return x.Cursor
	}
	return ""
}

func (x *ListFeaturesResponse) GetTotalCount() int64 {
	if x != nil {
		return x.TotalCount
	}
	return 0
}

func (x *ListFeaturesResponse) GetFeatureCountByStatus() *FeatureSummary {
	if x != nil {
		return x.FeatureCountByStatus
	}
	return nil
}

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

	PageSize      int64    `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size"`
	Cursor        string   `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor"`
	Tags          []string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags"`
	EnvironmentId string   `protobuf:"bytes,5,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*ListEnabledFeaturesRequest) ProtoMessage() {}

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

func (x *ListEnabledFeaturesRequest) GetPageSize() int64 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListEnabledFeaturesRequest) GetCursor() string {
	if x != nil {
		return x.Cursor
	}
	return ""
}

func (x *ListEnabledFeaturesRequest) GetTags() []string {
	if x != nil {
		return x.Tags
	}
	return nil
}

func (x *ListEnabledFeaturesRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

	Features []*Feature `protobuf:"bytes,1,rep,name=features,proto3" json:"features"`
	Cursor   string     `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor"`
}

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

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

func (*ListEnabledFeaturesResponse) ProtoMessage() {}

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

func (x *ListEnabledFeaturesResponse) GetFeatures() []*Feature {
	if x != nil {
		return x.Features
	}
	return nil
}

func (x *ListEnabledFeaturesResponse) GetCursor() string {
	if x != nil {
		return x.Cursor
	}
	return ""
}

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

	// Deprecated: Do not use.
	Command                  *CreateFeatureCommand  `protobuf:"bytes,1,opt,name=command,proto3" json:"command"`
	EnvironmentId            string                 `protobuf:"bytes,3,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
	Id                       string                 `protobuf:"bytes,4,opt,name=id,proto3" json:"id"`
	Name                     string                 `protobuf:"bytes,5,opt,name=name,proto3" json:"name"`
	Description              string                 `protobuf:"bytes,6,opt,name=description,proto3" json:"description"` // This is an optional field
	Variations               []*Variation           `protobuf:"bytes,7,rep,name=variations,proto3" json:"variations"`
	Tags                     []string               `protobuf:"bytes,8,rep,name=tags,proto3" json:"tags"`
	DefaultOnVariationIndex  *wrapperspb.Int32Value `protobuf:"bytes,9,opt,name=default_on_variation_index,json=defaultOnVariationIndex,proto3" json:"default_on_variation_index"`
	DefaultOffVariationIndex *wrapperspb.Int32Value `protobuf:"bytes,10,opt,name=default_off_variation_index,json=defaultOffVariationIndex,proto3" json:"default_off_variation_index"`
	VariationType            Feature_VariationType  `protobuf:"varint,11,opt,name=variation_type,json=variationType,proto3,enum=bucketeer.feature.Feature_VariationType" json:"variation_type"`
}

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

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

func (*CreateFeatureRequest) ProtoMessage() {}

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

// Deprecated: Do not use.
func (x *CreateFeatureRequest) GetCommand() *CreateFeatureCommand {
	if x != nil {
		return x.Command
	}
	return nil
}

func (x *CreateFeatureRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

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

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

func (x *CreateFeatureRequest) GetVariations() []*Variation {
	if x != nil {
		return x.Variations
	}
	return nil
}

func (x *CreateFeatureRequest) GetTags() []string {
	if x != nil {
		return x.Tags
	}
	return nil
}

func (x *CreateFeatureRequest) GetDefaultOnVariationIndex() *wrapperspb.Int32Value {
	if x != nil {
		return x.DefaultOnVariationIndex
	}
	return nil
}

func (x *CreateFeatureRequest) GetDefaultOffVariationIndex() *wrapperspb.Int32Value {
	if x != nil {
		return x.DefaultOffVariationIndex
	}
	return nil
}

func (x *CreateFeatureRequest) GetVariationType() Feature_VariationType {
	if x != nil {
		return x.VariationType
	}
	return Feature_STRING
}

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

	Feature *Feature `protobuf:"bytes,1,opt,name=feature,proto3" json:"feature"`
}

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

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

func (*CreateFeatureResponse) ProtoMessage() {}

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

func (x *CreateFeatureResponse) GetFeature() *Feature {
	if x != nil {
		return x.Feature
	}
	return nil
}

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

	ChangeType   ChangeType    `protobuf:"varint,1,opt,name=change_type,json=changeType,proto3,enum=bucketeer.feature.ChangeType" json:"change_type"`
	Prerequisite *Prerequisite `protobuf:"bytes,2,opt,name=prerequisite,proto3" json:"prerequisite"`
}

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

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

func (*PrerequisiteChange) ProtoMessage() {}

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

func (x *PrerequisiteChange) GetChangeType() ChangeType {
	if x != nil {
		return x.ChangeType
	}
	return ChangeType_UNSPECIFIED
}

func (x *PrerequisiteChange) GetPrerequisite() *Prerequisite {
	if x != nil {
		return x.Prerequisite
	}
	return nil
}

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

	ChangeType ChangeType `protobuf:"varint,1,opt,name=change_type,json=changeType,proto3,enum=bucketeer.feature.ChangeType" json:"change_type"`
	Target     *Target    `protobuf:"bytes,2,opt,name=target,proto3" json:"target"`
}

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

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

func (*TargetChange) ProtoMessage() {}

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

func (x *TargetChange) GetChangeType() ChangeType {
	if x != nil {
		return x.ChangeType
	}
	return ChangeType_UNSPECIFIED
}

func (x *TargetChange) GetTarget() *Target {
	if x != nil {
		return x.Target
	}
	return nil
}

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

	ChangeType ChangeType `protobuf:"varint,1,opt,name=change_type,json=changeType,proto3,enum=bucketeer.feature.ChangeType" json:"change_type"`
	Variation  *Variation `protobuf:"bytes,2,opt,name=variation,proto3" json:"variation"`
}

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

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

func (*VariationChange) ProtoMessage() {}

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

func (x *VariationChange) GetChangeType() ChangeType {
	if x != nil {
		return x.ChangeType
	}
	return ChangeType_UNSPECIFIED
}

func (x *VariationChange) GetVariation() *Variation {
	if x != nil {
		return x.Variation
	}
	return nil
}

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

	ChangeType ChangeType `protobuf:"varint,1,opt,name=change_type,json=changeType,proto3,enum=bucketeer.feature.ChangeType" json:"change_type"`
	Rule       *Rule      `protobuf:"bytes,2,opt,name=rule,proto3" json:"rule"`
}

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

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

func (*RuleChange) ProtoMessage() {}

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

func (x *RuleChange) GetChangeType() ChangeType {
	if x != nil {
		return x.ChangeType
	}
	return ChangeType_UNSPECIFIED
}

func (x *RuleChange) GetRule() *Rule {
	if x != nil {
		return x.Rule
	}
	return nil
}

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

	ChangeType ChangeType `protobuf:"varint,1,opt,name=change_type,json=changeType,proto3,enum=bucketeer.feature.ChangeType" json:"change_type"`
	Tag        string     `protobuf:"bytes,2,opt,name=tag,proto3" json:"tag"`
}

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

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

func (*TagChange) ProtoMessage() {}

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

func (x *TagChange) GetChangeType() ChangeType {
	if x != nil {
		return x.ChangeType
	}
	return ChangeType_UNSPECIFIED
}

func (x *TagChange) GetTag() string {
	if x != nil {
		return x.Tag
	}
	return ""
}

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

	Comment             string                  `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"`
	EnvironmentId       string                  `protobuf:"bytes,2,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
	Id                  string                  `protobuf:"bytes,3,opt,name=id,proto3" json:"id"`
	Name                *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=name,proto3" json:"name"`
	Description         *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=description,proto3" json:"description"`
	Tags                *common.StringListValue `protobuf:"bytes,6,opt,name=tags,proto3" json:"tags"`
	Enabled             *wrapperspb.BoolValue   `protobuf:"bytes,7,opt,name=enabled,proto3" json:"enabled"`
	Archived            *wrapperspb.BoolValue   `protobuf:"bytes,8,opt,name=archived,proto3" json:"archived"`
	DefaultStrategy     *Strategy               `protobuf:"bytes,9,opt,name=default_strategy,json=defaultStrategy,proto3" json:"default_strategy"`
	OffVariation        *wrapperspb.StringValue `protobuf:"bytes,10,opt,name=off_variation,json=offVariation,proto3" json:"off_variation"`
	ResetSamplingSeed   bool                    `protobuf:"varint,11,opt,name=reset_sampling_seed,json=resetSamplingSeed,proto3" json:"reset_sampling_seed"`
	ApplyScheduleUpdate bool                    `protobuf:"varint,12,opt,name=apply_schedule_update,json=applyScheduleUpdate,proto3" json:"apply_schedule_update"`
	VariationChanges    []*VariationChange      `protobuf:"bytes,13,rep,name=variation_changes,json=variationChanges,proto3" json:"variation_changes"`
	RuleChanges         []*RuleChange           `protobuf:"bytes,14,rep,name=rule_changes,json=ruleChanges,proto3" json:"rule_changes"`
	PrerequisiteChanges []*PrerequisiteChange   `protobuf:"bytes,15,rep,name=prerequisite_changes,json=prerequisiteChanges,proto3" json:"prerequisite_changes"`
	TargetChanges       []*TargetChange         `protobuf:"bytes,16,rep,name=target_changes,json=targetChanges,proto3" json:"target_changes"`
	TagChanges          []*TagChange            `protobuf:"bytes,17,rep,name=tag_changes,json=tagChanges,proto3" json:"tag_changes"`
}

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

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

func (*UpdateFeatureRequest) ProtoMessage() {}

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

func (x *UpdateFeatureRequest) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *UpdateFeatureRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

func (x *UpdateFeatureRequest) GetName() *wrapperspb.StringValue {
	if x != nil {
		return x.Name
	}
	return nil
}

func (x *UpdateFeatureRequest) GetDescription() *wrapperspb.StringValue {
	if x != nil {
		return x.Description
	}
	return nil
}

func (x *UpdateFeatureRequest) GetTags() *common.StringListValue {
	if x != nil {
		return x.Tags
	}
	return nil
}

func (x *UpdateFeatureRequest) GetEnabled() *wrapperspb.BoolValue {
	if x != nil {
		return x.Enabled
	}
	return nil
}

func (x *UpdateFeatureRequest) GetArchived() *wrapperspb.BoolValue {
	if x != nil {
		return x.Archived
	}
	return nil
}

func (x *UpdateFeatureRequest) GetDefaultStrategy() *Strategy {
	if x != nil {
		return x.DefaultStrategy
	}
	return nil
}

func (x *UpdateFeatureRequest) GetOffVariation() *wrapperspb.StringValue {
	if x != nil {
		return x.OffVariation
	}
	return nil
}

func (x *UpdateFeatureRequest) GetResetSamplingSeed() bool {
	if x != nil {
		return x.ResetSamplingSeed
	}
	return false
}

func (x *UpdateFeatureRequest) GetApplyScheduleUpdate() bool {
	if x != nil {
		return x.ApplyScheduleUpdate
	}
	return false
}

func (x *UpdateFeatureRequest) GetVariationChanges() []*VariationChange {
	if x != nil {
		return x.VariationChanges
	}
	return nil
}

func (x *UpdateFeatureRequest) GetRuleChanges() []*RuleChange {
	if x != nil {
		return x.RuleChanges
	}
	return nil
}

func (x *UpdateFeatureRequest) GetPrerequisiteChanges() []*PrerequisiteChange {
	if x != nil {
		return x.PrerequisiteChanges
	}
	return nil
}

func (x *UpdateFeatureRequest) GetTargetChanges() []*TargetChange {
	if x != nil {
		return x.TargetChanges
	}
	return nil
}

func (x *UpdateFeatureRequest) GetTagChanges() []*TagChange {
	if x != nil {
		return x.TagChanges
	}
	return nil
}

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

	Feature *Feature `protobuf:"bytes,1,opt,name=feature,proto3" json:"feature"`
}

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

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

func (*UpdateFeatureResponse) ProtoMessage() {}

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

func (x *UpdateFeatureResponse) GetFeature() *Feature {
	if x != nil {
		return x.Feature
	}
	return nil
}

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

	EnvironmentId    string             `protobuf:"bytes,1,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
	FeatureId        string             `protobuf:"bytes,2,opt,name=feature_id,json=featureId,proto3" json:"feature_id"`
	ScheduledAt      int64              `protobuf:"varint,3,opt,name=scheduled_at,json=scheduledAt,proto3" json:"scheduled_at"`
	ScheduledChanges []*ScheduledChange `protobuf:"bytes,4,rep,name=scheduled_changes,json=scheduledChanges,proto3" json:"scheduled_changes"`
}

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

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

func (*ScheduleFlagChangeRequest) ProtoMessage() {}

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

func (x *ScheduleFlagChangeRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

func (x *ScheduleFlagChangeRequest) GetFeatureId() string {
	if x != nil {
		return x.FeatureId
	}
	return ""
}

func (x *ScheduleFlagChangeRequest) GetScheduledAt() int64 {
	if x != nil {
		return x.ScheduledAt
	}
	return 0
}

func (x *ScheduleFlagChangeRequest) GetScheduledChanges() []*ScheduledChange {
	if x != nil {
		return x.ScheduledChanges
	}
	return nil
}

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

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

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

func (*ScheduleFlagChangeResponse) ProtoMessage() {}

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

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

	EnvironmentId    string                 `protobuf:"bytes,1,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
	Id               string                 `protobuf:"bytes,2,opt,name=id,proto3" json:"id"`
	ScheduledAt      *wrapperspb.Int64Value `protobuf:"bytes,3,opt,name=scheduled_at,json=scheduledAt,proto3" json:"scheduled_at"`
	ScheduledChanges []*ScheduledChange     `protobuf:"bytes,4,rep,name=scheduled_changes,json=scheduledChanges,proto3" json:"scheduled_changes"`
}

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

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

func (*UpdateScheduledFlagChangeRequest) ProtoMessage() {}

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

func (x *UpdateScheduledFlagChangeRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

func (x *UpdateScheduledFlagChangeRequest) GetScheduledAt() *wrapperspb.Int64Value {
	if x != nil {
		return x.ScheduledAt
	}
	return nil
}

func (x *UpdateScheduledFlagChangeRequest) GetScheduledChanges() []*ScheduledChange {
	if x != nil {
		return x.ScheduledChanges
	}
	return nil
}

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

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

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

func (*UpdateScheduledFlagChangeResponse) ProtoMessage() {}

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

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

	EnvironmentId string `protobuf:"bytes,1,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
	Id            string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"`
}

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

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

func (*DeleteScheduledFlagChangeRequest) ProtoMessage() {}

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

func (x *DeleteScheduledFlagChangeRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

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

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

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

func (*DeleteScheduledFlagChangeResponse) ProtoMessage() {}

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

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

	EnvironmentId string `protobuf:"bytes,1,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
	FeatureId     string `protobuf:"bytes,2,opt,name=feature_id,json=featureId,proto3" json:"feature_id"`
}

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

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

func (*ListScheduledFlagChangesRequest) ProtoMessage() {}

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

func (x *ListScheduledFlagChangesRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

func (x *ListScheduledFlagChangesRequest) GetFeatureId() string {
	if x != nil {
		return x.FeatureId
	}
	return ""
}

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

	ScheduledFlagUpdates []*ScheduledFlagUpdate `protobuf:"bytes,1,rep,name=scheduled_flag_updates,json=scheduledFlagUpdates,proto3" json:"scheduled_flag_updates"`
}

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

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

func (*ListScheduledFlagChangesResponse) ProtoMessage() {}

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

func (x *ListScheduledFlagChangesResponse) GetScheduledFlagUpdates() []*ScheduledFlagUpdate {
	if x != nil {
		return x.ScheduledFlagUpdates
	}
	return nil
}

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

	Id            string                `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	Command       *EnableFeatureCommand `protobuf:"bytes,2,opt,name=command,proto3" json:"command"`
	Comment       string                `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"`
	EnvironmentId string                `protobuf:"bytes,5,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*EnableFeatureRequest) ProtoMessage() {}

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

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

func (x *EnableFeatureRequest) GetCommand() *EnableFeatureCommand {
	if x != nil {
		return x.Command
	}
	return nil
}

func (x *EnableFeatureRequest) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *EnableFeatureRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

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

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

func (*EnableFeatureResponse) ProtoMessage() {}

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

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

	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	Command       *DisableFeatureCommand `protobuf:"bytes,2,opt,name=command,proto3" json:"command"`
	Comment       string                 `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"`
	EnvironmentId string                 `protobuf:"bytes,5,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*DisableFeatureRequest) ProtoMessage() {}

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

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

func (x *DisableFeatureRequest) GetCommand() *DisableFeatureCommand {
	if x != nil {
		return x.Command
	}
	return nil
}

func (x *DisableFeatureRequest) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *DisableFeatureRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

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

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

func (*DisableFeatureResponse) ProtoMessage() {}

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

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

	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	Command       *ArchiveFeatureCommand `protobuf:"bytes,2,opt,name=command,proto3" json:"command"`
	Comment       string                 `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"`
	EnvironmentId string                 `protobuf:"bytes,5,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*ArchiveFeatureRequest) ProtoMessage() {}

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

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

func (x *ArchiveFeatureRequest) GetCommand() *ArchiveFeatureCommand {
	if x != nil {
		return x.Command
	}
	return nil
}

func (x *ArchiveFeatureRequest) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *ArchiveFeatureRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

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

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

func (*ArchiveFeatureResponse) ProtoMessage() {}

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

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

	Id            string                   `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	Command       *UnarchiveFeatureCommand `protobuf:"bytes,2,opt,name=command,proto3" json:"command"`
	Comment       string                   `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"`
	EnvironmentId string                   `protobuf:"bytes,5,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*UnarchiveFeatureRequest) ProtoMessage() {}

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

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

func (x *UnarchiveFeatureRequest) GetCommand() *UnarchiveFeatureCommand {
	if x != nil {
		return x.Command
	}
	return nil
}

func (x *UnarchiveFeatureRequest) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *UnarchiveFeatureRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

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

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

func (*UnarchiveFeatureResponse) ProtoMessage() {}

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

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

	Id            string                `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	Command       *DeleteFeatureCommand `protobuf:"bytes,2,opt,name=command,proto3" json:"command"`
	Comment       string                `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"`
	EnvironmentId string                `protobuf:"bytes,5,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*DeleteFeatureRequest) ProtoMessage() {}

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

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

func (x *DeleteFeatureRequest) GetCommand() *DeleteFeatureCommand {
	if x != nil {
		return x.Command
	}
	return nil
}

func (x *DeleteFeatureRequest) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *DeleteFeatureRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

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

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

func (*DeleteFeatureResponse) ProtoMessage() {}

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

// Deprecated: Use DeleteFeatureResponse.ProtoReflect.Descriptor instead.
func (*DeleteFeatureResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{35}
}

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

	Id                       string                    `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	RenameFeatureCommand     *RenameFeatureCommand     `protobuf:"bytes,2,opt,name=rename_feature_command,json=renameFeatureCommand,proto3" json:"rename_feature_command"`
	ChangeDescriptionCommand *ChangeDescriptionCommand `protobuf:"bytes,3,opt,name=change_description_command,json=changeDescriptionCommand,proto3" json:"change_description_command"`
	AddTagCommands           []*AddTagCommand          `protobuf:"bytes,4,rep,name=add_tag_commands,json=addTagCommands,proto3" json:"add_tag_commands"`
	RemoveTagCommands        []*RemoveTagCommand       `protobuf:"bytes,5,rep,name=remove_tag_commands,json=removeTagCommands,proto3" json:"remove_tag_commands"`
	Comment                  string                    `protobuf:"bytes,7,opt,name=comment,proto3" json:"comment"`
	EnvironmentId            string                    `protobuf:"bytes,8,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*UpdateFeatureDetailsRequest) ProtoMessage() {}

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

// Deprecated: Use UpdateFeatureDetailsRequest.ProtoReflect.Descriptor instead.
func (*UpdateFeatureDetailsRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{36}
}

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

func (x *UpdateFeatureDetailsRequest) GetRenameFeatureCommand() *RenameFeatureCommand {
	if x != nil {
		return x.RenameFeatureCommand
	}
	return nil
}

func (x *UpdateFeatureDetailsRequest) GetChangeDescriptionCommand() *ChangeDescriptionCommand {
	if x != nil {
		return x.ChangeDescriptionCommand
	}
	return nil
}

func (x *UpdateFeatureDetailsRequest) GetAddTagCommands() []*AddTagCommand {
	if x != nil {
		return x.AddTagCommands
	}
	return nil
}

func (x *UpdateFeatureDetailsRequest) GetRemoveTagCommands() []*RemoveTagCommand {
	if x != nil {
		return x.RemoveTagCommands
	}
	return nil
}

func (x *UpdateFeatureDetailsRequest) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *UpdateFeatureDetailsRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

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

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

func (*UpdateFeatureDetailsResponse) ProtoMessage() {}

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

// Deprecated: Use UpdateFeatureDetailsResponse.ProtoReflect.Descriptor instead.
func (*UpdateFeatureDetailsResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{37}
}

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

	Id            string     `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	Commands      []*Command `protobuf:"bytes,2,rep,name=commands,proto3" json:"commands"`
	Comment       string     `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"`
	EnvironmentId string     `protobuf:"bytes,5,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*UpdateFeatureVariationsRequest) ProtoMessage() {}

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

// Deprecated: Use UpdateFeatureVariationsRequest.ProtoReflect.Descriptor instead.
func (*UpdateFeatureVariationsRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{38}
}

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

func (x *UpdateFeatureVariationsRequest) GetCommands() []*Command {
	if x != nil {
		return x.Commands
	}
	return nil
}

func (x *UpdateFeatureVariationsRequest) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *UpdateFeatureVariationsRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

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

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

func (*UpdateFeatureVariationsResponse) ProtoMessage() {}

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

// Deprecated: Use UpdateFeatureVariationsResponse.ProtoReflect.Descriptor instead.
func (*UpdateFeatureVariationsResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{39}
}

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

	Id            string                             `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	Commands      []*Command                         `protobuf:"bytes,2,rep,name=commands,proto3" json:"commands"`
	Comment       string                             `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"`
	From          UpdateFeatureTargetingRequest_From `protobuf:"varint,5,opt,name=from,proto3,enum=bucketeer.feature.UpdateFeatureTargetingRequest_From" json:"from"`
	EnvironmentId string                             `protobuf:"bytes,6,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*UpdateFeatureTargetingRequest) ProtoMessage() {}

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

// Deprecated: Use UpdateFeatureTargetingRequest.ProtoReflect.Descriptor instead.
func (*UpdateFeatureTargetingRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{40}
}

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

func (x *UpdateFeatureTargetingRequest) GetCommands() []*Command {
	if x != nil {
		return x.Commands
	}
	return nil
}

func (x *UpdateFeatureTargetingRequest) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *UpdateFeatureTargetingRequest) GetFrom() UpdateFeatureTargetingRequest_From {
	if x != nil {
		return x.From
	}
	return UpdateFeatureTargetingRequest_UNKNOWN
}

func (x *UpdateFeatureTargetingRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

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

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

func (*UpdateFeatureTargetingResponse) ProtoMessage() {}

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

// Deprecated: Use UpdateFeatureTargetingResponse.ProtoReflect.Descriptor instead.
func (*UpdateFeatureTargetingResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{41}
}

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

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	// Deprecated: Do not use.
	Command             *CloneFeatureCommand `protobuf:"bytes,2,opt,name=command,proto3" json:"command"`
	EnvironmentId       string               `protobuf:"bytes,4,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
	TargetEnvironmentId string               `protobuf:"bytes,5,opt,name=target_environment_id,json=targetEnvironmentId,proto3" json:"target_environment_id"`
}

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

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

func (*CloneFeatureRequest) ProtoMessage() {}

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

// Deprecated: Use CloneFeatureRequest.ProtoReflect.Descriptor instead.
func (*CloneFeatureRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{42}
}

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

// Deprecated: Do not use.
func (x *CloneFeatureRequest) GetCommand() *CloneFeatureCommand {
	if x != nil {
		return x.Command
	}
	return nil
}

func (x *CloneFeatureRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

func (x *CloneFeatureRequest) GetTargetEnvironmentId() string {
	if x != nil {
		return x.TargetEnvironmentId
	}
	return ""
}

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

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

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

func (*CloneFeatureResponse) ProtoMessage() {}

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

// Deprecated: Use CloneFeatureResponse.ProtoReflect.Descriptor instead.
func (*CloneFeatureResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{43}
}

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

	// Deprecated: Do not use.
	Command       *CreateSegmentCommand `protobuf:"bytes,1,opt,name=command,proto3" json:"command"`
	Name          string                `protobuf:"bytes,3,opt,name=name,proto3" json:"name"`
	EnvironmentId string                `protobuf:"bytes,4,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
	Description   string                `protobuf:"bytes,5,opt,name=description,proto3" json:"description"`
}

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

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

func (*CreateSegmentRequest) ProtoMessage() {}

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

// Deprecated: Use CreateSegmentRequest.ProtoReflect.Descriptor instead.
func (*CreateSegmentRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{44}
}

// Deprecated: Do not use.
func (x *CreateSegmentRequest) GetCommand() *CreateSegmentCommand {
	if x != nil {
		return x.Command
	}
	return nil
}

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

func (x *CreateSegmentRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

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

	Segment *Segment `protobuf:"bytes,1,opt,name=segment,proto3" json:"segment"`
}

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

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

func (*CreateSegmentResponse) ProtoMessage() {}

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

// Deprecated: Use CreateSegmentResponse.ProtoReflect.Descriptor instead.
func (*CreateSegmentResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{45}
}

func (x *CreateSegmentResponse) GetSegment() *Segment {
	if x != nil {
		return x.Segment
	}
	return nil
}

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

	Id            string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	EnvironmentId string `protobuf:"bytes,3,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*GetSegmentRequest) ProtoMessage() {}

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

// Deprecated: Use GetSegmentRequest.ProtoReflect.Descriptor instead.
func (*GetSegmentRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{46}
}

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

func (x *GetSegmentRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

	Segment *Segment `protobuf:"bytes,1,opt,name=segment,proto3" json:"segment"`
}

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

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

func (*GetSegmentResponse) ProtoMessage() {}

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

// Deprecated: Use GetSegmentResponse.ProtoReflect.Descriptor instead.
func (*GetSegmentResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{47}
}

func (x *GetSegmentResponse) GetSegment() *Segment {
	if x != nil {
		return x.Segment
	}
	return nil
}

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

	PageSize       int64                              `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size"`
	Cursor         string                             `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor"`
	OrderBy        ListSegmentsRequest_OrderBy        `protobuf:"varint,4,opt,name=order_by,json=orderBy,proto3,enum=bucketeer.feature.ListSegmentsRequest_OrderBy" json:"order_by"`
	OrderDirection ListSegmentsRequest_OrderDirection `protobuf:"varint,5,opt,name=order_direction,json=orderDirection,proto3,enum=bucketeer.feature.ListSegmentsRequest_OrderDirection" json:"order_direction"`
	SearchKeyword  string                             `protobuf:"bytes,6,opt,name=search_keyword,json=searchKeyword,proto3" json:"search_keyword"`
	Status         *wrapperspb.Int32Value             `protobuf:"bytes,7,opt,name=status,proto3" json:"status"`
	IsInUseStatus  *wrapperspb.BoolValue              `protobuf:"bytes,8,opt,name=is_in_use_status,json=isInUseStatus,proto3" json:"is_in_use_status"`
	EnvironmentId  string                             `protobuf:"bytes,9,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*ListSegmentsRequest) ProtoMessage() {}

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

// Deprecated: Use ListSegmentsRequest.ProtoReflect.Descriptor instead.
func (*ListSegmentsRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{48}
}

func (x *ListSegmentsRequest) GetPageSize() int64 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListSegmentsRequest) GetCursor() string {
	if x != nil {
		return x.Cursor
	}
	return ""
}

func (x *ListSegmentsRequest) GetOrderBy() ListSegmentsRequest_OrderBy {
	if x != nil {
		return x.OrderBy
	}
	return ListSegmentsRequest_DEFAULT
}

func (x *ListSegmentsRequest) GetOrderDirection() ListSegmentsRequest_OrderDirection {
	if x != nil {
		return x.OrderDirection
	}
	return ListSegmentsRequest_ASC
}

func (x *ListSegmentsRequest) GetSearchKeyword() string {
	if x != nil {
		return x.SearchKeyword
	}
	return ""
}

func (x *ListSegmentsRequest) GetStatus() *wrapperspb.Int32Value {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *ListSegmentsRequest) GetIsInUseStatus() *wrapperspb.BoolValue {
	if x != nil {
		return x.IsInUseStatus
	}
	return nil
}

func (x *ListSegmentsRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

	Segments   []*Segment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments"`
	Cursor     string     `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor"`
	TotalCount int64      `protobuf:"varint,3,opt,name=total_count,json=totalCount,proto3" json:"total_count"`
}

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

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

func (*ListSegmentsResponse) ProtoMessage() {}

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

// Deprecated: Use ListSegmentsResponse.ProtoReflect.Descriptor instead.
func (*ListSegmentsResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{49}
}

func (x *ListSegmentsResponse) GetSegments() []*Segment {
	if x != nil {
		return x.Segments
	}
	return nil
}

func (x *ListSegmentsResponse) GetCursor() string {
	if x != nil {
		return x.Cursor
	}
	return ""
}

func (x *ListSegmentsResponse) GetTotalCount() int64 {
	if x != nil {
		return x.TotalCount
	}
	return 0
}

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

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	// Deprecated: Do not use.
	Command       *DeleteSegmentCommand `protobuf:"bytes,2,opt,name=command,proto3" json:"command"`
	EnvironmentId string                `protobuf:"bytes,4,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*DeleteSegmentRequest) ProtoMessage() {}

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

// Deprecated: Use DeleteSegmentRequest.ProtoReflect.Descriptor instead.
func (*DeleteSegmentRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{50}
}

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

// Deprecated: Do not use.
func (x *DeleteSegmentRequest) GetCommand() *DeleteSegmentCommand {
	if x != nil {
		return x.Command
	}
	return nil
}

func (x *DeleteSegmentRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

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

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

func (*DeleteSegmentResponse) ProtoMessage() {}

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

// Deprecated: Use DeleteSegmentResponse.ProtoReflect.Descriptor instead.
func (*DeleteSegmentResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{51}
}

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

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	// Deprecated: Do not use.
	Commands      []*Command              `protobuf:"bytes,2,rep,name=commands,proto3" json:"commands"`
	EnvironmentId string                  `protobuf:"bytes,4,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
	Name          *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=name,proto3" json:"name"`
	Description   *wrapperspb.StringValue `protobuf:"bytes,6,opt,name=description,proto3" json:"description"`
}

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

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

func (*UpdateSegmentRequest) ProtoMessage() {}

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

// Deprecated: Use UpdateSegmentRequest.ProtoReflect.Descriptor instead.
func (*UpdateSegmentRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{52}
}

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

// Deprecated: Do not use.
func (x *UpdateSegmentRequest) GetCommands() []*Command {
	if x != nil {
		return x.Commands
	}
	return nil
}

func (x *UpdateSegmentRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

func (x *UpdateSegmentRequest) GetName() *wrapperspb.StringValue {
	if x != nil {
		return x.Name
	}
	return nil
}

func (x *UpdateSegmentRequest) GetDescription() *wrapperspb.StringValue {
	if x != nil {
		return x.Description
	}
	return nil
}

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

	Segment *Segment `protobuf:"bytes,1,opt,name=segment,proto3" json:"segment"`
}

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

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

func (*UpdateSegmentResponse) ProtoMessage() {}

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

// Deprecated: Use UpdateSegmentResponse.ProtoReflect.Descriptor instead.
func (*UpdateSegmentResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{53}
}

func (x *UpdateSegmentResponse) GetSegment() *Segment {
	if x != nil {
		return x.Segment
	}
	return nil
}

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

	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	Command       *AddSegmentUserCommand `protobuf:"bytes,2,opt,name=command,proto3" json:"command"`
	EnvironmentId string                 `protobuf:"bytes,4,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*AddSegmentUserRequest) ProtoMessage() {}

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

// Deprecated: Use AddSegmentUserRequest.ProtoReflect.Descriptor instead.
func (*AddSegmentUserRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{54}
}

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

func (x *AddSegmentUserRequest) GetCommand() *AddSegmentUserCommand {
	if x != nil {
		return x.Command
	}
	return nil
}

func (x *AddSegmentUserRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

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

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

func (*AddSegmentUserResponse) ProtoMessage() {}

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

// Deprecated: Use AddSegmentUserResponse.ProtoReflect.Descriptor instead.
func (*AddSegmentUserResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{55}
}

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

	Id            string                    `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	Command       *DeleteSegmentUserCommand `protobuf:"bytes,2,opt,name=command,proto3" json:"command"`
	EnvironmentId string                    `protobuf:"bytes,4,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*DeleteSegmentUserRequest) ProtoMessage() {}

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

// Deprecated: Use DeleteSegmentUserRequest.ProtoReflect.Descriptor instead.
func (*DeleteSegmentUserRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{56}
}

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

func (x *DeleteSegmentUserRequest) GetCommand() *DeleteSegmentUserCommand {
	if x != nil {
		return x.Command
	}
	return nil
}

func (x *DeleteSegmentUserRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

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

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

func (*DeleteSegmentUserResponse) ProtoMessage() {}

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

// Deprecated: Use DeleteSegmentUserResponse.ProtoReflect.Descriptor instead.
func (*DeleteSegmentUserResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{57}
}

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

	SegmentId     string            `protobuf:"bytes,1,opt,name=segment_id,json=segmentId,proto3" json:"segment_id"`
	UserId        string            `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id"`
	State         SegmentUser_State `protobuf:"varint,3,opt,name=state,proto3,enum=bucketeer.feature.SegmentUser_State" json:"state"`
	EnvironmentId string            `protobuf:"bytes,5,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*GetSegmentUserRequest) ProtoMessage() {}

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

// Deprecated: Use GetSegmentUserRequest.ProtoReflect.Descriptor instead.
func (*GetSegmentUserRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{58}
}

func (x *GetSegmentUserRequest) GetSegmentId() string {
	if x != nil {
		return x.SegmentId
	}
	return ""
}

func (x *GetSegmentUserRequest) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

func (x *GetSegmentUserRequest) GetState() SegmentUser_State {
	if x != nil {
		return x.State
	}
	return SegmentUser_INCLUDED
}

func (x *GetSegmentUserRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

	User *SegmentUser `protobuf:"bytes,1,opt,name=user,proto3" json:"user"`
}

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

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

func (*GetSegmentUserResponse) ProtoMessage() {}

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

// Deprecated: Use GetSegmentUserResponse.ProtoReflect.Descriptor instead.
func (*GetSegmentUserResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{59}
}

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

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

	PageSize      int64                  `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size"`
	Cursor        string                 `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor"`
	SegmentId     string                 `protobuf:"bytes,3,opt,name=segment_id,json=segmentId,proto3" json:"segment_id"`
	State         *wrapperspb.Int32Value `protobuf:"bytes,4,opt,name=state,proto3" json:"state"`
	UserId        string                 `protobuf:"bytes,5,opt,name=user_id,json=userId,proto3" json:"user_id"`
	EnvironmentId string                 `protobuf:"bytes,7,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*ListSegmentUsersRequest) ProtoMessage() {}

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

// Deprecated: Use ListSegmentUsersRequest.ProtoReflect.Descriptor instead.
func (*ListSegmentUsersRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{60}
}

func (x *ListSegmentUsersRequest) GetPageSize() int64 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListSegmentUsersRequest) GetCursor() string {
	if x != nil {
		return x.Cursor
	}
	return ""
}

func (x *ListSegmentUsersRequest) GetSegmentId() string {
	if x != nil {
		return x.SegmentId
	}
	return ""
}

func (x *ListSegmentUsersRequest) GetState() *wrapperspb.Int32Value {
	if x != nil {
		return x.State
	}
	return nil
}

func (x *ListSegmentUsersRequest) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

func (x *ListSegmentUsersRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

	Users  []*SegmentUser `protobuf:"bytes,1,rep,name=users,proto3" json:"users"`
	Cursor string         `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor"`
}

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

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

func (*ListSegmentUsersResponse) ProtoMessage() {}

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

// Deprecated: Use ListSegmentUsersResponse.ProtoReflect.Descriptor instead.
func (*ListSegmentUsersResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{61}
}

func (x *ListSegmentUsersResponse) GetUsers() []*SegmentUser {
	if x != nil {
		return x.Users
	}
	return nil
}

func (x *ListSegmentUsersResponse) GetCursor() string {
	if x != nil {
		return x.Cursor
	}
	return ""
}

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

	SegmentId string `protobuf:"bytes,2,opt,name=segment_id,json=segmentId,proto3" json:"segment_id"`
	// Deprecated: Do not use.
	Command       *BulkUploadSegmentUsersCommand `protobuf:"bytes,3,opt,name=command,proto3" json:"command"`
	EnvironmentId string                         `protobuf:"bytes,4,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
	Data          []byte                         `protobuf:"bytes,5,opt,name=data,proto3" json:"data"`
	State         SegmentUser_State              `protobuf:"varint,6,opt,name=state,proto3,enum=bucketeer.feature.SegmentUser_State" json:"state"`
}

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

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

func (*BulkUploadSegmentUsersRequest) ProtoMessage() {}

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

// Deprecated: Use BulkUploadSegmentUsersRequest.ProtoReflect.Descriptor instead.
func (*BulkUploadSegmentUsersRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{62}
}

func (x *BulkUploadSegmentUsersRequest) GetSegmentId() string {
	if x != nil {
		return x.SegmentId
	}
	return ""
}

// Deprecated: Do not use.
func (x *BulkUploadSegmentUsersRequest) GetCommand() *BulkUploadSegmentUsersCommand {
	if x != nil {
		return x.Command
	}
	return nil
}

func (x *BulkUploadSegmentUsersRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

func (x *BulkUploadSegmentUsersRequest) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *BulkUploadSegmentUsersRequest) GetState() SegmentUser_State {
	if x != nil {
		return x.State
	}
	return SegmentUser_INCLUDED
}

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

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

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

func (*BulkUploadSegmentUsersResponse) ProtoMessage() {}

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

// Deprecated: Use BulkUploadSegmentUsersResponse.ProtoReflect.Descriptor instead.
func (*BulkUploadSegmentUsersResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{63}
}

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

	SegmentId     string            `protobuf:"bytes,2,opt,name=segment_id,json=segmentId,proto3" json:"segment_id"`
	State         SegmentUser_State `protobuf:"varint,3,opt,name=state,proto3,enum=bucketeer.feature.SegmentUser_State" json:"state"`
	EnvironmentId string            `protobuf:"bytes,4,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*BulkDownloadSegmentUsersRequest) ProtoMessage() {}

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

// Deprecated: Use BulkDownloadSegmentUsersRequest.ProtoReflect.Descriptor instead.
func (*BulkDownloadSegmentUsersRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{64}
}

func (x *BulkDownloadSegmentUsersRequest) GetSegmentId() string {
	if x != nil {
		return x.SegmentId
	}
	return ""
}

func (x *BulkDownloadSegmentUsersRequest) GetState() SegmentUser_State {
	if x != nil {
		return x.State
	}
	return SegmentUser_INCLUDED
}

func (x *BulkDownloadSegmentUsersRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

	Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data"` // segment user ids separated by new line
}

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

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

func (*BulkDownloadSegmentUsersResponse) ProtoMessage() {}

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

// Deprecated: Use BulkDownloadSegmentUsersResponse.ProtoReflect.Descriptor instead.
func (*BulkDownloadSegmentUsersResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{65}
}

func (x *BulkDownloadSegmentUsersResponse) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

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

	User          *user.User `protobuf:"bytes,1,opt,name=user,proto3" json:"user"`
	Tag           string     `protobuf:"bytes,3,opt,name=tag,proto3" json:"tag"`
	FeatureId     string     `protobuf:"bytes,4,opt,name=feature_id,json=featureId,proto3" json:"feature_id"` // it will evaluate a single feature if set
	EnvironmentId string     `protobuf:"bytes,5,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*EvaluateFeaturesRequest) ProtoMessage() {}

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

// Deprecated: Use EvaluateFeaturesRequest.ProtoReflect.Descriptor instead.
func (*EvaluateFeaturesRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{66}
}

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

func (x *EvaluateFeaturesRequest) GetTag() string {
	if x != nil {
		return x.Tag
	}
	return ""
}

func (x *EvaluateFeaturesRequest) GetFeatureId() string {
	if x != nil {
		return x.FeatureId
	}
	return ""
}

func (x *EvaluateFeaturesRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

	UserEvaluations *UserEvaluations `protobuf:"bytes,1,opt,name=user_evaluations,json=userEvaluations,proto3" json:"user_evaluations"`
}

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

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

func (*EvaluateFeaturesResponse) ProtoMessage() {}

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

// Deprecated: Use EvaluateFeaturesResponse.ProtoReflect.Descriptor instead.
func (*EvaluateFeaturesResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{67}
}

func (x *EvaluateFeaturesResponse) GetUserEvaluations() *UserEvaluations {
	if x != nil {
		return x.UserEvaluations
	}
	return nil
}

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

	Users         []*user.User `protobuf:"bytes,1,rep,name=users,proto3" json:"users"`
	FeatureIds    []string     `protobuf:"bytes,3,rep,name=feature_ids,json=featureIds,proto3" json:"feature_ids"`
	EnvironmentId string       `protobuf:"bytes,4,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*DebugEvaluateFeaturesRequest) ProtoMessage() {}

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

// Deprecated: Use DebugEvaluateFeaturesRequest.ProtoReflect.Descriptor instead.
func (*DebugEvaluateFeaturesRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{68}
}

func (x *DebugEvaluateFeaturesRequest) GetUsers() []*user.User {
	if x != nil {
		return x.Users
	}
	return nil
}

func (x *DebugEvaluateFeaturesRequest) GetFeatureIds() []string {
	if x != nil {
		return x.FeatureIds
	}
	return nil
}

func (x *DebugEvaluateFeaturesRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

	Evaluations        []*Evaluation `protobuf:"bytes,1,rep,name=evaluations,proto3" json:"evaluations"`
	ArchivedFeatureIds []string      `protobuf:"bytes,2,rep,name=archived_feature_ids,json=archivedFeatureIds,proto3" json:"archived_feature_ids"`
}

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

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

func (*DebugEvaluateFeaturesResponse) ProtoMessage() {}

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

// Deprecated: Use DebugEvaluateFeaturesResponse.ProtoReflect.Descriptor instead.
func (*DebugEvaluateFeaturesResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{69}
}

func (x *DebugEvaluateFeaturesResponse) GetEvaluations() []*Evaluation {
	if x != nil {
		return x.Evaluations
	}
	return nil
}

func (x *DebugEvaluateFeaturesResponse) GetArchivedFeatureIds() []string {
	if x != nil {
		return x.ArchivedFeatureIds
	}
	return nil
}

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

	PageSize       int64                          `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size"`
	Cursor         string                         `protobuf:"bytes,3,opt,name=cursor,proto3" json:"cursor"`
	OrderBy        ListTagsRequest_OrderBy        `protobuf:"varint,4,opt,name=order_by,json=orderBy,proto3,enum=bucketeer.feature.ListTagsRequest_OrderBy" json:"order_by"`
	OrderDirection ListTagsRequest_OrderDirection `protobuf:"varint,5,opt,name=order_direction,json=orderDirection,proto3,enum=bucketeer.feature.ListTagsRequest_OrderDirection" json:"order_direction"`
	SearchKeyword  string                         `protobuf:"bytes,6,opt,name=search_keyword,json=searchKeyword,proto3" json:"search_keyword"`
	EnvironmentId  string                         `protobuf:"bytes,7,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*ListTagsRequest) ProtoMessage() {}

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

// Deprecated: Use ListTagsRequest.ProtoReflect.Descriptor instead.
func (*ListTagsRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{70}
}

func (x *ListTagsRequest) GetPageSize() int64 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListTagsRequest) GetCursor() string {
	if x != nil {
		return x.Cursor
	}
	return ""
}

func (x *ListTagsRequest) GetOrderBy() ListTagsRequest_OrderBy {
	if x != nil {
		return x.OrderBy
	}
	return ListTagsRequest_DEFAULT
}

func (x *ListTagsRequest) GetOrderDirection() ListTagsRequest_OrderDirection {
	if x != nil {
		return x.OrderDirection
	}
	return ListTagsRequest_ASC
}

func (x *ListTagsRequest) GetSearchKeyword() string {
	if x != nil {
		return x.SearchKeyword
	}
	return ""
}

func (x *ListTagsRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

	Tags       []*Tag `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags"`
	Cursor     string `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor"`
	TotalCount int64  `protobuf:"varint,3,opt,name=total_count,json=totalCount,proto3" json:"total_count"`
}

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

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

func (*ListTagsResponse) ProtoMessage() {}

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

// Deprecated: Use ListTagsResponse.ProtoReflect.Descriptor instead.
func (*ListTagsResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{71}
}

func (x *ListTagsResponse) GetTags() []*Tag {
	if x != nil {
		return x.Tags
	}
	return nil
}

func (x *ListTagsResponse) GetCursor() string {
	if x != nil {
		return x.Cursor
	}
	return ""
}

func (x *ListTagsResponse) GetTotalCount() int64 {
	if x != nil {
		return x.TotalCount
	}
	return 0
}

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

	// Deprecated: Do not use.
	CreateFlagTriggerCommand *CreateFlagTriggerCommand `protobuf:"bytes,2,opt,name=create_flag_trigger_command,json=createFlagTriggerCommand,proto3" json:"create_flag_trigger_command"`
	EnvironmentId            string                    `protobuf:"bytes,3,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
	FeatureId                string                    `protobuf:"bytes,4,opt,name=feature_id,json=featureId,proto3" json:"feature_id"`
	Type                     FlagTrigger_Type          `protobuf:"varint,5,opt,name=type,proto3,enum=bucketeer.feature.FlagTrigger_Type" json:"type"`
	Action                   FlagTrigger_Action        `protobuf:"varint,6,opt,name=action,proto3,enum=bucketeer.feature.FlagTrigger_Action" json:"action"`
	Description              string                    `protobuf:"bytes,7,opt,name=description,proto3" json:"description"`
}

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

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

func (*CreateFlagTriggerRequest) ProtoMessage() {}

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

// Deprecated: Use CreateFlagTriggerRequest.ProtoReflect.Descriptor instead.
func (*CreateFlagTriggerRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{72}
}

// Deprecated: Do not use.
func (x *CreateFlagTriggerRequest) GetCreateFlagTriggerCommand() *CreateFlagTriggerCommand {
	if x != nil {
		return x.CreateFlagTriggerCommand
	}
	return nil
}

func (x *CreateFlagTriggerRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

func (x *CreateFlagTriggerRequest) GetFeatureId() string {
	if x != nil {
		return x.FeatureId
	}
	return ""
}

func (x *CreateFlagTriggerRequest) GetType() FlagTrigger_Type {
	if x != nil {
		return x.Type
	}
	return FlagTrigger_Type_UNKNOWN
}

func (x *CreateFlagTriggerRequest) GetAction() FlagTrigger_Action {
	if x != nil {
		return x.Action
	}
	return FlagTrigger_Action_UNKNOWN
}

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

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

	FlagTrigger *FlagTrigger `protobuf:"bytes,1,opt,name=flag_trigger,json=flagTrigger,proto3" json:"flag_trigger"`
	Url         string       `protobuf:"bytes,2,opt,name=url,proto3" json:"url"`
}

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

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

func (*CreateFlagTriggerResponse) ProtoMessage() {}

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

// Deprecated: Use CreateFlagTriggerResponse.ProtoReflect.Descriptor instead.
func (*CreateFlagTriggerResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{73}
}

func (x *CreateFlagTriggerResponse) GetFlagTrigger() *FlagTrigger {
	if x != nil {
		return x.FlagTrigger
	}
	return nil
}

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

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

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	// Deprecated: Do not use.
	DeleteFlagTriggerCommand *DeleteFlagTriggerCommand `protobuf:"bytes,3,opt,name=delete_flag_trigger_command,json=deleteFlagTriggerCommand,proto3" json:"delete_flag_trigger_command"`
	EnvironmentId            string                    `protobuf:"bytes,4,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*DeleteFlagTriggerRequest) ProtoMessage() {}

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

// Deprecated: Use DeleteFlagTriggerRequest.ProtoReflect.Descriptor instead.
func (*DeleteFlagTriggerRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{74}
}

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

// Deprecated: Do not use.
func (x *DeleteFlagTriggerRequest) GetDeleteFlagTriggerCommand() *DeleteFlagTriggerCommand {
	if x != nil {
		return x.DeleteFlagTriggerCommand
	}
	return nil
}

func (x *DeleteFlagTriggerRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

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

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

func (*DeleteFlagTriggerResponse) ProtoMessage() {}

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

// Deprecated: Use DeleteFlagTriggerResponse.ProtoReflect.Descriptor instead.
func (*DeleteFlagTriggerResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{75}
}

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

	Id            string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	EnvironmentId string `protobuf:"bytes,4,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
	// Deprecated: Do not use.
	ChangeFlagTriggerDescriptionCommand *ChangeFlagTriggerDescriptionCommand `protobuf:"bytes,3,opt,name=change_flag_trigger_description_command,json=changeFlagTriggerDescriptionCommand,proto3" json:"change_flag_trigger_description_command"`
	Description                         *wrapperspb.StringValue              `protobuf:"bytes,5,opt,name=description,proto3" json:"description"`
	Reset_                              bool                                 `protobuf:"varint,6,opt,name=reset,proto3" json:"reset"`
	Disabled                            *wrapperspb.BoolValue                `protobuf:"bytes,7,opt,name=disabled,proto3" json:"disabled"`
}

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

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

func (*UpdateFlagTriggerRequest) ProtoMessage() {}

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

// Deprecated: Use UpdateFlagTriggerRequest.ProtoReflect.Descriptor instead.
func (*UpdateFlagTriggerRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{76}
}

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

func (x *UpdateFlagTriggerRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

// Deprecated: Do not use.
func (x *UpdateFlagTriggerRequest) GetChangeFlagTriggerDescriptionCommand() *ChangeFlagTriggerDescriptionCommand {
	if x != nil {
		return x.ChangeFlagTriggerDescriptionCommand
	}
	return nil
}

func (x *UpdateFlagTriggerRequest) GetDescription() *wrapperspb.StringValue {
	if x != nil {
		return x.Description
	}
	return nil
}

func (x *UpdateFlagTriggerRequest) GetReset_() bool {
	if x != nil {
		return x.Reset_
	}
	return false
}

func (x *UpdateFlagTriggerRequest) GetDisabled() *wrapperspb.BoolValue {
	if x != nil {
		return x.Disabled
	}
	return nil
}

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

	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url"`
}

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

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

func (*UpdateFlagTriggerResponse) ProtoMessage() {}

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

// Deprecated: Use UpdateFlagTriggerResponse.ProtoReflect.Descriptor instead.
func (*UpdateFlagTriggerResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{77}
}

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

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

	Id                       string                    `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	EnableFlagTriggerCommand *EnableFlagTriggerCommand `protobuf:"bytes,3,opt,name=enable_flag_trigger_command,json=enableFlagTriggerCommand,proto3" json:"enable_flag_trigger_command"`
	EnvironmentId            string                    `protobuf:"bytes,4,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*EnableFlagTriggerRequest) ProtoMessage() {}

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

// Deprecated: Use EnableFlagTriggerRequest.ProtoReflect.Descriptor instead.
func (*EnableFlagTriggerRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{78}
}

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

func (x *EnableFlagTriggerRequest) GetEnableFlagTriggerCommand() *EnableFlagTriggerCommand {
	if x != nil {
		return x.EnableFlagTriggerCommand
	}
	return nil
}

func (x *EnableFlagTriggerRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

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

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

func (*EnableFlagTriggerResponse) ProtoMessage() {}

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

// Deprecated: Use EnableFlagTriggerResponse.ProtoReflect.Descriptor instead.
func (*EnableFlagTriggerResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{79}
}

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

	Id                        string                     `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	DisableFlagTriggerCommand *DisableFlagTriggerCommand `protobuf:"bytes,3,opt,name=disable_flag_trigger_command,json=disableFlagTriggerCommand,proto3" json:"disable_flag_trigger_command"`
	EnvironmentId             string                     `protobuf:"bytes,4,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

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

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

func (*DisableFlagTriggerRequest) ProtoMessage() {}

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

// Deprecated: Use DisableFlagTriggerRequest.ProtoReflect.Descriptor instead.
func (*DisableFlagTriggerRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{80}
}

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

func (x *DisableFlagTriggerRequest) GetDisableFlagTriggerCommand() *DisableFlagTriggerCommand {
	if x != nil {
		return x.DisableFlagTriggerCommand
	}
	return nil
}

func (x *DisableFlagTriggerRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

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

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

func (*DisableFlagTriggerResponse) ProtoMessage() {}

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

// Deprecated: Use DisableFlagTriggerResponse.ProtoReflect.Descriptor instead.
func (*DisableFlagTriggerResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{81}
}

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

	Id                      string                   `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	ResetFlagTriggerCommand *ResetFlagTriggerCommand `protobuf:"bytes,3,opt,name=reset_flag_trigger_command,json=resetFlagTriggerCommand,proto3" json:"reset_flag_trigger_command"`
	EnvironmentId           string                   `protobuf:"bytes,4,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

func (x *ResetFlagTriggerRequest) Reset() {
	*x = ResetFlagTriggerRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_proto_feature_service_proto_msgTypes[82]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ResetFlagTriggerRequest) ProtoMessage() {}

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

// Deprecated: Use ResetFlagTriggerRequest.ProtoReflect.Descriptor instead.
func (*ResetFlagTriggerRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{82}
}

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

func (x *ResetFlagTriggerRequest) GetResetFlagTriggerCommand() *ResetFlagTriggerCommand {
	if x != nil {
		return x.ResetFlagTriggerCommand
	}
	return nil
}

func (x *ResetFlagTriggerRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

	FlagTrigger *FlagTrigger `protobuf:"bytes,1,opt,name=flag_trigger,json=flagTrigger,proto3" json:"flag_trigger"`
	Url         string       `protobuf:"bytes,2,opt,name=url,proto3" json:"url"`
}

func (x *ResetFlagTriggerResponse) Reset() {
	*x = ResetFlagTriggerResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_proto_feature_service_proto_msgTypes[83]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ResetFlagTriggerResponse) ProtoMessage() {}

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

// Deprecated: Use ResetFlagTriggerResponse.ProtoReflect.Descriptor instead.
func (*ResetFlagTriggerResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{83}
}

func (x *ResetFlagTriggerResponse) GetFlagTrigger() *FlagTrigger {
	if x != nil {
		return x.FlagTrigger
	}
	return nil
}

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

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

	Id            string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	EnvironmentId string `protobuf:"bytes,3,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

func (x *GetFlagTriggerRequest) Reset() {
	*x = GetFlagTriggerRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_proto_feature_service_proto_msgTypes[84]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetFlagTriggerRequest) ProtoMessage() {}

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

// Deprecated: Use GetFlagTriggerRequest.ProtoReflect.Descriptor instead.
func (*GetFlagTriggerRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{84}
}

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

func (x *GetFlagTriggerRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

	FlagTrigger *FlagTrigger `protobuf:"bytes,1,opt,name=flag_trigger,json=flagTrigger,proto3" json:"flag_trigger"`
	Url         string       `protobuf:"bytes,2,opt,name=url,proto3" json:"url"`
}

func (x *GetFlagTriggerResponse) Reset() {
	*x = GetFlagTriggerResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_proto_feature_service_proto_msgTypes[85]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetFlagTriggerResponse) ProtoMessage() {}

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

// Deprecated: Use GetFlagTriggerResponse.ProtoReflect.Descriptor instead.
func (*GetFlagTriggerResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{85}
}

func (x *GetFlagTriggerResponse) GetFlagTrigger() *FlagTrigger {
	if x != nil {
		return x.FlagTrigger
	}
	return nil
}

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

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

	FeatureId      string                                 `protobuf:"bytes,1,opt,name=feature_id,json=featureId,proto3" json:"feature_id"`
	Cursor         string                                 `protobuf:"bytes,3,opt,name=cursor,proto3" json:"cursor"`
	PageSize       int32                                  `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size"`
	OrderBy        ListFlagTriggersRequest_OrderBy        `protobuf:"varint,5,opt,name=order_by,json=orderBy,proto3,enum=bucketeer.feature.ListFlagTriggersRequest_OrderBy" json:"order_by"`
	OrderDirection ListFlagTriggersRequest_OrderDirection `protobuf:"varint,6,opt,name=order_direction,json=orderDirection,proto3,enum=bucketeer.feature.ListFlagTriggersRequest_OrderDirection" json:"order_direction"`
	EnvironmentId  string                                 `protobuf:"bytes,7,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

func (x *ListFlagTriggersRequest) Reset() {
	*x = ListFlagTriggersRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_proto_feature_service_proto_msgTypes[86]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ListFlagTriggersRequest) ProtoMessage() {}

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

// Deprecated: Use ListFlagTriggersRequest.ProtoReflect.Descriptor instead.
func (*ListFlagTriggersRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{86}
}

func (x *ListFlagTriggersRequest) GetFeatureId() string {
	if x != nil {
		return x.FeatureId
	}
	return ""
}

func (x *ListFlagTriggersRequest) GetCursor() string {
	if x != nil {
		return x.Cursor
	}
	return ""
}

func (x *ListFlagTriggersRequest) GetPageSize() int32 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListFlagTriggersRequest) GetOrderBy() ListFlagTriggersRequest_OrderBy {
	if x != nil {
		return x.OrderBy
	}
	return ListFlagTriggersRequest_DEFAULT
}

func (x *ListFlagTriggersRequest) GetOrderDirection() ListFlagTriggersRequest_OrderDirection {
	if x != nil {
		return x.OrderDirection
	}
	return ListFlagTriggersRequest_ASC
}

func (x *ListFlagTriggersRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

	FlagTriggers []*ListFlagTriggersResponse_FlagTriggerWithUrl `protobuf:"bytes,1,rep,name=flag_triggers,json=flagTriggers,proto3" json:"flag_triggers"`
	Cursor       string                                         `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor"`
	TotalCount   int64                                          `protobuf:"varint,3,opt,name=total_count,json=totalCount,proto3" json:"total_count"`
}

func (x *ListFlagTriggersResponse) Reset() {
	*x = ListFlagTriggersResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_proto_feature_service_proto_msgTypes[87]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ListFlagTriggersResponse) ProtoMessage() {}

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

// Deprecated: Use ListFlagTriggersResponse.ProtoReflect.Descriptor instead.
func (*ListFlagTriggersResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{87}
}

func (x *ListFlagTriggersResponse) GetFlagTriggers() []*ListFlagTriggersResponse_FlagTriggerWithUrl {
	if x != nil {
		return x.FlagTriggers
	}
	return nil
}

func (x *ListFlagTriggersResponse) GetCursor() string {
	if x != nil {
		return x.Cursor
	}
	return ""
}

func (x *ListFlagTriggersResponse) GetTotalCount() int64 {
	if x != nil {
		return x.TotalCount
	}
	return 0
}

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

	Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token"`
}

func (x *FlagTriggerWebhookRequest) Reset() {
	*x = FlagTriggerWebhookRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_proto_feature_service_proto_msgTypes[88]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FlagTriggerWebhookRequest) ProtoMessage() {}

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

// Deprecated: Use FlagTriggerWebhookRequest.ProtoReflect.Descriptor instead.
func (*FlagTriggerWebhookRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{88}
}

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

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

func (x *FlagTriggerWebhookResponse) Reset() {
	*x = FlagTriggerWebhookResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_proto_feature_service_proto_msgTypes[89]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*FlagTriggerWebhookResponse) ProtoMessage() {}

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

// Deprecated: Use FlagTriggerWebhookResponse.ProtoReflect.Descriptor instead.
func (*FlagTriggerWebhookResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{89}
}

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

	EnvironmentId string `protobuf:"bytes,1,opt,name=environment_id,json=environmentId,proto3" json:"environment_id"`
}

func (x *GetUserAttributeKeysRequest) Reset() {
	*x = GetUserAttributeKeysRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_proto_feature_service_proto_msgTypes[90]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetUserAttributeKeysRequest) ProtoMessage() {}

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

// Deprecated: Use GetUserAttributeKeysRequest.ProtoReflect.Descriptor instead.
func (*GetUserAttributeKeysRequest) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{90}
}

func (x *GetUserAttributeKeysRequest) GetEnvironmentId() string {
	if x != nil {
		return x.EnvironmentId
	}
	return ""
}

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

	UserAttributeKeys []string `protobuf:"bytes,1,rep,name=user_attribute_keys,json=userAttributeKeys,proto3" json:"user_attribute_keys"`
}

func (x *GetUserAttributeKeysResponse) Reset() {
	*x = GetUserAttributeKeysResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_proto_feature_service_proto_msgTypes[91]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetUserAttributeKeysResponse) ProtoMessage() {}

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

// Deprecated: Use GetUserAttributeKeysResponse.ProtoReflect.Descriptor instead.
func (*GetUserAttributeKeysResponse) Descriptor() ([]byte, []int) {
	return file_proto_feature_service_proto_rawDescGZIP(), []int{91}
}

func (x *GetUserAttributeKeysResponse) GetUserAttributeKeys() []string {
	if x != nil {
		return x.UserAttributeKeys
	}
	return nil
}

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

	FlagTrigger *FlagTrigger `protobuf:"bytes,1,opt,name=flag_trigger,json=flagTrigger,proto3" json:"flag_trigger"`
	Url         string       `protobuf:"bytes,2,opt,name=url,proto3" json:"url"`
}

func (x *ListFlagTriggersResponse_FlagTriggerWithUrl) Reset() {
	*x = ListFlagTriggersResponse_FlagTriggerWithUrl{}
	if protoimpl.UnsafeEnabled {
		mi := &file_proto_feature_service_proto_msgTypes[92]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ListFlagTriggersResponse_FlagTriggerWithUrl) ProtoMessage() {}

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

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

func (x *ListFlagTriggersResponse_FlagTriggerWithUrl) GetFlagTrigger() *FlagTrigger {
	if x != nil {
		return x.FlagTrigger
	}
	return nil
}

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

var File_proto_feature_service_proto protoreflect.FileDescriptor

var file_proto_feature_service_proto_rawDesc = []byte{
	0x0a, 0x1b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2f,
	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x62,
	0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e,
	0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64,
	0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
	0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e,
	0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e,
	0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
	0x19, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x73, 0x74,
	0x72, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
	0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x66, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x75, 0x73,
	0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2f, 0x73, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74,
	0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2f, 0x76, 0x61, 0x72, 0x69,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2f, 0x70, 0x72, 0x65, 0x72, 0x65,
	0x71, 0x75, 0x69, 0x73, 0x69, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2f, 0x72, 0x75, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x66, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x2f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x22, 0xd5, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x0e,
	0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72,
	0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x79, 0x0a, 0x0f, 0x66, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x33,
	0x92, 0x41, 0x30, 0x32, 0x2e, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x2c,
	0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20,
	0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x2e, 0x52, 0x0e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x4a, 0x0a, 0x12, 0x47, 0x65, 0x74,
	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x34, 0x0a, 0x07, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x07, 0x66, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x53, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x69,
	0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x25, 0x0a,
	0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65,
	0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x4d, 0x0a, 0x13, 0x47, 0x65,
	0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x36, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52,
	0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0xa3, 0x07, 0x0a, 0x13, 0x4c, 0x69,
	0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16,
	0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x08, 0x6f, 0x72,
	0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x62,
	0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x52, 0x07, 0x6f, 0x72,
	0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x5e, 0x0a, 0x0f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x64,
	0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35,
	0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x69, 0x72, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x69, 0x72, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69,
	0x6e, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x61, 0x69, 0x6e, 0x74,
	0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x0e, 0x68,
	0x61, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
	0x0d, 0x68, 0x61, 0x73, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25,
	0x0a, 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64,
	0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65,
	0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65,
	0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x52, 0x08, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x47, 0x0a,
	0x11, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x72, 0x65, 0x71, 0x75, 0x69, 0x73, 0x69, 0x74,
	0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x68, 0x61, 0x73, 0x50, 0x72, 0x65, 0x72, 0x65, 0x71, 0x75,
	0x69, 0x73, 0x69, 0x74, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f,
	0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0e, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4c, 0x61,
	0x73, 0x74, 0x55, 0x73, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x52, 0x0a, 0x18, 0x68, 0x61, 0x73,
	0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x73,
	0x5f, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f,
	0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x68, 0x61, 0x73, 0x46, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x41, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x22, 0x65, 0x0a,
	0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41,
	0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12,
	0x0e, 0x0a, 0x0a, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x10, 0x02, 0x12,
	0x0e, 0x0a, 0x0a, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x10, 0x03, 0x12,
	0x08, 0x0a, 0x04, 0x54, 0x41, 0x47, 0x53, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4e, 0x41,
	0x42, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x4f,
	0x50, 0x53, 0x10, 0x06, 0x22, 0x23, 0x0a, 0x0e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x69, 0x72,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x53, 0x43, 0x10, 0x00, 0x12,
	0x08, 0x0a, 0x04, 0x44, 0x45, 0x53, 0x43, 0x10, 0x01, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22,
	0x5a, 0x0a, 0x0e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72,
	0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12,
	0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x08, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xe1, 0x01, 0x0a, 0x14,
	0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65,
	0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06,
	0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75,
	0x72, 0x73, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x17, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65,
	0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x14, 0x66, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
	0x92, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b,
	0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63,
	0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72,
	0x73, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72,
	0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04,
	0x08, 0x04, 0x10, 0x05, 0x22, 0x6d, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65,
	0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63,
	0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72,
	0x73, 0x6f, 0x72, 0x22, 0xcc, 0x04, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x07,
	0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e,
	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43,
	0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x42, 0x11, 0x18, 0x01, 0x92, 0x41, 0x0c, 0x32, 0x0a, 0x64,
	0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
	0x6e, 0x64, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e,
	0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x13,
	0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b,
	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c,
	0x0a, 0x0a, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x0a, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x04,
	0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x58, 0x0a, 0x1a, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
	0x5f, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e,
	0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33,
	0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x17, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4f,
	0x6e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12,
	0x5a, 0x0a, 0x1b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x5f, 0x76,
	0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0a,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75,
	0x65, 0x52, 0x18, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4f, 0x66, 0x66, 0x56, 0x61, 0x72,
	0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4f, 0x0a, 0x0e, 0x76,
	0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e,
	0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x76,
	0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x4a, 0x04, 0x08, 0x02,
	0x10, 0x03, 0x22, 0x4d, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62,
	0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x07, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x22, 0xa3, 0x01, 0x0a, 0x12, 0x50, 0x72, 0x65, 0x72, 0x65, 0x71, 0x75, 0x69, 0x73, 0x69,
	0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x43, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e,
	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a,
	0x0c, 0x70, 0x72, 0x65, 0x72, 0x65, 0x71, 0x75, 0x69, 0x73, 0x69, 0x74, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x50, 0x72, 0x65, 0x72, 0x65, 0x71, 0x75, 0x69,
	0x73, 0x69, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x72, 0x65,
	0x71, 0x75, 0x69, 0x73, 0x69, 0x74, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x0c, 0x54, 0x61, 0x72, 0x67,
	0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x43, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e,
	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a,
	0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x74,
	0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x0f, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x43, 0x0a, 0x0b, 0x63, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d,
	0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0,
	0x41, 0x02, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f,
	0x0a, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42,
	0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22,
	0x83, 0x01, 0x0a, 0x0a, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x43,
	0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79,
	0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x04, 0x72, 0x75, 0x6c, 0x65, 0x22, 0x67, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x43, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x12, 0x43, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
	0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x63, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x74, 0x61, 0x67, 0x22, 0xeb,
	0x07, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
	0x74, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
	0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d,
	0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x13, 0x0a,
	0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02,
	0x69, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69,
	0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x63,
	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x34, 0x0a, 0x07, 0x65,
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42,
	0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x64, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
	0x08, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x46, 0x0a, 0x10, 0x64, 0x65, 0x66,
	0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79,
	0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67,
	0x79, 0x12, 0x41, 0x0a, 0x0d, 0x6f, 0x66, 0x66, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e,
	0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6f, 0x66, 0x66, 0x56, 0x61, 0x72, 0x69, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x61,
	0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x11, 0x72, 0x65, 0x73, 0x65, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67,
	0x53, 0x65, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x73, 0x63,
	0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75,
	0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x4f, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0d, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x0c, 0x72, 0x75, 0x6c,
	0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x1d, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b,
	0x72, 0x75, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x70,
	0x72, 0x65, 0x72, 0x65, 0x71, 0x75, 0x69, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x62, 0x75, 0x63, 0x6b,
	0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x50, 0x72,
	0x65, 0x72, 0x65, 0x71, 0x75, 0x69, 0x73, 0x69, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x52, 0x13, 0x70, 0x72, 0x65, 0x72, 0x65, 0x71, 0x75, 0x69, 0x73, 0x69, 0x74, 0x65, 0x43, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d,
	0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x3d, 0x0a,
	0x0b, 0x74, 0x61, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x11, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x52, 0x0a, 0x74, 0x61, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x4d, 0x0a, 0x15,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65,
	0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x52, 0x07, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xe9, 0x01, 0x0a, 0x19,
	0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6e, 0x76,
	0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d,
	0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x63, 0x68,
	0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42,
	0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41,
	0x74, 0x12, 0x54, 0x0a, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x63,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62,
	0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64,
	0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x63, 0x68, 0x65, 0x64,
	0x75, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xfe, 0x01, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6e,
	0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e,
	0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x12, 0x43, 0x0a, 0x0c, 0x73,
	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x0b, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x74,
	0x12, 0x54, 0x0a, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x75,
	0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e,
	0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42,
	0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x43,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x23, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x63, 0x0a, 0x20, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x46, 0x6c,
	0x61, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x2a, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x65, 0x6e,
	0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x02, 0x69,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64,
	0x22, 0x23, 0x0a, 0x21, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75,
	0x6c, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x63, 0x68,
	0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69,
	0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65,
	0x6e, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f,
	0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x20, 0x4c, 0x69, 0x73,
	0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a,
	0x16, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f,
	0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e,
	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x14, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64,
	0x46, 0x6c, 0x61, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, 0xb0, 0x01, 0x0a, 0x14,
	0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x02, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65,
	0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x07,
	0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
	0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
	0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72,
	0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x17,
	0x0a, 0x15, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x61,
	0x62, 0x6c, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x42, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x07, 0x63, 0x6f,
	0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12,
	0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69,
	0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e,
	0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x18, 0x0a, 0x16,
	0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x15, 0x41, 0x72, 0x63, 0x68, 0x69,
	0x76, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
	0x12, 0x42, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x28, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x46, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6d,
	0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25,
	0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d,
	0x65, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x18, 0x0a, 0x16, 0x41,
	0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb6, 0x01, 0x0a, 0x17, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68,
	0x69, 0x76, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x44, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65,
	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x07,
	0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
	0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
	0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72,
	0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x1a,
	0x0a, 0x18, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x14, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x02, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72,
	0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x07, 0x63,
	0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
	0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
	0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f,
	0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f,
	0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x17, 0x0a,
	0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdf, 0x03, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x5d, 0x0a, 0x16, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65,
	0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65,
	0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d,
	0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52,
	0x14, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f,
	0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x69, 0x0a, 0x1a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f,
	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d,
	0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x62, 0x75, 0x63, 0x6b,
	0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x43, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43,
	0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x18, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
	0x12, 0x4a, 0x0a, 0x10, 0x61, 0x64, 0x64, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d,
	0x61, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x75, 0x63,
	0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x41,
	0x64, 0x64, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x0e, 0x61, 0x64,
	0x64, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x12, 0x53, 0x0a, 0x13,
	0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
	0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x75, 0x63, 0x6b,
	0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x52, 0x65,
	0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x11,
	0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
	0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65,
	0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x64, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0x1e, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xaf, 0x01, 0x0a, 0x1e, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x36, 0x0a, 0x08, 0x63,
	0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
	0x6e, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a,
	0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65,
	0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x21, 0x0a, 0x1f, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa1, 0x02,
	0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x54,
	0x61, 0x72, 0x67, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
	0x36, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x08, 0x63,
	0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
	0x74, 0x12, 0x49, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x35, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x25, 0x0a, 0x0e,
	0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e,
	0x74, 0x49, 0x64, 0x22, 0x26, 0x0a, 0x04, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x0b, 0x0a, 0x07, 0x55,
	0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45, 0x52,
	0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x50, 0x53, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x03, 0x10,
	0x04, 0x22, 0x20, 0x0a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x13, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x46, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x74, 0x0a, 0x07, 0x63,
	0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62,
	0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x2e, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6d,
	0x6d, 0x61, 0x6e, 0x64, 0x42, 0x32, 0x18, 0x01, 0x92, 0x41, 0x2d, 0x32, 0x2b, 0x64, 0x65, 0x70,
	0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x61, 0x72,
	0x67, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64,
	0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
	0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
	0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72,
	0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x74, 0x61, 0x72, 0x67,
	0x65, 0x74, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69,
	0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45,
	0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x03,
	0x10, 0x04, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x14, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72,
	0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x42, 0x11, 0x18,
	0x01, 0x92, 0x41, 0x0c, 0x32, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64,
	0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e,
	0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20,
	0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x4d, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x34, 0x0a, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x73, 0x65,
	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x5a, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x12,
	0x2a, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69,
	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x65, 0x6e,
	0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x02, 0x10,
	0x03, 0x22, 0x4a, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65,
	0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xcb, 0x04,
	0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69,
	0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69,
	0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x49, 0x0a, 0x08, 0x6f, 0x72,
	0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x62,
	0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x52, 0x07, 0x6f, 0x72,
	0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x5e, 0x0a, 0x0f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x64,
	0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35,
	0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x69, 0x72, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x69, 0x72, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f,
	0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73,
	0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, 0x0a, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49,
	0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x12, 0x43, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f,
	0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x69, 0x73, 0x49, 0x6e, 0x55, 0x73, 0x65,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f,
	0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x64, 0x22, 0x5c, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x0b, 0x0a,
	0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x41,
	0x4d, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x5f,
	0x41, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x44, 0x5f,
	0x41, 0x54, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49,
	0x4f, 0x4e, 0x53, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x53, 0x45, 0x52, 0x53, 0x10, 0x05,
	0x22, 0x23, 0x0a, 0x0e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x53, 0x43, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44,
	0x45, 0x53, 0x43, 0x10, 0x01, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x87, 0x01, 0x0a, 0x14,
	0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65,
	0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06,
	0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75,
	0x72, 0x73, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa9, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e,
	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x54,
	0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x27, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x42, 0x11, 0x18, 0x01, 0x92, 0x41, 0x0c, 0x32,
	0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6d,
	0x6d, 0x61, 0x6e, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d,
	0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e,
	0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x03, 0x10,
	0x04, 0x22, 0x17, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x95, 0x02, 0x0a, 0x14, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x02, 0x69, 0x64, 0x12, 0x49, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65,
	0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
	0x64, 0x42, 0x11, 0x18, 0x01, 0x92, 0x41, 0x0c, 0x32, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63,
	0x61, 0x74, 0x65, 0x64, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x12, 0x2a,
	0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x65, 0x6e, 0x76,
	0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e,
	0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0b,
	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
	0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x04, 0x08, 0x03,
	0x10, 0x04, 0x22, 0x4d, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x73,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62,
	0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x22, 0x98, 0x01, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x07, 0x63,
	0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62,
	0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x2e, 0x41, 0x64, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43,
	0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12,
	0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69,
	0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e,
	0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x18, 0x0a, 0x16,
	0x41, 0x64, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x02, 0x69, 0x64, 0x12, 0x45, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72,
	0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
	0x64, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e,
	0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49,
	0x64, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x1b, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d,
	0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a,
	0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65,
	0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61,
	0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e,
	0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69,
	0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22,
	0x4c, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65,
	0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x04, 0x75, 0x73, 0x65,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
	0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0xe6, 0x01,
	0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65,
	0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67,
	0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61,
	0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x1d,
	0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x31, 0x0a,
	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49,
	0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
	0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x76,
	0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64,
	0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0x68, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65,
	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65,
	0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73,
	0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72,
	0x22, 0xd0, 0x02, 0x0a, 0x1d, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49,
	0x64, 0x12, 0x5d, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x30, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x6c, 0x6f, 0x61,
	0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x6d,
	0x6d, 0x61, 0x6e, 0x64, 0x42, 0x11, 0x18, 0x01, 0x92, 0x41, 0x0c, 0x32, 0x0a, 0x64, 0x65, 0x70,
	0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
	0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f,
	0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f,
	0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x34, 0x92, 0x41, 0x31, 0x32, 0x2f, 0x73, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x69, 0x64, 0x73, 0x20, 0x73, 0x65, 0x70,
	0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x20,
	0x6f, 0x72, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74,
	0x61, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x24, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
	0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4a, 0x04, 0x08,
	0x01, 0x10, 0x02, 0x22, 0x20, 0x0a, 0x1e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x6c, 0x6f, 0x61,
	0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x1f, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x6f,
	0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65,
	0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
	0x41, 0x02, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3a, 0x0a,
	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62,
	0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6e, 0x76,
	0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d,
	0x65, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x36, 0x0a, 0x20, 0x42,
	0x75, 0x6c, 0x6b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x22, 0xab, 0x01, 0x0a, 0x17, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65,
	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x2d, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e,
	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55,
	0x73, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x10,
	0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67,
	0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12,
	0x2a, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69,
	0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x65, 0x6e,
	0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x02, 0x10,
	0x03, 0x22, 0x69, 0x0a, 0x18, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a,
	0x10, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
	0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72,
	0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0f, 0x75, 0x73, 0x65,
	0x72, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa1, 0x01, 0x0a,
	0x1c, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a,
	0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62,
	0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73,
	0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x24,
	0x0a, 0x0b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20,
	0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x49, 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d,
	0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64,
	0x22, 0x92, 0x01, 0x0a, 0x1d, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61,
	0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0b, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
	0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x45, 0x76, 0x61, 0x6c,
	0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x12, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x49, 0x64, 0x73, 0x22, 0xac, 0x03, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61,
	0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67,
	0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61,
	0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x45,
	0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x2a, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x52, 0x07, 0x6f, 0x72,
	0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x5a, 0x0a, 0x0f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x64,
	0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31,
	0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x77,
	0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63,
	0x68, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69,
	0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22,
	0x48, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45,
	0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x44, 0x10, 0x01, 0x12,
	0x0e, 0x0a, 0x0a, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x10, 0x02, 0x12,
	0x0e, 0x0a, 0x0a, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x10, 0x03, 0x12,
	0x08, 0x0a, 0x04, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x04, 0x22, 0x23, 0x0a, 0x0e, 0x4f, 0x72, 0x64,
	0x65, 0x72, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x07, 0x0a, 0x03, 0x41,
	0x53, 0x43, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x45, 0x53, 0x43, 0x10, 0x01, 0x4a, 0x04,
	0x08, 0x01, 0x10, 0x02, 0x22, 0x77, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65,
	0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x54, 0x61, 0x67, 0x52, 0x04,
	0x74, 0x61, 0x67, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b,
	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x03,
	0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67,
	0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x7d, 0x0a, 0x1b, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65,
	0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x2b, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72,
	0x69, 0x67, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x42, 0x11, 0x18, 0x01,
	0x92, 0x41, 0x0c, 0x32, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52,
	0x18, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67,
	0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6e, 0x76,
	0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d,
	0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
	0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x6c, 0x61, 0x67,
	0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
	0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x6c, 0x61, 0x67,
	0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64,
	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x04, 0x08,
	0x01, 0x10, 0x02, 0x22, 0x70, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61,
	0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x41, 0x0a, 0x0c, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65,
	0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x6c, 0x61, 0x67, 0x54,
	0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x0b, 0x66, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67,
	0x67, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0xd6, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
	0x69, 0x64, 0x12, 0x7d, 0x0a, 0x1b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x66, 0x6c, 0x61,
	0x67, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
	0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6d,
	0x6d, 0x61, 0x6e, 0x64, 0x42, 0x11, 0x18, 0x01, 0x92, 0x41, 0x0c, 0x32, 0x0a, 0x64, 0x65, 0x70,
	0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x18, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46,
	0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
	0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
	0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72,
	0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x1b,
	0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67,
	0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe0, 0x03, 0x0a, 0x18,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65,
	0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2a, 0x0a,
	0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69,
	0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x9f, 0x01, 0x0a, 0x27, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65,
	0x72, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f,
	0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x62, 0x75,
	0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e,
	0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65,
	0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d,
	0x61, 0x6e, 0x64, 0x42, 0x11, 0x18, 0x01, 0x92, 0x41, 0x0c, 0x32, 0x0a, 0x64, 0x65, 0x70, 0x72,
	0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x23, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x6c,
	0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x64,
	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b,
	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x05, 0x72,
	0x65, 0x73, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x29, 0x92, 0x41, 0x26, 0x32,
	0x24, 0x49, 0x66, 0x20, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x20,
	0x74, 0x68, 0x65, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x68, 0x6f, 0x6f, 0x6b,
	0x20, 0x55, 0x52, 0x4c, 0x2e, 0x52, 0x05, 0x72, 0x65, 0x73, 0x65, 0x74, 0x12, 0x5a, 0x0a, 0x08,
	0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x22, 0x92, 0x41, 0x1f, 0x32,
	0x1d, 0x49, 0x66, 0x20, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c,
	0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x52, 0x08,
	0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x76,
	0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67,
	0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x03, 0x75,
	0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x47, 0x92, 0x41, 0x44, 0x32, 0x42, 0x49,
	0x66, 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x20, 0x69, 0x73, 0x20, 0x74, 0x72, 0x75, 0x65, 0x2c,
	0x20, 0x6e, 0x65, 0x77, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x74,
	0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x68, 0x6f, 0x6f, 0x6b, 0x20, 0x55, 0x52, 0x4c, 0x20,
	0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64,
	0x2e, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0xc3, 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x02, 0x69, 0x64, 0x12, 0x6a, 0x0a, 0x1b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x6c,
	0x61, 0x67, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
	0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65,
	0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x61,
	0x62, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x43, 0x6f,
	0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x61,
	0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12,
	0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69,
	0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e,
	0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x1b, 0x0a, 0x19,
	0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65,
	0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc7, 0x01, 0x0a, 0x19, 0x44, 0x69,
	0x73, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x6d, 0x0a, 0x1c, 0x64, 0x69, 0x73, 0x61, 0x62,
	0x6c, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f,
	0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e,
	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69,
	0x67, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x19, 0x64, 0x69, 0x73,
	0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x43,
	0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f,
	0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
	0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08,
	0x02, 0x10, 0x03, 0x22, 0x1c, 0x0a, 0x1a, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c,
	0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0xbf, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x54,
	0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a,
	0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x67, 0x0a,
	0x1a, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72, 0x69, 0x67,
	0x67, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x2a, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x54,
	0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x17, 0x72,
	0x65, 0x73, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x43,
	0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f,
	0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
	0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04, 0x08,
	0x02, 0x10, 0x03, 0x22, 0x6f, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67,
	0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x41, 0x0a, 0x0c, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65,
	0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72,
	0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x0b, 0x66, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67,
	0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x75, 0x72, 0x6c, 0x22, 0x5e, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x54,
	0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a,
	0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02,
	0x69, 0x64, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e,
	0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4a, 0x04,
	0x08, 0x02, 0x10, 0x03, 0x22, 0x6d, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x54,
	0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41,
	0x0a, 0x0c, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72,
	0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69,
	0x67, 0x67, 0x65, 0x72, 0x52, 0x0b, 0x66, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65,
	0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x75, 0x72, 0x6c, 0x22, 0xaa, 0x03, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x67,
	0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x1d, 0x0a, 0x0a, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x16,
	0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73,
	0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53,
	0x69, 0x7a, 0x65, 0x12, 0x4d, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65,
	0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c,
	0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72,
	0x42, 0x79, 0x12, 0x62, 0x0a, 0x0f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x72, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x62, 0x75,
	0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e,
	0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x69, 0x72,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x69, 0x72,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f,
	0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
	0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x36, 0x0a,
	0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41,
	0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44,
	0x5f, 0x41, 0x54, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x44,
	0x5f, 0x41, 0x54, 0x10, 0x02, 0x22, 0x23, 0x0a, 0x0e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x69,
	0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x53, 0x43, 0x10, 0x00,
	0x12, 0x08, 0x0a, 0x04, 0x44, 0x45, 0x53, 0x43, 0x10, 0x01, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03,
	0x22, 0xa3, 0x02, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69,
	0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a,
	0x0d, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72,
	0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x61,
	0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x2e, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x57, 0x69, 0x74,
	0x68, 0x55, 0x72, 0x6c, 0x52, 0x0c, 0x66, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65,
	0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f,
	0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x69, 0x0a, 0x12, 0x46,
	0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x55, 0x72,
	0x6c, 0x12, 0x41, 0x0a, 0x0c, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
	0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x6c, 0x61, 0x67,
	0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x0b, 0x66, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69,
	0x67, 0x67, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x31, 0x0a, 0x19, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72,
	0x69, 0x67, 0x67, 0x65, 0x72, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x1c, 0x0a, 0x1a, 0x46, 0x6c, 0x61,
	0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x55, 0x73,
	0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f,
	0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x64, 0x22, 0x4e, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x74,
	0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69,
	0x62, 0x75, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52,
	0x11, 0x75, 0x73, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4b, 0x65,
	0x79, 0x73, 0x2a, 0x41, 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
	0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a,
	0x06, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c,
	0x45, 0x54, 0x45, 0x10, 0x03, 0x32, 0xf5, 0x98, 0x01, 0x0a, 0x0e, 0x46, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb8, 0x07, 0x0a, 0x0a, 0x47, 0x65,
	0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x24, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65,
	0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74,
	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25,
	0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdc, 0x06, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, 0x0b,
	0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x92, 0x41, 0xc5, 0x06, 0x0a,
	0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x10, 0x47, 0x65, 0x74, 0x20, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x46, 0x6c, 0x61, 0x67, 0x1a, 0x65, 0x47, 0x65, 0x74, 0x20,
	0x61, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x2e, 0x20,
	0x54, 0x6f, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, 0x50, 0x49,
	0x2c, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x61, 0x74, 0x20, 0x6c, 0x65,
	0x61, 0x73, 0x74, 0x20, 0x61, 0x20, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x20, 0x72, 0x6f, 0x6c,
	0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,
	0x65, 0x64, 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x2e, 0x2a, 0x12, 0x77, 0x65, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x2e, 0x67, 0x65, 0x74, 0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x30, 0x12, 0xac, 0x01,
	0x0a, 0x3a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62,
	0x61, 0x64, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74,
	0x20, 0x6d, 0x61, 0x79, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64,
	0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x12, 0x16, 0x0a, 0x14,
	0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x22, 0x56, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64,
	0x65, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22,
	0x3a, 0x20, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d,
	0x65, 0x6e, 0x74, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65,
	0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0xb2, 0x01, 0x0a,
	0x03, 0x34, 0x30, 0x31, 0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x20, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x75,
	0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x61, 0x75, 0x74,
	0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75,
	0x69, 0x72, 0x65, 0x64, 0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x51,
	0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73,
	0x6f, 0x6e, 0x12, 0x3d, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x31, 0x36,
	0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f,
	0x74, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22,
	0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20,
	0x7d, 0x4a, 0xa9, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x33, 0x12, 0xa1, 0x01, 0x0a, 0x38, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x68,
	0x61, 0x76, 0x65, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x74,
	0x6f, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x4d,
	0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73,
	0x6f, 0x6e, 0x12, 0x39, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x37, 0x2c,
	0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74,
	0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64,
	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0x94, 0x01,
	0x0a, 0x03, 0x34, 0x30, 0x34, 0x12, 0x8c, 0x01, 0x0a, 0x28, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e,
	0x65, 0x64, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e,
	0x64, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x48, 0x0a, 0x10, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x34,
	0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x35, 0x2c, 0x20, 0x22, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75,
	0x6e, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20,
	0x5b, 0x5d, 0x20, 0x7d, 0x12, 0x5e, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x62, 0x75, 0x63,
	0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x47,
	0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x22, 0x00, 0x12, 0xab, 0x06, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65,
	0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e,
	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc9, 0x05, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12,
	0x0c, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x92, 0x41, 0xb1,
	0x05, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x12, 0x4c, 0x69, 0x73, 0x74,
	0x20, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x1a, 0x65,
	0x4c, 0x69, 0x73, 0x74, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x66, 0x6c, 0x61,
	0x67, 0x73, 0x2e, 0x20, 0x54, 0x6f, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x69, 0x73,
	0x20, 0x41, 0x50, 0x49, 0x2c, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x61,
	0x74, 0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20, 0x61, 0x20, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52,
	0x20, 0x72, 0x6f, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65,
	0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x2a, 0x13, 0x77, 0x65, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x66, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34,
	0x30, 0x30, 0x12, 0xac, 0x01, 0x0a, 0x3a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20,
	0x66, 0x6f, 0x72, 0x20, 0x62, 0x61, 0x64, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73,
	0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66,
	0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72,
	0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x56, 0x0a, 0x10, 0x61, 0x70, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b,
	0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20,
	0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22,
	0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20,
	0x7d, 0x4a, 0xb2, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x31, 0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20,
	0x62, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64,
	0x20, 0x28, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a,
	0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x22, 0x51, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3d, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65,
	0x22, 0x3a, 0x20, 0x31, 0x36, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22,
	0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63,
	0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22,
	0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0xa9, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x33, 0x12, 0xa1,
	0x01, 0x0a, 0x38, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20,
	0x6e, 0x6f, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73,
	0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68,
	0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a,
	0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x22, 0x4d, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x39, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65,
	0x22, 0x3a, 0x20, 0x37, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a,
	0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64,
	0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d,
	0x20, 0x7d, 0x12, 0x76, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x62, 0x75, 0x63, 0x6b,
	0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4c, 0x69,
	0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65,
	0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x73,
	0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8a, 0x05, 0x0a, 0x0d, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x27, 0x2e, 0x62,
	0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65,
	0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
	0xa5, 0x04, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x22, 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x8b, 0x04, 0x0a, 0x07, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x46, 0x6c, 0x61, 0x67, 0x1a, 0x68, 0x43, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x20, 0x61, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x66, 0x6c, 0x61,
	0x67, 0x2e, 0x20, 0x54, 0x6f, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20,
	0x41, 0x50, 0x49, 0x2c, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x61, 0x74,
	0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20, 0x61, 0x20, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x20,
	0x72, 0x6f, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63,
	0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x2e, 0x2a, 0x15, 0x77, 0x65, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x66, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0xb4, 0x01, 0x0a, 0x03,
	0x34, 0x30, 0x30, 0x12, 0xac, 0x01, 0x0a, 0x3a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64,
	0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x61, 0x64, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20,
	0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x56, 0x0a, 0x10, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42,
	0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64,
	0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72,
	0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d,
	0x20, 0x7d, 0x4a, 0xb2, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x31, 0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74,
	0x20, 0x62, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65,
	0x64, 0x20, 0x28, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14,
	0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x22, 0x51, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3d, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64,
	0x65, 0x22, 0x3a, 0x20, 0x31, 0x36, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69,
	0x63, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73,
	0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x12, 0xa1, 0x06, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x27, 0x2e, 0x62, 0x75, 0x63, 0x6b,
	0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x28, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x05, 0x82,
	0xd3, 0xe4, 0x93, 0x02, 0x10, 0x32, 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0xa2, 0x05, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x12, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x46, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x20, 0x46, 0x6c, 0x61, 0x67, 0x1a, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20,
	0x61, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x2e, 0x20,
	0x54, 0x6f, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, 0x50, 0x49,
	0x2c, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x61, 0x74, 0x20, 0x6c, 0x65,
	0x61, 0x73, 0x74, 0x20, 0x61, 0x20, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x20, 0x72, 0x6f, 0x6c,
	0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,
	0x65, 0x64, 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x2e, 0x2a, 0x15, 0x77, 0x65, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x30,
	0x12, 0xac, 0x01, 0x0a, 0x3a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x6f,
	0x72, 0x20, 0x62, 0x61, 0x64, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x74,
	0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66, 0x61, 0x69,
	0x6c, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x12,
	0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63,
	0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x56, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b, 0x20, 0x22,
	0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x61, 0x72,
	0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c, 0x20,
	0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a,
	0xb2, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x31, 0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65,
	0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28,
	0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72,
	0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x22, 0x51, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3d, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a,
	0x20, 0x31, 0x36, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20,
	0x22, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74,
	0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20,
	0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0x94, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x34, 0x12, 0x8c, 0x01, 0x0a,
	0x28, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74,
	0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e,
	0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x22, 0x48, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x34, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a,
	0x20, 0x35, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22,
	0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74,
	0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x12, 0xbf, 0x06, 0x0a, 0x12,
	0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x12, 0x2c, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x46,
	0x6c, 0x61, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x2d, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x46, 0x6c, 0x61,
	0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
	0xcb, 0x05, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63,
	0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x3a, 0x01, 0x2a, 0x92, 0x41,
	0xab, 0x05, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x17, 0x53, 0x63, 0x68,
	0x65, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x43, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x1a, 0x67, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x61,
	0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x2e, 0x20, 0x54, 0x6f, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68,
	0x69, 0x73, 0x20, 0x41, 0x50, 0x49, 0x2c, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6e, 0x65, 0x65, 0x64,
	0x20, 0x61, 0x6e, 0x20, 0x45, 0x44, 0x49, 0x54, 0x4f, 0x52, 0x20, 0x72, 0x6f, 0x6c, 0x65, 0x20,
	0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64,
	0x20, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x2a, 0x1b, 0x77,
	0x65, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x66,
	0x6c, 0x61, 0x67, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34,
	0x30, 0x30, 0x12, 0xac, 0x01, 0x0a, 0x3a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20,
	0x66, 0x6f, 0x72, 0x20, 0x62, 0x61, 0x64, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73,
	0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66,
	0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72,
	0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x56, 0x0a, 0x10, 0x61, 0x70, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b,
	0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20,
	0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22,
	0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20,
	0x7d, 0x4a, 0xb2, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x31, 0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20,
	0x62, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64,
	0x20, 0x28, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a,
	0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x22, 0x51, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3d, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65,
	0x22, 0x3a, 0x20, 0x31, 0x36, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22,
	0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63,
	0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22,
	0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0x94, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x34, 0x12, 0x8c,
	0x01, 0x0a, 0x28, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x68, 0x65, 0x6e,
	0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x69, 0x73,
	0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a,
	0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x22, 0x48, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x34, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65,
	0x22, 0x3a, 0x20, 0x35, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a,
	0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64,
	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x12, 0xe4, 0x06,
	0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
	0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x33, 0x2e, 0x62, 0x75,
	0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x46,
	0x6c, 0x61, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x34, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64,
	0x75, 0x6c, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdb, 0x05, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x32,
	0x11, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x66, 0x6c,
	0x61, 0x67, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0xbb, 0x05, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x12, 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x53, 0x63, 0x68, 0x65, 0x64,
	0x75, 0x6c, 0x65, 0x64, 0x20, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x43, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x1a, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x73, 0x63,
	0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20,
	0x66, 0x6c, 0x61, 0x67, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x20, 0x54, 0x6f, 0x20,
	0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, 0x50, 0x49, 0x2c, 0x20, 0x79,
	0x6f, 0x75, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x44, 0x49, 0x54, 0x4f,
	0x52, 0x20, 0x72, 0x6f, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70,
	0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d,
	0x65, 0x6e, 0x74, 0x2e, 0x2a, 0x1b, 0x77, 0x65, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68,
	0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x30, 0x12, 0xac, 0x01, 0x0a, 0x3a, 0x52, 0x65,
	0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x61, 0x64, 0x20, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x79,
	0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c,
	0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x22, 0x56, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
	0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20,
	0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69,
	0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73,
	0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0xb2, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x31,
	0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75,
	0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e,
	0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64,
	0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x51, 0x0a, 0x10, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3d,
	0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x31, 0x36, 0x2c, 0x20, 0x22, 0x6d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75,
	0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64,
	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0x94, 0x01,
	0x0a, 0x03, 0x34, 0x30, 0x34, 0x12, 0x8c, 0x01, 0x0a, 0x28, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e,
	0x65, 0x64, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e,
	0x64, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x48, 0x0a, 0x10, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x34,
	0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x35, 0x2c, 0x20, 0x22, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75,
	0x6e, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20,
	0x5b, 0x5d, 0x20, 0x7d, 0x12, 0xe1, 0x06, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53,
	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x12, 0x33, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x68,
	0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
	0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd8, 0x05,
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x2a, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65,
	0x64, 0x75, 0x6c, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x92, 0x41, 0xbb, 0x05, 0x0a, 0x07, 0x46,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x53,
	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x20, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x20, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x1a, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20,
	0x61, 0x20, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x20, 0x66, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e,
	0x20, 0x54, 0x6f, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, 0x50,
	0x49, 0x2c, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x20, 0x45,
	0x44, 0x49, 0x54, 0x4f, 0x52, 0x20, 0x72, 0x6f, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68,
	0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x76, 0x69,
	0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x2a, 0x1b, 0x77, 0x65, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x2e, 0x64,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x30, 0x12, 0xac, 0x01,
	0x0a, 0x3a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62,
	0x61, 0x64, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74,
	0x20, 0x6d, 0x61, 0x79, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64,
	0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x12, 0x16, 0x0a, 0x14,
	0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x22, 0x56, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64,
	0x65, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22,
	0x3a, 0x20, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d,
	0x65, 0x6e, 0x74, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65,
	0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0xb2, 0x01, 0x0a,
	0x03, 0x34, 0x30, 0x31, 0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x20, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x75,
	0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x61, 0x75, 0x74,
	0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75,
	0x69, 0x72, 0x65, 0x64, 0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x51,
	0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73,
	0x6f, 0x6e, 0x12, 0x3d, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x31, 0x36,
	0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f,
	0x74, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22,
	0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20,
	0x7d, 0x4a, 0x94, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x34, 0x12, 0x8c, 0x01, 0x0a, 0x28, 0x52, 0x65,
	0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20,
	0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20,
	0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x48,
	0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73,
	0x6f, 0x6e, 0x12, 0x34, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x35, 0x2c,
	0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74,
	0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x12, 0xe5, 0x06, 0x0a, 0x18, 0x4c, 0x69, 0x73,
	0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65,
	0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x63,
	0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x62, 0x75, 0x63, 0x6b,
	0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4c, 0x69,
	0x73, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdf,
	0x05, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68,
	0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x92, 0x41, 0xc1, 0x05, 0x0a,
	0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x53,
	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x20, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x20, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x1a, 0x76, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x73,
	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x20, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x20, 0x54,
	0x6f, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, 0x50, 0x49, 0x2c,
	0x20, 0x79, 0x6f, 0x75, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x61, 0x74, 0x20, 0x6c, 0x65, 0x61,
	0x73, 0x74, 0x20, 0x61, 0x20, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x20, 0x72, 0x6f, 0x6c, 0x65,
	0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65,
	0x64, 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e,
	0x2a, 0x1b, 0x77, 0x65, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
	0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0xb4, 0x01,
	0x0a, 0x03, 0x34, 0x30, 0x30, 0x12, 0xac, 0x01, 0x0a, 0x3a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e,
	0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x61, 0x64, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x68, 0x61, 0x76,
	0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x56, 0x0a, 0x10,
	0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e,
	0x12, 0x42, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x20, 0x22,
	0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c,
	0x69, 0x64, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x65, 0x72, 0x72,
	0x6f, 0x72, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20,
	0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0xb2, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x31, 0x12, 0xaa, 0x01, 0x0a,
	0x3d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e,
	0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61,
	0x74, 0x65, 0x64, 0x20, 0x28, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x29, 0x2e, 0x12, 0x16,
	0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x51, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3d, 0x7b, 0x20, 0x22, 0x63,
	0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x31, 0x36, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e,
	0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69,
	0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0x94, 0x01, 0x0a, 0x03, 0x34, 0x30,
	0x34, 0x12, 0x8c, 0x01, 0x0a, 0x28, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x77,
	0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x12, 0x16,
	0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x48, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x34, 0x7b, 0x20, 0x22, 0x63,
	0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x35, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x2c,
	0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d,
	0x12, 0x67, 0x0a, 0x0d, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x12, 0x27, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x62, 0x75, 0x63,
	0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x45,
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x6a, 0x0a, 0x0e, 0x44, 0x69, 0x73,
	0x61, 0x62, 0x6c, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x28, 0x2e, 0x62, 0x75,
	0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e,
	0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65,
	0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c,
	0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x6a, 0x0a, 0x0e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65,
	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x28, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
	0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x63, 0x68,
	0x69, 0x76, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x29, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x46, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02,
	0x01, 0x12, 0x70, 0x0a, 0x10, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2a, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65,
	0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68,
	0x69, 0x76, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x2b, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x46,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03,
	0x88, 0x02, 0x01, 0x12, 0x64, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x12, 0x27, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72,
	0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e,
	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x79, 0x0a, 0x14, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x73, 0x12, 0x2e, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x2f, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x22, 0x00, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x12, 0x31, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7f, 0x0a, 0x16, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74,
	0x69, 0x6e, 0x67, 0x12, 0x30, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65,
	0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x69, 0x6e, 0x67,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x97, 0x06, 0x0a, 0x0c, 0x43,
	0x6c, 0x6f, 0x6e, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x26, 0x2e, 0x62, 0x75,
	0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e,
	0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x46, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb5, 0x05, 0x82,
	0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x95, 0x05, 0x0a,
	0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x12, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x20,
	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x46, 0x6c, 0x61, 0x67, 0x1a, 0x5d, 0x43, 0x6c,
	0x6f, 0x6e, 0x65, 0x20, 0x61, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x66, 0x6c,
	0x61, 0x67, 0x2e, 0x20, 0x54, 0x6f, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x69, 0x73,
	0x20, 0x41, 0x50, 0x49, 0x2c, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x61,
	0x6e, 0x20, 0x45, 0x44, 0x49, 0x54, 0x4f, 0x52, 0x20, 0x72, 0x6f, 0x6c, 0x65, 0x20, 0x69, 0x6e,
	0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x65,
	0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x2a, 0x14, 0x77, 0x65, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x6e,
	0x65, 0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x30, 0x12, 0xac, 0x01, 0x0a, 0x3a, 0x52, 0x65,
	0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x61, 0x64, 0x20, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x79,
	0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c,
	0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x22, 0x56, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
	0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20,
	0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69,
	0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73,
	0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0xb2, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x31,
	0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75,
	0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e,
	0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64,
	0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x51, 0x0a, 0x10, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3d,
	0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x31, 0x36, 0x2c, 0x20, 0x22, 0x6d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75,
	0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64,
	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0x94, 0x01,
	0x0a, 0x03, 0x34, 0x30, 0x34, 0x12, 0x8c, 0x01, 0x0a, 0x28, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e,
	0x65, 0x64, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e,
	0x64, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x48, 0x0a, 0x10, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x34,
	0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x35, 0x2c, 0x20, 0x22, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75,
	0x6e, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20,
	0x5b, 0x5d, 0x20, 0x7d, 0x12, 0xa6, 0x04, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x27, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65,
	0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x28, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc1, 0x03, 0x82, 0xd3, 0xe4, 0x93,
	0x02, 0x10, 0x22, 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x3a,
	0x01, 0x2a, 0x92, 0x41, 0xa7, 0x03, 0x0a, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12,
	0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x1a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20,
	0x61, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x2a, 0x15, 0x77, 0x65, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x30, 0x12, 0xac, 0x01, 0x0a, 0x3a, 0x52, 0x65,
	0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x61, 0x64, 0x20, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x79,
	0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c,
	0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x22, 0x56, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
	0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20,
	0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69,
	0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73,
	0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0xb2, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x31,
	0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75,
	0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e,
	0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64,
	0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x51, 0x0a, 0x10, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3d,
	0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x31, 0x36, 0x2c, 0x20, 0x22, 0x6d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75,
	0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64,
	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x12, 0x91, 0x04,
	0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x62,
	0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x25, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb5, 0x03, 0x82, 0xd3, 0xe4, 0x93,
	0x02, 0x0d, 0x12, 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x92,
	0x41, 0x9e, 0x03, 0x0a, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x03, 0x47, 0x65,
	0x74, 0x1a, 0x0e, 0x47, 0x65, 0x74, 0x20, 0x61, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x2e, 0x2a, 0x12, 0x77, 0x65, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x2e, 0x67, 0x65, 0x74, 0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x30, 0x12, 0xac, 0x01,
	0x0a, 0x3a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62,
	0x61, 0x64, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74,
	0x20, 0x6d, 0x61, 0x79, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64,
	0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x12, 0x16, 0x0a, 0x14,
	0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x22, 0x56, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64,
	0x65, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22,
	0x3a, 0x20, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d,
	0x65, 0x6e, 0x74, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65,
	0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0xb2, 0x01, 0x0a,
	0x03, 0x34, 0x30, 0x31, 0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x20, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x75,
	0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x61, 0x75, 0x74,
	0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75,
	0x69, 0x72, 0x65, 0x64, 0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x51,
	0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73,
	0x6f, 0x6e, 0x12, 0x3d, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x31, 0x36,
	0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f,
	0x74, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22,
	0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20,
	0x7d, 0x12, 0x9a, 0x04, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x73, 0x12, 0x26, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x62, 0x75, 0x63,
	0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4c,
	0x69, 0x73, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x22, 0xb8, 0x03, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x76,
	0x31, 0x2f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x92, 0x41, 0xa0, 0x03, 0x0a, 0x07,
	0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x0e, 0x4c,
	0x69, 0x73, 0x74, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x2a, 0x13, 0x77,
	0x65, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x6c, 0x69,
	0x73, 0x74, 0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x30, 0x12, 0xac, 0x01, 0x0a, 0x3a, 0x52,
	0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x61, 0x64, 0x20,
	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61,
	0x79, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x22, 0x56, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a,
	0x20, 0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22,
	0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74,
	0x73, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69,
	0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0xb2, 0x01, 0x0a, 0x03, 0x34, 0x30,
	0x31, 0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x6f,
	0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65,
	0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e,
	0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,
	0x64, 0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x51, 0x0a, 0x10, 0x61,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12,
	0x3d, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x31, 0x36, 0x2c, 0x20, 0x22,
	0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x61,
	0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22,
	0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x12, 0xa3,
	0x04, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x12, 0x27, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x62, 0x75, 0x63, 0x6b,
	0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x44, 0x65,
	0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x22, 0xbe, 0x03, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x2a, 0x0b, 0x2f, 0x76,
	0x31, 0x2f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x92, 0x41, 0xa7, 0x03, 0x0a, 0x07, 0x73,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x1a, 0x11,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x2e, 0x2a, 0x15, 0x77, 0x65, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x30,
	0x12, 0xac, 0x01, 0x0a, 0x3a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x6f,
	0x72, 0x20, 0x62, 0x61, 0x64, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x74,
	0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66, 0x61, 0x69,
	0x6c, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x12,
	0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63,
	0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x56, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b, 0x20, 0x22,
	0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x61, 0x72,
	0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c, 0x20,
	0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a,
	0xb2, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x31, 0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65,
	0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28,
	0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72,
	0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x22, 0x51, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3d, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a,
	0x20, 0x31, 0x36, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20,
	0x22, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74,
	0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20,
	0x5b, 0x5d, 0x20, 0x7d, 0x12, 0xa6, 0x04, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x27, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65,
	0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x28, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc1, 0x03, 0x82, 0xd3, 0xe4, 0x93,
	0x02, 0x10, 0x32, 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x3a,
	0x01, 0x2a, 0x92, 0x41, 0xa7, 0x03, 0x0a, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12,
	0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20,
	0x61, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x2a, 0x15, 0x77, 0x65, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x30, 0x12, 0xac, 0x01, 0x0a, 0x3a, 0x52, 0x65,
	0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x61, 0x64, 0x20, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x79,
	0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c,
	0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x22, 0x56, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
	0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20,
	0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69,
	0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73,
	0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0xb2, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x31,
	0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75,
	0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e,
	0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64,
	0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x51, 0x0a, 0x10, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3d,
	0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x31, 0x36, 0x2c, 0x20, 0x22, 0x6d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75,
	0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64,
	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x12, 0x6a, 0x0a,
	0x0e, 0x41, 0x64, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12,
	0x28, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73,
	0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x62, 0x75, 0x63, 0x6b,
	0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x41, 0x64,
	0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x73, 0x0a, 0x11, 0x44, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2b,
	0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x62, 0x75,
	0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65,
	0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x6a,
	0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
	0x12, 0x28, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55,
	0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x62, 0x75, 0x63,
	0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x47,
	0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x6d, 0x0a, 0x10, 0x4c, 0x69,
	0x73, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x2a,
	0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73,
	0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x62, 0x75, 0x63,
	0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4c,
	0x69, 0x73, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xec, 0x04, 0x0a, 0x16, 0x42, 0x75,
	0x6c, 0x6b, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55,
	0x73, 0x65, 0x72, 0x73, 0x12, 0x30, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72,
	0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x6c,
	0x6f, 0x61, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65,
	0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x55,
	0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xec, 0x03, 0x82, 0xd3, 0xe4, 0x93,
	0x02, 0x22, 0x22, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f,
	0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x62, 0x75, 0x6c, 0x6b, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61,
	0x64, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0xc0, 0x03, 0x0a, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x12, 0x0b, 0x42, 0x75, 0x6c, 0x6b, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x1a,
	0x42, 0x75, 0x6c, 0x6b, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x73, 0x65, 0x67, 0x6d,
	0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x2a, 0x20, 0x77, 0x65, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x73,
	0x2e, 0x62, 0x75, 0x6c, 0x6b, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4a, 0xb4, 0x01, 0x0a,
	0x03, 0x34, 0x30, 0x30, 0x12, 0xac, 0x01, 0x0a, 0x3a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65,
	0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x61, 0x64, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x68, 0x61, 0x76, 0x65,
	0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x56, 0x0a, 0x10, 0x61,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12,
	0x42, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x20, 0x22, 0x6d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69,
	0x64, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6f,
	0x72, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b,
	0x5d, 0x20, 0x7d, 0x4a, 0xb2, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x31, 0x12, 0xaa, 0x01, 0x0a, 0x3d,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f,
	0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74,
	0x65, 0x64, 0x20, 0x28, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x29, 0x2e, 0x12, 0x16, 0x0a,
	0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x51, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3d, 0x7b, 0x20, 0x22, 0x63, 0x6f,
	0x64, 0x65, 0x22, 0x3a, 0x20, 0x31, 0x36, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74,
	0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x12, 0xf7, 0x04, 0x0a, 0x18, 0x42, 0x75, 0x6c,
	0x6b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x32, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65,
	0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x6f,
	0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65,
	0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x62, 0x75, 0x63, 0x6b,
	0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x42, 0x75,
	0x6c, 0x6b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
	0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf1,
	0x03, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x67,
	0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x62, 0x75, 0x6c, 0x6b, 0x5f,
	0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x92, 0x41, 0xc6, 0x03, 0x0a, 0x07, 0x73, 0x65,
	0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0d, 0x42, 0x75, 0x6c, 0x6b, 0x20, 0x64, 0x6f, 0x77, 0x6e,
	0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x1c, 0x42, 0x75, 0x6c, 0x6b, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c,
	0x6f, 0x61, 0x64, 0x20, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x75, 0x73, 0x65, 0x72,
	0x73, 0x2e, 0x2a, 0x22, 0x77, 0x65, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x65, 0x67, 0x6d, 0x65,
	0x6e, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x62, 0x75, 0x6c, 0x6b, 0x5f, 0x64, 0x6f,
	0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x30, 0x12, 0xac,
	0x01, 0x0a, 0x3a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20,
	0x62, 0x61, 0x64, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61,
	0x74, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65,
	0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x12, 0x16, 0x0a,
	0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x56, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b, 0x20, 0x22, 0x63, 0x6f,
	0x64, 0x65, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x22, 0x3a, 0x20, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x61, 0x72, 0x67, 0x75,
	0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c, 0x20, 0x22, 0x64,
	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0xb2, 0x01,
	0x0a, 0x03, 0x34, 0x30, 0x31, 0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x20, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61,
	0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x61, 0x75,
	0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71,
	0x75, 0x69, 0x72, 0x65, 0x64, 0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
	0x51, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a,
	0x73, 0x6f, 0x6e, 0x12, 0x3d, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x31,
	0x36, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e,
	0x6f, 0x74, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64,
	0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d,
	0x20, 0x7d, 0x12, 0x6d, 0x0a, 0x10, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65,
	0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75,
	0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x46,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
	0x00, 0x12, 0xaf, 0x06, 0x0a, 0x15, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x61, 0x6c, 0x75,
	0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x62, 0x75,
	0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e,
	0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x62,
	0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb2,
	0x05, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x62,
	0x75, 0x67, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x88, 0x05, 0x0a, 0x07, 0x66, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x12, 0x19, 0x44, 0x65, 0x62, 0x75, 0x67, 0x20, 0x46, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x20, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a,
	0x38, 0x44, 0x65, 0x62, 0x75, 0x67, 0x20, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x20,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x75, 0x6c,
	0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x61,
	0x6e, 0x64, 0x20, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, 0x2a, 0x25, 0x77, 0x65, 0x62, 0x2e, 0x76,
	0x31, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f,
	0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x30, 0x12, 0xac, 0x01, 0x0a, 0x3a, 0x52, 0x65, 0x74,
	0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x61, 0x64, 0x20, 0x72, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x79, 0x20,
	0x68, 0x61, 0x76, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69,
	0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
	0x56, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a,
	0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x33,
	0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69, 0x6e,
	0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20,
	0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73,
	0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0xb2, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x31, 0x12,
	0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75, 0x6c,
	0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74,
	0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x29,
	0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72,
	0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x51, 0x0a, 0x10, 0x61, 0x70, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3d, 0x7b,
	0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x31, 0x36, 0x2c, 0x20, 0x22, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75, 0x74,
	0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65,
	0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0x94, 0x01, 0x0a,
	0x03, 0x34, 0x30, 0x34, 0x12, 0x8c, 0x01, 0x0a, 0x28, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65,
	0x64, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64,
	0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72,
	0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x48, 0x0a, 0x10, 0x61, 0x70, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x34, 0x7b,
	0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x35, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e,
	0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b,
	0x5d, 0x20, 0x7d, 0x12, 0x55, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x12,
	0x22, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xb2, 0x06, 0x0a, 0x11, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72,
	0x12, 0x2b, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54,
	0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e,
	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67,
	0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc1, 0x05, 0x82, 0xd3,
	0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74,
	0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0xa2, 0x05, 0x0a, 0x0c, 0x46,
	0x6c, 0x61, 0x67, 0x20, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x13, 0x43, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x20, 0x46, 0x6c, 0x61, 0x67, 0x20, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72,
	0x1a, 0x5e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20,
	0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x20, 0x54, 0x6f, 0x20, 0x63, 0x61, 0x6c, 0x6c,
	0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, 0x50, 0x49, 0x2c, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6e,
	0x65, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x44, 0x49, 0x54, 0x4f, 0x52, 0x20, 0x72, 0x6f,
	0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,
	0x69, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
	0x2a, 0x1a, 0x77, 0x65, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72,
	0x69, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4a, 0xb4, 0x01, 0x0a,
	0x03, 0x34, 0x30, 0x30, 0x12, 0xac, 0x01, 0x0a, 0x3a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65,
	0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x61, 0x64, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x68, 0x61, 0x76, 0x65,
	0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x56, 0x0a, 0x10, 0x61,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12,
	0x42, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x20, 0x22, 0x6d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69,
	0x64, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6f,
	0x72, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b,
	0x5d, 0x20, 0x7d, 0x4a, 0xb2, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x31, 0x12, 0xaa, 0x01, 0x0a, 0x3d,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f,
	0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74,
	0x65, 0x64, 0x20, 0x28, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x29, 0x2e, 0x12, 0x16, 0x0a,
	0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x51, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3d, 0x7b, 0x20, 0x22, 0x63, 0x6f,
	0x64, 0x65, 0x22, 0x3a, 0x20, 0x31, 0x36, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74,
	0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0x94, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x34,
	0x12, 0x8c, 0x01, 0x0a, 0x28, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x68,
	0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20,
	0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x12, 0x16, 0x0a,
	0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x48, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x34, 0x7b, 0x20, 0x22, 0x63, 0x6f,
	0x64, 0x65, 0x22, 0x3a, 0x20, 0x35, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x2c, 0x20,
	0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x12,
	0xb2, 0x06, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72,
	0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65,
	0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61,
	0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x22, 0xc1, 0x05, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x32, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x66,
	0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x3a, 0x01, 0x2a, 0x92, 0x41,
	0xa2, 0x05, 0x0a, 0x0c, 0x46, 0x6c, 0x61, 0x67, 0x20, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72,
	0x12, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x46, 0x6c, 0x61, 0x67, 0x20, 0x54, 0x72,
	0x69, 0x67, 0x67, 0x65, 0x72, 0x1a, 0x5e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20,
	0x66, 0x6c, 0x61, 0x67, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x20, 0x54, 0x6f,
	0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, 0x50, 0x49, 0x2c, 0x20,
	0x79, 0x6f, 0x75, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x20, 0x45, 0x44, 0x49, 0x54,
	0x4f, 0x52, 0x20, 0x72, 0x6f, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73,
	0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e,
	0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x2a, 0x1a, 0x77, 0x65, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x66, 0x6c,
	0x61, 0x67, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x30, 0x12, 0xac, 0x01, 0x0a, 0x3a, 0x52, 0x65,
	0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x61, 0x64, 0x20, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x79,
	0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c,
	0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x22, 0x56, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
	0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20,
	0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69,
	0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73,
	0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0xb2, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x31,
	0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75,
	0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e,
	0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64,
	0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x51, 0x0a, 0x10, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3d,
	0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x31, 0x36, 0x2c, 0x20, 0x22, 0x6d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75,
	0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64,
	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0x94, 0x01,
	0x0a, 0x03, 0x34, 0x30, 0x34, 0x12, 0x8c, 0x01, 0x0a, 0x28, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e,
	0x65, 0x64, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e,
	0x64, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x48, 0x0a, 0x10, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x34,
	0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x35, 0x2c, 0x20, 0x22, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75,
	0x6e, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20,
	0x5b, 0x5d, 0x20, 0x7d, 0x12, 0x70, 0x0a, 0x11, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c,
	0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x62, 0x75, 0x63, 0x6b,
	0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x45, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65,
	0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c,
	0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x2c, 0x2e, 0x62,
	0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67,
	0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x62, 0x75, 0x63,
	0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x44,
	0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65,
	0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x10, 0x52,
	0x65, 0x73, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12,
	0x2a, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69,
	0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x62, 0x75,
	0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e,
	0x52, 0x65, 0x73, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xaf, 0x06, 0x0a, 0x11, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72,
	0x12, 0x2b, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54,
	0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e,
	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67,
	0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbe, 0x05, 0x82, 0xd3,
	0xe4, 0x93, 0x02, 0x12, 0x2a, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74,
	0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x92, 0x41, 0xa2, 0x05, 0x0a, 0x0c, 0x46, 0x6c, 0x61, 0x67,
	0x20, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x20, 0x46, 0x6c, 0x61, 0x67, 0x20, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x1a, 0x5e, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20, 0x74, 0x72, 0x69,
	0x67, 0x67, 0x65, 0x72, 0x2e, 0x20, 0x54, 0x6f, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68,
	0x69, 0x73, 0x20, 0x41, 0x50, 0x49, 0x2c, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6e, 0x65, 0x65, 0x64,
	0x20, 0x61, 0x6e, 0x20, 0x45, 0x44, 0x49, 0x54, 0x4f, 0x52, 0x20, 0x72, 0x6f, 0x6c, 0x65, 0x20,
	0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64,
	0x20, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x2a, 0x1a, 0x77,
	0x65, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67,
	0x65, 0x72, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34, 0x30,
	0x30, 0x12, 0xac, 0x01, 0x0a, 0x3a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x66,
	0x6f, 0x72, 0x20, 0x62, 0x61, 0x64, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20,
	0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66, 0x61,
	0x69, 0x6c, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
	0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70,
	0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x56, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b, 0x20,
	0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x61,
	0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c,
	0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d,
	0x4a, 0xb2, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x31, 0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62,
	0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20,
	0x28, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20,
	0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x22, 0x51, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3d, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22,
	0x3a, 0x20, 0x31, 0x36, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a,
	0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61,
	0x74, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a,
	0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0x94, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x34, 0x12, 0x8c, 0x01,
	0x0a, 0x28, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20,
	0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20,
	0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x22, 0x48, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x34, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22,
	0x3a, 0x20, 0x35, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20,
	0x22, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65,
	0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x12, 0xa7, 0x06, 0x0a,
	0x0e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12,
	0x28, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67,
	0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x62, 0x75, 0x63, 0x6b,
	0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x47, 0x65,
	0x74, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbf, 0x05, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f,
	0x76, 0x31, 0x2f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x92,
	0x41, 0xa3, 0x05, 0x0a, 0x0c, 0x46, 0x6c, 0x61, 0x67, 0x20, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65,
	0x72, 0x12, 0x10, 0x47, 0x65, 0x74, 0x20, 0x46, 0x6c, 0x61, 0x67, 0x20, 0x54, 0x72, 0x69, 0x67,
	0x67, 0x65, 0x72, 0x1a, 0x65, 0x47, 0x65, 0x74, 0x20, 0x61, 0x20, 0x66, 0x6c, 0x61, 0x67, 0x20,
	0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x20, 0x54, 0x6f, 0x20, 0x63, 0x61, 0x6c, 0x6c,
	0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, 0x50, 0x49, 0x2c, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6e,
	0x65, 0x65, 0x64, 0x20, 0x61, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20, 0x61, 0x20, 0x4d,
	0x45, 0x4d, 0x42, 0x45, 0x52, 0x20, 0x72, 0x6f, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68,
	0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x6f, 0x72, 0x67, 0x61,
	0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x2a, 0x17, 0x77, 0x65, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2e,
	0x67, 0x65, 0x74, 0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x30, 0x12, 0xac, 0x01, 0x0a, 0x3a,
	0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x61, 0x64,
	0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d,
	0x61, 0x79, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x76,
	0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x22, 0x56, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22,
	0x3a, 0x20, 0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20,
	0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e,
	0x74, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61,
	0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0xb2, 0x01, 0x0a, 0x03, 0x34,
	0x30, 0x31, 0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x63,
	0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68,
	0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x61, 0x75, 0x74, 0x68, 0x65,
	0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72,
	0x65, 0x64, 0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x51, 0x0a, 0x10,
	0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e,
	0x12, 0x3d, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x31, 0x36, 0x2c, 0x20,
	0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20,
	0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x20,
	0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a,
	0x94, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x34, 0x12, 0x8c, 0x01, 0x0a, 0x28, 0x52, 0x65, 0x74, 0x75,
	0x72, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f,
	0x75, 0x6e, 0x64, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x48, 0x0a, 0x10,
	0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e,
	0x12, 0x34, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x35, 0x2c, 0x20, 0x22,
	0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x66,
	0x6f, 0x75, 0x6e, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22,
	0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x12, 0x9a, 0x05, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x46,
	0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x2e, 0x62, 0x75,
	0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e,
	0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
	0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74,
	0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0xac, 0x04, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f,
	0x76, 0x31, 0x2f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73,
	0x92, 0x41, 0x8f, 0x04, 0x0a, 0x0c, 0x46, 0x6c, 0x61, 0x67, 0x20, 0x54, 0x72, 0x69, 0x67, 0x67,
	0x65, 0x72, 0x12, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x46, 0x6c, 0x61, 0x67, 0x20, 0x54, 0x72,
	0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x1a, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x66, 0x6c, 0x61,
	0x67, 0x20, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x54, 0x6f, 0x20, 0x63,
	0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, 0x50, 0x49, 0x2c, 0x20, 0x79, 0x6f,
	0x75, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x61, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20,
	0x61, 0x20, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x20, 0x72, 0x6f, 0x6c, 0x65, 0x20, 0x69, 0x6e,
	0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x6f,
	0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x2a, 0x18, 0x77,
	0x65, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67,
	0x65, 0x72, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x30, 0x12,
	0xac, 0x01, 0x0a, 0x3a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72,
	0x20, 0x62, 0x61, 0x64, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x74, 0x68,
	0x61, 0x74, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c,
	0x65, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x12, 0x16,
	0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x56, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b, 0x20, 0x22, 0x63,
	0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x22, 0x3a, 0x20, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x61, 0x72, 0x67,
	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c, 0x20, 0x22,
	0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0xb2,
	0x01, 0x0a, 0x03, 0x34, 0x30, 0x31, 0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x20, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20,
	0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x61,
	0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65,
	0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x22, 0x51, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
	0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3d, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20,
	0x31, 0x36, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22,
	0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65,
	0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b,
	0x5d, 0x20, 0x7d, 0x12, 0xb1, 0x08, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41,
	0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2e, 0x2e, 0x62,
	0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
	0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x62,
	0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
	0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb7, 0x07,
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
	0x74, 0x65, 0x2d, 0x6b, 0x65, 0x79, 0x73, 0x92, 0x41, 0x8c, 0x07, 0x0a, 0x07, 0x46, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x12, 0x17, 0x47, 0x65, 0x74, 0x20, 0x55, 0x73, 0x65, 0x72, 0x20, 0x41,
	0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x4b, 0x65, 0x79, 0x73, 0x1a, 0x8c, 0x01,
	0x47, 0x65, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x61, 0x74, 0x74,
	0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20,
	0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x65, 0x6e,
	0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x54, 0x6f, 0x20, 0x63, 0x61,
	0x6c, 0x6c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x41, 0x50, 0x49, 0x2c, 0x20, 0x79, 0x6f, 0x75,
	0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x61, 0x74, 0x20, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x20, 0x61,
	0x20, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x20, 0x72, 0x6f, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20,
	0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x6f, 0x72,
	0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x2a, 0x23, 0x77, 0x65,
	0x62, 0x2e, 0x76, 0x31, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x67, 0x65, 0x74,
	0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4b, 0x65, 0x79,
	0x73, 0x4a, 0xb4, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x30, 0x12, 0xac, 0x01, 0x0a, 0x3a, 0x52, 0x65,
	0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x61, 0x64, 0x20, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6d, 0x61, 0x79,
	0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x76, 0x61, 0x6c,
	0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x22, 0x56, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
	0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20,
	0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69,
	0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73,
	0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0xb2, 0x01, 0x0a, 0x03, 0x34, 0x30, 0x31,
	0x12, 0xaa, 0x01, 0x0a, 0x3d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x75,
	0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e,
	0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x28, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64,
	0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x51, 0x0a, 0x10, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3d,
	0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x31, 0x36, 0x2c, 0x20, 0x22, 0x6d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x75,
	0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64,
	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0xb5, 0x01,
	0x0a, 0x03, 0x34, 0x30, 0x33, 0x12, 0xad, 0x01, 0x0a, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61,
	0x74, 0x65, 0x64, 0x20, 0x62, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65,
	0x6e, 0x20, 0x28, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x29, 0x2e, 0x12, 0x16, 0x0a, 0x14, 0x1a,
	0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x22, 0x50, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3c, 0x7b, 0x20, 0x22, 0x63, 0x6f, 0x64, 0x65,
	0x22, 0x3a, 0x20, 0x37, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a,
	0x20, 0x22, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x65, 0x6e,
	0x69, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3a,
	0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x4a, 0x8f, 0x01, 0x0a, 0x03, 0x35, 0x30, 0x30, 0x12, 0x87, 0x01,
	0x0a, 0x1d, 0x41, 0x6e, 0x20, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20,
	0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x64, 0x2e, 0x12,
	0x16, 0x0a, 0x14, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63,
	0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x4e, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x3a, 0x7b, 0x20, 0x22,
	0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x31, 0x33, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20,
	0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73,
	0x22, 0x3a, 0x20, 0x5b, 0x5d, 0x20, 0x7d, 0x12, 0x94, 0x01, 0x0a, 0x12, 0x46, 0x6c, 0x61, 0x67,
	0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x2c,
	0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x2e, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x57, 0x65,
	0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x62,
	0x75, 0x63, 0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x2e, 0x46, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x57, 0x65, 0x62, 0x68,
	0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4,
	0x93, 0x02, 0x1b, 0x22, 0x19, 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x2f, 0x74, 0x72,
	0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x7d, 0x42, 0x34,
	0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x75, 0x63,
	0x6b, 0x65, 0x74, 0x65, 0x65, 0x72, 0x2d, 0x69, 0x6f, 0x2f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
	0x65, 0x65, 0x72, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x66, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_proto_feature_service_proto_rawDescOnce sync.Once
	file_proto_feature_service_proto_rawDescData = file_proto_feature_service_proto_rawDesc
)

func file_proto_feature_service_proto_rawDescGZIP() []byte {
	file_proto_feature_service_proto_rawDescOnce.Do(func() {
		file_proto_feature_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_feature_service_proto_rawDescData)
	})
	return file_proto_feature_service_proto_rawDescData
}

var file_proto_feature_service_proto_enumTypes = make([]protoimpl.EnumInfo, 10)
var file_proto_feature_service_proto_msgTypes = make([]protoimpl.MessageInfo, 93)
var file_proto_feature_service_proto_goTypes = []interface{}{
	(ChangeType)(0),                                     // 0: bucketeer.feature.ChangeType
	(ListFeaturesRequest_OrderBy)(0),                    // 1: bucketeer.feature.ListFeaturesRequest.OrderBy
	(ListFeaturesRequest_OrderDirection)(0),             // 2: bucketeer.feature.ListFeaturesRequest.OrderDirection
	(UpdateFeatureTargetingRequest_From)(0),             // 3: bucketeer.feature.UpdateFeatureTargetingRequest.From
	(ListSegmentsRequest_OrderBy)(0),                    // 4: bucketeer.feature.ListSegmentsRequest.OrderBy
	(ListSegmentsRequest_OrderDirection)(0),             // 5: bucketeer.feature.ListSegmentsRequest.OrderDirection
	(ListTagsRequest_OrderBy)(0),                        // 6: bucketeer.feature.ListTagsRequest.OrderBy
	(ListTagsRequest_OrderDirection)(0),                 // 7: bucketeer.feature.ListTagsRequest.OrderDirection
	(ListFlagTriggersRequest_OrderBy)(0),                // 8: bucketeer.feature.ListFlagTriggersRequest.OrderBy
	(ListFlagTriggersRequest_OrderDirection)(0),         // 9: bucketeer.feature.ListFlagTriggersRequest.OrderDirection
	(*GetFeatureRequest)(nil),                           // 10: bucketeer.feature.GetFeatureRequest
	(*GetFeatureResponse)(nil),                          // 11: bucketeer.feature.GetFeatureResponse
	(*GetFeaturesRequest)(nil),                          // 12: bucketeer.feature.GetFeaturesRequest
	(*GetFeaturesResponse)(nil),                         // 13: bucketeer.feature.GetFeaturesResponse
	(*ListFeaturesRequest)(nil),                         // 14: bucketeer.feature.ListFeaturesRequest
	(*FeatureSummary)(nil),                              // 15: bucketeer.feature.FeatureSummary
	(*ListFeaturesResponse)(nil),                        // 16: bucketeer.feature.ListFeaturesResponse
	(*ListEnabledFeaturesRequest)(nil),                  // 17: bucketeer.feature.ListEnabledFeaturesRequest
	(*ListEnabledFeaturesResponse)(nil),                 // 18: bucketeer.feature.ListEnabledFeaturesResponse
	(*CreateFeatureRequest)(nil),                        // 19: bucketeer.feature.CreateFeatureRequest
	(*CreateFeatureResponse)(nil),                       // 20: bucketeer.feature.CreateFeatureResponse
	(*PrerequisiteChange)(nil),                          // 21: bucketeer.feature.PrerequisiteChange
	(*TargetChange)(nil),                                // 22: bucketeer.feature.TargetChange
	(*VariationChange)(nil),                             // 23: bucketeer.feature.VariationChange
	(*RuleChange)(nil),                                  // 24: bucketeer.feature.RuleChange
	(*TagChange)(nil),                                   // 25: bucketeer.feature.TagChange
	(*UpdateFeatureRequest)(nil),                        // 26: bucketeer.feature.UpdateFeatureRequest
	(*UpdateFeatureResponse)(nil),                       // 27: bucketeer.feature.UpdateFeatureResponse
	(*ScheduleFlagChangeRequest)(nil),                   // 28: bucketeer.feature.ScheduleFlagChangeRequest
	(*ScheduleFlagChangeResponse)(nil),                  // 29: bucketeer.feature.ScheduleFlagChangeResponse
	(*UpdateScheduledFlagChangeRequest)(nil),            // 30: bucketeer.feature.UpdateScheduledFlagChangeRequest
	(*UpdateScheduledFlagChangeResponse)(nil),           // 31: bucketeer.feature.UpdateScheduledFlagChangeResponse
	(*DeleteScheduledFlagChangeRequest)(nil),            // 32: bucketeer.feature.DeleteScheduledFlagChangeRequest
	(*DeleteScheduledFlagChangeResponse)(nil),           // 33: bucketeer.feature.DeleteScheduledFlagChangeResponse
	(*ListScheduledFlagChangesRequest)(nil),             // 34: bucketeer.feature.ListScheduledFlagChangesRequest
	(*ListScheduledFlagChangesResponse)(nil),            // 35: bucketeer.feature.ListScheduledFlagChangesResponse
	(*EnableFeatureRequest)(nil),                        // 36: bucketeer.feature.EnableFeatureRequest
	(*EnableFeatureResponse)(nil),                       // 37: bucketeer.feature.EnableFeatureResponse
	(*DisableFeatureRequest)(nil),                       // 38: bucketeer.feature.DisableFeatureRequest
	(*DisableFeatureResponse)(nil),                      // 39: bucketeer.feature.DisableFeatureResponse
	(*ArchiveFeatureRequest)(nil),                       // 40: bucketeer.feature.ArchiveFeatureRequest
	(*ArchiveFeatureResponse)(nil),                      // 41: bucketeer.feature.ArchiveFeatureResponse
	(*UnarchiveFeatureRequest)(nil),                     // 42: bucketeer.feature.UnarchiveFeatureRequest
	(*UnarchiveFeatureResponse)(nil),                    // 43: bucketeer.feature.UnarchiveFeatureResponse
	(*DeleteFeatureRequest)(nil),                        // 44: bucketeer.feature.DeleteFeatureRequest
	(*DeleteFeatureResponse)(nil),                       // 45: bucketeer.feature.DeleteFeatureResponse
	(*UpdateFeatureDetailsRequest)(nil),                 // 46: bucketeer.feature.UpdateFeatureDetailsRequest
	(*UpdateFeatureDetailsResponse)(nil),                // 47: bucketeer.feature.UpdateFeatureDetailsResponse
	(*UpdateFeatureVariationsRequest)(nil),              // 48: bucketeer.feature.UpdateFeatureVariationsRequest
	(*UpdateFeatureVariationsResponse)(nil),             // 49: bucketeer.feature.UpdateFeatureVariationsResponse
	(*UpdateFeatureTargetingRequest)(nil),               // 50: bucketeer.feature.UpdateFeatureTargetingRequest
	(*UpdateFeatureTargetingResponse)(nil),              // 51: bucketeer.feature.UpdateFeatureTargetingResponse
	(*CloneFeatureRequest)(nil),                         // 52: bucketeer.feature.CloneFeatureRequest
	(*CloneFeatureResponse)(nil),                        // 53: bucketeer.feature.CloneFeatureResponse
	(*CreateSegmentRequest)(nil),                        // 54: bucketeer.feature.CreateSegmentRequest
	(*CreateSegmentResponse)(nil),                       // 55: bucketeer.feature.CreateSegmentResponse
	(*GetSegmentRequest)(nil),                           // 56: bucketeer.feature.GetSegmentRequest
	(*GetSegmentResponse)(nil),                          // 57: bucketeer.feature.GetSegmentResponse
	(*ListSegmentsRequest)(nil),                         // 58: bucketeer.feature.ListSegmentsRequest
	(*ListSegmentsResponse)(nil),                        // 59: bucketeer.feature.ListSegmentsResponse
	(*DeleteSegmentRequest)(nil),                        // 60: bucketeer.feature.DeleteSegmentRequest
	(*DeleteSegmentResponse)(nil),                       // 61: bucketeer.feature.DeleteSegmentResponse
	(*UpdateSegmentRequest)(nil),                        // 62: bucketeer.feature.UpdateSegmentRequest
	(*UpdateSegmentResponse)(nil),                       // 63: bucketeer.feature.UpdateSegmentResponse
	(*AddSegmentUserRequest)(nil),                       // 64: bucketeer.feature.AddSegmentUserRequest
	(*AddSegmentUserResponse)(nil),                      // 65: bucketeer.feature.AddSegmentUserResponse
	(*DeleteSegmentUserRequest)(nil),                    // 66: bucketeer.feature.DeleteSegmentUserRequest
	(*DeleteSegmentUserResponse)(nil),                   // 67: bucketeer.feature.DeleteSegmentUserResponse
	(*GetSegmentUserRequest)(nil),                       // 68: bucketeer.feature.GetSegmentUserRequest
	(*GetSegmentUserResponse)(nil),                      // 69: bucketeer.feature.GetSegmentUserResponse
	(*ListSegmentUsersRequest)(nil),                     // 70: bucketeer.feature.ListSegmentUsersRequest
	(*ListSegmentUsersResponse)(nil),                    // 71: bucketeer.feature.ListSegmentUsersResponse
	(*BulkUploadSegmentUsersRequest)(nil),               // 72: bucketeer.feature.BulkUploadSegmentUsersRequest
	(*BulkUploadSegmentUsersResponse)(nil),              // 73: bucketeer.feature.BulkUploadSegmentUsersResponse
	(*BulkDownloadSegmentUsersRequest)(nil),             // 74: bucketeer.feature.BulkDownloadSegmentUsersRequest
	(*BulkDownloadSegmentUsersResponse)(nil),            // 75: bucketeer.feature.BulkDownloadSegmentUsersResponse
	(*EvaluateFeaturesRequest)(nil),                     // 76: bucketeer.feature.EvaluateFeaturesRequest
	(*EvaluateFeaturesResponse)(nil),                    // 77: bucketeer.feature.EvaluateFeaturesResponse
	(*DebugEvaluateFeaturesRequest)(nil),                // 78: bucketeer.feature.DebugEvaluateFeaturesRequest
	(*DebugEvaluateFeaturesResponse)(nil),               // 79: bucketeer.feature.DebugEvaluateFeaturesResponse
	(*ListTagsRequest)(nil),                             // 80: bucketeer.feature.ListTagsRequest
	(*ListTagsResponse)(nil),                            // 81: bucketeer.feature.ListTagsResponse
	(*CreateFlagTriggerRequest)(nil),                    // 82: bucketeer.feature.CreateFlagTriggerRequest
	(*CreateFlagTriggerResponse)(nil),                   // 83: bucketeer.feature.CreateFlagTriggerResponse
	(*DeleteFlagTriggerRequest)(nil),                    // 84: bucketeer.feature.DeleteFlagTriggerRequest
	(*DeleteFlagTriggerResponse)(nil),                   // 85: bucketeer.feature.DeleteFlagTriggerResponse
	(*UpdateFlagTriggerRequest)(nil),                    // 86: bucketeer.feature.UpdateFlagTriggerRequest
	(*UpdateFlagTriggerResponse)(nil),                   // 87: bucketeer.feature.UpdateFlagTriggerResponse
	(*EnableFlagTriggerRequest)(nil),                    // 88: bucketeer.feature.EnableFlagTriggerRequest
	(*EnableFlagTriggerResponse)(nil),                   // 89: bucketeer.feature.EnableFlagTriggerResponse
	(*DisableFlagTriggerRequest)(nil),                   // 90: bucketeer.feature.DisableFlagTriggerRequest
	(*DisableFlagTriggerResponse)(nil),                  // 91: bucketeer.feature.DisableFlagTriggerResponse
	(*ResetFlagTriggerRequest)(nil),                     // 92: bucketeer.feature.ResetFlagTriggerRequest
	(*ResetFlagTriggerResponse)(nil),                    // 93: bucketeer.feature.ResetFlagTriggerResponse
	(*GetFlagTriggerRequest)(nil),                       // 94: bucketeer.feature.GetFlagTriggerRequest
	(*GetFlagTriggerResponse)(nil),                      // 95: bucketeer.feature.GetFlagTriggerResponse
	(*ListFlagTriggersRequest)(nil),                     // 96: bucketeer.feature.ListFlagTriggersRequest
	(*ListFlagTriggersResponse)(nil),                    // 97: bucketeer.feature.ListFlagTriggersResponse
	(*FlagTriggerWebhookRequest)(nil),                   // 98: bucketeer.feature.FlagTriggerWebhookRequest
	(*FlagTriggerWebhookResponse)(nil),                  // 99: bucketeer.feature.FlagTriggerWebhookResponse
	(*GetUserAttributeKeysRequest)(nil),                 // 100: bucketeer.feature.GetUserAttributeKeysRequest
	(*GetUserAttributeKeysResponse)(nil),                // 101: bucketeer.feature.GetUserAttributeKeysResponse
	(*ListFlagTriggersResponse_FlagTriggerWithUrl)(nil), // 102: bucketeer.feature.ListFlagTriggersResponse.FlagTriggerWithUrl
	(*wrapperspb.Int32Value)(nil),                       // 103: google.protobuf.Int32Value
	(*Feature)(nil),                                     // 104: bucketeer.feature.Feature
	(*wrapperspb.BoolValue)(nil),                        // 105: google.protobuf.BoolValue
	(FeatureLastUsedInfo_Status)(0),                     // 106: bucketeer.feature.FeatureLastUsedInfo.Status
	(*CreateFeatureCommand)(nil),                        // 107: bucketeer.feature.CreateFeatureCommand
	(*Variation)(nil),                                   // 108: bucketeer.feature.Variation
	(Feature_VariationType)(0),                          // 109: bucketeer.feature.Feature.VariationType
	(*Prerequisite)(nil),                                // 110: bucketeer.feature.Prerequisite
	(*Target)(nil),                                      // 111: bucketeer.feature.Target
	(*Rule)(nil),                                        // 112: bucketeer.feature.Rule
	(*wrapperspb.StringValue)(nil),                      // 113: google.protobuf.StringValue
	(*common.StringListValue)(nil),                      // 114: bucketeer.common.StringListValue
	(*Strategy)(nil),                                    // 115: bucketeer.feature.Strategy
	(*ScheduledChange)(nil),                             // 116: bucketeer.feature.ScheduledChange
	(*wrapperspb.Int64Value)(nil),                       // 117: google.protobuf.Int64Value
	(*ScheduledFlagUpdate)(nil),                         // 118: bucketeer.feature.ScheduledFlagUpdate
	(*EnableFeatureCommand)(nil),                        // 119: bucketeer.feature.EnableFeatureCommand
	(*DisableFeatureCommand)(nil),                       // 120: bucketeer.feature.DisableFeatureCommand
	(*ArchiveFeatureCommand)(nil),                       // 121: bucketeer.feature.ArchiveFeatureCommand
	(*UnarchiveFeatureCommand)(nil),                     // 122: bucketeer.feature.UnarchiveFeatureCommand
	(*DeleteFeatureCommand)(nil),                        // 123: bucketeer.feature.DeleteFeatureCommand
	(*RenameFeatureCommand)(nil),                        // 124: bucketeer.feature.RenameFeatureCommand
	(*ChangeDescriptionCommand)(nil),                    // 125: bucketeer.feature.ChangeDescriptionCommand
	(*AddTagCommand)(nil),                               // 126: bucketeer.feature.AddTagCommand
	(*RemoveTagCommand)(nil),                            // 127: bucketeer.feature.RemoveTagCommand
	(*Command)(nil),                                     // 128: bucketeer.feature.Command
	(*CloneFeatureCommand)(nil),                         // 129: bucketeer.feature.CloneFeatureCommand
	(*CreateSegmentCommand)(nil),                        // 130: bucketeer.feature.CreateSegmentCommand
	(*Segment)(nil),                                     // 131: bucketeer.feature.Segment
	(*DeleteSegmentCommand)(nil),                        // 132: bucketeer.feature.DeleteSegmentCommand
	(*AddSegmentUserCommand)(nil),                       // 133: bucketeer.feature.AddSegmentUserCommand
	(*DeleteSegmentUserCommand)(nil),                    // 134: bucketeer.feature.DeleteSegmentUserCommand
	(SegmentUser_State)(0),                              // 135: bucketeer.feature.SegmentUser.State
	(*SegmentUser)(nil),                                 // 136: bucketeer.feature.SegmentUser
	(*BulkUploadSegmentUsersCommand)(nil),               // 137: bucketeer.feature.BulkUploadSegmentUsersCommand
	(*user.User)(nil),                                   // 138: bucketeer.user.User
	(*UserEvaluations)(nil),                             // 139: bucketeer.feature.UserEvaluations
	(*Evaluation)(nil),                                  // 140: bucketeer.feature.Evaluation
	(*Tag)(nil),                                         // 141: bucketeer.feature.Tag
	(*CreateFlagTriggerCommand)(nil),                    // 142: bucketeer.feature.CreateFlagTriggerCommand
	(FlagTrigger_Type)(0),                               // 143: bucketeer.feature.FlagTrigger.Type
	(FlagTrigger_Action)(0),                             // 144: bucketeer.feature.FlagTrigger.Action
	(*FlagTrigger)(nil),                                 // 145: bucketeer.feature.FlagTrigger
	(*DeleteFlagTriggerCommand)(nil),                    // 146: bucketeer.feature.DeleteFlagTriggerCommand
	(*ChangeFlagTriggerDescriptionCommand)(nil),         // 147: bucketeer.feature.ChangeFlagTriggerDescriptionCommand
	(*EnableFlagTriggerCommand)(nil),                    // 148: bucketeer.feature.EnableFlagTriggerCommand
	(*DisableFlagTriggerCommand)(nil),                   // 149: bucketeer.feature.DisableFlagTriggerCommand
	(*ResetFlagTriggerCommand)(nil),                     // 150: bucketeer.feature.ResetFlagTriggerCommand
}
var file_proto_feature_service_proto_depIdxs = []int32{
	103, // 0: bucketeer.feature.GetFeatureRequest.feature_version:type_name -> google.protobuf.Int32Value
	104, // 1: bucketeer.feature.GetFeatureResponse.feature:type_name -> bucketeer.feature.Feature
	104, // 2: bucketeer.feature.GetFeaturesResponse.features:type_name -> bucketeer.feature.Feature
	1,   // 3: bucketeer.feature.ListFeaturesRequest.order_by:type_name -> bucketeer.feature.ListFeaturesRequest.OrderBy
	2,   // 4: bucketeer.feature.ListFeaturesRequest.order_direction:type_name -> bucketeer.feature.ListFeaturesRequest.OrderDirection
	105, // 5: bucketeer.feature.ListFeaturesRequest.enabled:type_name -> google.protobuf.BoolValue
	105, // 6: bucketeer.feature.ListFeaturesRequest.has_experiment:type_name -> google.protobuf.BoolValue
	105, // 7: bucketeer.feature.ListFeaturesRequest.archived:type_name -> google.protobuf.BoolValue
	105, // 8: bucketeer.feature.ListFeaturesRequest.has_prerequisites:type_name -> google.protobuf.BoolValue
	106, // 9: bucketeer.feature.ListFeaturesRequest.status:type_name -> bucketeer.feature.FeatureLastUsedInfo.Status
	105, // 10: bucketeer.feature.ListFeaturesRequest.has_feature_flag_as_rule:type_name -> google.protobuf.BoolValue
	104, // 11: bucketeer.feature.ListFeaturesResponse.features:type_name -> bucketeer.feature.Feature
	15,  // 12: bucketeer.feature.ListFeaturesResponse.feature_count_by_status:type_name -> bucketeer.feature.FeatureSummary
	104, // 13: bucketeer.feature.ListEnabledFeaturesResponse.features:type_name -> bucketeer.feature.Feature
	107, // 14: bucketeer.feature.CreateFeatureRequest.command:type_name -> bucketeer.feature.CreateFeatureCommand
	108, // 15: bucketeer.feature.CreateFeatureRequest.variations:type_name -> bucketeer.feature.Variation
	103, // 16: bucketeer.feature.CreateFeatureRequest.default_on_variation_index:type_name -> google.protobuf.Int32Value
	103, // 17: bucketeer.feature.CreateFeatureRequest.default_off_variation_index:type_name -> google.protobuf.Int32Value
	109, // 18: bucketeer.feature.CreateFeatureRequest.variation_type:type_name -> bucketeer.feature.Feature.VariationType
	104, // 19: bucketeer.feature.CreateFeatureResponse.feature:type_name -> bucketeer.feature.Feature
	0,   // 20: bucketeer.feature.PrerequisiteChange.change_type:type_name -> bucketeer.feature.ChangeType
	110, // 21: bucketeer.feature.PrerequisiteChange.prerequisite:type_name -> bucketeer.feature.Prerequisite
	0,   // 22: bucketeer.feature.TargetChange.change_type:type_name -> bucketeer.feature.ChangeType
	111, // 23: bucketeer.feature.TargetChange.target:type_name -> bucketeer.feature.Target
	0,   // 24: bucketeer.feature.VariationChange.change_type:type_name -> bucketeer.feature.ChangeType
	108, // 25: bucketeer.feature.VariationChange.variation:type_name -> bucketeer.feature.Variation
	0,   // 26: bucketeer.feature.RuleChange.change_type:type_name -> bucketeer.feature.ChangeType
	112, // 27: bucketeer.feature.RuleChange.rule:type_name -> bucketeer.feature.Rule
	0,   // 28: bucketeer.feature.TagChange.change_type:type_name -> bucketeer.feature.ChangeType
	113, // 29: bucketeer.feature.UpdateFeatureRequest.name:type_name -> google.protobuf.StringValue
	113, // 30: bucketeer.feature.UpdateFeatureRequest.description:type_name -> google.protobuf.StringValue
	114, // 31: bucketeer.feature.UpdateFeatureRequest.tags:type_name -> bucketeer.common.StringListValue
	105, // 32: bucketeer.feature.UpdateFeatureRequest.enabled:type_name -> google.protobuf.BoolValue
	105, // 33: bucketeer.feature.UpdateFeatureRequest.archived:type_name -> google.protobuf.BoolValue
	115, // 34: bucketeer.feature.UpdateFeatureRequest.default_strategy:type_name -> bucketeer.feature.Strategy
	113, // 35: bucketeer.feature.UpdateFeatureRequest.off_variation:type_name -> google.protobuf.StringValue
	23,  // 36: bucketeer.feature.UpdateFeatureRequest.variation_changes:type_name -> bucketeer.feature.VariationChange
	24,  // 37: bucketeer.feature.UpdateFeatureRequest.rule_changes:type_name -> bucketeer.feature.RuleChange
	21,  // 38: bucketeer.feature.UpdateFeatureRequest.prerequisite_changes:type_name -> bucketeer.feature.PrerequisiteChange
	22,  // 39: bucketeer.feature.UpdateFeatureRequest.target_changes:type_name -> bucketeer.feature.TargetChange
	25,  // 40: bucketeer.feature.UpdateFeatureRequest.tag_changes:type_name -> bucketeer.feature.TagChange
	104, // 41: bucketeer.feature.UpdateFeatureResponse.feature:type_name -> bucketeer.feature.Feature
	116, // 42: bucketeer.feature.ScheduleFlagChangeRequest.scheduled_changes:type_name -> bucketeer.feature.ScheduledChange
	117, // 43: bucketeer.feature.UpdateScheduledFlagChangeRequest.scheduled_at:type_name -> google.protobuf.Int64Value
	116, // 44: bucketeer.feature.UpdateScheduledFlagChangeRequest.scheduled_changes:type_name -> bucketeer.feature.ScheduledChange
	118, // 45: bucketeer.feature.ListScheduledFlagChangesResponse.scheduled_flag_updates:type_name -> bucketeer.feature.ScheduledFlagUpdate
	119, // 46: bucketeer.feature.EnableFeatureRequest.command:type_name -> bucketeer.feature.EnableFeatureCommand
	120, // 47: bucketeer.feature.DisableFeatureRequest.command:type_name -> bucketeer.feature.DisableFeatureCommand
	121, // 48: bucketeer.feature.ArchiveFeatureRequest.command:type_name -> bucketeer.feature.ArchiveFeatureCommand
	122, // 49: bucketeer.feature.UnarchiveFeatureRequest.command:type_name -> bucketeer.feature.UnarchiveFeatureCommand
	123, // 50: bucketeer.feature.DeleteFeatureRequest.command:type_name -> bucketeer.feature.DeleteFeatureCommand
	124, // 51: bucketeer.feature.UpdateFeatureDetailsRequest.rename_feature_command:type_name -> bucketeer.feature.RenameFeatureCommand
	125, // 52: bucketeer.feature.UpdateFeatureDetailsRequest.change_description_command:type_name -> bucketeer.feature.ChangeDescriptionCommand
	126, // 53: bucketeer.feature.UpdateFeatureDetailsRequest.add_tag_commands:type_name -> bucketeer.feature.AddTagCommand
	127, // 54: bucketeer.feature.UpdateFeatureDetailsRequest.remove_tag_commands:type_name -> bucketeer.feature.RemoveTagCommand
	128, // 55: bucketeer.feature.UpdateFeatureVariationsRequest.commands:type_name -> bucketeer.feature.Command
	128, // 56: bucketeer.feature.UpdateFeatureTargetingRequest.commands:type_name -> bucketeer.feature.Command
	3,   // 57: bucketeer.feature.UpdateFeatureTargetingRequest.from:type_name -> bucketeer.feature.UpdateFeatureTargetingRequest.From
	129, // 58: bucketeer.feature.CloneFeatureRequest.command:type_name -> bucketeer.feature.CloneFeatureCommand
	130, // 59: bucketeer.feature.CreateSegmentRequest.command:type_name -> bucketeer.feature.CreateSegmentCommand
	131, // 60: bucketeer.feature.CreateSegmentResponse.segment:type_name -> bucketeer.feature.Segment
	131, // 61: bucketeer.feature.GetSegmentResponse.segment:type_name -> bucketeer.feature.Segment
	4,   // 62: bucketeer.feature.ListSegmentsRequest.order_by:type_name -> bucketeer.feature.ListSegmentsRequest.OrderBy
	5,   // 63: bucketeer.feature.ListSegmentsRequest.order_direction:type_name -> bucketeer.feature.ListSegmentsRequest.OrderDirection
	103, // 64: bucketeer.feature.ListSegmentsRequest.status:type_name -> google.protobuf.Int32Value
	105, // 65: bucketeer.feature.ListSegmentsRequest.is_in_use_status:type_name -> google.protobuf.BoolValue
	131, // 66: bucketeer.feature.ListSegmentsResponse.segments:type_name -> bucketeer.feature.Segment
	132, // 67: bucketeer.feature.DeleteSegmentRequest.command:type_name -> bucketeer.feature.DeleteSegmentCommand
	128, // 68: bucketeer.feature.UpdateSegmentRequest.commands:type_name -> bucketeer.feature.Command
	113, // 69: bucketeer.feature.UpdateSegmentRequest.name:type_name -> google.protobuf.StringValue
	113, // 70: bucketeer.feature.UpdateSegmentRequest.description:type_name -> google.protobuf.StringValue
	131, // 71: bucketeer.feature.UpdateSegmentResponse.segment:type_name -> bucketeer.feature.Segment
	133, // 72: bucketeer.feature.AddSegmentUserRequest.command:type_name -> bucketeer.feature.AddSegmentUserCommand
	134, // 73: bucketeer.feature.DeleteSegmentUserRequest.command:type_name -> bucketeer.feature.DeleteSegmentUserCommand
	135, // 74: bucketeer.feature.GetSegmentUserRequest.state:type_name -> bucketeer.feature.SegmentUser.State
	136, // 75: bucketeer.feature.GetSegmentUserResponse.user:type_name -> bucketeer.feature.SegmentUser
	103, // 76: bucketeer.feature.ListSegmentUsersRequest.state:type_name -> google.protobuf.Int32Value
	136, // 77: bucketeer.feature.ListSegmentUsersResponse.users:type_name -> bucketeer.feature.SegmentUser
	137, // 78: bucketeer.feature.BulkUploadSegmentUsersRequest.command:type_name -> bucketeer.feature.BulkUploadSegmentUsersCommand
	135, // 79: bucketeer.feature.BulkUploadSegmentUsersRequest.state:type_name -> bucketeer.feature.SegmentUser.State
	135, // 80: bucketeer.feature.BulkDownloadSegmentUsersRequest.state:type_name -> bucketeer.feature.SegmentUser.State
	138, // 81: bucketeer.feature.EvaluateFeaturesRequest.user:type_name -> bucketeer.user.User
	139, // 82: bucketeer.feature.EvaluateFeaturesResponse.user_evaluations:type_name -> bucketeer.feature.UserEvaluations
	138, // 83: bucketeer.feature.DebugEvaluateFeaturesRequest.users:type_name -> bucketeer.user.User
	140, // 84: bucketeer.feature.DebugEvaluateFeaturesResponse.evaluations:type_name -> bucketeer.feature.Evaluation
	6,   // 85: bucketeer.feature.ListTagsRequest.order_by:type_name -> bucketeer.feature.ListTagsRequest.OrderBy
	7,   // 86: bucketeer.feature.ListTagsRequest.order_direction:type_name -> bucketeer.feature.ListTagsRequest.OrderDirection
	141, // 87: bucketeer.feature.ListTagsResponse.tags:type_name -> bucketeer.feature.Tag
	142, // 88: bucketeer.feature.CreateFlagTriggerRequest.create_flag_trigger_command:type_name -> bucketeer.feature.CreateFlagTriggerCommand
	143, // 89: bucketeer.feature.CreateFlagTriggerRequest.type:type_name -> bucketeer.feature.FlagTrigger.Type
	144, // 90: bucketeer.feature.CreateFlagTriggerRequest.action:type_name -> bucketeer.feature.FlagTrigger.Action
	145, // 91: bucketeer.feature.CreateFlagTriggerResponse.flag_trigger:type_name -> bucketeer.feature.FlagTrigger
	146, // 92: bucketeer.feature.DeleteFlagTriggerRequest.delete_flag_trigger_command:type_name -> bucketeer.feature.DeleteFlagTriggerCommand
	147, // 93: bucketeer.feature.UpdateFlagTriggerRequest.change_flag_trigger_description_command:type_name -> bucketeer.feature.ChangeFlagTriggerDescriptionCommand
	113, // 94: bucketeer.feature.UpdateFlagTriggerRequest.description:type_name -> google.protobuf.StringValue
	105, // 95: bucketeer.feature.UpdateFlagTriggerRequest.disabled:type_name -> google.protobuf.BoolValue
	148, // 96: bucketeer.feature.EnableFlagTriggerRequest.enable_flag_trigger_command:type_name -> bucketeer.feature.EnableFlagTriggerCommand
	149, // 97: bucketeer.feature.DisableFlagTriggerRequest.disable_flag_trigger_command:type_name -> bucketeer.feature.DisableFlagTriggerCommand
	150, // 98: bucketeer.feature.ResetFlagTriggerRequest.reset_flag_trigger_command:type_name -> bucketeer.feature.ResetFlagTriggerCommand
	145, // 99: bucketeer.feature.ResetFlagTriggerResponse.flag_trigger:type_name -> bucketeer.feature.FlagTrigger
	145, // 100: bucketeer.feature.GetFlagTriggerResponse.flag_trigger:type_name -> bucketeer.feature.FlagTrigger
	8,   // 101: bucketeer.feature.ListFlagTriggersRequest.order_by:type_name -> bucketeer.feature.ListFlagTriggersRequest.OrderBy
	9,   // 102: bucketeer.feature.ListFlagTriggersRequest.order_direction:type_name -> bucketeer.feature.ListFlagTriggersRequest.OrderDirection
	102, // 103: bucketeer.feature.ListFlagTriggersResponse.flag_triggers:type_name -> bucketeer.feature.ListFlagTriggersResponse.FlagTriggerWithUrl
	145, // 104: bucketeer.feature.ListFlagTriggersResponse.FlagTriggerWithUrl.flag_trigger:type_name -> bucketeer.feature.FlagTrigger
	10,  // 105: bucketeer.feature.FeatureService.GetFeature:input_type -> bucketeer.feature.GetFeatureRequest
	12,  // 106: bucketeer.feature.FeatureService.GetFeatures:input_type -> bucketeer.feature.GetFeaturesRequest
	14,  // 107: bucketeer.feature.FeatureService.ListFeatures:input_type -> bucketeer.feature.ListFeaturesRequest
	17,  // 108: bucketeer.feature.FeatureService.ListEnabledFeatures:input_type -> bucketeer.feature.ListEnabledFeaturesRequest
	19,  // 109: bucketeer.feature.FeatureService.CreateFeature:input_type -> bucketeer.feature.CreateFeatureRequest
	26,  // 110: bucketeer.feature.FeatureService.UpdateFeature:input_type -> bucketeer.feature.UpdateFeatureRequest
	28,  // 111: bucketeer.feature.FeatureService.ScheduleFlagChange:input_type -> bucketeer.feature.ScheduleFlagChangeRequest
	30,  // 112: bucketeer.feature.FeatureService.UpdateScheduledFlagChange:input_type -> bucketeer.feature.UpdateScheduledFlagChangeRequest
	32,  // 113: bucketeer.feature.FeatureService.DeleteScheduledFlagChange:input_type -> bucketeer.feature.DeleteScheduledFlagChangeRequest
	34,  // 114: bucketeer.feature.FeatureService.ListScheduledFlagChanges:input_type -> bucketeer.feature.ListScheduledFlagChangesRequest
	36,  // 115: bucketeer.feature.FeatureService.EnableFeature:input_type -> bucketeer.feature.EnableFeatureRequest
	38,  // 116: bucketeer.feature.FeatureService.DisableFeature:input_type -> bucketeer.feature.DisableFeatureRequest
	40,  // 117: bucketeer.feature.FeatureService.ArchiveFeature:input_type -> bucketeer.feature.ArchiveFeatureRequest
	42,  // 118: bucketeer.feature.FeatureService.UnarchiveFeature:input_type -> bucketeer.feature.UnarchiveFeatureRequest
	44,  // 119: bucketeer.feature.FeatureService.DeleteFeature:input_type -> bucketeer.feature.DeleteFeatureRequest
	46,  // 120: bucketeer.feature.FeatureService.UpdateFeatureDetails:input_type -> bucketeer.feature.UpdateFeatureDetailsRequest
	48,  // 121: bucketeer.feature.FeatureService.UpdateFeatureVariations:input_type -> bucketeer.feature.UpdateFeatureVariationsRequest
	50,  // 122: bucketeer.feature.FeatureService.UpdateFeatureTargeting:input_type -> bucketeer.feature.UpdateFeatureTargetingRequest
	52,  // 123: bucketeer.feature.FeatureService.CloneFeature:input_type -> bucketeer.feature.CloneFeatureRequest
	54,  // 124: bucketeer.feature.FeatureService.CreateSegment:input_type -> bucketeer.feature.CreateSegmentRequest
	56,  // 125: bucketeer.feature.FeatureService.GetSegment:input_type -> bucketeer.feature.GetSegmentRequest
	58,  // 126: bucketeer.feature.FeatureService.ListSegments:input_type -> bucketeer.feature.ListSegmentsRequest
	60,  // 127: bucketeer.feature.FeatureService.DeleteSegment:input_type -> bucketeer.feature.DeleteSegmentRequest
	62,  // 128: bucketeer.feature.FeatureService.UpdateSegment:input_type -> bucketeer.feature.UpdateSegmentRequest
	64,  // 129: bucketeer.feature.FeatureService.AddSegmentUser:input_type -> bucketeer.feature.AddSegmentUserRequest
	66,  // 130: bucketeer.feature.FeatureService.DeleteSegmentUser:input_type -> bucketeer.feature.DeleteSegmentUserRequest
	68,  // 131: bucketeer.feature.FeatureService.GetSegmentUser:input_type -> bucketeer.feature.GetSegmentUserRequest
	70,  // 132: bucketeer.feature.FeatureService.ListSegmentUsers:input_type -> bucketeer.feature.ListSegmentUsersRequest
	72,  // 133: bucketeer.feature.FeatureService.BulkUploadSegmentUsers:input_type -> bucketeer.feature.BulkUploadSegmentUsersRequest
	74,  // 134: bucketeer.feature.FeatureService.BulkDownloadSegmentUsers:input_type -> bucketeer.feature.BulkDownloadSegmentUsersRequest
	76,  // 135: bucketeer.feature.FeatureService.EvaluateFeatures:input_type -> bucketeer.feature.EvaluateFeaturesRequest
	78,  // 136: bucketeer.feature.FeatureService.DebugEvaluateFeatures:input_type -> bucketeer.feature.DebugEvaluateFeaturesRequest
	80,  // 137: bucketeer.feature.FeatureService.ListTags:input_type -> bucketeer.feature.ListTagsRequest
	82,  // 138: bucketeer.feature.FeatureService.CreateFlagTrigger:input_type -> bucketeer.feature.CreateFlagTriggerRequest
	86,  // 139: bucketeer.feature.FeatureService.UpdateFlagTrigger:input_type -> bucketeer.feature.UpdateFlagTriggerRequest
	88,  // 140: bucketeer.feature.FeatureService.EnableFlagTrigger:input_type -> bucketeer.feature.EnableFlagTriggerRequest
	90,  // 141: bucketeer.feature.FeatureService.DisableFlagTrigger:input_type -> bucketeer.feature.DisableFlagTriggerRequest
	92,  // 142: bucketeer.feature.FeatureService.ResetFlagTrigger:input_type -> bucketeer.feature.ResetFlagTriggerRequest
	84,  // 143: bucketeer.feature.FeatureService.DeleteFlagTrigger:input_type -> bucketeer.feature.DeleteFlagTriggerRequest
	94,  // 144: bucketeer.feature.FeatureService.GetFlagTrigger:input_type -> bucketeer.feature.GetFlagTriggerRequest
	96,  // 145: bucketeer.feature.FeatureService.ListFlagTriggers:input_type -> bucketeer.feature.ListFlagTriggersRequest
	100, // 146: bucketeer.feature.FeatureService.GetUserAttributeKeys:input_type -> bucketeer.feature.GetUserAttributeKeysRequest
	98,  // 147: bucketeer.feature.FeatureService.FlagTriggerWebhook:input_type -> bucketeer.feature.FlagTriggerWebhookRequest
	11,  // 148: bucketeer.feature.FeatureService.GetFeature:output_type -> bucketeer.feature.GetFeatureResponse
	13,  // 149: bucketeer.feature.FeatureService.GetFeatures:output_type -> bucketeer.feature.GetFeaturesResponse
	16,  // 150: bucketeer.feature.FeatureService.ListFeatures:output_type -> bucketeer.feature.ListFeaturesResponse
	18,  // 151: bucketeer.feature.FeatureService.ListEnabledFeatures:output_type -> bucketeer.feature.ListEnabledFeaturesResponse
	20,  // 152: bucketeer.feature.FeatureService.CreateFeature:output_type -> bucketeer.feature.CreateFeatureResponse
	27,  // 153: bucketeer.feature.FeatureService.UpdateFeature:output_type -> bucketeer.feature.UpdateFeatureResponse
	29,  // 154: bucketeer.feature.FeatureService.ScheduleFlagChange:output_type -> bucketeer.feature.ScheduleFlagChangeResponse
	31,  // 155: bucketeer.feature.FeatureService.UpdateScheduledFlagChange:output_type -> bucketeer.feature.UpdateScheduledFlagChangeResponse
	33,  // 156: bucketeer.feature.FeatureService.DeleteScheduledFlagChange:output_type -> bucketeer.feature.DeleteScheduledFlagChangeResponse
	35,  // 157: bucketeer.feature.FeatureService.ListScheduledFlagChanges:output_type -> bucketeer.feature.ListScheduledFlagChangesResponse
	37,  // 158: bucketeer.feature.FeatureService.EnableFeature:output_type -> bucketeer.feature.EnableFeatureResponse
	39,  // 159: bucketeer.feature.FeatureService.DisableFeature:output_type -> bucketeer.feature.DisableFeatureResponse
	41,  // 160: bucketeer.feature.FeatureService.ArchiveFeature:output_type -> bucketeer.feature.ArchiveFeatureResponse
	43,  // 161: bucketeer.feature.FeatureService.UnarchiveFeature:output_type -> bucketeer.feature.UnarchiveFeatureResponse
	45,  // 162: bucketeer.feature.FeatureService.DeleteFeature:output_type -> bucketeer.feature.DeleteFeatureResponse
	47,  // 163: bucketeer.feature.FeatureService.UpdateFeatureDetails:output_type -> bucketeer.feature.UpdateFeatureDetailsResponse
	49,  // 164: bucketeer.feature.FeatureService.UpdateFeatureVariations:output_type -> bucketeer.feature.UpdateFeatureVariationsResponse
	51,  // 165: bucketeer.feature.FeatureService.UpdateFeatureTargeting:output_type -> bucketeer.feature.UpdateFeatureTargetingResponse
	53,  // 166: bucketeer.feature.FeatureService.CloneFeature:output_type -> bucketeer.feature.CloneFeatureResponse
	55,  // 167: bucketeer.feature.FeatureService.CreateSegment:output_type -> bucketeer.feature.CreateSegmentResponse
	57,  // 168: bucketeer.feature.FeatureService.GetSegment:output_type -> bucketeer.feature.GetSegmentResponse
	59,  // 169: bucketeer.feature.FeatureService.ListSegments:output_type -> bucketeer.feature.ListSegmentsResponse
	61,  // 170: bucketeer.feature.FeatureService.DeleteSegment:output_type -> bucketeer.feature.DeleteSegmentResponse
	63,  // 171: bucketeer.feature.FeatureService.UpdateSegment:output_type -> bucketeer.feature.UpdateSegmentResponse
	65,  // 172: bucketeer.feature.FeatureService.AddSegmentUser:output_type -> bucketeer.feature.AddSegmentUserResponse
	67,  // 173: bucketeer.feature.FeatureService.DeleteSegmentUser:output_type -> bucketeer.feature.DeleteSegmentUserResponse
	69,  // 174: bucketeer.feature.FeatureService.GetSegmentUser:output_type -> bucketeer.feature.GetSegmentUserResponse
	71,  // 175: bucketeer.feature.FeatureService.ListSegmentUsers:output_type -> bucketeer.feature.ListSegmentUsersResponse
	73,  // 176: bucketeer.feature.FeatureService.BulkUploadSegmentUsers:output_type -> bucketeer.feature.BulkUploadSegmentUsersResponse
	75,  // 177: bucketeer.feature.FeatureService.BulkDownloadSegmentUsers:output_type -> bucketeer.feature.BulkDownloadSegmentUsersResponse
	77,  // 178: bucketeer.feature.FeatureService.EvaluateFeatures:output_type -> bucketeer.feature.EvaluateFeaturesResponse
	79,  // 179: bucketeer.feature.FeatureService.DebugEvaluateFeatures:output_type -> bucketeer.feature.DebugEvaluateFeaturesResponse
	81,  // 180: bucketeer.feature.FeatureService.ListTags:output_type -> bucketeer.feature.ListTagsResponse
	83,  // 181: bucketeer.feature.FeatureService.CreateFlagTrigger:output_type -> bucketeer.feature.CreateFlagTriggerResponse
	87,  // 182: bucketeer.feature.FeatureService.UpdateFlagTrigger:output_type -> bucketeer.feature.UpdateFlagTriggerResponse
	89,  // 183: bucketeer.feature.FeatureService.EnableFlagTrigger:output_type -> bucketeer.feature.EnableFlagTriggerResponse
	91,  // 184: bucketeer.feature.FeatureService.DisableFlagTrigger:output_type -> bucketeer.feature.DisableFlagTriggerResponse
	93,  // 185: bucketeer.feature.FeatureService.ResetFlagTrigger:output_type -> bucketeer.feature.ResetFlagTriggerResponse
	85,  // 186: bucketeer.feature.FeatureService.DeleteFlagTrigger:output_type -> bucketeer.feature.DeleteFlagTriggerResponse
	95,  // 187: bucketeer.feature.FeatureService.GetFlagTrigger:output_type -> bucketeer.feature.GetFlagTriggerResponse
	97,  // 188: bucketeer.feature.FeatureService.ListFlagTriggers:output_type -> bucketeer.feature.ListFlagTriggersResponse
	101, // 189: bucketeer.feature.FeatureService.GetUserAttributeKeys:output_type -> bucketeer.feature.GetUserAttributeKeysResponse
	99,  // 190: bucketeer.feature.FeatureService.FlagTriggerWebhook:output_type -> bucketeer.feature.FlagTriggerWebhookResponse
	148, // [148:191] is the sub-list for method output_type
	105, // [105:148] is the sub-list for method input_type
	105, // [105:105] is the sub-list for extension type_name
	105, // [105:105] is the sub-list for extension extendee
	0,   // [0:105] is the sub-list for field type_name
}

func init() { file_proto_feature_service_proto_init() }
func file_proto_feature_service_proto_init() {
	if File_proto_feature_service_proto != nil {
		return
	}
	file_proto_feature_command_proto_init()
	file_proto_feature_feature_proto_init()
	file_proto_feature_scheduled_update_proto_init()
	file_proto_feature_evaluation_proto_init()
	file_proto_feature_feature_last_used_info_proto_init()
	file_proto_feature_segment_proto_init()
	file_proto_feature_flag_trigger_proto_init()
	file_proto_feature_variation_proto_init()
	file_proto_feature_prerequisite_proto_init()
	file_proto_feature_rule_proto_init()
	file_proto_feature_strategy_proto_init()
	file_proto_feature_target_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_proto_feature_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetFeatureRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetFeatureResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetFeaturesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetFeaturesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListFeaturesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FeatureSummary); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListFeaturesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListEnabledFeaturesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListEnabledFeaturesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateFeatureRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateFeatureResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PrerequisiteChange); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TargetChange); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VariationChange); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RuleChange); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TagChange); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateFeatureRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateFeatureResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ScheduleFlagChangeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ScheduleFlagChangeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateScheduledFlagChangeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateScheduledFlagChangeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteScheduledFlagChangeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteScheduledFlagChangeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListScheduledFlagChangesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListScheduledFlagChangesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EnableFeatureRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EnableFeatureResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DisableFeatureRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DisableFeatureResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ArchiveFeatureRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ArchiveFeatureResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UnarchiveFeatureRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UnarchiveFeatureResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteFeatureRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteFeatureResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateFeatureDetailsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateFeatureDetailsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateFeatureVariationsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateFeatureVariationsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateFeatureTargetingRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateFeatureTargetingResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CloneFeatureRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CloneFeatureResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateSegmentRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateSegmentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetSegmentRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetSegmentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListSegmentsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListSegmentsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteSegmentRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteSegmentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateSegmentRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateSegmentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddSegmentUserRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddSegmentUserResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteSegmentUserRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteSegmentUserResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetSegmentUserRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetSegmentUserResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListSegmentUsersRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListSegmentUsersResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BulkUploadSegmentUsersRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BulkUploadSegmentUsersResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BulkDownloadSegmentUsersRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BulkDownloadSegmentUsersResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EvaluateFeaturesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EvaluateFeaturesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DebugEvaluateFeaturesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DebugEvaluateFeaturesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListTagsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListTagsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateFlagTriggerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateFlagTriggerResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteFlagTriggerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteFlagTriggerResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateFlagTriggerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateFlagTriggerResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EnableFlagTriggerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EnableFlagTriggerResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DisableFlagTriggerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DisableFlagTriggerResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResetFlagTriggerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResetFlagTriggerResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetFlagTriggerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetFlagTriggerResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListFlagTriggersRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListFlagTriggersResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FlagTriggerWebhookRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FlagTriggerWebhookResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserAttributeKeysRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserAttributeKeysResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_feature_service_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListFlagTriggersResponse_FlagTriggerWithUrl); 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_proto_feature_service_proto_rawDesc,
			NumEnums:      10,
			NumMessages:   93,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_proto_feature_service_proto_goTypes,
		DependencyIndexes: file_proto_feature_service_proto_depIdxs,
		EnumInfos:         file_proto_feature_service_proto_enumTypes,
		MessageInfos:      file_proto_feature_service_proto_msgTypes,
	}.Build()
	File_proto_feature_service_proto = out.File
	file_proto_feature_service_proto_rawDesc = nil
	file_proto_feature_service_proto_goTypes = nil
	file_proto_feature_service_proto_depIdxs = nil
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConnInterface

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion6

// FeatureServiceClient is the client API for FeatureService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type FeatureServiceClient interface {
	GetFeature(ctx context.Context, in *GetFeatureRequest, opts ...grpc.CallOption) (*GetFeatureResponse, error)
	GetFeatures(ctx context.Context, in *GetFeaturesRequest, opts ...grpc.CallOption) (*GetFeaturesResponse, error)
	ListFeatures(ctx context.Context, in *ListFeaturesRequest, opts ...grpc.CallOption) (*ListFeaturesResponse, error)
	ListEnabledFeatures(ctx context.Context, in *ListEnabledFeaturesRequest, opts ...grpc.CallOption) (*ListEnabledFeaturesResponse, error)
	CreateFeature(ctx context.Context, in *CreateFeatureRequest, opts ...grpc.CallOption) (*CreateFeatureResponse, error)
	UpdateFeature(ctx context.Context, in *UpdateFeatureRequest, opts ...grpc.CallOption) (*UpdateFeatureResponse, error)
	ScheduleFlagChange(ctx context.Context, in *ScheduleFlagChangeRequest, opts ...grpc.CallOption) (*ScheduleFlagChangeResponse, error)
	UpdateScheduledFlagChange(ctx context.Context, in *UpdateScheduledFlagChangeRequest, opts ...grpc.CallOption) (*UpdateScheduledFlagChangeResponse, error)
	DeleteScheduledFlagChange(ctx context.Context, in *DeleteScheduledFlagChangeRequest, opts ...grpc.CallOption) (*DeleteScheduledFlagChangeResponse, error)
	ListScheduledFlagChanges(ctx context.Context, in *ListScheduledFlagChangesRequest, opts ...grpc.CallOption) (*ListScheduledFlagChangesResponse, error)
	// Deprecated: Do not use.
	EnableFeature(ctx context.Context, in *EnableFeatureRequest, opts ...grpc.CallOption) (*EnableFeatureResponse, error)
	// Deprecated: Do not use.
	DisableFeature(ctx context.Context, in *DisableFeatureRequest, opts ...grpc.CallOption) (*DisableFeatureResponse, error)
	// Deprecated: Do not use.
	ArchiveFeature(ctx context.Context, in *ArchiveFeatureRequest, opts ...grpc.CallOption) (*ArchiveFeatureResponse, error)
	// Deprecated: Do not use.
	UnarchiveFeature(ctx context.Context, in *UnarchiveFeatureRequest, opts ...grpc.CallOption) (*UnarchiveFeatureResponse, error)
	DeleteFeature(ctx context.Context, in *DeleteFeatureRequest, opts ...grpc.CallOption) (*DeleteFeatureResponse, error)
	UpdateFeatureDetails(ctx context.Context, in *UpdateFeatureDetailsRequest, opts ...grpc.CallOption) (*UpdateFeatureDetailsResponse, error)
	UpdateFeatureVariations(ctx context.Context, in *UpdateFeatureVariationsRequest, opts ...grpc.CallOption) (*UpdateFeatureVariationsResponse, error)
	UpdateFeatureTargeting(ctx context.Context, in *UpdateFeatureTargetingRequest, opts ...grpc.CallOption) (*UpdateFeatureTargetingResponse, error)
	CloneFeature(ctx context.Context, in *CloneFeatureRequest, opts ...grpc.CallOption) (*CloneFeatureResponse, error)
	CreateSegment(ctx context.Context, in *CreateSegmentRequest, opts ...grpc.CallOption) (*CreateSegmentResponse, error)
	GetSegment(ctx context.Context, in *GetSegmentRequest, opts ...grpc.CallOption) (*GetSegmentResponse, error)
	ListSegments(ctx context.Context, in *ListSegmentsRequest, opts ...grpc.CallOption) (*ListSegmentsResponse, error)
	DeleteSegment(ctx context.Context, in *DeleteSegmentRequest, opts ...grpc.CallOption) (*DeleteSegmentResponse, error)
	UpdateSegment(ctx context.Context, in *UpdateSegmentRequest, opts ...grpc.CallOption) (*UpdateSegmentResponse, error)
	// Deprecated: Do not use.
	AddSegmentUser(ctx context.Context, in *AddSegmentUserRequest, opts ...grpc.CallOption) (*AddSegmentUserResponse, error)
	// Deprecated: Do not use.
	DeleteSegmentUser(ctx context.Context, in *DeleteSegmentUserRequest, opts ...grpc.CallOption) (*DeleteSegmentUserResponse, error)
	// Deprecated: Do not use.
	GetSegmentUser(ctx context.Context, in *GetSegmentUserRequest, opts ...grpc.CallOption) (*GetSegmentUserResponse, error)
	ListSegmentUsers(ctx context.Context, in *ListSegmentUsersRequest, opts ...grpc.CallOption) (*ListSegmentUsersResponse, error)
	BulkUploadSegmentUsers(ctx context.Context, in *BulkUploadSegmentUsersRequest, opts ...grpc.CallOption) (*BulkUploadSegmentUsersResponse, error)
	BulkDownloadSegmentUsers(ctx context.Context, in *BulkDownloadSegmentUsersRequest, opts ...grpc.CallOption) (*BulkDownloadSegmentUsersResponse, error)
	EvaluateFeatures(ctx context.Context, in *EvaluateFeaturesRequest, opts ...grpc.CallOption) (*EvaluateFeaturesResponse, error)
	DebugEvaluateFeatures(ctx context.Context, in *DebugEvaluateFeaturesRequest, opts ...grpc.CallOption) (*DebugEvaluateFeaturesResponse, error)
	ListTags(ctx context.Context, in *ListTagsRequest, opts ...grpc.CallOption) (*ListTagsResponse, error)
	CreateFlagTrigger(ctx context.Context, in *CreateFlagTriggerRequest, opts ...grpc.CallOption) (*CreateFlagTriggerResponse, error)
	UpdateFlagTrigger(ctx context.Context, in *UpdateFlagTriggerRequest, opts ...grpc.CallOption) (*UpdateFlagTriggerResponse, error)
	EnableFlagTrigger(ctx context.Context, in *EnableFlagTriggerRequest, opts ...grpc.CallOption) (*EnableFlagTriggerResponse, error)
	DisableFlagTrigger(ctx context.Context, in *DisableFlagTriggerRequest, opts ...grpc.CallOption) (*DisableFlagTriggerResponse, error)
	ResetFlagTrigger(ctx context.Context, in *ResetFlagTriggerRequest, opts ...grpc.CallOption) (*ResetFlagTriggerResponse, error)
	DeleteFlagTrigger(ctx context.Context, in *DeleteFlagTriggerRequest, opts ...grpc.CallOption) (*DeleteFlagTriggerResponse, error)
	GetFlagTrigger(ctx context.Context, in *GetFlagTriggerRequest, opts ...grpc.CallOption) (*GetFlagTriggerResponse, error)
	ListFlagTriggers(ctx context.Context, in *ListFlagTriggersRequest, opts ...grpc.CallOption) (*ListFlagTriggersResponse, error)
	GetUserAttributeKeys(ctx context.Context, in *GetUserAttributeKeysRequest, opts ...grpc.CallOption) (*GetUserAttributeKeysResponse, error)
	FlagTriggerWebhook(ctx context.Context, in *FlagTriggerWebhookRequest, opts ...grpc.CallOption) (*FlagTriggerWebhookResponse, error)
}

type featureServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewFeatureServiceClient(cc grpc.ClientConnInterface) FeatureServiceClient {
	return &featureServiceClient{cc}
}

func (c *featureServiceClient) GetFeature(ctx context.Context, in *GetFeatureRequest, opts ...grpc.CallOption) (*GetFeatureResponse, error) {
	out := new(GetFeatureResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/GetFeature", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) GetFeatures(ctx context.Context, in *GetFeaturesRequest, opts ...grpc.CallOption) (*GetFeaturesResponse, error) {
	out := new(GetFeaturesResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/GetFeatures", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) ListFeatures(ctx context.Context, in *ListFeaturesRequest, opts ...grpc.CallOption) (*ListFeaturesResponse, error) {
	out := new(ListFeaturesResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/ListFeatures", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) ListEnabledFeatures(ctx context.Context, in *ListEnabledFeaturesRequest, opts ...grpc.CallOption) (*ListEnabledFeaturesResponse, error) {
	out := new(ListEnabledFeaturesResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/ListEnabledFeatures", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) CreateFeature(ctx context.Context, in *CreateFeatureRequest, opts ...grpc.CallOption) (*CreateFeatureResponse, error) {
	out := new(CreateFeatureResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/CreateFeature", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) UpdateFeature(ctx context.Context, in *UpdateFeatureRequest, opts ...grpc.CallOption) (*UpdateFeatureResponse, error) {
	out := new(UpdateFeatureResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/UpdateFeature", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) ScheduleFlagChange(ctx context.Context, in *ScheduleFlagChangeRequest, opts ...grpc.CallOption) (*ScheduleFlagChangeResponse, error) {
	out := new(ScheduleFlagChangeResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/ScheduleFlagChange", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) UpdateScheduledFlagChange(ctx context.Context, in *UpdateScheduledFlagChangeRequest, opts ...grpc.CallOption) (*UpdateScheduledFlagChangeResponse, error) {
	out := new(UpdateScheduledFlagChangeResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/UpdateScheduledFlagChange", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) DeleteScheduledFlagChange(ctx context.Context, in *DeleteScheduledFlagChangeRequest, opts ...grpc.CallOption) (*DeleteScheduledFlagChangeResponse, error) {
	out := new(DeleteScheduledFlagChangeResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/DeleteScheduledFlagChange", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) ListScheduledFlagChanges(ctx context.Context, in *ListScheduledFlagChangesRequest, opts ...grpc.CallOption) (*ListScheduledFlagChangesResponse, error) {
	out := new(ListScheduledFlagChangesResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/ListScheduledFlagChanges", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Deprecated: Do not use.
func (c *featureServiceClient) EnableFeature(ctx context.Context, in *EnableFeatureRequest, opts ...grpc.CallOption) (*EnableFeatureResponse, error) {
	out := new(EnableFeatureResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/EnableFeature", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Deprecated: Do not use.
func (c *featureServiceClient) DisableFeature(ctx context.Context, in *DisableFeatureRequest, opts ...grpc.CallOption) (*DisableFeatureResponse, error) {
	out := new(DisableFeatureResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/DisableFeature", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Deprecated: Do not use.
func (c *featureServiceClient) ArchiveFeature(ctx context.Context, in *ArchiveFeatureRequest, opts ...grpc.CallOption) (*ArchiveFeatureResponse, error) {
	out := new(ArchiveFeatureResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/ArchiveFeature", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Deprecated: Do not use.
func (c *featureServiceClient) UnarchiveFeature(ctx context.Context, in *UnarchiveFeatureRequest, opts ...grpc.CallOption) (*UnarchiveFeatureResponse, error) {
	out := new(UnarchiveFeatureResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/UnarchiveFeature", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) DeleteFeature(ctx context.Context, in *DeleteFeatureRequest, opts ...grpc.CallOption) (*DeleteFeatureResponse, error) {
	out := new(DeleteFeatureResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/DeleteFeature", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) UpdateFeatureDetails(ctx context.Context, in *UpdateFeatureDetailsRequest, opts ...grpc.CallOption) (*UpdateFeatureDetailsResponse, error) {
	out := new(UpdateFeatureDetailsResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/UpdateFeatureDetails", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) UpdateFeatureVariations(ctx context.Context, in *UpdateFeatureVariationsRequest, opts ...grpc.CallOption) (*UpdateFeatureVariationsResponse, error) {
	out := new(UpdateFeatureVariationsResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/UpdateFeatureVariations", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) UpdateFeatureTargeting(ctx context.Context, in *UpdateFeatureTargetingRequest, opts ...grpc.CallOption) (*UpdateFeatureTargetingResponse, error) {
	out := new(UpdateFeatureTargetingResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/UpdateFeatureTargeting", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) CloneFeature(ctx context.Context, in *CloneFeatureRequest, opts ...grpc.CallOption) (*CloneFeatureResponse, error) {
	out := new(CloneFeatureResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/CloneFeature", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) CreateSegment(ctx context.Context, in *CreateSegmentRequest, opts ...grpc.CallOption) (*CreateSegmentResponse, error) {
	out := new(CreateSegmentResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/CreateSegment", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) GetSegment(ctx context.Context, in *GetSegmentRequest, opts ...grpc.CallOption) (*GetSegmentResponse, error) {
	out := new(GetSegmentResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/GetSegment", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) ListSegments(ctx context.Context, in *ListSegmentsRequest, opts ...grpc.CallOption) (*ListSegmentsResponse, error) {
	out := new(ListSegmentsResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/ListSegments", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) DeleteSegment(ctx context.Context, in *DeleteSegmentRequest, opts ...grpc.CallOption) (*DeleteSegmentResponse, error) {
	out := new(DeleteSegmentResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/DeleteSegment", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) UpdateSegment(ctx context.Context, in *UpdateSegmentRequest, opts ...grpc.CallOption) (*UpdateSegmentResponse, error) {
	out := new(UpdateSegmentResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/UpdateSegment", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Deprecated: Do not use.
func (c *featureServiceClient) AddSegmentUser(ctx context.Context, in *AddSegmentUserRequest, opts ...grpc.CallOption) (*AddSegmentUserResponse, error) {
	out := new(AddSegmentUserResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/AddSegmentUser", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Deprecated: Do not use.
func (c *featureServiceClient) DeleteSegmentUser(ctx context.Context, in *DeleteSegmentUserRequest, opts ...grpc.CallOption) (*DeleteSegmentUserResponse, error) {
	out := new(DeleteSegmentUserResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/DeleteSegmentUser", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Deprecated: Do not use.
func (c *featureServiceClient) GetSegmentUser(ctx context.Context, in *GetSegmentUserRequest, opts ...grpc.CallOption) (*GetSegmentUserResponse, error) {
	out := new(GetSegmentUserResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/GetSegmentUser", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) ListSegmentUsers(ctx context.Context, in *ListSegmentUsersRequest, opts ...grpc.CallOption) (*ListSegmentUsersResponse, error) {
	out := new(ListSegmentUsersResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/ListSegmentUsers", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) BulkUploadSegmentUsers(ctx context.Context, in *BulkUploadSegmentUsersRequest, opts ...grpc.CallOption) (*BulkUploadSegmentUsersResponse, error) {
	out := new(BulkUploadSegmentUsersResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/BulkUploadSegmentUsers", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) BulkDownloadSegmentUsers(ctx context.Context, in *BulkDownloadSegmentUsersRequest, opts ...grpc.CallOption) (*BulkDownloadSegmentUsersResponse, error) {
	out := new(BulkDownloadSegmentUsersResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/BulkDownloadSegmentUsers", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) EvaluateFeatures(ctx context.Context, in *EvaluateFeaturesRequest, opts ...grpc.CallOption) (*EvaluateFeaturesResponse, error) {
	out := new(EvaluateFeaturesResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/EvaluateFeatures", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) DebugEvaluateFeatures(ctx context.Context, in *DebugEvaluateFeaturesRequest, opts ...grpc.CallOption) (*DebugEvaluateFeaturesResponse, error) {
	out := new(DebugEvaluateFeaturesResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/DebugEvaluateFeatures", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) ListTags(ctx context.Context, in *ListTagsRequest, opts ...grpc.CallOption) (*ListTagsResponse, error) {
	out := new(ListTagsResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/ListTags", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) CreateFlagTrigger(ctx context.Context, in *CreateFlagTriggerRequest, opts ...grpc.CallOption) (*CreateFlagTriggerResponse, error) {
	out := new(CreateFlagTriggerResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/CreateFlagTrigger", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) UpdateFlagTrigger(ctx context.Context, in *UpdateFlagTriggerRequest, opts ...grpc.CallOption) (*UpdateFlagTriggerResponse, error) {
	out := new(UpdateFlagTriggerResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/UpdateFlagTrigger", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) EnableFlagTrigger(ctx context.Context, in *EnableFlagTriggerRequest, opts ...grpc.CallOption) (*EnableFlagTriggerResponse, error) {
	out := new(EnableFlagTriggerResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/EnableFlagTrigger", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) DisableFlagTrigger(ctx context.Context, in *DisableFlagTriggerRequest, opts ...grpc.CallOption) (*DisableFlagTriggerResponse, error) {
	out := new(DisableFlagTriggerResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/DisableFlagTrigger", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) ResetFlagTrigger(ctx context.Context, in *ResetFlagTriggerRequest, opts ...grpc.CallOption) (*ResetFlagTriggerResponse, error) {
	out := new(ResetFlagTriggerResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/ResetFlagTrigger", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) DeleteFlagTrigger(ctx context.Context, in *DeleteFlagTriggerRequest, opts ...grpc.CallOption) (*DeleteFlagTriggerResponse, error) {
	out := new(DeleteFlagTriggerResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/DeleteFlagTrigger", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) GetFlagTrigger(ctx context.Context, in *GetFlagTriggerRequest, opts ...grpc.CallOption) (*GetFlagTriggerResponse, error) {
	out := new(GetFlagTriggerResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/GetFlagTrigger", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) ListFlagTriggers(ctx context.Context, in *ListFlagTriggersRequest, opts ...grpc.CallOption) (*ListFlagTriggersResponse, error) {
	out := new(ListFlagTriggersResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/ListFlagTriggers", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) GetUserAttributeKeys(ctx context.Context, in *GetUserAttributeKeysRequest, opts ...grpc.CallOption) (*GetUserAttributeKeysResponse, error) {
	out := new(GetUserAttributeKeysResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/GetUserAttributeKeys", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *featureServiceClient) FlagTriggerWebhook(ctx context.Context, in *FlagTriggerWebhookRequest, opts ...grpc.CallOption) (*FlagTriggerWebhookResponse, error) {
	out := new(FlagTriggerWebhookResponse)
	err := c.cc.Invoke(ctx, "/bucketeer.feature.FeatureService/FlagTriggerWebhook", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// FeatureServiceServer is the server API for FeatureService service.
type FeatureServiceServer interface {
	GetFeature(context.Context, *GetFeatureRequest) (*GetFeatureResponse, error)
	GetFeatures(context.Context, *GetFeaturesRequest) (*GetFeaturesResponse, error)
	ListFeatures(context.Context, *ListFeaturesRequest) (*ListFeaturesResponse, error)
	ListEnabledFeatures(context.Context, *ListEnabledFeaturesRequest) (*ListEnabledFeaturesResponse, error)
	CreateFeature(context.Context, *CreateFeatureRequest) (*CreateFeatureResponse, error)
	UpdateFeature(context.Context, *UpdateFeatureRequest) (*UpdateFeatureResponse, error)
	ScheduleFlagChange(context.Context, *ScheduleFlagChangeRequest) (*ScheduleFlagChangeResponse, error)
	UpdateScheduledFlagChange(context.Context, *UpdateScheduledFlagChangeRequest) (*UpdateScheduledFlagChangeResponse, error)
	DeleteScheduledFlagChange(context.Context, *DeleteScheduledFlagChangeRequest) (*DeleteScheduledFlagChangeResponse, error)
	ListScheduledFlagChanges(context.Context, *ListScheduledFlagChangesRequest) (*ListScheduledFlagChangesResponse, error)
	// Deprecated: Do not use.
	EnableFeature(context.Context, *EnableFeatureRequest) (*EnableFeatureResponse, error)
	// Deprecated: Do not use.
	DisableFeature(context.Context, *DisableFeatureRequest) (*DisableFeatureResponse, error)
	// Deprecated: Do not use.
	ArchiveFeature(context.Context, *ArchiveFeatureRequest) (*ArchiveFeatureResponse, error)
	// Deprecated: Do not use.
	UnarchiveFeature(context.Context, *UnarchiveFeatureRequest) (*UnarchiveFeatureResponse, error)
	DeleteFeature(context.Context, *DeleteFeatureRequest) (*DeleteFeatureResponse, error)
	UpdateFeatureDetails(context.Context, *UpdateFeatureDetailsRequest) (*UpdateFeatureDetailsResponse, error)
	UpdateFeatureVariations(context.Context, *UpdateFeatureVariationsRequest) (*UpdateFeatureVariationsResponse, error)
	UpdateFeatureTargeting(context.Context, *UpdateFeatureTargetingRequest) (*UpdateFeatureTargetingResponse, error)
	CloneFeature(context.Context, *CloneFeatureRequest) (*CloneFeatureResponse, error)
	CreateSegment(context.Context, *CreateSegmentRequest) (*CreateSegmentResponse, error)
	GetSegment(context.Context, *GetSegmentRequest) (*GetSegmentResponse, error)
	ListSegments(context.Context, *ListSegmentsRequest) (*ListSegmentsResponse, error)
	DeleteSegment(context.Context, *DeleteSegmentRequest) (*DeleteSegmentResponse, error)
	UpdateSegment(context.Context, *UpdateSegmentRequest) (*UpdateSegmentResponse, error)
	// Deprecated: Do not use.
	AddSegmentUser(context.Context, *AddSegmentUserRequest) (*AddSegmentUserResponse, error)
	// Deprecated: Do not use.
	DeleteSegmentUser(context.Context, *DeleteSegmentUserRequest) (*DeleteSegmentUserResponse, error)
	// Deprecated: Do not use.
	GetSegmentUser(context.Context, *GetSegmentUserRequest) (*GetSegmentUserResponse, error)
	ListSegmentUsers(context.Context, *ListSegmentUsersRequest) (*ListSegmentUsersResponse, error)
	BulkUploadSegmentUsers(context.Context, *BulkUploadSegmentUsersRequest) (*BulkUploadSegmentUsersResponse, error)
	BulkDownloadSegmentUsers(context.Context, *BulkDownloadSegmentUsersRequest) (*BulkDownloadSegmentUsersResponse, error)
	EvaluateFeatures(context.Context, *EvaluateFeaturesRequest) (*EvaluateFeaturesResponse, error)
	DebugEvaluateFeatures(context.Context, *DebugEvaluateFeaturesRequest) (*DebugEvaluateFeaturesResponse, error)
	ListTags(context.Context, *ListTagsRequest) (*ListTagsResponse, error)
	CreateFlagTrigger(context.Context, *CreateFlagTriggerRequest) (*CreateFlagTriggerResponse, error)
	UpdateFlagTrigger(context.Context, *UpdateFlagTriggerRequest) (*UpdateFlagTriggerResponse, error)
	EnableFlagTrigger(context.Context, *EnableFlagTriggerRequest) (*EnableFlagTriggerResponse, error)
	DisableFlagTrigger(context.Context, *DisableFlagTriggerRequest) (*DisableFlagTriggerResponse, error)
	ResetFlagTrigger(context.Context, *ResetFlagTriggerRequest) (*ResetFlagTriggerResponse, error)
	DeleteFlagTrigger(context.Context, *DeleteFlagTriggerRequest) (*DeleteFlagTriggerResponse, error)
	GetFlagTrigger(context.Context, *GetFlagTriggerRequest) (*GetFlagTriggerResponse, error)
	ListFlagTriggers(context.Context, *ListFlagTriggersRequest) (*ListFlagTriggersResponse, error)
	GetUserAttributeKeys(context.Context, *GetUserAttributeKeysRequest) (*GetUserAttributeKeysResponse, error)
	FlagTriggerWebhook(context.Context, *FlagTriggerWebhookRequest) (*FlagTriggerWebhookResponse, error)
}

// UnimplementedFeatureServiceServer can be embedded to have forward compatible implementations.
type UnimplementedFeatureServiceServer struct {
}

func (*UnimplementedFeatureServiceServer) GetFeature(context.Context, *GetFeatureRequest) (*GetFeatureResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetFeature not implemented")
}
func (*UnimplementedFeatureServiceServer) GetFeatures(context.Context, *GetFeaturesRequest) (*GetFeaturesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetFeatures not implemented")
}
func (*UnimplementedFeatureServiceServer) ListFeatures(context.Context, *ListFeaturesRequest) (*ListFeaturesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListFeatures not implemented")
}
func (*UnimplementedFeatureServiceServer) ListEnabledFeatures(context.Context, *ListEnabledFeaturesRequest) (*ListEnabledFeaturesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListEnabledFeatures not implemented")
}
func (*UnimplementedFeatureServiceServer) CreateFeature(context.Context, *CreateFeatureRequest) (*CreateFeatureResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateFeature not implemented")
}
func (*UnimplementedFeatureServiceServer) UpdateFeature(context.Context, *UpdateFeatureRequest) (*UpdateFeatureResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateFeature not implemented")
}
func (*UnimplementedFeatureServiceServer) ScheduleFlagChange(context.Context, *ScheduleFlagChangeRequest) (*ScheduleFlagChangeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ScheduleFlagChange not implemented")
}
func (*UnimplementedFeatureServiceServer) UpdateScheduledFlagChange(context.Context, *UpdateScheduledFlagChangeRequest) (*UpdateScheduledFlagChangeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateScheduledFlagChange not implemented")
}
func (*UnimplementedFeatureServiceServer) DeleteScheduledFlagChange(context.Context, *DeleteScheduledFlagChangeRequest) (*DeleteScheduledFlagChangeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteScheduledFlagChange not implemented")
}
func (*UnimplementedFeatureServiceServer) ListScheduledFlagChanges(context.Context, *ListScheduledFlagChangesRequest) (*ListScheduledFlagChangesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListScheduledFlagChanges not implemented")
}
func (*UnimplementedFeatureServiceServer) EnableFeature(context.Context, *EnableFeatureRequest) (*EnableFeatureResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EnableFeature not implemented")
}
func (*UnimplementedFeatureServiceServer) DisableFeature(context.Context, *DisableFeatureRequest) (*DisableFeatureResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DisableFeature not implemented")
}
func (*UnimplementedFeatureServiceServer) ArchiveFeature(context.Context, *ArchiveFeatureRequest) (*ArchiveFeatureResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ArchiveFeature not implemented")
}
func (*UnimplementedFeatureServiceServer) UnarchiveFeature(context.Context, *UnarchiveFeatureRequest) (*UnarchiveFeatureResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UnarchiveFeature not implemented")
}
func (*UnimplementedFeatureServiceServer) DeleteFeature(context.Context, *DeleteFeatureRequest) (*DeleteFeatureResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteFeature not implemented")
}
func (*UnimplementedFeatureServiceServer) UpdateFeatureDetails(context.Context, *UpdateFeatureDetailsRequest) (*UpdateFeatureDetailsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateFeatureDetails not implemented")
}
func (*UnimplementedFeatureServiceServer) UpdateFeatureVariations(context.Context, *UpdateFeatureVariationsRequest) (*UpdateFeatureVariationsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateFeatureVariations not implemented")
}
func (*UnimplementedFeatureServiceServer) UpdateFeatureTargeting(context.Context, *UpdateFeatureTargetingRequest) (*UpdateFeatureTargetingResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateFeatureTargeting not implemented")
}
func (*UnimplementedFeatureServiceServer) CloneFeature(context.Context, *CloneFeatureRequest) (*CloneFeatureResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CloneFeature not implemented")
}
func (*UnimplementedFeatureServiceServer) CreateSegment(context.Context, *CreateSegmentRequest) (*CreateSegmentResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateSegment not implemented")
}
func (*UnimplementedFeatureServiceServer) GetSegment(context.Context, *GetSegmentRequest) (*GetSegmentResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetSegment not implemented")
}
func (*UnimplementedFeatureServiceServer) ListSegments(context.Context, *ListSegmentsRequest) (*ListSegmentsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListSegments not implemented")
}
func (*UnimplementedFeatureServiceServer) DeleteSegment(context.Context, *DeleteSegmentRequest) (*DeleteSegmentResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteSegment not implemented")
}
func (*UnimplementedFeatureServiceServer) UpdateSegment(context.Context, *UpdateSegmentRequest) (*UpdateSegmentResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateSegment not implemented")
}
func (*UnimplementedFeatureServiceServer) AddSegmentUser(context.Context, *AddSegmentUserRequest) (*AddSegmentUserResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AddSegmentUser not implemented")
}
func (*UnimplementedFeatureServiceServer) DeleteSegmentUser(context.Context, *DeleteSegmentUserRequest) (*DeleteSegmentUserResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteSegmentUser not implemented")
}
func (*UnimplementedFeatureServiceServer) GetSegmentUser(context.Context, *GetSegmentUserRequest) (*GetSegmentUserResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetSegmentUser not implemented")
}
func (*UnimplementedFeatureServiceServer) ListSegmentUsers(context.Context, *ListSegmentUsersRequest) (*ListSegmentUsersResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListSegmentUsers not implemented")
}
func (*UnimplementedFeatureServiceServer) BulkUploadSegmentUsers(context.Context, *BulkUploadSegmentUsersRequest) (*BulkUploadSegmentUsersResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method BulkUploadSegmentUsers not implemented")
}
func (*UnimplementedFeatureServiceServer) BulkDownloadSegmentUsers(context.Context, *BulkDownloadSegmentUsersRequest) (*BulkDownloadSegmentUsersResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method BulkDownloadSegmentUsers not implemented")
}
func (*UnimplementedFeatureServiceServer) EvaluateFeatures(context.Context, *EvaluateFeaturesRequest) (*EvaluateFeaturesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EvaluateFeatures not implemented")
}
func (*UnimplementedFeatureServiceServer) DebugEvaluateFeatures(context.Context, *DebugEvaluateFeaturesRequest) (*DebugEvaluateFeaturesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DebugEvaluateFeatures not implemented")
}
func (*UnimplementedFeatureServiceServer) ListTags(context.Context, *ListTagsRequest) (*ListTagsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListTags not implemented")
}
func (*UnimplementedFeatureServiceServer) CreateFlagTrigger(context.Context, *CreateFlagTriggerRequest) (*CreateFlagTriggerResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateFlagTrigger not implemented")
}
func (*UnimplementedFeatureServiceServer) UpdateFlagTrigger(context.Context, *UpdateFlagTriggerRequest) (*UpdateFlagTriggerResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateFlagTrigger not implemented")
}
func (*UnimplementedFeatureServiceServer) EnableFlagTrigger(context.Context, *EnableFlagTriggerRequest) (*EnableFlagTriggerResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EnableFlagTrigger not implemented")
}
func (*UnimplementedFeatureServiceServer) DisableFlagTrigger(context.Context, *DisableFlagTriggerRequest) (*DisableFlagTriggerResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DisableFlagTrigger not implemented")
}
func (*UnimplementedFeatureServiceServer) ResetFlagTrigger(context.Context, *ResetFlagTriggerRequest) (*ResetFlagTriggerResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ResetFlagTrigger not implemented")
}
func (*UnimplementedFeatureServiceServer) DeleteFlagTrigger(context.Context, *DeleteFlagTriggerRequest) (*DeleteFlagTriggerResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteFlagTrigger not implemented")
}
func (*UnimplementedFeatureServiceServer) GetFlagTrigger(context.Context, *GetFlagTriggerRequest) (*GetFlagTriggerResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetFlagTrigger not implemented")
}
func (*UnimplementedFeatureServiceServer) ListFlagTriggers(context.Context, *ListFlagTriggersRequest) (*ListFlagTriggersResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListFlagTriggers not implemented")
}
func (*UnimplementedFeatureServiceServer) GetUserAttributeKeys(context.Context, *GetUserAttributeKeysRequest) (*GetUserAttributeKeysResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetUserAttributeKeys not implemented")
}
func (*UnimplementedFeatureServiceServer) FlagTriggerWebhook(context.Context, *FlagTriggerWebhookRequest) (*FlagTriggerWebhookResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method FlagTriggerWebhook not implemented")
}

func RegisterFeatureServiceServer(s *grpc.Server, srv FeatureServiceServer) {
	s.RegisterService(&_FeatureService_serviceDesc, srv)
}

func _FeatureService_GetFeature_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetFeatureRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).GetFeature(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/GetFeature",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).GetFeature(ctx, req.(*GetFeatureRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_GetFeatures_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetFeaturesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).GetFeatures(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/GetFeatures",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).GetFeatures(ctx, req.(*GetFeaturesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_ListFeatures_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListFeaturesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).ListFeatures(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/ListFeatures",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).ListFeatures(ctx, req.(*ListFeaturesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_ListEnabledFeatures_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListEnabledFeaturesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).ListEnabledFeatures(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/ListEnabledFeatures",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).ListEnabledFeatures(ctx, req.(*ListEnabledFeaturesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_CreateFeature_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateFeatureRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).CreateFeature(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/CreateFeature",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).CreateFeature(ctx, req.(*CreateFeatureRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_UpdateFeature_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateFeatureRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).UpdateFeature(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/UpdateFeature",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).UpdateFeature(ctx, req.(*UpdateFeatureRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_ScheduleFlagChange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ScheduleFlagChangeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).ScheduleFlagChange(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/ScheduleFlagChange",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).ScheduleFlagChange(ctx, req.(*ScheduleFlagChangeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_UpdateScheduledFlagChange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateScheduledFlagChangeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).UpdateScheduledFlagChange(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/UpdateScheduledFlagChange",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).UpdateScheduledFlagChange(ctx, req.(*UpdateScheduledFlagChangeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_DeleteScheduledFlagChange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteScheduledFlagChangeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).DeleteScheduledFlagChange(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/DeleteScheduledFlagChange",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).DeleteScheduledFlagChange(ctx, req.(*DeleteScheduledFlagChangeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_ListScheduledFlagChanges_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListScheduledFlagChangesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).ListScheduledFlagChanges(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/ListScheduledFlagChanges",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).ListScheduledFlagChanges(ctx, req.(*ListScheduledFlagChangesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_EnableFeature_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EnableFeatureRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).EnableFeature(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/EnableFeature",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).EnableFeature(ctx, req.(*EnableFeatureRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_DisableFeature_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DisableFeatureRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).DisableFeature(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/DisableFeature",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).DisableFeature(ctx, req.(*DisableFeatureRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_ArchiveFeature_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ArchiveFeatureRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).ArchiveFeature(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/ArchiveFeature",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).ArchiveFeature(ctx, req.(*ArchiveFeatureRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_UnarchiveFeature_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UnarchiveFeatureRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).UnarchiveFeature(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/UnarchiveFeature",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).UnarchiveFeature(ctx, req.(*UnarchiveFeatureRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_DeleteFeature_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteFeatureRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).DeleteFeature(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/DeleteFeature",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).DeleteFeature(ctx, req.(*DeleteFeatureRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_UpdateFeatureDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateFeatureDetailsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).UpdateFeatureDetails(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/UpdateFeatureDetails",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).UpdateFeatureDetails(ctx, req.(*UpdateFeatureDetailsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_UpdateFeatureVariations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateFeatureVariationsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).UpdateFeatureVariations(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/UpdateFeatureVariations",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).UpdateFeatureVariations(ctx, req.(*UpdateFeatureVariationsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_UpdateFeatureTargeting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateFeatureTargetingRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).UpdateFeatureTargeting(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/UpdateFeatureTargeting",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).UpdateFeatureTargeting(ctx, req.(*UpdateFeatureTargetingRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_CloneFeature_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CloneFeatureRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).CloneFeature(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/CloneFeature",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).CloneFeature(ctx, req.(*CloneFeatureRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_CreateSegment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateSegmentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).CreateSegment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/CreateSegment",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).CreateSegment(ctx, req.(*CreateSegmentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_GetSegment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetSegmentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).GetSegment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/GetSegment",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).GetSegment(ctx, req.(*GetSegmentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_ListSegments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListSegmentsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).ListSegments(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/ListSegments",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).ListSegments(ctx, req.(*ListSegmentsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_DeleteSegment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteSegmentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).DeleteSegment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/DeleteSegment",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).DeleteSegment(ctx, req.(*DeleteSegmentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_UpdateSegment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateSegmentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).UpdateSegment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/UpdateSegment",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).UpdateSegment(ctx, req.(*UpdateSegmentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_AddSegmentUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddSegmentUserRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).AddSegmentUser(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/AddSegmentUser",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).AddSegmentUser(ctx, req.(*AddSegmentUserRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_DeleteSegmentUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteSegmentUserRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).DeleteSegmentUser(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/DeleteSegmentUser",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).DeleteSegmentUser(ctx, req.(*DeleteSegmentUserRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_GetSegmentUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetSegmentUserRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).GetSegmentUser(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/GetSegmentUser",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).GetSegmentUser(ctx, req.(*GetSegmentUserRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_ListSegmentUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListSegmentUsersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).ListSegmentUsers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/ListSegmentUsers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).ListSegmentUsers(ctx, req.(*ListSegmentUsersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_BulkUploadSegmentUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BulkUploadSegmentUsersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).BulkUploadSegmentUsers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/BulkUploadSegmentUsers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).BulkUploadSegmentUsers(ctx, req.(*BulkUploadSegmentUsersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_BulkDownloadSegmentUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BulkDownloadSegmentUsersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).BulkDownloadSegmentUsers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/BulkDownloadSegmentUsers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).BulkDownloadSegmentUsers(ctx, req.(*BulkDownloadSegmentUsersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_EvaluateFeatures_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EvaluateFeaturesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).EvaluateFeatures(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/EvaluateFeatures",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).EvaluateFeatures(ctx, req.(*EvaluateFeaturesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_DebugEvaluateFeatures_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DebugEvaluateFeaturesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).DebugEvaluateFeatures(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/DebugEvaluateFeatures",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).DebugEvaluateFeatures(ctx, req.(*DebugEvaluateFeaturesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_ListTags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListTagsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).ListTags(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/ListTags",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).ListTags(ctx, req.(*ListTagsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_CreateFlagTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateFlagTriggerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).CreateFlagTrigger(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/CreateFlagTrigger",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).CreateFlagTrigger(ctx, req.(*CreateFlagTriggerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_UpdateFlagTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateFlagTriggerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).UpdateFlagTrigger(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/UpdateFlagTrigger",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).UpdateFlagTrigger(ctx, req.(*UpdateFlagTriggerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_EnableFlagTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EnableFlagTriggerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).EnableFlagTrigger(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/EnableFlagTrigger",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).EnableFlagTrigger(ctx, req.(*EnableFlagTriggerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_DisableFlagTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DisableFlagTriggerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).DisableFlagTrigger(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/DisableFlagTrigger",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).DisableFlagTrigger(ctx, req.(*DisableFlagTriggerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_ResetFlagTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ResetFlagTriggerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).ResetFlagTrigger(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/ResetFlagTrigger",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).ResetFlagTrigger(ctx, req.(*ResetFlagTriggerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_DeleteFlagTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteFlagTriggerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).DeleteFlagTrigger(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/DeleteFlagTrigger",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).DeleteFlagTrigger(ctx, req.(*DeleteFlagTriggerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_GetFlagTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetFlagTriggerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).GetFlagTrigger(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/GetFlagTrigger",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).GetFlagTrigger(ctx, req.(*GetFlagTriggerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_ListFlagTriggers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListFlagTriggersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).ListFlagTriggers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/ListFlagTriggers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).ListFlagTriggers(ctx, req.(*ListFlagTriggersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_GetUserAttributeKeys_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetUserAttributeKeysRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).GetUserAttributeKeys(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/GetUserAttributeKeys",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).GetUserAttributeKeys(ctx, req.(*GetUserAttributeKeysRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FeatureService_FlagTriggerWebhook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(FlagTriggerWebhookRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FeatureServiceServer).FlagTriggerWebhook(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/bucketeer.feature.FeatureService/FlagTriggerWebhook",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FeatureServiceServer).FlagTriggerWebhook(ctx, req.(*FlagTriggerWebhookRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _FeatureService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "bucketeer.feature.FeatureService",
	HandlerType: (*FeatureServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetFeature",
			Handler:    _FeatureService_GetFeature_Handler,
		},
		{
			MethodName: "GetFeatures",
			Handler:    _FeatureService_GetFeatures_Handler,
		},
		{
			MethodName: "ListFeatures",
			Handler:    _FeatureService_ListFeatures_Handler,
		},
		{
			MethodName: "ListEnabledFeatures",
			Handler:    _FeatureService_ListEnabledFeatures_Handler,
		},
		{
			MethodName: "CreateFeature",
			Handler:    _FeatureService_CreateFeature_Handler,
		},
		{
			MethodName: "UpdateFeature",
			Handler:    _FeatureService_UpdateFeature_Handler,
		},
		{
			MethodName: "ScheduleFlagChange",
			Handler:    _FeatureService_ScheduleFlagChange_Handler,
		},
		{
			MethodName: "UpdateScheduledFlagChange",
			Handler:    _FeatureService_UpdateScheduledFlagChange_Handler,
		},
		{
			MethodName: "DeleteScheduledFlagChange",
			Handler:    _FeatureService_DeleteScheduledFlagChange_Handler,
		},
		{
			MethodName: "ListScheduledFlagChanges",
			Handler:    _FeatureService_ListScheduledFlagChanges_Handler,
		},
		{
			MethodName: "EnableFeature",
			Handler:    _FeatureService_EnableFeature_Handler,
		},
		{
			MethodName: "DisableFeature",
			Handler:    _FeatureService_DisableFeature_Handler,
		},
		{
			MethodName: "ArchiveFeature",
			Handler:    _FeatureService_ArchiveFeature_Handler,
		},
		{
			MethodName: "UnarchiveFeature",
			Handler:    _FeatureService_UnarchiveFeature_Handler,
		},
		{
			MethodName: "DeleteFeature",
			Handler:    _FeatureService_DeleteFeature_Handler,
		},
		{
			MethodName: "UpdateFeatureDetails",
			Handler:    _FeatureService_UpdateFeatureDetails_Handler,
		},
		{
			MethodName: "UpdateFeatureVariations",
			Handler:    _FeatureService_UpdateFeatureVariations_Handler,
		},
		{
			MethodName: "UpdateFeatureTargeting",
			Handler:    _FeatureService_UpdateFeatureTargeting_Handler,
		},
		{
			MethodName: "CloneFeature",
			Handler:    _FeatureService_CloneFeature_Handler,
		},
		{
			MethodName: "CreateSegment",
			Handler:    _FeatureService_CreateSegment_Handler,
		},
		{
			MethodName: "GetSegment",
			Handler:    _FeatureService_GetSegment_Handler,
		},
		{
			MethodName: "ListSegments",
			Handler:    _FeatureService_ListSegments_Handler,
		},
		{
			MethodName: "DeleteSegment",
			Handler:    _FeatureService_DeleteSegment_Handler,
		},
		{
			MethodName: "UpdateSegment",
			Handler:    _FeatureService_UpdateSegment_Handler,
		},
		{
			MethodName: "AddSegmentUser",
			Handler:    _FeatureService_AddSegmentUser_Handler,
		},
		{
			MethodName: "DeleteSegmentUser",
			Handler:    _FeatureService_DeleteSegmentUser_Handler,
		},
		{
			MethodName: "GetSegmentUser",
			Handler:    _FeatureService_GetSegmentUser_Handler,
		},
		{
			MethodName: "ListSegmentUsers",
			Handler:    _FeatureService_ListSegmentUsers_Handler,
		},
		{
			MethodName: "BulkUploadSegmentUsers",
			Handler:    _FeatureService_BulkUploadSegmentUsers_Handler,
		},
		{
			MethodName: "BulkDownloadSegmentUsers",
			Handler:    _FeatureService_BulkDownloadSegmentUsers_Handler,
		},
		{
			MethodName: "EvaluateFeatures",
			Handler:    _FeatureService_EvaluateFeatures_Handler,
		},
		{
			MethodName: "DebugEvaluateFeatures",
			Handler:    _FeatureService_DebugEvaluateFeatures_Handler,
		},
		{
			MethodName: "ListTags",
			Handler:    _FeatureService_ListTags_Handler,
		},
		{
			MethodName: "CreateFlagTrigger",
			Handler:    _FeatureService_CreateFlagTrigger_Handler,
		},
		{
			MethodName: "UpdateFlagTrigger",
			Handler:    _FeatureService_UpdateFlagTrigger_Handler,
		},
		{
			MethodName: "EnableFlagTrigger",
			Handler:    _FeatureService_EnableFlagTrigger_Handler,
		},
		{
			MethodName: "DisableFlagTrigger",
			Handler:    _FeatureService_DisableFlagTrigger_Handler,
		},
		{
			MethodName: "ResetFlagTrigger",
			Handler:    _FeatureService_ResetFlagTrigger_Handler,
		},
		{
			MethodName: "DeleteFlagTrigger",
			Handler:    _FeatureService_DeleteFlagTrigger_Handler,
		},
		{
			MethodName: "GetFlagTrigger",
			Handler:    _FeatureService_GetFlagTrigger_Handler,
		},
		{
			MethodName: "ListFlagTriggers",
			Handler:    _FeatureService_ListFlagTriggers_Handler,
		},
		{
			MethodName: "GetUserAttributeKeys",
			Handler:    _FeatureService_GetUserAttributeKeys_Handler,
		},
		{
			MethodName: "FlagTriggerWebhook",
			Handler:    _FeatureService_FlagTriggerWebhook_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "proto/feature/service.proto",
}
