// Code generated by protoc-gen-go. DO NOT EDIT.
// source: feapi/feapi.proto

/*
Package feapi is a generated protocol buffer package.

It is generated from these files:
	feapi/feapi.proto

It has these top-level messages:
	BEReadyRequest
	BEReadyResponse
	SetClientAPIServerPortRequest
	SetClientAPIServerPortResponse
	AllBoardsRequest
	AllBoardsResponse
	ThreadAndPostsRequest
	ThreadAndPostsResponse
	BoardAndThreadsRequest
	BoardAndThreadsResponse
	BoardSignalRequest
	BoardSignalResponse
	UserAndGraphRequest
	UserAndGraphResponse
	Event
	ContentEventPayload
	ContentEventResponse
	SignalEventPayload
	SignalEventResponse
	UncompiledEntityByKeyRequest
	UncompiledEntityByKeyResponse
	InflightsPruneRequest
	InflightsPruneResponse
	BackendAmbientStatusPayload
	BackendAmbientStatusResponse
	AmbientStatusRequest
	AmbientStatusResponse
	HomeViewRequest
	HomeViewResponse
	PopularViewRequest
	PopularViewResponse
	NewViewRequest
	NewViewResponse
	NotificationsRequest
	NotificationsResponse
	NotificationsSignalPayload
	NotificationsSignalResponse
	OnboardCompleteRequest
	OnboardCompleteResponse
	SendAddressPayload
	SendAddressResponse
	FEConfigChangesPayload
	FEConfigChangesResponse
	BoardReportsRequest
	BoardReportsResponse
	BoardModActionsRequest
	BoardModActionsResponse
	SendMintedUsernamesPayload
	SendMintedUsernamesResponse
	ClientVersionPayload
	ClientVersionResponse
	SearchRequestPayload
	SearchRequestResponse
*/
package feapi

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import feobjects "aether-core/aether/protos/feobjects"
import mimapi "aether-core/aether/protos/mimapi"

import (
	context "golang.org/x/net/context"
	grpc "google.golang.org/grpc"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package

type EventType int32

const (
	EventType_UNKNOWN_EVENT_TYPE EventType = 0
	EventType_CREATE             EventType = 1
	EventType_UPDATE             EventType = 2
)

var EventType_name = map[int32]string{
	0: "UNKNOWN_EVENT_TYPE",
	1: "CREATE",
	2: "UPDATE",
}
var EventType_value = map[string]int32{
	"UNKNOWN_EVENT_TYPE": 0,
	"CREATE":             1,
	"UPDATE":             2,
}

func (x EventType) String() string {
	return proto.EnumName(EventType_name, int32(x))
}
func (EventType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }

type SignalTargetType int32

const (
	SignalTargetType_UNKNOWN_SIGNAL_TARGET_TYPE SignalTargetType = 0
	SignalTargetType_CONTENT                    SignalTargetType = 1
	SignalTargetType_USER                       SignalTargetType = 2
)

var SignalTargetType_name = map[int32]string{
	0: "UNKNOWN_SIGNAL_TARGET_TYPE",
	1: "CONTENT",
	2: "USER",
}
var SignalTargetType_value = map[string]int32{
	"UNKNOWN_SIGNAL_TARGET_TYPE": 0,
	"CONTENT":                    1,
	"USER":                       2,
}

func (x SignalTargetType) String() string {
	return proto.EnumName(SignalTargetType_name, int32(x))
}
func (SignalTargetType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }

type SignalTypeClass int32

const (
	SignalTypeClass_UNKNOWN_SIGNAL_TYPECLASS SignalTypeClass = 0
	SignalTypeClass_ADDS_TO_DISCUSSION       SignalTypeClass = 1
	SignalTypeClass_FOLLOWS_GUIDELINES       SignalTypeClass = 2
	SignalTypeClass_MOD_ACTIONS              SignalTypeClass = 3
	SignalTypeClass_PUBLIC_TRUST             SignalTypeClass = 4
	SignalTypeClass_NAMING                   SignalTypeClass = 5
	SignalTypeClass_F451                     SignalTypeClass = 6
	SignalTypeClass_PUBLIC_ELECT             SignalTypeClass = 7
)

var SignalTypeClass_name = map[int32]string{
	0: "UNKNOWN_SIGNAL_TYPECLASS",
	1: "ADDS_TO_DISCUSSION",
	2: "FOLLOWS_GUIDELINES",
	3: "MOD_ACTIONS",
	4: "PUBLIC_TRUST",
	5: "NAMING",
	6: "F451",
	7: "PUBLIC_ELECT",
}
var SignalTypeClass_value = map[string]int32{
	"UNKNOWN_SIGNAL_TYPECLASS": 0,
	"ADDS_TO_DISCUSSION":       1,
	"FOLLOWS_GUIDELINES":       2,
	"MOD_ACTIONS":              3,
	"PUBLIC_TRUST":             4,
	"NAMING":                   5,
	"F451":                     6,
	"PUBLIC_ELECT":             7,
}

func (x SignalTypeClass) String() string {
	return proto.EnumName(SignalTypeClass_name, int32(x))
}
func (SignalTypeClass) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }

type SignalType int32

const (
	SignalType_UNKNOWN_SIGNAL_TYPE SignalType = 0
	// ATD: Aggregate
	SignalType_UPVOTE   SignalType = 1
	SignalType_DOWNVOTE SignalType = 2
	// FG
	SignalType_REPORT_TO_MOD SignalType = 3
	// MA
	SignalType_MODBLOCK   SignalType = 4
	SignalType_MODAPPROVE SignalType = 5
	SignalType_MODIGNORE  SignalType = 6
	// PT: Aggregate
	SignalType_FOLLOW SignalType = 7
	SignalType_BLOCK  SignalType = 8
	// Naming
	SignalType_NAME_ASSIGN SignalType = 9
	// F451
	SignalType_CENSOR_ASSIGN SignalType = 10
	// PE: Aggregate
	SignalType_ELECT      SignalType = 11
	SignalType_DISQUALIFY SignalType = 12
	// General
	SignalType_RETRACT SignalType = 13
)

var SignalType_name = map[int32]string{
	0:  "UNKNOWN_SIGNAL_TYPE",
	1:  "UPVOTE",
	2:  "DOWNVOTE",
	3:  "REPORT_TO_MOD",
	4:  "MODBLOCK",
	5:  "MODAPPROVE",
	6:  "MODIGNORE",
	7:  "FOLLOW",
	8:  "BLOCK",
	9:  "NAME_ASSIGN",
	10: "CENSOR_ASSIGN",
	11: "ELECT",
	12: "DISQUALIFY",
	13: "RETRACT",
}
var SignalType_value = map[string]int32{
	"UNKNOWN_SIGNAL_TYPE": 0,
	"UPVOTE":              1,
	"DOWNVOTE":            2,
	"REPORT_TO_MOD":       3,
	"MODBLOCK":            4,
	"MODAPPROVE":          5,
	"MODIGNORE":           6,
	"FOLLOW":              7,
	"BLOCK":               8,
	"NAME_ASSIGN":         9,
	"CENSOR_ASSIGN":       10,
	"ELECT":               11,
	"DISQUALIFY":          12,
	"RETRACT":             13,
}

func (x SignalType) String() string {
	return proto.EnumName(SignalType_name, int32(x))
}
func (SignalType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }

type UncompiledEntityType int32

const (
	UncompiledEntityType_UNKNOWN_ENTITY_TYPE UncompiledEntityType = 0
	UncompiledEntityType_BOARD               UncompiledEntityType = 1
	UncompiledEntityType_THREAD              UncompiledEntityType = 2
	UncompiledEntityType_POST                UncompiledEntityType = 3
	UncompiledEntityType_VOTE                UncompiledEntityType = 4
	UncompiledEntityType_KEY                 UncompiledEntityType = 5
	UncompiledEntityType_TRUSTSTATE          UncompiledEntityType = 6
)

var UncompiledEntityType_name = map[int32]string{
	0: "UNKNOWN_ENTITY_TYPE",
	1: "BOARD",
	2: "THREAD",
	3: "POST",
	4: "VOTE",
	5: "KEY",
	6: "TRUSTSTATE",
}
var UncompiledEntityType_value = map[string]int32{
	"UNKNOWN_ENTITY_TYPE": 0,
	"BOARD":               1,
	"THREAD":              2,
	"POST":                3,
	"VOTE":                4,
	"KEY":                 5,
	"TRUSTSTATE":          6,
}

func (x UncompiledEntityType) String() string {
	return proto.EnumName(UncompiledEntityType_name, int32(x))
}
func (UncompiledEntityType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }

type BEReadyRequest struct {
	Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	Port    int32  `protobuf:"varint,2,opt,name=port" json:"port,omitempty"`
}

func (m *BEReadyRequest) Reset()                    { *m = BEReadyRequest{} }
func (m *BEReadyRequest) String() string            { return proto.CompactTextString(m) }
func (*BEReadyRequest) ProtoMessage()               {}
func (*BEReadyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }

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

func (m *BEReadyRequest) GetPort() int32 {
	if m != nil {
		return m.Port
	}
	return 0
}

type BEReadyResponse struct {
}

func (m *BEReadyResponse) Reset()                    { *m = BEReadyResponse{} }
func (m *BEReadyResponse) String() string            { return proto.CompactTextString(m) }
func (*BEReadyResponse) ProtoMessage()               {}
func (*BEReadyResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }

type SetClientAPIServerPortRequest struct {
	Port int32 `protobuf:"varint,1,opt,name=Port" json:"Port,omitempty"`
}

func (m *SetClientAPIServerPortRequest) Reset()                    { *m = SetClientAPIServerPortRequest{} }
func (m *SetClientAPIServerPortRequest) String() string            { return proto.CompactTextString(m) }
func (*SetClientAPIServerPortRequest) ProtoMessage()               {}
func (*SetClientAPIServerPortRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }

func (m *SetClientAPIServerPortRequest) GetPort() int32 {
	if m != nil {
		return m.Port
	}
	return 0
}

type SetClientAPIServerPortResponse struct {
}

func (m *SetClientAPIServerPortResponse) Reset()                    { *m = SetClientAPIServerPortResponse{} }
func (m *SetClientAPIServerPortResponse) String() string            { return proto.CompactTextString(m) }
func (*SetClientAPIServerPortResponse) ProtoMessage()               {}
func (*SetClientAPIServerPortResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }

type AllBoardsRequest struct {
}

func (m *AllBoardsRequest) Reset()                    { *m = AllBoardsRequest{} }
func (m *AllBoardsRequest) String() string            { return proto.CompactTextString(m) }
func (*AllBoardsRequest) ProtoMessage()               {}
func (*AllBoardsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }

type AllBoardsResponse struct {
	AllBoards []*feobjects.CompiledBoardEntity `protobuf:"bytes,1,rep,name=AllBoards" json:"AllBoards,omitempty"`
}

func (m *AllBoardsResponse) Reset()                    { *m = AllBoardsResponse{} }
func (m *AllBoardsResponse) String() string            { return proto.CompactTextString(m) }
func (*AllBoardsResponse) ProtoMessage()               {}
func (*AllBoardsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }

func (m *AllBoardsResponse) GetAllBoards() []*feobjects.CompiledBoardEntity {
	if m != nil {
		return m.AllBoards
	}
	return nil
}

type ThreadAndPostsRequest struct {
	BoardFingerprint  string `protobuf:"bytes,1,opt,name=BoardFingerprint" json:"BoardFingerprint,omitempty"`
	ThreadFingerprint string `protobuf:"bytes,2,opt,name=ThreadFingerprint" json:"ThreadFingerprint,omitempty"`
}

func (m *ThreadAndPostsRequest) Reset()                    { *m = ThreadAndPostsRequest{} }
func (m *ThreadAndPostsRequest) String() string            { return proto.CompactTextString(m) }
func (*ThreadAndPostsRequest) ProtoMessage()               {}
func (*ThreadAndPostsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }

func (m *ThreadAndPostsRequest) GetBoardFingerprint() string {
	if m != nil {
		return m.BoardFingerprint
	}
	return ""
}

func (m *ThreadAndPostsRequest) GetThreadFingerprint() string {
	if m != nil {
		return m.ThreadFingerprint
	}
	return ""
}

type ThreadAndPostsResponse struct {
	Board  *feobjects.CompiledBoardEntity  `protobuf:"bytes,1,opt,name=Board" json:"Board,omitempty"`
	Thread *feobjects.CompiledThreadEntity `protobuf:"bytes,2,opt,name=Thread" json:"Thread,omitempty"`
	Posts  []*feobjects.CompiledPostEntity `protobuf:"bytes,3,rep,name=Posts" json:"Posts,omitempty"`
}

func (m *ThreadAndPostsResponse) Reset()                    { *m = ThreadAndPostsResponse{} }
func (m *ThreadAndPostsResponse) String() string            { return proto.CompactTextString(m) }
func (*ThreadAndPostsResponse) ProtoMessage()               {}
func (*ThreadAndPostsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }

func (m *ThreadAndPostsResponse) GetBoard() *feobjects.CompiledBoardEntity {
	if m != nil {
		return m.Board
	}
	return nil
}

func (m *ThreadAndPostsResponse) GetThread() *feobjects.CompiledThreadEntity {
	if m != nil {
		return m.Thread
	}
	return nil
}

func (m *ThreadAndPostsResponse) GetPosts() []*feobjects.CompiledPostEntity {
	if m != nil {
		return m.Posts
	}
	return nil
}

type BoardAndThreadsRequest struct {
	BoardFingerprint string `protobuf:"bytes,1,opt,name=BoardFingerprint" json:"BoardFingerprint,omitempty"`
	SortThreadsByNew bool   `protobuf:"varint,2,opt,name=SortThreadsByNew" json:"SortThreadsByNew,omitempty"`
}

func (m *BoardAndThreadsRequest) Reset()                    { *m = BoardAndThreadsRequest{} }
func (m *BoardAndThreadsRequest) String() string            { return proto.CompactTextString(m) }
func (*BoardAndThreadsRequest) ProtoMessage()               {}
func (*BoardAndThreadsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }

func (m *BoardAndThreadsRequest) GetBoardFingerprint() string {
	if m != nil {
		return m.BoardFingerprint
	}
	return ""
}

func (m *BoardAndThreadsRequest) GetSortThreadsByNew() bool {
	if m != nil {
		return m.SortThreadsByNew
	}
	return false
}

type BoardAndThreadsResponse struct {
	Board   *feobjects.CompiledBoardEntity    `protobuf:"bytes,1,opt,name=Board" json:"Board,omitempty"`
	Threads []*feobjects.CompiledThreadEntity `protobuf:"bytes,2,rep,name=Threads" json:"Threads,omitempty"`
}

func (m *BoardAndThreadsResponse) Reset()                    { *m = BoardAndThreadsResponse{} }
func (m *BoardAndThreadsResponse) String() string            { return proto.CompactTextString(m) }
func (*BoardAndThreadsResponse) ProtoMessage()               {}
func (*BoardAndThreadsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }

func (m *BoardAndThreadsResponse) GetBoard() *feobjects.CompiledBoardEntity {
	if m != nil {
		return m.Board
	}
	return nil
}

func (m *BoardAndThreadsResponse) GetThreads() []*feobjects.CompiledThreadEntity {
	if m != nil {
		return m.Threads
	}
	return nil
}

type BoardSignalRequest struct {
	Fingerprint  string `protobuf:"bytes,1,opt,name=Fingerprint" json:"Fingerprint,omitempty"`
	Subscribed   bool   `protobuf:"varint,2,opt,name=Subscribed" json:"Subscribed,omitempty"`
	Notify       bool   `protobuf:"varint,3,opt,name=Notify" json:"Notify,omitempty"`
	LastSeen     int64  `protobuf:"varint,4,opt,name=LastSeen" json:"LastSeen,omitempty"`
	LastSeenOnly bool   `protobuf:"varint,5,opt,name=LastSeenOnly" json:"LastSeenOnly,omitempty"`
}

func (m *BoardSignalRequest) Reset()                    { *m = BoardSignalRequest{} }
func (m *BoardSignalRequest) String() string            { return proto.CompactTextString(m) }
func (*BoardSignalRequest) ProtoMessage()               {}
func (*BoardSignalRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }

func (m *BoardSignalRequest) GetFingerprint() string {
	if m != nil {
		return m.Fingerprint
	}
	return ""
}

func (m *BoardSignalRequest) GetSubscribed() bool {
	if m != nil {
		return m.Subscribed
	}
	return false
}

func (m *BoardSignalRequest) GetNotify() bool {
	if m != nil {
		return m.Notify
	}
	return false
}

func (m *BoardSignalRequest) GetLastSeen() int64 {
	if m != nil {
		return m.LastSeen
	}
	return 0
}

func (m *BoardSignalRequest) GetLastSeenOnly() bool {
	if m != nil {
		return m.LastSeenOnly
	}
	return false
}

type BoardSignalResponse struct {
	Committed bool `protobuf:"varint,1,opt,name=Committed" json:"Committed,omitempty"`
}

func (m *BoardSignalResponse) Reset()                    { *m = BoardSignalResponse{} }
func (m *BoardSignalResponse) String() string            { return proto.CompactTextString(m) }
func (*BoardSignalResponse) ProtoMessage()               {}
func (*BoardSignalResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }

func (m *BoardSignalResponse) GetCommitted() bool {
	if m != nil {
		return m.Committed
	}
	return false
}

type UserAndGraphRequest struct {
	Fingerprint          string `protobuf:"bytes,1,opt,name=Fingerprint" json:"Fingerprint,omitempty"`
	UserEntityRequested  bool   `protobuf:"varint,2,opt,name=UserEntityRequested" json:"UserEntityRequested,omitempty"`
	UserBoardsRequested  bool   `protobuf:"varint,6,opt,name=UserBoardsRequested" json:"UserBoardsRequested,omitempty"`
	UserThreadsRequested bool   `protobuf:"varint,4,opt,name=UserThreadsRequested" json:"UserThreadsRequested,omitempty"`
	UserPostsRequested   bool   `protobuf:"varint,5,opt,name=UserPostsRequested" json:"UserPostsRequested,omitempty"`
}

func (m *UserAndGraphRequest) Reset()                    { *m = UserAndGraphRequest{} }
func (m *UserAndGraphRequest) String() string            { return proto.CompactTextString(m) }
func (*UserAndGraphRequest) ProtoMessage()               {}
func (*UserAndGraphRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }

func (m *UserAndGraphRequest) GetFingerprint() string {
	if m != nil {
		return m.Fingerprint
	}
	return ""
}

func (m *UserAndGraphRequest) GetUserEntityRequested() bool {
	if m != nil {
		return m.UserEntityRequested
	}
	return false
}

func (m *UserAndGraphRequest) GetUserBoardsRequested() bool {
	if m != nil {
		return m.UserBoardsRequested
	}
	return false
}

func (m *UserAndGraphRequest) GetUserThreadsRequested() bool {
	if m != nil {
		return m.UserThreadsRequested
	}
	return false
}

func (m *UserAndGraphRequest) GetUserPostsRequested() bool {
	if m != nil {
		return m.UserPostsRequested
	}
	return false
}

type UserAndGraphResponse struct {
	User                 *feobjects.CompiledUserEntity     `protobuf:"bytes,1,opt,name=User" json:"User,omitempty"`
	Boards               []*feobjects.CompiledBoardEntity  `protobuf:"bytes,2,rep,name=Boards" json:"Boards,omitempty"`
	Threads              []*feobjects.CompiledThreadEntity `protobuf:"bytes,3,rep,name=Threads" json:"Threads,omitempty"`
	Posts                []*feobjects.CompiledPostEntity   `protobuf:"bytes,4,rep,name=Posts" json:"Posts,omitempty"`
	UserEntityRequested  bool                              `protobuf:"varint,5,opt,name=UserEntityRequested" json:"UserEntityRequested,omitempty"`
	UserBoardsRequested  bool                              `protobuf:"varint,6,opt,name=UserBoardsRequested" json:"UserBoardsRequested,omitempty"`
	UserThreadsRequested bool                              `protobuf:"varint,7,opt,name=UserThreadsRequested" json:"UserThreadsRequested,omitempty"`
	UserPostsRequested   bool                              `protobuf:"varint,8,opt,name=UserPostsRequested" json:"UserPostsRequested,omitempty"`
}

func (m *UserAndGraphResponse) Reset()                    { *m = UserAndGraphResponse{} }
func (m *UserAndGraphResponse) String() string            { return proto.CompactTextString(m) }
func (*UserAndGraphResponse) ProtoMessage()               {}
func (*UserAndGraphResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }

func (m *UserAndGraphResponse) GetUser() *feobjects.CompiledUserEntity {
	if m != nil {
		return m.User
	}
	return nil
}

func (m *UserAndGraphResponse) GetBoards() []*feobjects.CompiledBoardEntity {
	if m != nil {
		return m.Boards
	}
	return nil
}

func (m *UserAndGraphResponse) GetThreads() []*feobjects.CompiledThreadEntity {
	if m != nil {
		return m.Threads
	}
	return nil
}

func (m *UserAndGraphResponse) GetPosts() []*feobjects.CompiledPostEntity {
	if m != nil {
		return m.Posts
	}
	return nil
}

func (m *UserAndGraphResponse) GetUserEntityRequested() bool {
	if m != nil {
		return m.UserEntityRequested
	}
	return false
}

func (m *UserAndGraphResponse) GetUserBoardsRequested() bool {
	if m != nil {
		return m.UserBoardsRequested
	}
	return false
}

func (m *UserAndGraphResponse) GetUserThreadsRequested() bool {
	if m != nil {
		return m.UserThreadsRequested
	}
	return false
}

func (m *UserAndGraphResponse) GetUserPostsRequested() bool {
	if m != nil {
		return m.UserPostsRequested
	}
	return false
}

type Event struct {
	OwnerFingerprint string    `protobuf:"bytes,1,opt,name=OwnerFingerprint" json:"OwnerFingerprint,omitempty"`
	PriorFingerprint string    `protobuf:"bytes,2,opt,name=PriorFingerprint" json:"PriorFingerprint,omitempty"`
	EventType        EventType `protobuf:"varint,3,opt,name=EventType,enum=feapi.EventType" json:"EventType,omitempty"`
	Timestamp        int64     `protobuf:"varint,4,opt,name=Timestamp" json:"Timestamp,omitempty"`
}

func (m *Event) Reset()                    { *m = Event{} }
func (m *Event) String() string            { return proto.CompactTextString(m) }
func (*Event) ProtoMessage()               {}
func (*Event) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }

func (m *Event) GetOwnerFingerprint() string {
	if m != nil {
		return m.OwnerFingerprint
	}
	return ""
}

func (m *Event) GetPriorFingerprint() string {
	if m != nil {
		return m.PriorFingerprint
	}
	return ""
}

func (m *Event) GetEventType() EventType {
	if m != nil {
		return m.EventType
	}
	return EventType_UNKNOWN_EVENT_TYPE
}

func (m *Event) GetTimestamp() int64 {
	if m != nil {
		return m.Timestamp
	}
	return 0
}

type ContentEventPayload struct {
	Event      *Event         `protobuf:"bytes,1,opt,name=Event" json:"Event,omitempty"`
	BoardData  *mimapi.Board  `protobuf:"bytes,2,opt,name=BoardData" json:"BoardData,omitempty"`
	ThreadData *mimapi.Thread `protobuf:"bytes,3,opt,name=ThreadData" json:"ThreadData,omitempty"`
	PostData   *mimapi.Post   `protobuf:"bytes,4,opt,name=PostData" json:"PostData,omitempty"`
	KeyData    *mimapi.Key    `protobuf:"bytes,5,opt,name=KeyData" json:"KeyData,omitempty"`
}

func (m *ContentEventPayload) Reset()                    { *m = ContentEventPayload{} }
func (m *ContentEventPayload) String() string            { return proto.CompactTextString(m) }
func (*ContentEventPayload) ProtoMessage()               {}
func (*ContentEventPayload) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }

func (m *ContentEventPayload) GetEvent() *Event {
	if m != nil {
		return m.Event
	}
	return nil
}

func (m *ContentEventPayload) GetBoardData() *mimapi.Board {
	if m != nil {
		return m.BoardData
	}
	return nil
}

func (m *ContentEventPayload) GetThreadData() *mimapi.Thread {
	if m != nil {
		return m.ThreadData
	}
	return nil
}

func (m *ContentEventPayload) GetPostData() *mimapi.Post {
	if m != nil {
		return m.PostData
	}
	return nil
}

func (m *ContentEventPayload) GetKeyData() *mimapi.Key {
	if m != nil {
		return m.KeyData
	}
	return nil
}

type ContentEventResponse struct {
}

func (m *ContentEventResponse) Reset()                    { *m = ContentEventResponse{} }
func (m *ContentEventResponse) String() string            { return proto.CompactTextString(m) }
func (*ContentEventResponse) ProtoMessage()               {}
func (*ContentEventResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }

type SignalEventPayload struct {
	Event            *Event           `protobuf:"bytes,1,opt,name=Event" json:"Event,omitempty"`
	SignalTargetType SignalTargetType `protobuf:"varint,2,opt,name=SignalTargetType,enum=feapi.SignalTargetType" json:"SignalTargetType,omitempty"`
	// ----------  Defined for targettype=content  ----------
	TargetBoard  string `protobuf:"bytes,3,opt,name=TargetBoard" json:"TargetBoard,omitempty"`
	TargetThread string `protobuf:"bytes,4,opt,name=TargetThread" json:"TargetThread,omitempty"`
	// ----------  Defined for targettype=user  ----------
	TargetDomain      string          `protobuf:"bytes,5,opt,name=TargetDomain" json:"TargetDomain,omitempty"`
	TargetExpiry      int64           `protobuf:"varint,6,opt,name=TargetExpiry" json:"TargetExpiry,omitempty"`
	Meta              string          `protobuf:"bytes,7,opt,name=Meta" json:"Meta,omitempty"`
	TargetFingerprint string          `protobuf:"bytes,8,opt,name=TargetFingerprint" json:"TargetFingerprint,omitempty"`
	SignalTypeClass   SignalTypeClass `protobuf:"varint,9,opt,name=SignalTypeClass,enum=feapi.SignalTypeClass" json:"SignalTypeClass,omitempty"`
	SignalType        SignalType      `protobuf:"varint,10,opt,name=SignalType,enum=feapi.SignalType" json:"SignalType,omitempty"`
	SignalText        string          `protobuf:"bytes,11,opt,name=SignalText" json:"SignalText,omitempty"`
}

func (m *SignalEventPayload) Reset()                    { *m = SignalEventPayload{} }
func (m *SignalEventPayload) String() string            { return proto.CompactTextString(m) }
func (*SignalEventPayload) ProtoMessage()               {}
func (*SignalEventPayload) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }

func (m *SignalEventPayload) GetEvent() *Event {
	if m != nil {
		return m.Event
	}
	return nil
}

func (m *SignalEventPayload) GetSignalTargetType() SignalTargetType {
	if m != nil {
		return m.SignalTargetType
	}
	return SignalTargetType_UNKNOWN_SIGNAL_TARGET_TYPE
}

func (m *SignalEventPayload) GetTargetBoard() string {
	if m != nil {
		return m.TargetBoard
	}
	return ""
}

func (m *SignalEventPayload) GetTargetThread() string {
	if m != nil {
		return m.TargetThread
	}
	return ""
}

func (m *SignalEventPayload) GetTargetDomain() string {
	if m != nil {
		return m.TargetDomain
	}
	return ""
}

func (m *SignalEventPayload) GetTargetExpiry() int64 {
	if m != nil {
		return m.TargetExpiry
	}
	return 0
}

func (m *SignalEventPayload) GetMeta() string {
	if m != nil {
		return m.Meta
	}
	return ""
}

func (m *SignalEventPayload) GetTargetFingerprint() string {
	if m != nil {
		return m.TargetFingerprint
	}
	return ""
}

func (m *SignalEventPayload) GetSignalTypeClass() SignalTypeClass {
	if m != nil {
		return m.SignalTypeClass
	}
	return SignalTypeClass_UNKNOWN_SIGNAL_TYPECLASS
}

func (m *SignalEventPayload) GetSignalType() SignalType {
	if m != nil {
		return m.SignalType
	}
	return SignalType_UNKNOWN_SIGNAL_TYPE
}

func (m *SignalEventPayload) GetSignalText() string {
	if m != nil {
		return m.SignalText
	}
	return ""
}

type SignalEventResponse struct {
}

func (m *SignalEventResponse) Reset()                    { *m = SignalEventResponse{} }
func (m *SignalEventResponse) String() string            { return proto.CompactTextString(m) }
func (*SignalEventResponse) ProtoMessage()               {}
func (*SignalEventResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }

type UncompiledEntityByKeyRequest struct {
	EntityType       UncompiledEntityType `protobuf:"varint,1,opt,name=EntityType,enum=feapi.UncompiledEntityType" json:"EntityType,omitempty"`
	Limit            int32                `protobuf:"varint,2,opt,name=Limit" json:"Limit,omitempty"`
	Offset           int32                `protobuf:"varint,3,opt,name=Offset" json:"Offset,omitempty"`
	OwnerFingerprint string               `protobuf:"bytes,4,opt,name=OwnerFingerprint" json:"OwnerFingerprint,omitempty"`
	BoardName        string               `protobuf:"bytes,5,opt,name=BoardName" json:"BoardName,omitempty"`
	KeyName          string               `protobuf:"bytes,6,opt,name=KeyName" json:"KeyName,omitempty"`
}

func (m *UncompiledEntityByKeyRequest) Reset()                    { *m = UncompiledEntityByKeyRequest{} }
func (m *UncompiledEntityByKeyRequest) String() string            { return proto.CompactTextString(m) }
func (*UncompiledEntityByKeyRequest) ProtoMessage()               {}
func (*UncompiledEntityByKeyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }

func (m *UncompiledEntityByKeyRequest) GetEntityType() UncompiledEntityType {
	if m != nil {
		return m.EntityType
	}
	return UncompiledEntityType_UNKNOWN_ENTITY_TYPE
}

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

func (m *UncompiledEntityByKeyRequest) GetOffset() int32 {
	if m != nil {
		return m.Offset
	}
	return 0
}

func (m *UncompiledEntityByKeyRequest) GetOwnerFingerprint() string {
	if m != nil {
		return m.OwnerFingerprint
	}
	return ""
}

func (m *UncompiledEntityByKeyRequest) GetBoardName() string {
	if m != nil {
		return m.BoardName
	}
	return ""
}

func (m *UncompiledEntityByKeyRequest) GetKeyName() string {
	if m != nil {
		return m.KeyName
	}
	return ""
}

type UncompiledEntityByKeyResponse struct {
	EntityType  UncompiledEntityType `protobuf:"varint,1,opt,name=EntityType,enum=feapi.UncompiledEntityType" json:"EntityType,omitempty"`
	Boards      []*mimapi.Board      `protobuf:"bytes,2,rep,name=Boards" json:"Boards,omitempty"`
	Threads     []*mimapi.Thread     `protobuf:"bytes,3,rep,name=Threads" json:"Threads,omitempty"`
	Posts       []*mimapi.Post       `protobuf:"bytes,4,rep,name=Posts" json:"Posts,omitempty"`
	Votes       []*mimapi.Vote       `protobuf:"bytes,5,rep,name=Votes" json:"Votes,omitempty"`
	Keys        []*mimapi.Key        `protobuf:"bytes,6,rep,name=Keys" json:"Keys,omitempty"`
	Truststates []*mimapi.Truststate `protobuf:"bytes,7,rep,name=Truststates" json:"Truststates,omitempty"`
}

func (m *UncompiledEntityByKeyResponse) Reset()                    { *m = UncompiledEntityByKeyResponse{} }
func (m *UncompiledEntityByKeyResponse) String() string            { return proto.CompactTextString(m) }
func (*UncompiledEntityByKeyResponse) ProtoMessage()               {}
func (*UncompiledEntityByKeyResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }

func (m *UncompiledEntityByKeyResponse) GetEntityType() UncompiledEntityType {
	if m != nil {
		return m.EntityType
	}
	return UncompiledEntityType_UNKNOWN_ENTITY_TYPE
}

func (m *UncompiledEntityByKeyResponse) GetBoards() []*mimapi.Board {
	if m != nil {
		return m.Boards
	}
	return nil
}

func (m *UncompiledEntityByKeyResponse) GetThreads() []*mimapi.Thread {
	if m != nil {
		return m.Threads
	}
	return nil
}

func (m *UncompiledEntityByKeyResponse) GetPosts() []*mimapi.Post {
	if m != nil {
		return m.Posts
	}
	return nil
}

func (m *UncompiledEntityByKeyResponse) GetVotes() []*mimapi.Vote {
	if m != nil {
		return m.Votes
	}
	return nil
}

func (m *UncompiledEntityByKeyResponse) GetKeys() []*mimapi.Key {
	if m != nil {
		return m.Keys
	}
	return nil
}

func (m *UncompiledEntityByKeyResponse) GetTruststates() []*mimapi.Truststate {
	if m != nil {
		return m.Truststates
	}
	return nil
}

type InflightsPruneRequest struct {
}

func (m *InflightsPruneRequest) Reset()                    { *m = InflightsPruneRequest{} }
func (m *InflightsPruneRequest) String() string            { return proto.CompactTextString(m) }
func (*InflightsPruneRequest) ProtoMessage()               {}
func (*InflightsPruneRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }

type InflightsPruneResponse struct {
}

func (m *InflightsPruneResponse) Reset()                    { *m = InflightsPruneResponse{} }
func (m *InflightsPruneResponse) String() string            { return proto.CompactTextString(m) }
func (*InflightsPruneResponse) ProtoMessage()               {}
func (*InflightsPruneResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }

type BackendAmbientStatusPayload struct {
	BackendAmbientStatus *feobjects.BackendAmbientStatus `protobuf:"bytes,1,opt,name=BackendAmbientStatus" json:"BackendAmbientStatus,omitempty"`
}

func (m *BackendAmbientStatusPayload) Reset()                    { *m = BackendAmbientStatusPayload{} }
func (m *BackendAmbientStatusPayload) String() string            { return proto.CompactTextString(m) }
func (*BackendAmbientStatusPayload) ProtoMessage()               {}
func (*BackendAmbientStatusPayload) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }

func (m *BackendAmbientStatusPayload) GetBackendAmbientStatus() *feobjects.BackendAmbientStatus {
	if m != nil {
		return m.BackendAmbientStatus
	}
	return nil
}

type BackendAmbientStatusResponse struct {
}

func (m *BackendAmbientStatusResponse) Reset()                    { *m = BackendAmbientStatusResponse{} }
func (m *BackendAmbientStatusResponse) String() string            { return proto.CompactTextString(m) }
func (*BackendAmbientStatusResponse) ProtoMessage()               {}
func (*BackendAmbientStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }

//
// These are useful because they allow the client to ask for ambient status in the case it refreshes. This is useful for the status entity.
type AmbientStatusRequest struct {
}

func (m *AmbientStatusRequest) Reset()                    { *m = AmbientStatusRequest{} }
func (m *AmbientStatusRequest) String() string            { return proto.CompactTextString(m) }
func (*AmbientStatusRequest) ProtoMessage()               {}
func (*AmbientStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }

type AmbientStatusResponse struct {
}

func (m *AmbientStatusResponse) Reset()                    { *m = AmbientStatusResponse{} }
func (m *AmbientStatusResponse) String() string            { return proto.CompactTextString(m) }
func (*AmbientStatusResponse) ProtoMessage()               {}
func (*AmbientStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }

type HomeViewRequest struct {
}

func (m *HomeViewRequest) Reset()                    { *m = HomeViewRequest{} }
func (m *HomeViewRequest) String() string            { return proto.CompactTextString(m) }
func (*HomeViewRequest) ProtoMessage()               {}
func (*HomeViewRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }

type HomeViewResponse struct {
}

func (m *HomeViewResponse) Reset()                    { *m = HomeViewResponse{} }
func (m *HomeViewResponse) String() string            { return proto.CompactTextString(m) }
func (*HomeViewResponse) ProtoMessage()               {}
func (*HomeViewResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }

type PopularViewRequest struct {
}

func (m *PopularViewRequest) Reset()                    { *m = PopularViewRequest{} }
func (m *PopularViewRequest) String() string            { return proto.CompactTextString(m) }
func (*PopularViewRequest) ProtoMessage()               {}
func (*PopularViewRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }

type PopularViewResponse struct {
}

func (m *PopularViewResponse) Reset()                    { *m = PopularViewResponse{} }
func (m *PopularViewResponse) String() string            { return proto.CompactTextString(m) }
func (*PopularViewResponse) ProtoMessage()               {}
func (*PopularViewResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} }

type NewViewRequest struct {
}

func (m *NewViewRequest) Reset()                    { *m = NewViewRequest{} }
func (m *NewViewRequest) String() string            { return proto.CompactTextString(m) }
func (*NewViewRequest) ProtoMessage()               {}
func (*NewViewRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} }

type NewViewResponse struct {
}

func (m *NewViewResponse) Reset()                    { *m = NewViewResponse{} }
func (m *NewViewResponse) String() string            { return proto.CompactTextString(m) }
func (*NewViewResponse) ProtoMessage()               {}
func (*NewViewResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} }

type NotificationsRequest struct {
}

func (m *NotificationsRequest) Reset()                    { *m = NotificationsRequest{} }
func (m *NotificationsRequest) String() string            { return proto.CompactTextString(m) }
func (*NotificationsRequest) ProtoMessage()               {}
func (*NotificationsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} }

type NotificationsResponse struct {
}

func (m *NotificationsResponse) Reset()                    { *m = NotificationsResponse{} }
func (m *NotificationsResponse) String() string            { return proto.CompactTextString(m) }
func (*NotificationsResponse) ProtoMessage()               {}
func (*NotificationsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} }

type NotificationsSignalPayload struct {
	Seen                bool   `protobuf:"varint,1,opt,name=Seen" json:"Seen,omitempty"`
	ReadItemFingerprint string `protobuf:"bytes,2,opt,name=ReadItemFingerprint" json:"ReadItemFingerprint,omitempty"`
	MarkAllAsRead       bool   `protobuf:"varint,3,opt,name=MarkAllAsRead" json:"MarkAllAsRead,omitempty"`
}

func (m *NotificationsSignalPayload) Reset()                    { *m = NotificationsSignalPayload{} }
func (m *NotificationsSignalPayload) String() string            { return proto.CompactTextString(m) }
func (*NotificationsSignalPayload) ProtoMessage()               {}
func (*NotificationsSignalPayload) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} }

func (m *NotificationsSignalPayload) GetSeen() bool {
	if m != nil {
		return m.Seen
	}
	return false
}

func (m *NotificationsSignalPayload) GetReadItemFingerprint() string {
	if m != nil {
		return m.ReadItemFingerprint
	}
	return ""
}

func (m *NotificationsSignalPayload) GetMarkAllAsRead() bool {
	if m != nil {
		return m.MarkAllAsRead
	}
	return false
}

type NotificationsSignalResponse struct {
}

func (m *NotificationsSignalResponse) Reset()                    { *m = NotificationsSignalResponse{} }
func (m *NotificationsSignalResponse) String() string            { return proto.CompactTextString(m) }
func (*NotificationsSignalResponse) ProtoMessage()               {}
func (*NotificationsSignalResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} }

type OnboardCompleteRequest struct {
	OnboardComplete bool `protobuf:"varint,1,opt,name=OnboardComplete" json:"OnboardComplete,omitempty"`
}

func (m *OnboardCompleteRequest) Reset()                    { *m = OnboardCompleteRequest{} }
func (m *OnboardCompleteRequest) String() string            { return proto.CompactTextString(m) }
func (*OnboardCompleteRequest) ProtoMessage()               {}
func (*OnboardCompleteRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} }

func (m *OnboardCompleteRequest) GetOnboardComplete() bool {
	if m != nil {
		return m.OnboardComplete
	}
	return false
}

type OnboardCompleteResponse struct {
}

func (m *OnboardCompleteResponse) Reset()                    { *m = OnboardCompleteResponse{} }
func (m *OnboardCompleteResponse) String() string            { return proto.CompactTextString(m) }
func (*OnboardCompleteResponse) ProtoMessage()               {}
func (*OnboardCompleteResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} }

type SendAddressPayload struct {
	Address *mimapi.Address `protobuf:"bytes,1,opt,name=Address" json:"Address,omitempty"`
}

func (m *SendAddressPayload) Reset()                    { *m = SendAddressPayload{} }
func (m *SendAddressPayload) String() string            { return proto.CompactTextString(m) }
func (*SendAddressPayload) ProtoMessage()               {}
func (*SendAddressPayload) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} }

func (m *SendAddressPayload) GetAddress() *mimapi.Address {
	if m != nil {
		return m.Address
	}
	return nil
}

type SendAddressResponse struct {
	StatusCode   int32  `protobuf:"varint,1,opt,name=StatusCode" json:"StatusCode,omitempty"`
	ErrorMessage string `protobuf:"bytes,2,opt,name=ErrorMessage" json:"ErrorMessage,omitempty"`
}

func (m *SendAddressResponse) Reset()                    { *m = SendAddressResponse{} }
func (m *SendAddressResponse) String() string            { return proto.CompactTextString(m) }
func (*SendAddressResponse) ProtoMessage()               {}
func (*SendAddressResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} }

func (m *SendAddressResponse) GetStatusCode() int32 {
	if m != nil {
		return m.StatusCode
	}
	return 0
}

func (m *SendAddressResponse) GetErrorMessage() string {
	if m != nil {
		return m.ErrorMessage
	}
	return ""
}

type FEConfigChangesPayload struct {
	ModModeEnabledIsSet                  bool `protobuf:"varint,1,opt,name=ModModeEnabledIsSet" json:"ModModeEnabledIsSet,omitempty"`
	ModModeEnabled                       bool `protobuf:"varint,2,opt,name=ModModeEnabled" json:"ModModeEnabled,omitempty"`
	ExternalContentAutoloadDisabled      bool `protobuf:"varint,3,opt,name=ExternalContentAutoloadDisabled" json:"ExternalContentAutoloadDisabled,omitempty"`
	ExternalContentAutoloadDisabledIsSet bool `protobuf:"varint,4,opt,name=ExternalContentAutoloadDisabledIsSet" json:"ExternalContentAutoloadDisabledIsSet,omitempty"`
}

func (m *FEConfigChangesPayload) Reset()                    { *m = FEConfigChangesPayload{} }
func (m *FEConfigChangesPayload) String() string            { return proto.CompactTextString(m) }
func (*FEConfigChangesPayload) ProtoMessage()               {}
func (*FEConfigChangesPayload) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} }

func (m *FEConfigChangesPayload) GetModModeEnabledIsSet() bool {
	if m != nil {
		return m.ModModeEnabledIsSet
	}
	return false
}

func (m *FEConfigChangesPayload) GetModModeEnabled() bool {
	if m != nil {
		return m.ModModeEnabled
	}
	return false
}

func (m *FEConfigChangesPayload) GetExternalContentAutoloadDisabled() bool {
	if m != nil {
		return m.ExternalContentAutoloadDisabled
	}
	return false
}

func (m *FEConfigChangesPayload) GetExternalContentAutoloadDisabledIsSet() bool {
	if m != nil {
		return m.ExternalContentAutoloadDisabledIsSet
	}
	return false
}

type FEConfigChangesResponse struct {
}

func (m *FEConfigChangesResponse) Reset()                    { *m = FEConfigChangesResponse{} }
func (m *FEConfigChangesResponse) String() string            { return proto.CompactTextString(m) }
func (*FEConfigChangesResponse) ProtoMessage()               {}
func (*FEConfigChangesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} }

type BoardReportsRequest struct {
	BoardFingerprint string `protobuf:"bytes,1,opt,name=BoardFingerprint" json:"BoardFingerprint,omitempty"`
}

func (m *BoardReportsRequest) Reset()                    { *m = BoardReportsRequest{} }
func (m *BoardReportsRequest) String() string            { return proto.CompactTextString(m) }
func (*BoardReportsRequest) ProtoMessage()               {}
func (*BoardReportsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} }

func (m *BoardReportsRequest) GetBoardFingerprint() string {
	if m != nil {
		return m.BoardFingerprint
	}
	return ""
}

type BoardReportsResponse struct {
	ReportsTabEntries []*feobjects.ReportsTabEntry `protobuf:"bytes,1,rep,name=ReportsTabEntries" json:"ReportsTabEntries,omitempty"`
}

func (m *BoardReportsResponse) Reset()                    { *m = BoardReportsResponse{} }
func (m *BoardReportsResponse) String() string            { return proto.CompactTextString(m) }
func (*BoardReportsResponse) ProtoMessage()               {}
func (*BoardReportsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} }

func (m *BoardReportsResponse) GetReportsTabEntries() []*feobjects.ReportsTabEntry {
	if m != nil {
		return m.ReportsTabEntries
	}
	return nil
}

type BoardModActionsRequest struct {
	BoardFingerprint string `protobuf:"bytes,1,opt,name=BoardFingerprint" json:"BoardFingerprint,omitempty"`
}

func (m *BoardModActionsRequest) Reset()                    { *m = BoardModActionsRequest{} }
func (m *BoardModActionsRequest) String() string            { return proto.CompactTextString(m) }
func (*BoardModActionsRequest) ProtoMessage()               {}
func (*BoardModActionsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} }

func (m *BoardModActionsRequest) GetBoardFingerprint() string {
	if m != nil {
		return m.BoardFingerprint
	}
	return ""
}

type BoardModActionsResponse struct {
	ModActionsTabEntries []*feobjects.ModActionsTabEntry `protobuf:"bytes,1,rep,name=ModActionsTabEntries" json:"ModActionsTabEntries,omitempty"`
}

func (m *BoardModActionsResponse) Reset()                    { *m = BoardModActionsResponse{} }
func (m *BoardModActionsResponse) String() string            { return proto.CompactTextString(m) }
func (*BoardModActionsResponse) ProtoMessage()               {}
func (*BoardModActionsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} }

func (m *BoardModActionsResponse) GetModActionsTabEntries() []*feobjects.ModActionsTabEntry {
	if m != nil {
		return m.ModActionsTabEntries
	}
	return nil
}

type SendMintedUsernamesPayload struct {
	MintedUsernamesRawJSON string `protobuf:"bytes,1,opt,name=MintedUsernamesRawJSON" json:"MintedUsernamesRawJSON,omitempty"`
}

func (m *SendMintedUsernamesPayload) Reset()                    { *m = SendMintedUsernamesPayload{} }
func (m *SendMintedUsernamesPayload) String() string            { return proto.CompactTextString(m) }
func (*SendMintedUsernamesPayload) ProtoMessage()               {}
func (*SendMintedUsernamesPayload) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} }

func (m *SendMintedUsernamesPayload) GetMintedUsernamesRawJSON() string {
	if m != nil {
		return m.MintedUsernamesRawJSON
	}
	return ""
}

type SendMintedUsernamesResponse struct {
}

func (m *SendMintedUsernamesResponse) Reset()                    { *m = SendMintedUsernamesResponse{} }
func (m *SendMintedUsernamesResponse) String() string            { return proto.CompactTextString(m) }
func (*SendMintedUsernamesResponse) ProtoMessage()               {}
func (*SendMintedUsernamesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} }

type ClientVersionPayload struct {
	CurrentClientVersion string `protobuf:"bytes,1,opt,name=CurrentClientVersion" json:"CurrentClientVersion,omitempty"`
}

func (m *ClientVersionPayload) Reset()                    { *m = ClientVersionPayload{} }
func (m *ClientVersionPayload) String() string            { return proto.CompactTextString(m) }
func (*ClientVersionPayload) ProtoMessage()               {}
func (*ClientVersionPayload) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} }

func (m *ClientVersionPayload) GetCurrentClientVersion() string {
	if m != nil {
		return m.CurrentClientVersion
	}
	return ""
}

type ClientVersionResponse struct {
	LastKnownClientVersion string `protobuf:"bytes,1,opt,name=LastKnownClientVersion" json:"LastKnownClientVersion,omitempty"`
}

func (m *ClientVersionResponse) Reset()                    { *m = ClientVersionResponse{} }
func (m *ClientVersionResponse) String() string            { return proto.CompactTextString(m) }
func (*ClientVersionResponse) ProtoMessage()               {}
func (*ClientVersionResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} }

func (m *ClientVersionResponse) GetLastKnownClientVersion() string {
	if m != nil {
		return m.LastKnownClientVersion
	}
	return ""
}

type SearchRequestPayload struct {
	SearchType  string `protobuf:"bytes,1,opt,name=SearchType" json:"SearchType,omitempty"`
	SearchQuery string `protobuf:"bytes,2,opt,name=SearchQuery" json:"SearchQuery,omitempty"`
}

func (m *SearchRequestPayload) Reset()                    { *m = SearchRequestPayload{} }
func (m *SearchRequestPayload) String() string            { return proto.CompactTextString(m) }
func (*SearchRequestPayload) ProtoMessage()               {}
func (*SearchRequestPayload) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} }

func (m *SearchRequestPayload) GetSearchType() string {
	if m != nil {
		return m.SearchType
	}
	return ""
}

func (m *SearchRequestPayload) GetSearchQuery() string {
	if m != nil {
		return m.SearchQuery
	}
	return ""
}

// Heads up, this will always be empty. The actual result is going to come via the feapi, as a gRPC call initiated by the FE.
type SearchRequestResponse struct {
}

func (m *SearchRequestResponse) Reset()                    { *m = SearchRequestResponse{} }
func (m *SearchRequestResponse) String() string            { return proto.CompactTextString(m) }
func (*SearchRequestResponse) ProtoMessage()               {}
func (*SearchRequestResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} }

func init() {
	proto.RegisterType((*BEReadyRequest)(nil), "feapi.BEReadyRequest")
	proto.RegisterType((*BEReadyResponse)(nil), "feapi.BEReadyResponse")
	proto.RegisterType((*SetClientAPIServerPortRequest)(nil), "feapi.SetClientAPIServerPortRequest")
	proto.RegisterType((*SetClientAPIServerPortResponse)(nil), "feapi.SetClientAPIServerPortResponse")
	proto.RegisterType((*AllBoardsRequest)(nil), "feapi.AllBoardsRequest")
	proto.RegisterType((*AllBoardsResponse)(nil), "feapi.AllBoardsResponse")
	proto.RegisterType((*ThreadAndPostsRequest)(nil), "feapi.ThreadAndPostsRequest")
	proto.RegisterType((*ThreadAndPostsResponse)(nil), "feapi.ThreadAndPostsResponse")
	proto.RegisterType((*BoardAndThreadsRequest)(nil), "feapi.BoardAndThreadsRequest")
	proto.RegisterType((*BoardAndThreadsResponse)(nil), "feapi.BoardAndThreadsResponse")
	proto.RegisterType((*BoardSignalRequest)(nil), "feapi.BoardSignalRequest")
	proto.RegisterType((*BoardSignalResponse)(nil), "feapi.BoardSignalResponse")
	proto.RegisterType((*UserAndGraphRequest)(nil), "feapi.UserAndGraphRequest")
	proto.RegisterType((*UserAndGraphResponse)(nil), "feapi.UserAndGraphResponse")
	proto.RegisterType((*Event)(nil), "feapi.Event")
	proto.RegisterType((*ContentEventPayload)(nil), "feapi.ContentEventPayload")
	proto.RegisterType((*ContentEventResponse)(nil), "feapi.ContentEventResponse")
	proto.RegisterType((*SignalEventPayload)(nil), "feapi.SignalEventPayload")
	proto.RegisterType((*SignalEventResponse)(nil), "feapi.SignalEventResponse")
	proto.RegisterType((*UncompiledEntityByKeyRequest)(nil), "feapi.UncompiledEntityByKeyRequest")
	proto.RegisterType((*UncompiledEntityByKeyResponse)(nil), "feapi.UncompiledEntityByKeyResponse")
	proto.RegisterType((*InflightsPruneRequest)(nil), "feapi.InflightsPruneRequest")
	proto.RegisterType((*InflightsPruneResponse)(nil), "feapi.InflightsPruneResponse")
	proto.RegisterType((*BackendAmbientStatusPayload)(nil), "feapi.BackendAmbientStatusPayload")
	proto.RegisterType((*BackendAmbientStatusResponse)(nil), "feapi.BackendAmbientStatusResponse")
	proto.RegisterType((*AmbientStatusRequest)(nil), "feapi.AmbientStatusRequest")
	proto.RegisterType((*AmbientStatusResponse)(nil), "feapi.AmbientStatusResponse")
	proto.RegisterType((*HomeViewRequest)(nil), "feapi.HomeViewRequest")
	proto.RegisterType((*HomeViewResponse)(nil), "feapi.HomeViewResponse")
	proto.RegisterType((*PopularViewRequest)(nil), "feapi.PopularViewRequest")
	proto.RegisterType((*PopularViewResponse)(nil), "feapi.PopularViewResponse")
	proto.RegisterType((*NewViewRequest)(nil), "feapi.NewViewRequest")
	proto.RegisterType((*NewViewResponse)(nil), "feapi.NewViewResponse")
	proto.RegisterType((*NotificationsRequest)(nil), "feapi.NotificationsRequest")
	proto.RegisterType((*NotificationsResponse)(nil), "feapi.NotificationsResponse")
	proto.RegisterType((*NotificationsSignalPayload)(nil), "feapi.NotificationsSignalPayload")
	proto.RegisterType((*NotificationsSignalResponse)(nil), "feapi.NotificationsSignalResponse")
	proto.RegisterType((*OnboardCompleteRequest)(nil), "feapi.OnboardCompleteRequest")
	proto.RegisterType((*OnboardCompleteResponse)(nil), "feapi.OnboardCompleteResponse")
	proto.RegisterType((*SendAddressPayload)(nil), "feapi.SendAddressPayload")
	proto.RegisterType((*SendAddressResponse)(nil), "feapi.SendAddressResponse")
	proto.RegisterType((*FEConfigChangesPayload)(nil), "feapi.FEConfigChangesPayload")
	proto.RegisterType((*FEConfigChangesResponse)(nil), "feapi.FEConfigChangesResponse")
	proto.RegisterType((*BoardReportsRequest)(nil), "feapi.BoardReportsRequest")
	proto.RegisterType((*BoardReportsResponse)(nil), "feapi.BoardReportsResponse")
	proto.RegisterType((*BoardModActionsRequest)(nil), "feapi.BoardModActionsRequest")
	proto.RegisterType((*BoardModActionsResponse)(nil), "feapi.BoardModActionsResponse")
	proto.RegisterType((*SendMintedUsernamesPayload)(nil), "feapi.SendMintedUsernamesPayload")
	proto.RegisterType((*SendMintedUsernamesResponse)(nil), "feapi.SendMintedUsernamesResponse")
	proto.RegisterType((*ClientVersionPayload)(nil), "feapi.ClientVersionPayload")
	proto.RegisterType((*ClientVersionResponse)(nil), "feapi.ClientVersionResponse")
	proto.RegisterType((*SearchRequestPayload)(nil), "feapi.SearchRequestPayload")
	proto.RegisterType((*SearchRequestResponse)(nil), "feapi.SearchRequestResponse")
	proto.RegisterEnum("feapi.EventType", EventType_name, EventType_value)
	proto.RegisterEnum("feapi.SignalTargetType", SignalTargetType_name, SignalTargetType_value)
	proto.RegisterEnum("feapi.SignalTypeClass", SignalTypeClass_name, SignalTypeClass_value)
	proto.RegisterEnum("feapi.SignalType", SignalType_name, SignalType_value)
	proto.RegisterEnum("feapi.UncompiledEntityType", UncompiledEntityType_name, UncompiledEntityType_value)
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// 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.SupportPackageIsVersion4

// Client API for FrontendAPI service

type FrontendAPIClient interface {
	// ----------  Methods used by client  ----------
	SetClientAPIServerPort(ctx context.Context, in *SetClientAPIServerPortRequest, opts ...grpc.CallOption) (*SetClientAPIServerPortResponse, error)
	GetThreadAndPosts(ctx context.Context, in *ThreadAndPostsRequest, opts ...grpc.CallOption) (*ThreadAndPostsResponse, error)
	GetBoardAndThreads(ctx context.Context, in *BoardAndThreadsRequest, opts ...grpc.CallOption) (*BoardAndThreadsResponse, error)
	GetAllBoards(ctx context.Context, in *AllBoardsRequest, opts ...grpc.CallOption) (*AllBoardsResponse, error)
	SetBoardSignal(ctx context.Context, in *BoardSignalRequest, opts ...grpc.CallOption) (*BoardSignalResponse, error)
	GetUserAndGraph(ctx context.Context, in *UserAndGraphRequest, opts ...grpc.CallOption) (*UserAndGraphResponse, error)
	SendContentEvent(ctx context.Context, in *ContentEventPayload, opts ...grpc.CallOption) (*ContentEventResponse, error)
	SendSignalEvent(ctx context.Context, in *SignalEventPayload, opts ...grpc.CallOption) (*SignalEventResponse, error)
	GetUncompiledEntityByKey(ctx context.Context, in *UncompiledEntityByKeyRequest, opts ...grpc.CallOption) (*UncompiledEntityByKeyResponse, error)
	SendInflightsPruneRequest(ctx context.Context, in *InflightsPruneRequest, opts ...grpc.CallOption) (*InflightsPruneResponse, error)
	RequestAmbientStatus(ctx context.Context, in *AmbientStatusRequest, opts ...grpc.CallOption) (*AmbientStatusResponse, error)
	// ^ Client requests ambient status to be sent in.
	RequestHomeView(ctx context.Context, in *HomeViewRequest, opts ...grpc.CallOption) (*HomeViewResponse, error)
	RequestPopularView(ctx context.Context, in *PopularViewRequest, opts ...grpc.CallOption) (*PopularViewResponse, error)
	RequestNewView(ctx context.Context, in *NewViewRequest, opts ...grpc.CallOption) (*NewViewResponse, error)
	RequestNotifications(ctx context.Context, in *NotificationsRequest, opts ...grpc.CallOption) (*NotificationsResponse, error)
	SetNotificationsSignal(ctx context.Context, in *NotificationsSignalPayload, opts ...grpc.CallOption) (*NotificationsSignalResponse, error)
	// rpc RequestOnboardCompleteStatus(OnboardCompleteStatusRequest) returns (OnboardCompleteStatusResponse) {}
	SetOnboardComplete(ctx context.Context, in *OnboardCompleteRequest, opts ...grpc.CallOption) (*OnboardCompleteResponse, error)
	SendAddress(ctx context.Context, in *SendAddressPayload, opts ...grpc.CallOption) (*SendAddressResponse, error)
	SendFEConfigChanges(ctx context.Context, in *FEConfigChangesPayload, opts ...grpc.CallOption) (*FEConfigChangesResponse, error)
	RequestBoardReports(ctx context.Context, in *BoardReportsRequest, opts ...grpc.CallOption) (*BoardReportsResponse, error)
	RequestBoardModActions(ctx context.Context, in *BoardModActionsRequest, opts ...grpc.CallOption) (*BoardModActionsResponse, error)
	SendMintedUsernames(ctx context.Context, in *SendMintedUsernamesPayload, opts ...grpc.CallOption) (*SendMintedUsernamesResponse, error)
	SendClientVersion(ctx context.Context, in *ClientVersionPayload, opts ...grpc.CallOption) (*ClientVersionResponse, error)
	SendSearchRequest(ctx context.Context, in *SearchRequestPayload, opts ...grpc.CallOption) (*SearchRequestResponse, error)
	// ----------  Methods used by backend  ----------
	BackendReady(ctx context.Context, in *BEReadyRequest, opts ...grpc.CallOption) (*BEReadyResponse, error)
	SendBackendAmbientStatus(ctx context.Context, in *BackendAmbientStatusPayload, opts ...grpc.CallOption) (*BackendAmbientStatusResponse, error)
}

type frontendAPIClient struct {
	cc *grpc.ClientConn
}

func NewFrontendAPIClient(cc *grpc.ClientConn) FrontendAPIClient {
	return &frontendAPIClient{cc}
}

func (c *frontendAPIClient) SetClientAPIServerPort(ctx context.Context, in *SetClientAPIServerPortRequest, opts ...grpc.CallOption) (*SetClientAPIServerPortResponse, error) {
	out := new(SetClientAPIServerPortResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/SetClientAPIServerPort", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) GetThreadAndPosts(ctx context.Context, in *ThreadAndPostsRequest, opts ...grpc.CallOption) (*ThreadAndPostsResponse, error) {
	out := new(ThreadAndPostsResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/GetThreadAndPosts", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) GetBoardAndThreads(ctx context.Context, in *BoardAndThreadsRequest, opts ...grpc.CallOption) (*BoardAndThreadsResponse, error) {
	out := new(BoardAndThreadsResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/GetBoardAndThreads", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) GetAllBoards(ctx context.Context, in *AllBoardsRequest, opts ...grpc.CallOption) (*AllBoardsResponse, error) {
	out := new(AllBoardsResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/GetAllBoards", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) SetBoardSignal(ctx context.Context, in *BoardSignalRequest, opts ...grpc.CallOption) (*BoardSignalResponse, error) {
	out := new(BoardSignalResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/SetBoardSignal", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) GetUserAndGraph(ctx context.Context, in *UserAndGraphRequest, opts ...grpc.CallOption) (*UserAndGraphResponse, error) {
	out := new(UserAndGraphResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/GetUserAndGraph", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) SendContentEvent(ctx context.Context, in *ContentEventPayload, opts ...grpc.CallOption) (*ContentEventResponse, error) {
	out := new(ContentEventResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/SendContentEvent", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) SendSignalEvent(ctx context.Context, in *SignalEventPayload, opts ...grpc.CallOption) (*SignalEventResponse, error) {
	out := new(SignalEventResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/SendSignalEvent", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) GetUncompiledEntityByKey(ctx context.Context, in *UncompiledEntityByKeyRequest, opts ...grpc.CallOption) (*UncompiledEntityByKeyResponse, error) {
	out := new(UncompiledEntityByKeyResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/GetUncompiledEntityByKey", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) SendInflightsPruneRequest(ctx context.Context, in *InflightsPruneRequest, opts ...grpc.CallOption) (*InflightsPruneResponse, error) {
	out := new(InflightsPruneResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/SendInflightsPruneRequest", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) RequestAmbientStatus(ctx context.Context, in *AmbientStatusRequest, opts ...grpc.CallOption) (*AmbientStatusResponse, error) {
	out := new(AmbientStatusResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/RequestAmbientStatus", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) RequestHomeView(ctx context.Context, in *HomeViewRequest, opts ...grpc.CallOption) (*HomeViewResponse, error) {
	out := new(HomeViewResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/RequestHomeView", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) RequestPopularView(ctx context.Context, in *PopularViewRequest, opts ...grpc.CallOption) (*PopularViewResponse, error) {
	out := new(PopularViewResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/RequestPopularView", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) RequestNewView(ctx context.Context, in *NewViewRequest, opts ...grpc.CallOption) (*NewViewResponse, error) {
	out := new(NewViewResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/RequestNewView", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) RequestNotifications(ctx context.Context, in *NotificationsRequest, opts ...grpc.CallOption) (*NotificationsResponse, error) {
	out := new(NotificationsResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/RequestNotifications", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) SetNotificationsSignal(ctx context.Context, in *NotificationsSignalPayload, opts ...grpc.CallOption) (*NotificationsSignalResponse, error) {
	out := new(NotificationsSignalResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/SetNotificationsSignal", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) SetOnboardComplete(ctx context.Context, in *OnboardCompleteRequest, opts ...grpc.CallOption) (*OnboardCompleteResponse, error) {
	out := new(OnboardCompleteResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/SetOnboardComplete", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) SendAddress(ctx context.Context, in *SendAddressPayload, opts ...grpc.CallOption) (*SendAddressResponse, error) {
	out := new(SendAddressResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/SendAddress", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) SendFEConfigChanges(ctx context.Context, in *FEConfigChangesPayload, opts ...grpc.CallOption) (*FEConfigChangesResponse, error) {
	out := new(FEConfigChangesResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/SendFEConfigChanges", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) RequestBoardReports(ctx context.Context, in *BoardReportsRequest, opts ...grpc.CallOption) (*BoardReportsResponse, error) {
	out := new(BoardReportsResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/RequestBoardReports", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) RequestBoardModActions(ctx context.Context, in *BoardModActionsRequest, opts ...grpc.CallOption) (*BoardModActionsResponse, error) {
	out := new(BoardModActionsResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/RequestBoardModActions", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) SendMintedUsernames(ctx context.Context, in *SendMintedUsernamesPayload, opts ...grpc.CallOption) (*SendMintedUsernamesResponse, error) {
	out := new(SendMintedUsernamesResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/SendMintedUsernames", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) SendClientVersion(ctx context.Context, in *ClientVersionPayload, opts ...grpc.CallOption) (*ClientVersionResponse, error) {
	out := new(ClientVersionResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/SendClientVersion", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) SendSearchRequest(ctx context.Context, in *SearchRequestPayload, opts ...grpc.CallOption) (*SearchRequestResponse, error) {
	out := new(SearchRequestResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/SendSearchRequest", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) BackendReady(ctx context.Context, in *BEReadyRequest, opts ...grpc.CallOption) (*BEReadyResponse, error) {
	out := new(BEReadyResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/BackendReady", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *frontendAPIClient) SendBackendAmbientStatus(ctx context.Context, in *BackendAmbientStatusPayload, opts ...grpc.CallOption) (*BackendAmbientStatusResponse, error) {
	out := new(BackendAmbientStatusResponse)
	err := grpc.Invoke(ctx, "/feapi.FrontendAPI/SendBackendAmbientStatus", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Server API for FrontendAPI service

type FrontendAPIServer interface {
	// ----------  Methods used by client  ----------
	SetClientAPIServerPort(context.Context, *SetClientAPIServerPortRequest) (*SetClientAPIServerPortResponse, error)
	GetThreadAndPosts(context.Context, *ThreadAndPostsRequest) (*ThreadAndPostsResponse, error)
	GetBoardAndThreads(context.Context, *BoardAndThreadsRequest) (*BoardAndThreadsResponse, error)
	GetAllBoards(context.Context, *AllBoardsRequest) (*AllBoardsResponse, error)
	SetBoardSignal(context.Context, *BoardSignalRequest) (*BoardSignalResponse, error)
	GetUserAndGraph(context.Context, *UserAndGraphRequest) (*UserAndGraphResponse, error)
	SendContentEvent(context.Context, *ContentEventPayload) (*ContentEventResponse, error)
	SendSignalEvent(context.Context, *SignalEventPayload) (*SignalEventResponse, error)
	GetUncompiledEntityByKey(context.Context, *UncompiledEntityByKeyRequest) (*UncompiledEntityByKeyResponse, error)
	SendInflightsPruneRequest(context.Context, *InflightsPruneRequest) (*InflightsPruneResponse, error)
	RequestAmbientStatus(context.Context, *AmbientStatusRequest) (*AmbientStatusResponse, error)
	// ^ Client requests ambient status to be sent in.
	RequestHomeView(context.Context, *HomeViewRequest) (*HomeViewResponse, error)
	RequestPopularView(context.Context, *PopularViewRequest) (*PopularViewResponse, error)
	RequestNewView(context.Context, *NewViewRequest) (*NewViewResponse, error)
	RequestNotifications(context.Context, *NotificationsRequest) (*NotificationsResponse, error)
	SetNotificationsSignal(context.Context, *NotificationsSignalPayload) (*NotificationsSignalResponse, error)
	// rpc RequestOnboardCompleteStatus(OnboardCompleteStatusRequest) returns (OnboardCompleteStatusResponse) {}
	SetOnboardComplete(context.Context, *OnboardCompleteRequest) (*OnboardCompleteResponse, error)
	SendAddress(context.Context, *SendAddressPayload) (*SendAddressResponse, error)
	SendFEConfigChanges(context.Context, *FEConfigChangesPayload) (*FEConfigChangesResponse, error)
	RequestBoardReports(context.Context, *BoardReportsRequest) (*BoardReportsResponse, error)
	RequestBoardModActions(context.Context, *BoardModActionsRequest) (*BoardModActionsResponse, error)
	SendMintedUsernames(context.Context, *SendMintedUsernamesPayload) (*SendMintedUsernamesResponse, error)
	SendClientVersion(context.Context, *ClientVersionPayload) (*ClientVersionResponse, error)
	SendSearchRequest(context.Context, *SearchRequestPayload) (*SearchRequestResponse, error)
	// ----------  Methods used by backend  ----------
	BackendReady(context.Context, *BEReadyRequest) (*BEReadyResponse, error)
	SendBackendAmbientStatus(context.Context, *BackendAmbientStatusPayload) (*BackendAmbientStatusResponse, error)
}

func RegisterFrontendAPIServer(s *grpc.Server, srv FrontendAPIServer) {
	s.RegisterService(&_FrontendAPI_serviceDesc, srv)
}

func _FrontendAPI_SetClientAPIServerPort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetClientAPIServerPortRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).SetClientAPIServerPort(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/SetClientAPIServerPort",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).SetClientAPIServerPort(ctx, req.(*SetClientAPIServerPortRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_GetThreadAndPosts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ThreadAndPostsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).GetThreadAndPosts(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/GetThreadAndPosts",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).GetThreadAndPosts(ctx, req.(*ThreadAndPostsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_GetBoardAndThreads_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BoardAndThreadsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).GetBoardAndThreads(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/GetBoardAndThreads",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).GetBoardAndThreads(ctx, req.(*BoardAndThreadsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_GetAllBoards_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AllBoardsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).GetAllBoards(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/GetAllBoards",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).GetAllBoards(ctx, req.(*AllBoardsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_SetBoardSignal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BoardSignalRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).SetBoardSignal(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/SetBoardSignal",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).SetBoardSignal(ctx, req.(*BoardSignalRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_GetUserAndGraph_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UserAndGraphRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).GetUserAndGraph(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/GetUserAndGraph",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).GetUserAndGraph(ctx, req.(*UserAndGraphRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_SendContentEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ContentEventPayload)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).SendContentEvent(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/SendContentEvent",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).SendContentEvent(ctx, req.(*ContentEventPayload))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_SendSignalEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SignalEventPayload)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).SendSignalEvent(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/SendSignalEvent",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).SendSignalEvent(ctx, req.(*SignalEventPayload))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_GetUncompiledEntityByKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UncompiledEntityByKeyRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).GetUncompiledEntityByKey(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/GetUncompiledEntityByKey",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).GetUncompiledEntityByKey(ctx, req.(*UncompiledEntityByKeyRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_SendInflightsPruneRequest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(InflightsPruneRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).SendInflightsPruneRequest(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/SendInflightsPruneRequest",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).SendInflightsPruneRequest(ctx, req.(*InflightsPruneRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_RequestAmbientStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AmbientStatusRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).RequestAmbientStatus(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/RequestAmbientStatus",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).RequestAmbientStatus(ctx, req.(*AmbientStatusRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_RequestHomeView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(HomeViewRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).RequestHomeView(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/RequestHomeView",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).RequestHomeView(ctx, req.(*HomeViewRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_RequestPopularView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PopularViewRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).RequestPopularView(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/RequestPopularView",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).RequestPopularView(ctx, req.(*PopularViewRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_RequestNewView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(NewViewRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).RequestNewView(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/RequestNewView",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).RequestNewView(ctx, req.(*NewViewRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_RequestNotifications_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(NotificationsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).RequestNotifications(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/RequestNotifications",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).RequestNotifications(ctx, req.(*NotificationsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_SetNotificationsSignal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(NotificationsSignalPayload)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).SetNotificationsSignal(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/SetNotificationsSignal",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).SetNotificationsSignal(ctx, req.(*NotificationsSignalPayload))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_SetOnboardComplete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(OnboardCompleteRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).SetOnboardComplete(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/SetOnboardComplete",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).SetOnboardComplete(ctx, req.(*OnboardCompleteRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_SendAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SendAddressPayload)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).SendAddress(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/SendAddress",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).SendAddress(ctx, req.(*SendAddressPayload))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_SendFEConfigChanges_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(FEConfigChangesPayload)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).SendFEConfigChanges(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/SendFEConfigChanges",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).SendFEConfigChanges(ctx, req.(*FEConfigChangesPayload))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_RequestBoardReports_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BoardReportsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).RequestBoardReports(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/RequestBoardReports",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).RequestBoardReports(ctx, req.(*BoardReportsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_RequestBoardModActions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BoardModActionsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).RequestBoardModActions(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/RequestBoardModActions",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).RequestBoardModActions(ctx, req.(*BoardModActionsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_SendMintedUsernames_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SendMintedUsernamesPayload)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).SendMintedUsernames(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/SendMintedUsernames",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).SendMintedUsernames(ctx, req.(*SendMintedUsernamesPayload))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_SendClientVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ClientVersionPayload)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).SendClientVersion(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/SendClientVersion",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).SendClientVersion(ctx, req.(*ClientVersionPayload))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_SendSearchRequest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SearchRequestPayload)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).SendSearchRequest(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/SendSearchRequest",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).SendSearchRequest(ctx, req.(*SearchRequestPayload))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_BackendReady_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BEReadyRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).BackendReady(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/BackendReady",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).BackendReady(ctx, req.(*BEReadyRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FrontendAPI_SendBackendAmbientStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BackendAmbientStatusPayload)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FrontendAPIServer).SendBackendAmbientStatus(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/feapi.FrontendAPI/SendBackendAmbientStatus",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FrontendAPIServer).SendBackendAmbientStatus(ctx, req.(*BackendAmbientStatusPayload))
	}
	return interceptor(ctx, in, info, handler)
}

var _FrontendAPI_serviceDesc = grpc.ServiceDesc{
	ServiceName: "feapi.FrontendAPI",
	HandlerType: (*FrontendAPIServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "SetClientAPIServerPort",
			Handler:    _FrontendAPI_SetClientAPIServerPort_Handler,
		},
		{
			MethodName: "GetThreadAndPosts",
			Handler:    _FrontendAPI_GetThreadAndPosts_Handler,
		},
		{
			MethodName: "GetBoardAndThreads",
			Handler:    _FrontendAPI_GetBoardAndThreads_Handler,
		},
		{
			MethodName: "GetAllBoards",
			Handler:    _FrontendAPI_GetAllBoards_Handler,
		},
		{
			MethodName: "SetBoardSignal",
			Handler:    _FrontendAPI_SetBoardSignal_Handler,
		},
		{
			MethodName: "GetUserAndGraph",
			Handler:    _FrontendAPI_GetUserAndGraph_Handler,
		},
		{
			MethodName: "SendContentEvent",
			Handler:    _FrontendAPI_SendContentEvent_Handler,
		},
		{
			MethodName: "SendSignalEvent",
			Handler:    _FrontendAPI_SendSignalEvent_Handler,
		},
		{
			MethodName: "GetUncompiledEntityByKey",
			Handler:    _FrontendAPI_GetUncompiledEntityByKey_Handler,
		},
		{
			MethodName: "SendInflightsPruneRequest",
			Handler:    _FrontendAPI_SendInflightsPruneRequest_Handler,
		},
		{
			MethodName: "RequestAmbientStatus",
			Handler:    _FrontendAPI_RequestAmbientStatus_Handler,
		},
		{
			MethodName: "RequestHomeView",
			Handler:    _FrontendAPI_RequestHomeView_Handler,
		},
		{
			MethodName: "RequestPopularView",
			Handler:    _FrontendAPI_RequestPopularView_Handler,
		},
		{
			MethodName: "RequestNewView",
			Handler:    _FrontendAPI_RequestNewView_Handler,
		},
		{
			MethodName: "RequestNotifications",
			Handler:    _FrontendAPI_RequestNotifications_Handler,
		},
		{
			MethodName: "SetNotificationsSignal",
			Handler:    _FrontendAPI_SetNotificationsSignal_Handler,
		},
		{
			MethodName: "SetOnboardComplete",
			Handler:    _FrontendAPI_SetOnboardComplete_Handler,
		},
		{
			MethodName: "SendAddress",
			Handler:    _FrontendAPI_SendAddress_Handler,
		},
		{
			MethodName: "SendFEConfigChanges",
			Handler:    _FrontendAPI_SendFEConfigChanges_Handler,
		},
		{
			MethodName: "RequestBoardReports",
			Handler:    _FrontendAPI_RequestBoardReports_Handler,
		},
		{
			MethodName: "RequestBoardModActions",
			Handler:    _FrontendAPI_RequestBoardModActions_Handler,
		},
		{
			MethodName: "SendMintedUsernames",
			Handler:    _FrontendAPI_SendMintedUsernames_Handler,
		},
		{
			MethodName: "SendClientVersion",
			Handler:    _FrontendAPI_SendClientVersion_Handler,
		},
		{
			MethodName: "SendSearchRequest",
			Handler:    _FrontendAPI_SendSearchRequest_Handler,
		},
		{
			MethodName: "BackendReady",
			Handler:    _FrontendAPI_BackendReady_Handler,
		},
		{
			MethodName: "SendBackendAmbientStatus",
			Handler:    _FrontendAPI_SendBackendAmbientStatus_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "feapi/feapi.proto",
}

func init() { proto.RegisterFile("feapi/feapi.proto", fileDescriptor0) }

var fileDescriptor0 = []byte{
	// 2616 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0xcd, 0x72, 0xe3, 0xc6,
	0x11, 0x26, 0x45, 0x52, 0x3f, 0x2d, 0xad, 0x04, 0x8d, 0x24, 0x8a, 0xcb, 0xd5, 0xfe, 0x18, 0x5e,
	0xa7, 0x14, 0x25, 0xd1, 0xda, 0x5a, 0xc7, 0xa9, 0x94, 0x53, 0x71, 0x20, 0x12, 0xd2, 0xd2, 0x12,
	0x09, 0x2e, 0x00, 0xca, 0x91, 0x0f, 0x51, 0x20, 0x71, 0xa4, 0x45, 0x4c, 0x02, 0x34, 0x00, 0x59,
	0xe6, 0x1b, 0xa4, 0x72, 0xca, 0x21, 0x4f, 0x91, 0xaa, 0xe4, 0x9e, 0xaa, 0x3c, 0x42, 0x9e, 0xc2,
	0x97, 0x9c, 0xf2, 0x0c, 0x49, 0xcd, 0x0f, 0x06, 0x7f, 0xc3, 0xfd, 0xb1, 0xab, 0x72, 0x91, 0x30,
	0xdd, 0x5f, 0xf7, 0x74, 0xf7, 0xcc, 0xf4, 0x74, 0x0f, 0x61, 0xfd, 0x1a, 0x3b, 0x13, 0xf7, 0x19,
	0xfd, 0xbb, 0x3f, 0x09, 0xfc, 0xc8, 0x47, 0x35, 0x3a, 0x68, 0xde, 0xbf, 0xc6, 0xfe, 0xe5, 0x1f,
	0xf0, 0x55, 0x14, 0x3e, 0x13, 0x5f, 0x0c, 0xd1, 0xdc, 0x18, 0xbb, 0x63, 0x22, 0xc5, 0xfe, 0x31,
	0xa2, 0xfa, 0x6b, 0x58, 0x3d, 0xd4, 0x4d, 0xec, 0x0c, 0xa7, 0x26, 0xfe, 0xfa, 0x16, 0x87, 0x11,
	0x6a, 0xc0, 0x82, 0x33, 0x1c, 0x06, 0x38, 0x0c, 0x1b, 0xe5, 0x27, 0xe5, 0xdd, 0x25, 0x33, 0x1e,
	0x22, 0x04, 0xd5, 0x89, 0x1f, 0x44, 0x8d, 0xb9, 0x27, 0xe5, 0xdd, 0x9a, 0x49, 0xbf, 0xd5, 0x75,
	0x58, 0x13, 0xf2, 0xe1, 0xc4, 0xf7, 0x42, 0xac, 0x3e, 0x87, 0x87, 0x16, 0x8e, 0x5a, 0x23, 0x17,
	0x7b, 0x91, 0xd6, 0xef, 0x58, 0x38, 0xf8, 0x06, 0x07, 0x7d, 0x3f, 0x88, 0xe2, 0x19, 0x10, 0x54,
	0xc9, 0x90, 0xaa, 0xaf, 0x99, 0xf4, 0x5b, 0x7d, 0x02, 0x8f, 0x66, 0x09, 0x71, 0xb5, 0x08, 0x14,
	0x6d, 0x34, 0x3a, 0xf4, 0x9d, 0x60, 0x18, 0x72, 0x4d, 0xea, 0x4b, 0x58, 0x4f, 0xd1, 0x18, 0x10,
	0xfd, 0x0a, 0x96, 0x04, 0xb1, 0x51, 0x7e, 0x52, 0xd9, 0x5d, 0x3e, 0x78, 0xb4, 0x9f, 0x04, 0xa3,
	0xe5, 0x8f, 0x27, 0xee, 0x08, 0x0f, 0x29, 0x40, 0xf7, 0x22, 0x37, 0x9a, 0x9a, 0x89, 0x80, 0xfa,
	0x35, 0x6c, 0xd9, 0xaf, 0x02, 0xec, 0x0c, 0x35, 0x6f, 0xd8, 0xf7, 0xc3, 0x28, 0x9e, 0x0b, 0xed,
	0x81, 0x42, 0x21, 0x47, 0xae, 0x77, 0x83, 0x83, 0x49, 0xe0, 0x7a, 0x11, 0x0f, 0x50, 0x81, 0x8e,
	0x7e, 0x0a, 0xeb, 0x4c, 0x49, 0x1a, 0x3c, 0x47, 0xc1, 0x45, 0x86, 0xfa, 0xcf, 0x32, 0xd4, 0xf3,
	0x73, 0x72, 0x5f, 0x3e, 0x86, 0x1a, 0x55, 0x4e, 0x67, 0x7a, 0xb3, 0x1f, 0x0c, 0x8c, 0x7e, 0x01,
	0xf3, 0x4c, 0x1f, 0x9d, 0x73, 0xf9, 0xe0, 0xb1, 0x44, 0x8c, 0x01, 0xb8, 0x1c, 0x87, 0xa3, 0xe7,
	0x50, 0xa3, 0xf3, 0x37, 0x2a, 0x34, 0x6c, 0x0f, 0x25, 0x72, 0x84, 0x1f, 0xcf, 0x46, 0xb1, 0xea,
	0x04, 0xea, 0x74, 0x5a, 0xcd, 0xe3, 0x4a, 0xbf, 0x57, 0xc8, 0xf6, 0x40, 0xb1, 0xfc, 0x20, 0xe2,
	0x1a, 0x0e, 0xa7, 0x3d, 0x7c, 0x47, 0xad, 0x5f, 0x34, 0x0b, 0x74, 0xf5, 0x4f, 0x65, 0xd8, 0x2e,
	0x4c, 0xf9, 0x83, 0x22, 0xf6, 0x4b, 0x58, 0xe0, 0x8a, 0x1a, 0x73, 0xd4, 0xf5, 0x37, 0x86, 0x2c,
	0xc6, 0xab, 0x7f, 0x2f, 0x03, 0xa2, 0x4a, 0x2c, 0xf7, 0xc6, 0x73, 0x46, 0xb1, 0xef, 0x4f, 0x60,
	0xb9, 0xe8, 0x76, 0x9a, 0x84, 0x1e, 0x01, 0x58, 0xb7, 0x97, 0xe1, 0x55, 0xe0, 0x5e, 0xe2, 0x21,
	0xf7, 0x35, 0x45, 0x41, 0x75, 0x98, 0xef, 0xf9, 0x91, 0x7b, 0x3d, 0x6d, 0x54, 0x28, 0x8f, 0x8f,
	0x50, 0x13, 0x16, 0x4f, 0x9d, 0x30, 0xb2, 0x30, 0xf6, 0x1a, 0xd5, 0x27, 0xe5, 0xdd, 0x8a, 0x29,
	0xc6, 0x48, 0x85, 0x95, 0xf8, 0xdb, 0xf0, 0x46, 0xd3, 0x46, 0x8d, 0x4a, 0x66, 0x68, 0xea, 0x73,
	0xd8, 0xc8, 0xd8, 0xcb, 0x03, 0xb7, 0x03, 0x4b, 0x2d, 0x7f, 0x3c, 0x76, 0xa3, 0x08, 0xb3, 0xe0,
	0x2d, 0x9a, 0x09, 0x41, 0xfd, 0x6f, 0x19, 0x36, 0x06, 0x21, 0x0e, 0x34, 0x6f, 0x78, 0x1c, 0x38,
	0x93, 0x57, 0x6f, 0xef, 0xe6, 0x87, 0x4c, 0x90, 0x87, 0x8d, 0x89, 0x09, 0x7f, 0x65, 0xac, 0x58,
	0x22, 0x73, 0xd4, 0xf1, 0xb0, 0x31, 0x9f, 0x48, 0xe4, 0x58, 0xe8, 0x00, 0x36, 0x09, 0x39, 0xbb,
	0xfd, 0xf0, 0x90, 0x86, 0x67, 0xd1, 0x94, 0xf2, 0xd0, 0x3e, 0x20, 0x42, 0x4f, 0x9f, 0x71, 0x3c,
	0xe4, 0x01, 0x93, 0x70, 0xd4, 0x7f, 0x54, 0xd8, 0x24, 0x49, 0x04, 0x78, 0xe0, 0x3e, 0x82, 0x2a,
	0xa1, 0xf3, 0x0d, 0x27, 0x3b, 0x33, 0x29, 0x27, 0x29, 0x14, 0x7d, 0x02, 0xf3, 0x3c, 0x3f, 0xcd,
	0xbd, 0x55, 0x7e, 0xe2, 0xe8, 0xf4, 0x36, 0xad, 0xbc, 0xdb, 0x36, 0x4d, 0x8e, 0x76, 0xf5, 0xed,
	0x8f, 0xf6, 0xac, 0xb5, 0xab, 0xfd, 0x3f, 0xd6, 0x6e, 0xe1, 0x9d, 0xd7, 0x6e, 0x71, 0xe6, 0xda,
	0xfd, 0xad, 0x0c, 0x35, 0xfd, 0x1b, 0xcc, 0xd2, 0x8c, 0x71, 0xe7, 0xe1, 0x40, 0x92, 0x92, 0xf2,
	0x74, 0x82, 0xed, 0x07, 0xae, 0x1f, 0x14, 0x93, 0x78, 0x81, 0x8e, 0xf6, 0x61, 0x89, 0x4e, 0x60,
	0x4f, 0x27, 0x98, 0x9e, 0xd7, 0xd5, 0x03, 0x65, 0x9f, 0xdd, 0xcf, 0x82, 0x6e, 0x26, 0x10, 0x72,
	0xda, 0x6c, 0x77, 0x8c, 0xc3, 0xc8, 0x19, 0x4f, 0xf8, 0x29, 0x4e, 0x08, 0xea, 0xbf, 0xcb, 0xb0,
	0xd1, 0xf2, 0xbd, 0x08, 0x7b, 0x11, 0x15, 0xe9, 0x3b, 0xd3, 0x91, 0xef, 0x0c, 0x91, 0xca, 0xdd,
	0xe0, 0x7b, 0x6d, 0x25, 0x3d, 0x83, 0xc9, 0x3d, 0xfc, 0x09, 0x2c, 0xd1, 0x10, 0xb7, 0x9d, 0xc8,
	0xe1, 0xf9, 0xff, 0xde, 0x3e, 0xbf, 0xf3, 0x29, 0xc3, 0x4c, 0xf8, 0x68, 0x1f, 0x80, 0x05, 0x97,
	0xa2, 0x2b, 0x14, 0xbd, 0x1a, 0xa3, 0x19, 0xc7, 0x4c, 0x21, 0xd0, 0x2e, 0x2c, 0x92, 0xd0, 0x52,
	0x74, 0x95, 0xdb, 0xc0, 0xd1, 0x84, 0x6e, 0x0a, 0x2e, 0xfa, 0x00, 0x16, 0x4e, 0xf0, 0x94, 0x02,
	0x6b, 0x14, 0xb8, 0x1c, 0x03, 0x4f, 0xf0, 0xd4, 0x8c, 0x79, 0x6a, 0x1d, 0x36, 0xd3, 0x8e, 0x8a,
	0xdb, 0xfe, 0xbb, 0x0a, 0x20, 0x96, 0xa0, 0xde, 0x39, 0x00, 0x2d, 0x50, 0x98, 0xa4, 0xed, 0x04,
	0x37, 0x98, 0xad, 0xc8, 0x1c, 0x5d, 0x91, 0x6d, 0x0e, 0xcf, 0xb3, 0xcd, 0x82, 0x00, 0xc9, 0x6b,
	0x6c, 0xc4, 0x2e, 0x93, 0x0a, 0xcb, 0x6b, 0x29, 0x12, 0x49, 0xb5, 0x1c, 0xcf, 0xae, 0xda, 0x2a,
	0x85, 0x64, 0x68, 0x09, 0xa6, 0xed, 0x8f, 0x1d, 0xd7, 0xa3, 0x91, 0x10, 0x18, 0x46, 0x4b, 0x30,
	0xfa, 0xb7, 0x13, 0x37, 0x98, 0xd2, 0xa3, 0x52, 0x31, 0x33, 0x34, 0x52, 0x31, 0x75, 0x71, 0xe4,
	0xd0, 0x33, 0xb1, 0x64, 0xd2, 0x6f, 0x5a, 0x63, 0x50, 0x4c, 0x7a, 0x7b, 0x2e, 0xf2, 0x1a, 0x23,
	0xcf, 0x40, 0xbf, 0x81, 0x35, 0xee, 0xe3, 0x74, 0x82, 0x5b, 0x23, 0x27, 0x0c, 0x1b, 0x4b, 0x34,
	0x26, 0xf5, 0x6c, 0x4c, 0x62, 0xae, 0x99, 0x87, 0xa3, 0x8f, 0x00, 0x12, 0x52, 0x03, 0xa8, 0xf0,
	0x7a, 0x41, 0xd8, 0x4c, 0x81, 0xe8, 0x0d, 0xc7, 0x46, 0xf8, 0xdb, 0xa8, 0xb1, 0x4c, 0x6d, 0x4b,
	0x51, 0xd4, 0x2d, 0xd8, 0x48, 0xad, 0xb1, 0x58, 0xfb, 0xff, 0x94, 0x61, 0x67, 0xe0, 0x5d, 0xf1,
	0xac, 0xc4, 0x32, 0xcc, 0xe1, 0x94, 0x6c, 0x1b, 0x7e, 0xe9, 0x7c, 0x0a, 0xc0, 0xa8, 0xd4, 0x94,
	0x32, 0x35, 0xe5, 0x01, 0x37, 0x25, 0x2f, 0xc8, 0x8c, 0x4a, 0xbe, 0xd1, 0x26, 0xd4, 0x4e, 0xdd,
	0xb1, 0x1b, 0x97, 0xb1, 0x6c, 0x40, 0x2e, 0x5b, 0xe3, 0xfa, 0x3a, 0xc4, 0x11, 0x5d, 0xea, 0x9a,
	0xc9, 0x47, 0xd2, 0x7c, 0x51, 0x9d, 0x91, 0x2f, 0x76, 0xf8, 0xc9, 0xeb, 0x39, 0x63, 0xcc, 0x97,
	0x3a, 0x21, 0x90, 0xba, 0xfa, 0x04, 0x4f, 0x29, 0x6f, 0x9e, 0xd5, 0xd5, 0x7c, 0xa8, 0xfe, 0x6b,
	0x0e, 0x1e, 0xce, 0xf0, 0x97, 0x5f, 0x31, 0x3f, 0xc8, 0xe1, 0x0f, 0x72, 0x97, 0x4d, 0x2e, 0x1b,
	0xc4, 0x77, 0xcb, 0x6e, 0xfe, 0x6e, 0xc9, 0xe7, 0x01, 0x71, 0x95, 0xa8, 0xd9, 0xab, 0x24, 0x9b,
	0x01, 0xf8, 0xcd, 0xa1, 0x42, 0xed, 0xcc, 0x8f, 0x70, 0xd8, 0xa8, 0x65, 0x31, 0x84, 0x68, 0x32,
	0x16, 0x7a, 0x0c, 0xd5, 0x13, 0x3c, 0x0d, 0x1b, 0xf3, 0x14, 0x92, 0xc9, 0x0f, 0x94, 0x81, 0x3e,
	0x86, 0x65, 0x3b, 0xb8, 0x0d, 0xa3, 0x30, 0x72, 0x88, 0xaa, 0x05, 0x8a, 0x43, 0xc2, 0x2c, 0xc1,
	0x32, 0xd3, 0x30, 0x75, 0x1b, 0xb6, 0x3a, 0xde, 0xf5, 0xc8, 0xbd, 0x79, 0x15, 0x85, 0xfd, 0xe0,
	0xd6, 0xc3, 0x71, 0xb7, 0xd0, 0x80, 0x7a, 0x9e, 0xc1, 0x77, 0x5c, 0x00, 0x0f, 0x0e, 0x9d, 0xab,
	0xaf, 0xb0, 0x37, 0xd4, 0xc6, 0x97, 0xa4, 0x05, 0xb1, 0x22, 0x27, 0xba, 0x0d, 0xe3, 0xac, 0x63,
	0xc1, 0xa6, 0x8c, 0xcd, 0x93, 0x50, 0xfa, 0x0e, 0x96, 0xc1, 0x4c, 0xa9, 0xb0, 0xfa, 0x08, 0x76,
	0xa4, 0xe8, 0xd8, 0xa6, 0x3a, 0x6c, 0xe6, 0x18, 0xcc, 0x8b, 0x6d, 0xd8, 0x92, 0x0b, 0xac, 0xc3,
	0xda, 0x0b, 0x7f, 0x8c, 0xcf, 0x5c, 0x7c, 0x17, 0x63, 0x11, 0x28, 0x09, 0x89, 0xc3, 0x36, 0x01,
	0xf5, 0xfd, 0xc9, 0xed, 0xc8, 0x09, 0xd2, 0xc8, 0x2d, 0xd8, 0xc8, 0x50, 0x39, 0x58, 0x81, 0xd5,
	0x1e, 0xbe, 0x4b, 0x03, 0xd7, 0x61, 0x4d, 0x50, 0x12, 0x4b, 0x69, 0x69, 0xea, 0x5e, 0x39, 0x91,
	0xeb, 0x7b, 0x69, 0x4b, 0x73, 0x74, 0x2e, 0xf0, 0xc7, 0x32, 0x34, 0x33, 0x1c, 0x96, 0x05, 0xe2,
	0x70, 0x23, 0xa8, 0xd2, 0xe2, 0x96, 0x15, 0xa1, 0xf4, 0x9b, 0xd4, 0x15, 0xa4, 0xcb, 0xec, 0x44,
	0x78, 0x5c, 0xbc, 0x8e, 0x65, 0x2c, 0xf4, 0x14, 0xee, 0x75, 0x9d, 0xe0, 0x2b, 0x6d, 0x34, 0xd2,
	0x42, 0xc2, 0xe7, 0x55, 0x74, 0x96, 0xa8, 0x3e, 0x84, 0x07, 0x12, 0x4b, 0x84, 0xa5, 0x87, 0x50,
	0x37, 0xbc, 0x4b, 0x72, 0x40, 0x48, 0x91, 0x34, 0xc2, 0x51, 0xbc, 0x99, 0xd0, 0x2e, 0xac, 0xe5,
	0x38, 0xdc, 0xde, 0x3c, 0x59, 0xbd, 0x0f, 0xdb, 0x05, 0x1d, 0x5c, 0xfd, 0x67, 0x80, 0x2c, 0xb2,
	0x01, 0x58, 0x83, 0x1d, 0xfb, 0xff, 0x63, 0x58, 0xd0, 0x52, 0x1d, 0xf8, 0xf2, 0xc1, 0x5a, 0xbc,
	0xe5, 0x39, 0xd9, 0x8c, 0xf9, 0xea, 0x39, 0x6c, 0xa4, 0x14, 0x88, 0x7c, 0x41, 0x12, 0x2f, 0xdd,
	0x1c, 0x2d, 0x7f, 0x88, 0x79, 0x9f, 0x9d, 0xa2, 0x90, 0x3b, 0x47, 0x0f, 0x02, 0x3f, 0xe8, 0xe2,
	0x30, 0x74, 0x6e, 0x30, 0x0f, 0x63, 0x86, 0xa6, 0xfe, 0x79, 0x0e, 0xea, 0x47, 0x7a, 0xcb, 0xf7,
	0xae, 0xdd, 0x9b, 0xd6, 0x2b, 0xc7, 0xbb, 0xc1, 0xc2, 0xc0, 0x0f, 0x61, 0xa3, 0xeb, 0x0f, 0xbb,
	0xfe, 0x10, 0xeb, 0x9e, 0x73, 0x39, 0xc2, 0xc3, 0x4e, 0x68, 0xe1, 0x88, 0xfb, 0x2f, 0x63, 0xa1,
	0x1f, 0xc1, 0x6a, 0x96, 0xcc, 0xeb, 0xff, 0x1c, 0x15, 0xbd, 0x80, 0xc7, 0xfa, 0xb7, 0x11, 0x0e,
	0x3c, 0x67, 0xc4, 0xcb, 0x02, 0xed, 0x36, 0xf2, 0xc9, 0xa4, 0x6d, 0x37, 0x64, 0x82, 0x6c, 0x19,
	0xdf, 0x04, 0x43, 0x26, 0x3c, 0x7d, 0x03, 0x84, 0x19, 0xcd, 0x5a, 0x84, 0xb7, 0xc2, 0x92, 0x95,
	0xcc, 0x45, 0x44, 0xac, 0xa4, 0xc6, 0x9b, 0x2a, 0x13, 0x4f, 0xfc, 0xe0, 0x7b, 0x3d, 0x1a, 0xa8,
	0xbf, 0x87, 0xcd, 0xac, 0x0a, 0xbe, 0x98, 0x2f, 0x60, 0x9d, 0x93, 0x6c, 0xe7, 0x52, 0xf7, 0xa2,
	0xc0, 0xc5, 0xf1, 0xbb, 0x46, 0x33, 0x95, 0x7a, 0xb2, 0x98, 0xa9, 0x59, 0x14, 0x52, 0xdb, 0xbc,
	0x53, 0xef, 0xfa, 0x43, 0xed, 0x2a, 0x7d, 0x54, 0xdf, 0xc9, 0xce, 0x11, 0x6f, 0xbe, 0xd3, 0x5a,
	0xb8, 0xa9, 0x2f, 0x61, 0x33, 0xa1, 0x16, 0xac, 0x4d, 0xf7, 0x1c, 0x05, 0xd8, 0xd4, 0x94, 0x8a,
	0xaa, 0x36, 0x34, 0xc9, 0x0e, 0xef, 0xba, 0x5e, 0xc4, 0x1a, 0x29, 0xcf, 0x19, 0x27, 0x3b, 0xf1,
	0x13, 0xa8, 0xe7, 0x38, 0xa6, 0x73, 0xf7, 0xb9, 0x65, 0xf4, 0xb8, 0xf5, 0x33, 0xb8, 0xe4, 0xd8,
	0x4b, 0xb4, 0x8a, 0xd5, 0xfc, 0x1c, 0x36, 0xd9, 0x53, 0xd4, 0x19, 0x0e, 0x42, 0xd7, 0xf7, 0xe2,
	0xe9, 0x0e, 0x60, 0xb3, 0x75, 0x1b, 0x04, 0xd8, 0x8b, 0x32, 0x6c, 0x3e, 0x99, 0x94, 0xa7, 0x1a,
	0xb0, 0x95, 0x21, 0x88, 0x60, 0x7d, 0x02, 0x75, 0xd2, 0x97, 0x9f, 0x78, 0xfe, 0x9d, 0x27, 0x53,
	0x37, 0x83, 0xab, 0xfe, 0x16, 0x36, 0x2d, 0xec, 0x04, 0x57, 0x71, 0x0f, 0x1e, 0x1b, 0x47, 0x0e,
	0x3d, 0xa5, 0x8b, 0x22, 0x81, 0x54, 0x5b, 0x82, 0x42, 0x4a, 0x5a, 0x36, 0x7a, 0x79, 0x8b, 0x83,
	0x29, 0x3f, 0xf3, 0x69, 0x12, 0x49, 0xd8, 0x19, 0xcd, 0xb1, 0xa9, 0x7b, 0x9f, 0xa6, 0xba, 0x1b,
	0x54, 0x07, 0x34, 0xe8, 0x9d, 0xf4, 0x8c, 0x2f, 0x7a, 0x17, 0xfa, 0x99, 0xde, 0xb3, 0x2f, 0xec,
	0xf3, 0xbe, 0xae, 0x94, 0x10, 0xc0, 0x7c, 0xcb, 0xd4, 0x35, 0x5b, 0x57, 0xca, 0xe4, 0x7b, 0xd0,
	0x6f, 0x93, 0xef, 0xb9, 0xbd, 0x4e, 0xb1, 0x1e, 0x47, 0x8f, 0xa0, 0x19, 0xeb, 0xb0, 0x3a, 0xc7,
	0x3d, 0xed, 0xf4, 0xc2, 0xd6, 0xcc, 0x63, 0x5d, 0xe8, 0x5a, 0x86, 0x85, 0x96, 0xd1, 0xb3, 0xf5,
	0x9e, 0xad, 0x94, 0xd1, 0x22, 0x54, 0x07, 0x96, 0x6e, 0x2a, 0x73, 0x7b, 0x7f, 0x2d, 0x17, 0xca,
	0x58, 0xb4, 0x03, 0x8d, 0xbc, 0xaa, 0xf3, 0xbe, 0xde, 0x3a, 0xd5, 0x2c, 0x4b, 0x29, 0x11, 0x63,
	0xb5, 0x76, 0xdb, 0xba, 0xb0, 0x8d, 0x8b, 0x76, 0xc7, 0x6a, 0x0d, 0x2c, 0xab, 0x63, 0xf4, 0x94,
	0x32, 0xa1, 0x1f, 0x19, 0xa7, 0xa7, 0xc6, 0x17, 0xd6, 0xc5, 0xf1, 0xa0, 0xd3, 0xd6, 0x4f, 0x3b,
	0x3d, 0xdd, 0x52, 0xe6, 0xd0, 0x1a, 0x2c, 0x77, 0x8d, 0xf6, 0x85, 0xd6, 0xb2, 0x3b, 0x46, 0xcf,
	0x52, 0x2a, 0x48, 0x81, 0x95, 0xfe, 0xe0, 0xf0, 0xb4, 0xd3, 0xba, 0xb0, 0xcd, 0x81, 0x65, 0x2b,
	0x55, 0xe2, 0x5b, 0x4f, 0xeb, 0x76, 0x7a, 0xc7, 0x4a, 0x8d, 0x98, 0x76, 0xf4, 0xf1, 0xcf, 0x3f,
	0x52, 0xe6, 0x53, 0x38, 0xfd, 0x54, 0x6f, 0xd9, 0xca, 0xc2, 0xde, 0x77, 0xe5, 0x74, 0xc5, 0x8c,
	0xb6, 0x61, 0x43, 0x62, 0x27, 0x8b, 0xdb, 0xa0, 0x7f, 0x66, 0xd0, 0xb8, 0xad, 0xc0, 0x62, 0xdb,
	0xf8, 0xa2, 0x47, 0x47, 0x73, 0x68, 0x1d, 0xee, 0x99, 0x7a, 0xdf, 0x30, 0x6d, 0x62, 0x7e, 0xd7,
	0x68, 0x2b, 0x15, 0x02, 0xe8, 0x1a, 0xed, 0xc3, 0x53, 0xa3, 0x75, 0xa2, 0x54, 0xd1, 0x2a, 0x40,
	0xd7, 0x68, 0x6b, 0xfd, 0xbe, 0x69, 0x9c, 0xe9, 0x4a, 0x0d, 0xdd, 0x83, 0xa5, 0xae, 0xd1, 0xee,
	0x1c, 0xf7, 0x0c, 0x53, 0x57, 0xe6, 0x89, 0x66, 0xe6, 0xa4, 0xb2, 0x80, 0x96, 0xa0, 0xc6, 0xa4,
	0x16, 0x89, 0x8f, 0x3d, 0xad, 0xab, 0x5f, 0x68, 0x16, 0x31, 0x44, 0x59, 0x22, 0xf3, 0xb4, 0xf4,
	0x9e, 0x65, 0x98, 0x31, 0x09, 0x08, 0x9c, 0xf9, 0xb1, 0x4c, 0x26, 0x69, 0x77, 0xac, 0x97, 0x03,
	0xed, 0xb4, 0x73, 0x74, 0xae, 0xac, 0x90, 0xb5, 0x31, 0x75, 0xdb, 0xd4, 0x5a, 0xb6, 0x72, 0x6f,
	0x2f, 0x84, 0x4d, 0x59, 0x01, 0x9a, 0xf6, 0x56, 0xef, 0xd9, 0x1d, 0xfb, 0x3c, 0xf6, 0x96, 0xd8,
	0x61, 0x68, 0x66, 0x9b, 0x6d, 0x12, 0xfb, 0x85, 0xa9, 0x6b, 0x6d, 0x65, 0x8e, 0x04, 0xb2, 0x6f,
	0x58, 0xb6, 0x52, 0x21, 0x5f, 0xd4, 0xfd, 0x2a, 0x5a, 0x80, 0xca, 0x89, 0x7e, 0xae, 0xd4, 0x88,
	0x05, 0x34, 0xf8, 0x96, 0x4d, 0x76, 0xd4, 0xfc, 0xc1, 0x5f, 0xd6, 0x61, 0xf9, 0x28, 0xa0, 0x99,
	0x7a, 0xa8, 0xf5, 0x3b, 0xe8, 0x06, 0xea, 0xf2, 0xc7, 0x63, 0xf4, 0x34, 0x6e, 0x50, 0x5e, 0xf7,
	0x20, 0xdd, 0xfc, 0xe0, 0x0d, 0x28, 0x9e, 0x15, 0x4a, 0xc8, 0x84, 0xf5, 0xe3, 0xb8, 0xb9, 0x8b,
	0xdf, 0x6a, 0xd1, 0x0e, 0x97, 0x96, 0x3e, 0x1b, 0x37, 0x1f, 0xce, 0xe0, 0x0a, 0x9d, 0x03, 0x40,
	0xc7, 0xbc, 0xa7, 0x4c, 0x9e, 0x33, 0x51, 0x2c, 0x26, 0x7f, 0x59, 0x6d, 0x3e, 0x9a, 0xc5, 0x16,
	0x6a, 0x5b, 0xb0, 0x72, 0x8c, 0x23, 0xf1, 0xae, 0x8d, 0xe2, 0xde, 0x37, 0xff, 0x86, 0xde, 0x6c,
	0x14, 0x19, 0x42, 0x49, 0x07, 0x56, 0x2d, 0x6e, 0x1b, 0xdb, 0xc9, 0xe8, 0x7e, 0x7a, 0xe2, 0xcc,
	0x8b, 0x67, 0xb3, 0x29, 0x63, 0x09, 0x55, 0xa7, 0xb0, 0x76, 0x8c, 0xa3, 0xf4, 0x03, 0x1a, 0x8a,
	0x05, 0x24, 0xef, 0x8a, 0xcd, 0x07, 0x52, 0x9e, 0xd0, 0xd6, 0x05, 0x85, 0xe4, 0xef, 0xf4, 0xd3,
	0x81, 0x50, 0x27, 0x79, 0x38, 0x11, 0xea, 0xa4, 0x6f, 0x0d, 0x25, 0xf4, 0x39, 0xac, 0x11, 0x75,
	0xa9, 0x66, 0x54, 0x38, 0x5a, 0x7c, 0x84, 0x10, 0x8e, 0xca, 0x7a, 0xd7, 0x12, 0xba, 0x81, 0x06,
	0x71, 0x54, 0xd6, 0xcf, 0xa1, 0xf7, 0x67, 0xf4, 0x6c, 0xe9, 0xee, 0xb6, 0xf9, 0xf4, 0xf5, 0x20,
	0x31, 0xd1, 0x97, 0x70, 0x9f, 0x18, 0x2d, 0xed, 0x75, 0xc4, 0xa6, 0x94, 0x72, 0xc5, 0xa6, 0x9c,
	0xd1, 0x0e, 0x95, 0x48, 0xc7, 0xc3, 0xb1, 0x99, 0x5e, 0x03, 0xc5, 0x71, 0x94, 0x75, 0x26, 0xcd,
	0x1d, 0x39, 0x53, 0x28, 0x6d, 0xc3, 0x1a, 0x87, 0xc6, 0x4d, 0x09, 0x8a, 0x5f, 0x1f, 0x72, 0x8d,
	0x4b, 0x73, 0xbb, 0x40, 0x4f, 0x2d, 0x3d, 0x8a, 0x2f, 0xbe, 0xa4, 0x61, 0x11, 0xcb, 0x55, 0x6c,
	0x6d, 0xc4, 0x72, 0xc9, 0xfa, 0x9b, 0x12, 0xd2, 0x60, 0x95, 0x03, 0x79, 0x5b, 0x83, 0xb6, 0x38,
	0x3e, 0xdb, 0xf8, 0x34, 0xeb, 0x79, 0xb2, 0x24, 0x58, 0x99, 0x56, 0x42, 0x04, 0x4b, 0xd6, 0x1c,
	0x89, 0x60, 0xc9, 0x3b, 0xa4, 0x12, 0x72, 0x68, 0x4e, 0x93, 0xf4, 0x26, 0xe8, 0x3d, 0x99, 0x64,
	0xa6, 0x83, 0x6a, 0xaa, 0xb3, 0x21, 0xd9, 0xcc, 0x63, 0xe1, 0x28, 0xd7, 0x9b, 0x88, 0xcc, 0x23,
	0xef, 0x7b, 0x44, 0xe6, 0x99, 0xd5, 0xd2, 0x94, 0xd0, 0x11, 0xa9, 0x33, 0x44, 0x4f, 0x92, 0x1c,
	0xa4, 0x42, 0xa3, 0x93, 0x1c, 0xa4, 0x62, 0x0b, 0xa3, 0x96, 0xd0, 0x19, 0xeb, 0x6d, 0x72, 0x15,
	0xb7, 0xb0, 0x4f, 0xde, 0x9b, 0x08, 0xfb, 0x66, 0x15, 0xea, 0x25, 0xd4, 0x27, 0xad, 0x24, 0x75,
	0x26, 0x5d, 0x6e, 0xa3, 0x4c, 0xfa, 0xca, 0x96, 0xf1, 0x22, 0x7d, 0xc8, 0xea, 0x73, 0xb5, 0x84,
	0xce, 0xa1, 0x9e, 0xd6, 0x98, 0xd4, 0xb1, 0xd9, 0x34, 0x5e, 0x28, 0xbb, 0xb3, 0x69, 0xbc, 0x58,
	0x4f, 0xab, 0x25, 0xf4, 0x3b, 0x16, 0x84, 0x5c, 0xa1, 0x2a, 0xf6, 0xc0, 0xec, 0xd2, 0x58, 0xec,
	0x81, 0xd7, 0xd5, 0xb9, 0x24, 0x18, 0xeb, 0x34, 0x91, 0xa6, 0x2b, 0x4c, 0xb1, 0x71, 0x65, 0x35,
	0xb0, 0xd8, 0xb8, 0xd2, 0xa2, 0x36, 0xd1, 0x98, 0x29, 0x24, 0x85, 0x46, 0x59, 0xe1, 0x2a, 0x34,
	0x4a, 0x6b, 0x4f, 0xb5, 0x84, 0x3e, 0x83, 0x15, 0xfe, 0x52, 0x42, 0x7f, 0x68, 0x16, 0x07, 0x34,
	0xfb, 0xc3, 0xb5, 0x38, 0xa0, 0xf9, 0xdf, 0xa3, 0x4b, 0x08, 0x43, 0x83, 0x98, 0x24, 0x7b, 0x6e,
	0x41, 0x71, 0x98, 0x5e, 0xf3, 0xfe, 0xd3, 0x7c, 0xff, 0x35, 0x98, 0x64, 0x9a, 0xc3, 0xf7, 0xbe,
	0x7c, 0xec, 0xe0, 0xe8, 0x15, 0x0e, 0x7e, 0x76, 0xe5, 0x07, 0xf8, 0x19, 0xfb, 0x7e, 0x46, 0x7f,
	0x67, 0x0f, 0xd9, 0x6f, 0xf5, 0x97, 0xf3, 0x74, 0xf4, 0xfc, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff,
	0x4b, 0x32, 0x45, 0x58, 0xc1, 0x1f, 0x00, 0x00,
}
