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

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.26.0
// 	protoc        v3.12.2
// source: google/cloud/documentai/v1beta1/document.proto

package documentai

import (
	reflect "reflect"
	sync "sync"

	_ "google.golang.org/genproto/googleapis/api/annotations"
	status "google.golang.org/genproto/googleapis/rpc/status"
	color "google.golang.org/genproto/googleapis/type/color"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)

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

// Detected human reading orientation.
type Document_Page_Layout_Orientation int32

const (
	// Unspecified orientation.
	Document_Page_Layout_ORIENTATION_UNSPECIFIED Document_Page_Layout_Orientation = 0
	// Orientation is aligned with page up.
	Document_Page_Layout_PAGE_UP Document_Page_Layout_Orientation = 1
	// Orientation is aligned with page right.
	// Turn the head 90 degrees clockwise from upright to read.
	Document_Page_Layout_PAGE_RIGHT Document_Page_Layout_Orientation = 2
	// Orientation is aligned with page down.
	// Turn the head 180 degrees from upright to read.
	Document_Page_Layout_PAGE_DOWN Document_Page_Layout_Orientation = 3
	// Orientation is aligned with page left.
	// Turn the head 90 degrees counterclockwise from upright to read.
	Document_Page_Layout_PAGE_LEFT Document_Page_Layout_Orientation = 4
)

// Enum value maps for Document_Page_Layout_Orientation.
var (
	Document_Page_Layout_Orientation_name = map[int32]string{
		0: "ORIENTATION_UNSPECIFIED",
		1: "PAGE_UP",
		2: "PAGE_RIGHT",
		3: "PAGE_DOWN",
		4: "PAGE_LEFT",
	}
	Document_Page_Layout_Orientation_value = map[string]int32{
		"ORIENTATION_UNSPECIFIED": 0,
		"PAGE_UP":                 1,
		"PAGE_RIGHT":              2,
		"PAGE_DOWN":               3,
		"PAGE_LEFT":               4,
	}
)

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

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

func (Document_Page_Layout_Orientation) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_documentai_v1beta1_document_proto_enumTypes[0].Descriptor()
}

func (Document_Page_Layout_Orientation) Type() protoreflect.EnumType {
	return &file_google_cloud_documentai_v1beta1_document_proto_enumTypes[0]
}

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

// Deprecated: Use Document_Page_Layout_Orientation.Descriptor instead.
func (Document_Page_Layout_Orientation) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 2, 1, 0}
}

// Enum to denote the type of break found.
type Document_Page_Token_DetectedBreak_Type int32

const (
	// Unspecified break type.
	Document_Page_Token_DetectedBreak_TYPE_UNSPECIFIED Document_Page_Token_DetectedBreak_Type = 0
	// A single whitespace.
	Document_Page_Token_DetectedBreak_SPACE Document_Page_Token_DetectedBreak_Type = 1
	// A wider whitespace.
	Document_Page_Token_DetectedBreak_WIDE_SPACE Document_Page_Token_DetectedBreak_Type = 2
	// A hyphen that indicates that a token has been split across lines.
	Document_Page_Token_DetectedBreak_HYPHEN Document_Page_Token_DetectedBreak_Type = 3
)

// Enum value maps for Document_Page_Token_DetectedBreak_Type.
var (
	Document_Page_Token_DetectedBreak_Type_name = map[int32]string{
		0: "TYPE_UNSPECIFIED",
		1: "SPACE",
		2: "WIDE_SPACE",
		3: "HYPHEN",
	}
	Document_Page_Token_DetectedBreak_Type_value = map[string]int32{
		"TYPE_UNSPECIFIED": 0,
		"SPACE":            1,
		"WIDE_SPACE":       2,
		"HYPHEN":           3,
	}
)

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

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

func (Document_Page_Token_DetectedBreak_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_documentai_v1beta1_document_proto_enumTypes[1].Descriptor()
}

func (Document_Page_Token_DetectedBreak_Type) Type() protoreflect.EnumType {
	return &file_google_cloud_documentai_v1beta1_document_proto_enumTypes[1]
}

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

// Deprecated: Use Document_Page_Token_DetectedBreak_Type.Descriptor instead.
func (Document_Page_Token_DetectedBreak_Type) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 2, 5, 0, 0}
}

// Document represents the canonical document resource in Document Understanding
// AI.
// It is an interchange format that provides insights into documents and allows
// for collaboration between users and Document Understanding AI to iterate and
// optimize for quality.
type Document struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Original source document from the user.
	//
	// Types that are assignable to Source:
	//
	//	*Document_Uri
	//	*Document_Content
	Source isDocument_Source `protobuf_oneof:"source"`
	// An IANA published MIME type (also referred to as media type). For more
	// information, see
	// https://www.iana.org/assignments/media-types/media-types.xhtml.
	MimeType string `protobuf:"bytes,3,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"`
	// UTF-8 encoded text in reading order from the document.
	Text string `protobuf:"bytes,4,opt,name=text,proto3" json:"text,omitempty"`
	// Styles for the
	// [Document.text][google.cloud.documentai.v1beta1.Document.text].
	TextStyles []*Document_Style `protobuf:"bytes,5,rep,name=text_styles,json=textStyles,proto3" json:"text_styles,omitempty"`
	// Visual page layout for the
	// [Document][google.cloud.documentai.v1beta1.Document].
	Pages []*Document_Page `protobuf:"bytes,6,rep,name=pages,proto3" json:"pages,omitempty"`
	// A list of entities detected on
	// [Document.text][google.cloud.documentai.v1beta1.Document.text]. For
	// document shards, entities in this list may cross shard boundaries.
	Entities []*Document_Entity `protobuf:"bytes,7,rep,name=entities,proto3" json:"entities,omitempty"`
	// Relationship among
	// [Document.entities][google.cloud.documentai.v1beta1.Document.entities].
	EntityRelations []*Document_EntityRelation `protobuf:"bytes,8,rep,name=entity_relations,json=entityRelations,proto3" json:"entity_relations,omitempty"`
	// Information about the sharding if this document is sharded part of a larger
	// document. If the document is not sharded, this message is not specified.
	ShardInfo *Document_ShardInfo `protobuf:"bytes,9,opt,name=shard_info,json=shardInfo,proto3" json:"shard_info,omitempty"`
	// Any error that occurred while processing this document.
	Error *status.Status `protobuf:"bytes,10,opt,name=error,proto3" json:"error,omitempty"`
}

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

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

func (*Document) ProtoMessage() {}

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

// Deprecated: Use Document.ProtoReflect.Descriptor instead.
func (*Document) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0}
}

func (m *Document) GetSource() isDocument_Source {
	if m != nil {
		return m.Source
	}
	return nil
}

func (x *Document) GetUri() string {
	if x, ok := x.GetSource().(*Document_Uri); ok {
		return x.Uri
	}
	return ""
}

func (x *Document) GetContent() []byte {
	if x, ok := x.GetSource().(*Document_Content); ok {
		return x.Content
	}
	return nil
}

func (x *Document) GetMimeType() string {
	if x != nil {
		return x.MimeType
	}
	return ""
}

func (x *Document) GetText() string {
	if x != nil {
		return x.Text
	}
	return ""
}

func (x *Document) GetTextStyles() []*Document_Style {
	if x != nil {
		return x.TextStyles
	}
	return nil
}

func (x *Document) GetPages() []*Document_Page {
	if x != nil {
		return x.Pages
	}
	return nil
}

func (x *Document) GetEntities() []*Document_Entity {
	if x != nil {
		return x.Entities
	}
	return nil
}

func (x *Document) GetEntityRelations() []*Document_EntityRelation {
	if x != nil {
		return x.EntityRelations
	}
	return nil
}

func (x *Document) GetShardInfo() *Document_ShardInfo {
	if x != nil {
		return x.ShardInfo
	}
	return nil
}

func (x *Document) GetError() *status.Status {
	if x != nil {
		return x.Error
	}
	return nil
}

type isDocument_Source interface {
	isDocument_Source()
}

type Document_Uri struct {
	// Currently supports Google Cloud Storage URI of the form
	//
	//	`gs://bucket_name/object_name`. Object versioning is not supported.
	//	See [Google Cloud Storage Request
	//	URIs](https://cloud.google.com/storage/docs/reference-uris) for more
	//	info.
	Uri string `protobuf:"bytes,1,opt,name=uri,proto3,oneof"`
}

type Document_Content struct {
	// Inline document content, represented as a stream of bytes.
	// Note: As with all `bytes` fields, protobuffers use a pure binary
	// representation, whereas JSON representations use base64.
	Content []byte `protobuf:"bytes,2,opt,name=content,proto3,oneof"`
}

func (*Document_Uri) isDocument_Source() {}

func (*Document_Content) isDocument_Source() {}

// For a large document, sharding may be performed to produce several
// document shards. Each document shard contains this field to detail which
// shard it is.
type Document_ShardInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The 0-based index of this shard.
	ShardIndex int64 `protobuf:"varint,1,opt,name=shard_index,json=shardIndex,proto3" json:"shard_index,omitempty"`
	// Total number of shards.
	ShardCount int64 `protobuf:"varint,2,opt,name=shard_count,json=shardCount,proto3" json:"shard_count,omitempty"`
	// The index of the first character in
	// [Document.text][google.cloud.documentai.v1beta1.Document.text] in the
	// overall document global text.
	TextOffset int64 `protobuf:"varint,3,opt,name=text_offset,json=textOffset,proto3" json:"text_offset,omitempty"`
}

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

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

func (*Document_ShardInfo) ProtoMessage() {}

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

// Deprecated: Use Document_ShardInfo.ProtoReflect.Descriptor instead.
func (*Document_ShardInfo) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 0}
}

func (x *Document_ShardInfo) GetShardIndex() int64 {
	if x != nil {
		return x.ShardIndex
	}
	return 0
}

func (x *Document_ShardInfo) GetShardCount() int64 {
	if x != nil {
		return x.ShardCount
	}
	return 0
}

func (x *Document_ShardInfo) GetTextOffset() int64 {
	if x != nil {
		return x.TextOffset
	}
	return 0
}

// Annotation for common text style attributes. This adheres to CSS
// conventions as much as possible.
type Document_Style struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Text anchor indexing into the
	// [Document.text][google.cloud.documentai.v1beta1.Document.text].
	TextAnchor *Document_TextAnchor `protobuf:"bytes,1,opt,name=text_anchor,json=textAnchor,proto3" json:"text_anchor,omitempty"`
	// Text color.
	Color *color.Color `protobuf:"bytes,2,opt,name=color,proto3" json:"color,omitempty"`
	// Text background color.
	BackgroundColor *color.Color `protobuf:"bytes,3,opt,name=background_color,json=backgroundColor,proto3" json:"background_color,omitempty"`
	// Font weight. Possible values are normal, bold, bolder, and lighter.
	// https://www.w3schools.com/cssref/pr_font_weight.asp
	FontWeight string `protobuf:"bytes,4,opt,name=font_weight,json=fontWeight,proto3" json:"font_weight,omitempty"`
	// Text style. Possible values are normal, italic, and oblique.
	// https://www.w3schools.com/cssref/pr_font_font-style.asp
	TextStyle string `protobuf:"bytes,5,opt,name=text_style,json=textStyle,proto3" json:"text_style,omitempty"`
	// Text decoration. Follows CSS standard.
	// <text-decoration-line> <text-decoration-color> <text-decoration-style>
	// https://www.w3schools.com/cssref/pr_text_text-decoration.asp
	TextDecoration string `protobuf:"bytes,6,opt,name=text_decoration,json=textDecoration,proto3" json:"text_decoration,omitempty"`
	// Font size.
	FontSize *Document_Style_FontSize `protobuf:"bytes,7,opt,name=font_size,json=fontSize,proto3" json:"font_size,omitempty"`
}

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

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

func (*Document_Style) ProtoMessage() {}

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

// Deprecated: Use Document_Style.ProtoReflect.Descriptor instead.
func (*Document_Style) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 1}
}

func (x *Document_Style) GetTextAnchor() *Document_TextAnchor {
	if x != nil {
		return x.TextAnchor
	}
	return nil
}

func (x *Document_Style) GetColor() *color.Color {
	if x != nil {
		return x.Color
	}
	return nil
}

func (x *Document_Style) GetBackgroundColor() *color.Color {
	if x != nil {
		return x.BackgroundColor
	}
	return nil
}

func (x *Document_Style) GetFontWeight() string {
	if x != nil {
		return x.FontWeight
	}
	return ""
}

func (x *Document_Style) GetTextStyle() string {
	if x != nil {
		return x.TextStyle
	}
	return ""
}

func (x *Document_Style) GetTextDecoration() string {
	if x != nil {
		return x.TextDecoration
	}
	return ""
}

func (x *Document_Style) GetFontSize() *Document_Style_FontSize {
	if x != nil {
		return x.FontSize
	}
	return nil
}

// A page in a [Document][google.cloud.documentai.v1beta1.Document].
type Document_Page struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// 1-based index for current
	// [Page][google.cloud.documentai.v1beta1.Document.Page] in a parent
	// [Document][google.cloud.documentai.v1beta1.Document]. Useful when a page
	// is taken out of a [Document][google.cloud.documentai.v1beta1.Document]
	// for individual processing.
	PageNumber int32 `protobuf:"varint,1,opt,name=page_number,json=pageNumber,proto3" json:"page_number,omitempty"`
	// Physical dimension of the page.
	Dimension *Document_Page_Dimension `protobuf:"bytes,2,opt,name=dimension,proto3" json:"dimension,omitempty"`
	// [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for the
	// page.
	Layout *Document_Page_Layout `protobuf:"bytes,3,opt,name=layout,proto3" json:"layout,omitempty"`
	// A list of detected languages together with confidence.
	DetectedLanguages []*Document_Page_DetectedLanguage `protobuf:"bytes,4,rep,name=detected_languages,json=detectedLanguages,proto3" json:"detected_languages,omitempty"`
	// A list of visually detected text blocks on the page.
	// A block has a set of lines (collected into paragraphs) that have a common
	// line-spacing and orientation.
	Blocks []*Document_Page_Block `protobuf:"bytes,5,rep,name=blocks,proto3" json:"blocks,omitempty"`
	// A list of visually detected text paragraphs on the page.
	// A collection of lines that a human would perceive as a paragraph.
	Paragraphs []*Document_Page_Paragraph `protobuf:"bytes,6,rep,name=paragraphs,proto3" json:"paragraphs,omitempty"`
	// A list of visually detected text lines on the page.
	// A collection of tokens that a human would perceive as a line.
	Lines []*Document_Page_Line `protobuf:"bytes,7,rep,name=lines,proto3" json:"lines,omitempty"`
	// A list of visually detected tokens on the page.
	Tokens []*Document_Page_Token `protobuf:"bytes,8,rep,name=tokens,proto3" json:"tokens,omitempty"`
	// A list of detected non-text visual elements e.g. checkbox,
	// signature etc. on the page.
	VisualElements []*Document_Page_VisualElement `protobuf:"bytes,9,rep,name=visual_elements,json=visualElements,proto3" json:"visual_elements,omitempty"`
	// A list of visually detected tables on the page.
	Tables []*Document_Page_Table `protobuf:"bytes,10,rep,name=tables,proto3" json:"tables,omitempty"`
	// A list of visually detected form fields on the page.
	FormFields []*Document_Page_FormField `protobuf:"bytes,11,rep,name=form_fields,json=formFields,proto3" json:"form_fields,omitempty"`
}

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

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

func (*Document_Page) ProtoMessage() {}

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

// Deprecated: Use Document_Page.ProtoReflect.Descriptor instead.
func (*Document_Page) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 2}
}

func (x *Document_Page) GetPageNumber() int32 {
	if x != nil {
		return x.PageNumber
	}
	return 0
}

func (x *Document_Page) GetDimension() *Document_Page_Dimension {
	if x != nil {
		return x.Dimension
	}
	return nil
}

func (x *Document_Page) GetLayout() *Document_Page_Layout {
	if x != nil {
		return x.Layout
	}
	return nil
}

func (x *Document_Page) GetDetectedLanguages() []*Document_Page_DetectedLanguage {
	if x != nil {
		return x.DetectedLanguages
	}
	return nil
}

func (x *Document_Page) GetBlocks() []*Document_Page_Block {
	if x != nil {
		return x.Blocks
	}
	return nil
}

func (x *Document_Page) GetParagraphs() []*Document_Page_Paragraph {
	if x != nil {
		return x.Paragraphs
	}
	return nil
}

func (x *Document_Page) GetLines() []*Document_Page_Line {
	if x != nil {
		return x.Lines
	}
	return nil
}

func (x *Document_Page) GetTokens() []*Document_Page_Token {
	if x != nil {
		return x.Tokens
	}
	return nil
}

func (x *Document_Page) GetVisualElements() []*Document_Page_VisualElement {
	if x != nil {
		return x.VisualElements
	}
	return nil
}

func (x *Document_Page) GetTables() []*Document_Page_Table {
	if x != nil {
		return x.Tables
	}
	return nil
}

func (x *Document_Page) GetFormFields() []*Document_Page_FormField {
	if x != nil {
		return x.FormFields
	}
	return nil
}

// A phrase in the text that is a known entity type, such as a person, an
// organization, or location.
type Document_Entity struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Provenance of the entity.
	// Text anchor indexing into the
	// [Document.text][google.cloud.documentai.v1beta1.Document.text].
	TextAnchor *Document_TextAnchor `protobuf:"bytes,1,opt,name=text_anchor,json=textAnchor,proto3" json:"text_anchor,omitempty"`
	// Required. Entity type from a schema e.g. `Address`.
	Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	// Text value in the document e.g. `1600 Amphitheatre Pkwy`.
	MentionText string `protobuf:"bytes,3,opt,name=mention_text,json=mentionText,proto3" json:"mention_text,omitempty"`
	// Canonical mention name. This will be a unique value in the entity list
	// for this document.
	MentionId string `protobuf:"bytes,4,opt,name=mention_id,json=mentionId,proto3" json:"mention_id,omitempty"`
}

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

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

func (*Document_Entity) ProtoMessage() {}

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

// Deprecated: Use Document_Entity.ProtoReflect.Descriptor instead.
func (*Document_Entity) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 3}
}

func (x *Document_Entity) GetTextAnchor() *Document_TextAnchor {
	if x != nil {
		return x.TextAnchor
	}
	return nil
}

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

func (x *Document_Entity) GetMentionText() string {
	if x != nil {
		return x.MentionText
	}
	return ""
}

func (x *Document_Entity) GetMentionId() string {
	if x != nil {
		return x.MentionId
	}
	return ""
}

// Relationship between
// [Entities][google.cloud.documentai.v1beta1.Document.Entity].
type Document_EntityRelation struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Subject entity mention_id.
	SubjectId string `protobuf:"bytes,1,opt,name=subject_id,json=subjectId,proto3" json:"subject_id,omitempty"`
	// Object entity mention_id.
	ObjectId string `protobuf:"bytes,2,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"`
	// Relationship description.
	Relation string `protobuf:"bytes,3,opt,name=relation,proto3" json:"relation,omitempty"`
}

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

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

func (*Document_EntityRelation) ProtoMessage() {}

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

// Deprecated: Use Document_EntityRelation.ProtoReflect.Descriptor instead.
func (*Document_EntityRelation) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 4}
}

func (x *Document_EntityRelation) GetSubjectId() string {
	if x != nil {
		return x.SubjectId
	}
	return ""
}

func (x *Document_EntityRelation) GetObjectId() string {
	if x != nil {
		return x.ObjectId
	}
	return ""
}

func (x *Document_EntityRelation) GetRelation() string {
	if x != nil {
		return x.Relation
	}
	return ""
}

// Text reference indexing into the
// [Document.text][google.cloud.documentai.v1beta1.Document.text].
type Document_TextAnchor struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The text segments from the
	// [Document.text][google.cloud.documentai.v1beta1.Document.text].
	TextSegments []*Document_TextAnchor_TextSegment `protobuf:"bytes,1,rep,name=text_segments,json=textSegments,proto3" json:"text_segments,omitempty"`
}

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

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

func (*Document_TextAnchor) ProtoMessage() {}

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

// Deprecated: Use Document_TextAnchor.ProtoReflect.Descriptor instead.
func (*Document_TextAnchor) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 5}
}

func (x *Document_TextAnchor) GetTextSegments() []*Document_TextAnchor_TextSegment {
	if x != nil {
		return x.TextSegments
	}
	return nil
}

// Font size with unit.
type Document_Style_FontSize struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Font size for the text.
	Size float32 `protobuf:"fixed32,1,opt,name=size,proto3" json:"size,omitempty"`
	// Unit for the font size. Follows CSS naming (in, px, pt, etc.).
	Unit string `protobuf:"bytes,2,opt,name=unit,proto3" json:"unit,omitempty"`
}

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

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

func (*Document_Style_FontSize) ProtoMessage() {}

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

// Deprecated: Use Document_Style_FontSize.ProtoReflect.Descriptor instead.
func (*Document_Style_FontSize) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 1, 0}
}

func (x *Document_Style_FontSize) GetSize() float32 {
	if x != nil {
		return x.Size
	}
	return 0
}

func (x *Document_Style_FontSize) GetUnit() string {
	if x != nil {
		return x.Unit
	}
	return ""
}

// Dimension for the page.
type Document_Page_Dimension struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Page width.
	Width float32 `protobuf:"fixed32,1,opt,name=width,proto3" json:"width,omitempty"`
	// Page height.
	Height float32 `protobuf:"fixed32,2,opt,name=height,proto3" json:"height,omitempty"`
	// Dimension unit.
	Unit string `protobuf:"bytes,3,opt,name=unit,proto3" json:"unit,omitempty"`
}

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

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

func (*Document_Page_Dimension) ProtoMessage() {}

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

// Deprecated: Use Document_Page_Dimension.ProtoReflect.Descriptor instead.
func (*Document_Page_Dimension) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 2, 0}
}

func (x *Document_Page_Dimension) GetWidth() float32 {
	if x != nil {
		return x.Width
	}
	return 0
}

func (x *Document_Page_Dimension) GetHeight() float32 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *Document_Page_Dimension) GetUnit() string {
	if x != nil {
		return x.Unit
	}
	return ""
}

// Visual element describing a layout unit on a page.
type Document_Page_Layout struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Text anchor indexing into the
	// [Document.text][google.cloud.documentai.v1beta1.Document.text].
	TextAnchor *Document_TextAnchor `protobuf:"bytes,1,opt,name=text_anchor,json=textAnchor,proto3" json:"text_anchor,omitempty"`
	// Confidence of the current
	// [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] within
	// context of the object this layout is for. e.g. confidence can be for a
	// single token, a table, a visual element, etc. depending on context.
	// Range [0, 1].
	Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
	// The bounding polygon for the
	// [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout].
	BoundingPoly *BoundingPoly `protobuf:"bytes,3,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
	// Detected orientation for the
	// [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout].
	Orientation Document_Page_Layout_Orientation `protobuf:"varint,4,opt,name=orientation,proto3,enum=google.cloud.documentai.v1beta1.Document_Page_Layout_Orientation" json:"orientation,omitempty"`
}

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

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

func (*Document_Page_Layout) ProtoMessage() {}

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

// Deprecated: Use Document_Page_Layout.ProtoReflect.Descriptor instead.
func (*Document_Page_Layout) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 2, 1}
}

func (x *Document_Page_Layout) GetTextAnchor() *Document_TextAnchor {
	if x != nil {
		return x.TextAnchor
	}
	return nil
}

func (x *Document_Page_Layout) GetConfidence() float32 {
	if x != nil {
		return x.Confidence
	}
	return 0
}

func (x *Document_Page_Layout) GetBoundingPoly() *BoundingPoly {
	if x != nil {
		return x.BoundingPoly
	}
	return nil
}

func (x *Document_Page_Layout) GetOrientation() Document_Page_Layout_Orientation {
	if x != nil {
		return x.Orientation
	}
	return Document_Page_Layout_ORIENTATION_UNSPECIFIED
}

// A block has a set of lines (collected into paragraphs) that have a
// common line-spacing and orientation.
type Document_Page_Block struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for
	// [Block][google.cloud.documentai.v1beta1.Document.Page.Block].
	Layout *Document_Page_Layout `protobuf:"bytes,1,opt,name=layout,proto3" json:"layout,omitempty"`
	// A list of detected languages together with confidence.
	DetectedLanguages []*Document_Page_DetectedLanguage `protobuf:"bytes,2,rep,name=detected_languages,json=detectedLanguages,proto3" json:"detected_languages,omitempty"`
}

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

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

func (*Document_Page_Block) ProtoMessage() {}

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

// Deprecated: Use Document_Page_Block.ProtoReflect.Descriptor instead.
func (*Document_Page_Block) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 2, 2}
}

func (x *Document_Page_Block) GetLayout() *Document_Page_Layout {
	if x != nil {
		return x.Layout
	}
	return nil
}

func (x *Document_Page_Block) GetDetectedLanguages() []*Document_Page_DetectedLanguage {
	if x != nil {
		return x.DetectedLanguages
	}
	return nil
}

// A collection of lines that a human would perceive as a paragraph.
type Document_Page_Paragraph struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for
	// [Paragraph][google.cloud.documentai.v1beta1.Document.Page.Paragraph].
	Layout *Document_Page_Layout `protobuf:"bytes,1,opt,name=layout,proto3" json:"layout,omitempty"`
	// A list of detected languages together with confidence.
	DetectedLanguages []*Document_Page_DetectedLanguage `protobuf:"bytes,2,rep,name=detected_languages,json=detectedLanguages,proto3" json:"detected_languages,omitempty"`
}

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

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

func (*Document_Page_Paragraph) ProtoMessage() {}

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

// Deprecated: Use Document_Page_Paragraph.ProtoReflect.Descriptor instead.
func (*Document_Page_Paragraph) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 2, 3}
}

func (x *Document_Page_Paragraph) GetLayout() *Document_Page_Layout {
	if x != nil {
		return x.Layout
	}
	return nil
}

func (x *Document_Page_Paragraph) GetDetectedLanguages() []*Document_Page_DetectedLanguage {
	if x != nil {
		return x.DetectedLanguages
	}
	return nil
}

// A collection of tokens that a human would perceive as a line.
// Does not cross column boundaries, can be horizontal, vertical, etc.
type Document_Page_Line struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for
	// [Line][google.cloud.documentai.v1beta1.Document.Page.Line].
	Layout *Document_Page_Layout `protobuf:"bytes,1,opt,name=layout,proto3" json:"layout,omitempty"`
	// A list of detected languages together with confidence.
	DetectedLanguages []*Document_Page_DetectedLanguage `protobuf:"bytes,2,rep,name=detected_languages,json=detectedLanguages,proto3" json:"detected_languages,omitempty"`
}

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

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

func (*Document_Page_Line) ProtoMessage() {}

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

// Deprecated: Use Document_Page_Line.ProtoReflect.Descriptor instead.
func (*Document_Page_Line) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 2, 4}
}

func (x *Document_Page_Line) GetLayout() *Document_Page_Layout {
	if x != nil {
		return x.Layout
	}
	return nil
}

func (x *Document_Page_Line) GetDetectedLanguages() []*Document_Page_DetectedLanguage {
	if x != nil {
		return x.DetectedLanguages
	}
	return nil
}

// A detected token.
type Document_Page_Token struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for
	// [Token][google.cloud.documentai.v1beta1.Document.Page.Token].
	Layout *Document_Page_Layout `protobuf:"bytes,1,opt,name=layout,proto3" json:"layout,omitempty"`
	// Detected break at the end of a
	// [Token][google.cloud.documentai.v1beta1.Document.Page.Token].
	DetectedBreak *Document_Page_Token_DetectedBreak `protobuf:"bytes,2,opt,name=detected_break,json=detectedBreak,proto3" json:"detected_break,omitempty"`
	// A list of detected languages together with confidence.
	DetectedLanguages []*Document_Page_DetectedLanguage `protobuf:"bytes,3,rep,name=detected_languages,json=detectedLanguages,proto3" json:"detected_languages,omitempty"`
}

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

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

func (*Document_Page_Token) ProtoMessage() {}

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

// Deprecated: Use Document_Page_Token.ProtoReflect.Descriptor instead.
func (*Document_Page_Token) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 2, 5}
}

func (x *Document_Page_Token) GetLayout() *Document_Page_Layout {
	if x != nil {
		return x.Layout
	}
	return nil
}

func (x *Document_Page_Token) GetDetectedBreak() *Document_Page_Token_DetectedBreak {
	if x != nil {
		return x.DetectedBreak
	}
	return nil
}

func (x *Document_Page_Token) GetDetectedLanguages() []*Document_Page_DetectedLanguage {
	if x != nil {
		return x.DetectedLanguages
	}
	return nil
}

// Detected non-text visual elements e.g. checkbox, signature etc. on the
// page.
type Document_Page_VisualElement struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for
	// [Token][google.cloud.documentai.v1beta1.Document.Page.Token].
	Layout *Document_Page_Layout `protobuf:"bytes,1,opt,name=layout,proto3" json:"layout,omitempty"`
	// Type of the
	// [VisualElement][google.cloud.documentai.v1beta1.Document.Page.VisualElement].
	Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	// A list of detected languages together with confidence.
	DetectedLanguages []*Document_Page_DetectedLanguage `protobuf:"bytes,3,rep,name=detected_languages,json=detectedLanguages,proto3" json:"detected_languages,omitempty"`
}

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

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

func (*Document_Page_VisualElement) ProtoMessage() {}

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

// Deprecated: Use Document_Page_VisualElement.ProtoReflect.Descriptor instead.
func (*Document_Page_VisualElement) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 2, 6}
}

func (x *Document_Page_VisualElement) GetLayout() *Document_Page_Layout {
	if x != nil {
		return x.Layout
	}
	return nil
}

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

func (x *Document_Page_VisualElement) GetDetectedLanguages() []*Document_Page_DetectedLanguage {
	if x != nil {
		return x.DetectedLanguages
	}
	return nil
}

// A table representation similar to HTML table structure.
type Document_Page_Table struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for
	// [Table][google.cloud.documentai.v1beta1.Document.Page.Table].
	Layout *Document_Page_Layout `protobuf:"bytes,1,opt,name=layout,proto3" json:"layout,omitempty"`
	// Header rows of the table.
	HeaderRows []*Document_Page_Table_TableRow `protobuf:"bytes,2,rep,name=header_rows,json=headerRows,proto3" json:"header_rows,omitempty"`
	// Body rows of the table.
	BodyRows []*Document_Page_Table_TableRow `protobuf:"bytes,3,rep,name=body_rows,json=bodyRows,proto3" json:"body_rows,omitempty"`
	// A list of detected languages together with confidence.
	DetectedLanguages []*Document_Page_DetectedLanguage `protobuf:"bytes,4,rep,name=detected_languages,json=detectedLanguages,proto3" json:"detected_languages,omitempty"`
}

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

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

func (*Document_Page_Table) ProtoMessage() {}

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

// Deprecated: Use Document_Page_Table.ProtoReflect.Descriptor instead.
func (*Document_Page_Table) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 2, 7}
}

func (x *Document_Page_Table) GetLayout() *Document_Page_Layout {
	if x != nil {
		return x.Layout
	}
	return nil
}

func (x *Document_Page_Table) GetHeaderRows() []*Document_Page_Table_TableRow {
	if x != nil {
		return x.HeaderRows
	}
	return nil
}

func (x *Document_Page_Table) GetBodyRows() []*Document_Page_Table_TableRow {
	if x != nil {
		return x.BodyRows
	}
	return nil
}

func (x *Document_Page_Table) GetDetectedLanguages() []*Document_Page_DetectedLanguage {
	if x != nil {
		return x.DetectedLanguages
	}
	return nil
}

// A form field detected on the page.
type Document_Page_FormField struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for the
	// [FormField][google.cloud.documentai.v1beta1.Document.Page.FormField]
	// name. e.g. `Address`, `Email`, `Grand total`, `Phone number`, etc.
	FieldName *Document_Page_Layout `protobuf:"bytes,1,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"`
	// [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for the
	// [FormField][google.cloud.documentai.v1beta1.Document.Page.FormField]
	// value.
	FieldValue *Document_Page_Layout `protobuf:"bytes,2,opt,name=field_value,json=fieldValue,proto3" json:"field_value,omitempty"`
	// A list of detected languages for name together with confidence.
	NameDetectedLanguages []*Document_Page_DetectedLanguage `protobuf:"bytes,3,rep,name=name_detected_languages,json=nameDetectedLanguages,proto3" json:"name_detected_languages,omitempty"`
	// A list of detected languages for value together with confidence.
	ValueDetectedLanguages []*Document_Page_DetectedLanguage `protobuf:"bytes,4,rep,name=value_detected_languages,json=valueDetectedLanguages,proto3" json:"value_detected_languages,omitempty"`
}

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

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

func (*Document_Page_FormField) ProtoMessage() {}

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

// Deprecated: Use Document_Page_FormField.ProtoReflect.Descriptor instead.
func (*Document_Page_FormField) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 2, 8}
}

func (x *Document_Page_FormField) GetFieldName() *Document_Page_Layout {
	if x != nil {
		return x.FieldName
	}
	return nil
}

func (x *Document_Page_FormField) GetFieldValue() *Document_Page_Layout {
	if x != nil {
		return x.FieldValue
	}
	return nil
}

func (x *Document_Page_FormField) GetNameDetectedLanguages() []*Document_Page_DetectedLanguage {
	if x != nil {
		return x.NameDetectedLanguages
	}
	return nil
}

func (x *Document_Page_FormField) GetValueDetectedLanguages() []*Document_Page_DetectedLanguage {
	if x != nil {
		return x.ValueDetectedLanguages
	}
	return nil
}

// Detected language for a structural component.
type Document_Page_DetectedLanguage struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The BCP-47 language code, such as "en-US" or "sr-Latn". For more
	// information, see
	// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
	LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
	// Confidence of detected language. Range [0, 1].
	Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
}

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

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

func (*Document_Page_DetectedLanguage) ProtoMessage() {}

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

// Deprecated: Use Document_Page_DetectedLanguage.ProtoReflect.Descriptor instead.
func (*Document_Page_DetectedLanguage) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 2, 9}
}

func (x *Document_Page_DetectedLanguage) GetLanguageCode() string {
	if x != nil {
		return x.LanguageCode
	}
	return ""
}

func (x *Document_Page_DetectedLanguage) GetConfidence() float32 {
	if x != nil {
		return x.Confidence
	}
	return 0
}

// Detected break at the end of a
// [Token][google.cloud.documentai.v1beta1.Document.Page.Token].
type Document_Page_Token_DetectedBreak struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Detected break type.
	Type Document_Page_Token_DetectedBreak_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.documentai.v1beta1.Document_Page_Token_DetectedBreak_Type" json:"type,omitempty"`
}

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

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

func (*Document_Page_Token_DetectedBreak) ProtoMessage() {}

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

// Deprecated: Use Document_Page_Token_DetectedBreak.ProtoReflect.Descriptor instead.
func (*Document_Page_Token_DetectedBreak) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 2, 5, 0}
}

func (x *Document_Page_Token_DetectedBreak) GetType() Document_Page_Token_DetectedBreak_Type {
	if x != nil {
		return x.Type
	}
	return Document_Page_Token_DetectedBreak_TYPE_UNSPECIFIED
}

// A row of table cells.
type Document_Page_Table_TableRow struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Cells that make up this row.
	Cells []*Document_Page_Table_TableCell `protobuf:"bytes,1,rep,name=cells,proto3" json:"cells,omitempty"`
}

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

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

func (*Document_Page_Table_TableRow) ProtoMessage() {}

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

// Deprecated: Use Document_Page_Table_TableRow.ProtoReflect.Descriptor instead.
func (*Document_Page_Table_TableRow) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 2, 7, 0}
}

func (x *Document_Page_Table_TableRow) GetCells() []*Document_Page_Table_TableCell {
	if x != nil {
		return x.Cells
	}
	return nil
}

// A cell representation inside the table.
type Document_Page_Table_TableCell struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for
	// [TableCell][google.cloud.documentai.v1beta1.Document.Page.Table.TableCell].
	Layout *Document_Page_Layout `protobuf:"bytes,1,opt,name=layout,proto3" json:"layout,omitempty"`
	// How many rows this cell spans.
	RowSpan int32 `protobuf:"varint,2,opt,name=row_span,json=rowSpan,proto3" json:"row_span,omitempty"`
	// How many columns this cell spans.
	ColSpan int32 `protobuf:"varint,3,opt,name=col_span,json=colSpan,proto3" json:"col_span,omitempty"`
	// A list of detected languages together with confidence.
	DetectedLanguages []*Document_Page_DetectedLanguage `protobuf:"bytes,4,rep,name=detected_languages,json=detectedLanguages,proto3" json:"detected_languages,omitempty"`
}

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

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

func (*Document_Page_Table_TableCell) ProtoMessage() {}

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

// Deprecated: Use Document_Page_Table_TableCell.ProtoReflect.Descriptor instead.
func (*Document_Page_Table_TableCell) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 2, 7, 1}
}

func (x *Document_Page_Table_TableCell) GetLayout() *Document_Page_Layout {
	if x != nil {
		return x.Layout
	}
	return nil
}

func (x *Document_Page_Table_TableCell) GetRowSpan() int32 {
	if x != nil {
		return x.RowSpan
	}
	return 0
}

func (x *Document_Page_Table_TableCell) GetColSpan() int32 {
	if x != nil {
		return x.ColSpan
	}
	return 0
}

func (x *Document_Page_Table_TableCell) GetDetectedLanguages() []*Document_Page_DetectedLanguage {
	if x != nil {
		return x.DetectedLanguages
	}
	return nil
}

// A text segment in the
// [Document.text][google.cloud.documentai.v1beta1.Document.text]. The
// indices may be out of bounds which indicate that the text extends into
// another document shard for large sharded documents. See
// [ShardInfo.text_offset][google.cloud.documentai.v1beta1.Document.ShardInfo.text_offset]
type Document_TextAnchor_TextSegment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// [TextSegment][google.cloud.documentai.v1beta1.Document.TextAnchor.TextSegment]
	// start UTF-8 char index in the
	// [Document.text][google.cloud.documentai.v1beta1.Document.text].
	StartIndex int64 `protobuf:"varint,1,opt,name=start_index,json=startIndex,proto3" json:"start_index,omitempty"`
	// [TextSegment][google.cloud.documentai.v1beta1.Document.TextAnchor.TextSegment]
	// half open end UTF-8 char index in the
	// [Document.text][google.cloud.documentai.v1beta1.Document.text].
	EndIndex int64 `protobuf:"varint,2,opt,name=end_index,json=endIndex,proto3" json:"end_index,omitempty"`
}

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

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

func (*Document_TextAnchor_TextSegment) ProtoMessage() {}

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

// Deprecated: Use Document_TextAnchor_TextSegment.ProtoReflect.Descriptor instead.
func (*Document_TextAnchor_TextSegment) Descriptor() ([]byte, []int) {
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP(), []int{0, 5, 0}
}

func (x *Document_TextAnchor_TextSegment) GetStartIndex() int64 {
	if x != nil {
		return x.StartIndex
	}
	return 0
}

func (x *Document_TextAnchor_TextSegment) GetEndIndex() int64 {
	if x != nil {
		return x.EndIndex
	}
	return 0
}

var File_google_cloud_documentai_v1beta1_document_proto protoreflect.FileDescriptor

var file_google_cloud_documentai_v1beta1_document_proto_rawDesc = []byte{
	0x0a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64,
	0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
	0x31, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x12, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64,
	0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
	0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69,
	0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x62, 0x65,
	0x74, 0x61, 0x31, 0x2f, 0x67, 0x65, 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf7, 0x2b, 0x0a, 0x08, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
	0x74, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00,
	0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x1a, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
	0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12,
	0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65,
	0x78, 0x74, 0x12, 0x50, 0x0a, 0x0b, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65,
	0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61,
	0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65,
	0x6e, 0x74, 0x2e, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x52, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x53, 0x74,
	0x79, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x05, 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31,
	0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50,
	0x61, 0x67, 0x65, 0x52, 0x05, 0x70, 0x61, 0x67, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x08, 0x65, 0x6e,
	0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75,
	0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44,
	0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x08,
	0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x63, 0x0a, 0x10, 0x65, 0x6e, 0x74, 0x69,
	0x74, 0x79, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
	0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62,
	0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x6e,
	0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x65, 0x6e,
	0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x52, 0x0a,
	0x0a, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65,
	0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x68, 0x61,
	0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x73, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66,
	0x6f, 0x12, 0x28, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x6e, 0x0a, 0x09, 0x53,
	0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x61, 0x72,
	0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73,
	0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x61,
	0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a,
	0x73, 0x68, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x65,
	0x78, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0a, 0x74, 0x65, 0x78, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x1a, 0xbb, 0x03, 0x0a, 0x05,
	0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x55, 0x0a, 0x0b, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x61, 0x6e,
	0x63, 0x68, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
	0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63,
	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72,
	0x52, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x05,
	0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52,
	0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x3d, 0x0a, 0x10, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72,
	0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x43,
	0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64,
	0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x6f, 0x6e, 0x74, 0x5f, 0x77, 0x65,
	0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x6f, 0x6e, 0x74,
	0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x73,
	0x74, 0x79, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x78, 0x74,
	0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x64, 0x65,
	0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
	0x74, 0x65, 0x78, 0x74, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x55,
	0x0a, 0x09, 0x66, 0x6f, 0x6e, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65,
	0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x79,
	0x6c, 0x65, 0x2e, 0x46, 0x6f, 0x6e, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x08, 0x66, 0x6f, 0x6e,
	0x74, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x32, 0x0a, 0x08, 0x46, 0x6f, 0x6e, 0x74, 0x53, 0x69, 0x7a,
	0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52,
	0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x1a, 0x9e, 0x1f, 0x0a, 0x04, 0x50, 0x61,
	0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d,
	0x62, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x09, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69,
	0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
	0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
	0x52, 0x09, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x06, 0x6c,
	0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d,
	0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f,
	0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x4c, 0x61, 0x79, 0x6f,
	0x75, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x6e, 0x0a, 0x12, 0x64, 0x65,
	0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73,
	0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69,
	0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
	0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c,
	0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x52, 0x11, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65,
	0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x06, 0x62, 0x6c,
	0x6f, 0x63, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
	0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63,
	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b,
	0x52, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x58, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61,
	0x67, 0x72, 0x61, 0x70, 0x68, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75,
	0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44,
	0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x61, 0x72,
	0x61, 0x67, 0x72, 0x61, 0x70, 0x68, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x67, 0x72, 0x61, 0x70,
	0x68, 0x73, 0x12, 0x49, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65,
	0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67,
	0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x4c, 0x0a,
	0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63,
	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
	0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x6f,
	0x6b, 0x65, 0x6e, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x65, 0x0a, 0x0f, 0x76,
	0x69, 0x73, 0x75, 0x61, 0x6c, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x09,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76,
	0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
	0x50, 0x61, 0x67, 0x65, 0x2e, 0x56, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x45, 0x6c, 0x65, 0x6d, 0x65,
	0x6e, 0x74, 0x52, 0x0e, 0x76, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
	0x74, 0x73, 0x12, 0x4c, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
	0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62,
	0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61,
	0x67, 0x65, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73,
	0x12, 0x59, 0x0a, 0x0b, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18,
	0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e,
	0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
	0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52,
	0x0a, 0x66, 0x6f, 0x72, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x4d, 0x0a, 0x09, 0x44,
	0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74,
	0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16,
	0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06,
	0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x1a, 0x9f, 0x03, 0x0a, 0x06, 0x4c,
	0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x55, 0x0a, 0x0b, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x61, 0x6e,
	0x63, 0x68, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
	0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63,
	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72,
	0x52, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a,
	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02,
	0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x52, 0x0a, 0x0d,
	0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31,
	0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f,
	0x6c, 0x79, 0x52, 0x0c, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x79,
	0x12, 0x63, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e,
	0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
	0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2e, 0x4f, 0x72, 0x69,
	0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x65, 0x0a, 0x0b, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54,
	0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
	0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x41, 0x47, 0x45, 0x5f, 0x55, 0x50, 0x10, 0x01, 0x12, 0x0e,
	0x0a, 0x0a, 0x50, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x02, 0x12, 0x0d,
	0x0a, 0x09, 0x50, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x12, 0x0d, 0x0a,
	0x09, 0x50, 0x41, 0x47, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x04, 0x1a, 0xc6, 0x01, 0x0a,
	0x05, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4d, 0x0a, 0x06, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69,
	0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
	0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x06, 0x6c,
	0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x6e, 0x0a, 0x12, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65,
	0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65,
	0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67,
	0x65, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61,
	0x67, 0x65, 0x52, 0x11, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67,
	0x75, 0x61, 0x67, 0x65, 0x73, 0x1a, 0xca, 0x01, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x67, 0x72,
	0x61, 0x70, 0x68, 0x12, 0x4d, 0x0a, 0x06, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31,
	0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50,
	0x61, 0x67, 0x65, 0x2e, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x6f,
	0x75, 0x74, 0x12, 0x6e, 0x0a, 0x12, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6c,
	0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f,
	0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
	0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x44,
	0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x52,
	0x11, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67,
	0x65, 0x73, 0x1a, 0xc5, 0x01, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x6c,
	0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d,
	0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f,
	0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x4c, 0x61, 0x79, 0x6f,
	0x75, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x6e, 0x0a, 0x12, 0x64, 0x65,
	0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69,
	0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
	0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c,
	0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x52, 0x11, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65,
	0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x1a, 0xe5, 0x03, 0x0a, 0x05, 0x54,
	0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x4d, 0x0a, 0x06, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76,
	0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
	0x50, 0x61, 0x67, 0x65, 0x2e, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x79,
	0x6f, 0x75, 0x74, 0x12, 0x69, 0x0a, 0x0e, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f,
	0x62, 0x72, 0x65, 0x61, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d,
	0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f,
	0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x6f, 0x6b, 0x65,
	0x6e, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x52,
	0x0d, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x12, 0x6e,
	0x0a, 0x12, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75,
	0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
	0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63,
	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63,
	0x74, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x52, 0x11, 0x64, 0x65, 0x74,
	0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x1a, 0xb1,
	0x01, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x42, 0x72, 0x65, 0x61, 0x6b,
	0x12, 0x5b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x47,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f,
	0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
	0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x54,
	0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x42, 0x72, 0x65,
	0x61, 0x6b, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x43, 0x0a,
	0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e,
	0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x53,
	0x50, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x57, 0x49, 0x44, 0x45, 0x5f, 0x53,
	0x50, 0x41, 0x43, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x59, 0x50, 0x48, 0x45, 0x4e,
	0x10, 0x03, 0x1a, 0xe2, 0x01, 0x0a, 0x0d, 0x56, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x45, 0x6c, 0x65,
	0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x06, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76,
	0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
	0x50, 0x61, 0x67, 0x65, 0x2e, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x79,
	0x6f, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x6e, 0x0a, 0x12, 0x64, 0x65, 0x74, 0x65, 0x63,
	0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31,
	0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50,
	0x61, 0x67, 0x65, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67,
	0x75, 0x61, 0x67, 0x65, 0x52, 0x11, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x61,
	0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x1a, 0xe7, 0x05, 0x0a, 0x05, 0x54, 0x61, 0x62, 0x6c,
	0x65, 0x12, 0x4d, 0x0a, 0x06, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65,
	0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67,
	0x65, 0x2e, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74,
	0x12, 0x5e, 0x0a, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e,
	0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
	0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x62, 0x6c,
	0x65, 0x52, 0x6f, 0x77, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x6f, 0x77, 0x73,
	0x12, 0x5a, 0x0a, 0x09, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x03, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31,
	0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50,
	0x61, 0x67, 0x65, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52,
	0x6f, 0x77, 0x52, 0x08, 0x62, 0x6f, 0x64, 0x79, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x6e, 0x0a, 0x12,
	0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67,
	0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
	0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d,
	0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65,
	0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x52, 0x11, 0x64, 0x65, 0x74, 0x65, 0x63,
	0x74, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x1a, 0x60, 0x0a, 0x08,
	0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x12, 0x54, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61,
	0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65,
	0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x54, 0x61,
	0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x1a, 0x80,
	0x02, 0x0a, 0x09, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x4d, 0x0a, 0x06,
	0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75,
	0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44,
	0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x4c, 0x61, 0x79,
	0x6f, 0x75, 0x74, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x72,
	0x6f, 0x77, 0x5f, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72,
	0x6f, 0x77, 0x53, 0x70, 0x61, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6f, 0x6c, 0x5f, 0x73, 0x70,
	0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x53, 0x70, 0x61,
	0x6e, 0x12, 0x6e, 0x0a, 0x12, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61,
	0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63,
	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
	0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x65,
	0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x52, 0x11,
	0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65,
	0x73, 0x1a, 0xad, 0x03, 0x0a, 0x09, 0x46, 0x6f, 0x72, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12,
	0x54, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31,
	0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50,
	0x61, 0x67, 0x65, 0x2e, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c,
	0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x56, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
	0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63,
	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x4c, 0x61, 0x79, 0x6f, 0x75,
	0x74, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x77, 0x0a,
	0x17, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6c,
	0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f,
	0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
	0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x44,
	0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x52,
	0x15, 0x6e, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x6e,
	0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x12, 0x79, 0x0a, 0x18, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f,
	0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67,
	0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
	0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d,
	0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65,
	0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x52, 0x16, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65,
	0x73, 0x1a, 0x57, 0x0a, 0x10, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x6e,
	0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67,
	0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61,
	0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a,
	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0xba, 0x01, 0x0a, 0x06, 0x45,
	0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x55, 0x0a, 0x0b, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x61, 0x6e,
	0x63, 0x68, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
	0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63,
	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72,
	0x52, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04,
	0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e,
	0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x6e,
	0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x6e, 0x74,
	0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65,
	0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x1a, 0x68, 0x0a, 0x0e, 0x45, 0x6e, 0x74, 0x69, 0x74,
	0x79, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x75, 0x62,
	0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73,
	0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x65,
	0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x62, 0x6a,
	0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x1a, 0xc0, 0x01, 0x0a, 0x0a, 0x54, 0x65, 0x78, 0x74, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72,
	0x12, 0x65, 0x0a, 0x0d, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61,
	0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65,
	0x6e, 0x74, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x2e, 0x54, 0x65,
	0x78, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x74, 0x65, 0x78, 0x74, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x4b, 0x0a, 0x0b, 0x54, 0x65, 0x78, 0x74, 0x53,
	0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x74, 0x61,
	0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x5f, 0x69,
	0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x49,
	0x6e, 0x64, 0x65, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0xea,
	0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2e, 0x76,
	0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0d, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
	0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x49, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x69, 0x2f,
	0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
	0x61, 0x69, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75,
	0x64, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x49, 0x2e, 0x56, 0x31, 0x42,
	0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c,
	0x6f, 0x75, 0x64, 0x5c, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x49, 0x5c, 0x56,
	0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a,
	0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
	0x41, 0x49, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x33,
}

var (
	file_google_cloud_documentai_v1beta1_document_proto_rawDescOnce sync.Once
	file_google_cloud_documentai_v1beta1_document_proto_rawDescData = file_google_cloud_documentai_v1beta1_document_proto_rawDesc
)

func file_google_cloud_documentai_v1beta1_document_proto_rawDescGZIP() []byte {
	file_google_cloud_documentai_v1beta1_document_proto_rawDescOnce.Do(func() {
		file_google_cloud_documentai_v1beta1_document_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_documentai_v1beta1_document_proto_rawDescData)
	})
	return file_google_cloud_documentai_v1beta1_document_proto_rawDescData
}

var file_google_cloud_documentai_v1beta1_document_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_google_cloud_documentai_v1beta1_document_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
var file_google_cloud_documentai_v1beta1_document_proto_goTypes = []interface{}{
	(Document_Page_Layout_Orientation)(0),       // 0: google.cloud.documentai.v1beta1.Document.Page.Layout.Orientation
	(Document_Page_Token_DetectedBreak_Type)(0), // 1: google.cloud.documentai.v1beta1.Document.Page.Token.DetectedBreak.Type
	(*Document)(nil),                            // 2: google.cloud.documentai.v1beta1.Document
	(*Document_ShardInfo)(nil),                  // 3: google.cloud.documentai.v1beta1.Document.ShardInfo
	(*Document_Style)(nil),                      // 4: google.cloud.documentai.v1beta1.Document.Style
	(*Document_Page)(nil),                       // 5: google.cloud.documentai.v1beta1.Document.Page
	(*Document_Entity)(nil),                     // 6: google.cloud.documentai.v1beta1.Document.Entity
	(*Document_EntityRelation)(nil),             // 7: google.cloud.documentai.v1beta1.Document.EntityRelation
	(*Document_TextAnchor)(nil),                 // 8: google.cloud.documentai.v1beta1.Document.TextAnchor
	(*Document_Style_FontSize)(nil),             // 9: google.cloud.documentai.v1beta1.Document.Style.FontSize
	(*Document_Page_Dimension)(nil),             // 10: google.cloud.documentai.v1beta1.Document.Page.Dimension
	(*Document_Page_Layout)(nil),                // 11: google.cloud.documentai.v1beta1.Document.Page.Layout
	(*Document_Page_Block)(nil),                 // 12: google.cloud.documentai.v1beta1.Document.Page.Block
	(*Document_Page_Paragraph)(nil),             // 13: google.cloud.documentai.v1beta1.Document.Page.Paragraph
	(*Document_Page_Line)(nil),                  // 14: google.cloud.documentai.v1beta1.Document.Page.Line
	(*Document_Page_Token)(nil),                 // 15: google.cloud.documentai.v1beta1.Document.Page.Token
	(*Document_Page_VisualElement)(nil),         // 16: google.cloud.documentai.v1beta1.Document.Page.VisualElement
	(*Document_Page_Table)(nil),                 // 17: google.cloud.documentai.v1beta1.Document.Page.Table
	(*Document_Page_FormField)(nil),             // 18: google.cloud.documentai.v1beta1.Document.Page.FormField
	(*Document_Page_DetectedLanguage)(nil),      // 19: google.cloud.documentai.v1beta1.Document.Page.DetectedLanguage
	(*Document_Page_Token_DetectedBreak)(nil),   // 20: google.cloud.documentai.v1beta1.Document.Page.Token.DetectedBreak
	(*Document_Page_Table_TableRow)(nil),        // 21: google.cloud.documentai.v1beta1.Document.Page.Table.TableRow
	(*Document_Page_Table_TableCell)(nil),       // 22: google.cloud.documentai.v1beta1.Document.Page.Table.TableCell
	(*Document_TextAnchor_TextSegment)(nil),     // 23: google.cloud.documentai.v1beta1.Document.TextAnchor.TextSegment
	(*status.Status)(nil),                       // 24: google.rpc.Status
	(*color.Color)(nil),                         // 25: google.type.Color
	(*BoundingPoly)(nil),                        // 26: google.cloud.documentai.v1beta1.BoundingPoly
}
var file_google_cloud_documentai_v1beta1_document_proto_depIdxs = []int32{
	4,  // 0: google.cloud.documentai.v1beta1.Document.text_styles:type_name -> google.cloud.documentai.v1beta1.Document.Style
	5,  // 1: google.cloud.documentai.v1beta1.Document.pages:type_name -> google.cloud.documentai.v1beta1.Document.Page
	6,  // 2: google.cloud.documentai.v1beta1.Document.entities:type_name -> google.cloud.documentai.v1beta1.Document.Entity
	7,  // 3: google.cloud.documentai.v1beta1.Document.entity_relations:type_name -> google.cloud.documentai.v1beta1.Document.EntityRelation
	3,  // 4: google.cloud.documentai.v1beta1.Document.shard_info:type_name -> google.cloud.documentai.v1beta1.Document.ShardInfo
	24, // 5: google.cloud.documentai.v1beta1.Document.error:type_name -> google.rpc.Status
	8,  // 6: google.cloud.documentai.v1beta1.Document.Style.text_anchor:type_name -> google.cloud.documentai.v1beta1.Document.TextAnchor
	25, // 7: google.cloud.documentai.v1beta1.Document.Style.color:type_name -> google.type.Color
	25, // 8: google.cloud.documentai.v1beta1.Document.Style.background_color:type_name -> google.type.Color
	9,  // 9: google.cloud.documentai.v1beta1.Document.Style.font_size:type_name -> google.cloud.documentai.v1beta1.Document.Style.FontSize
	10, // 10: google.cloud.documentai.v1beta1.Document.Page.dimension:type_name -> google.cloud.documentai.v1beta1.Document.Page.Dimension
	11, // 11: google.cloud.documentai.v1beta1.Document.Page.layout:type_name -> google.cloud.documentai.v1beta1.Document.Page.Layout
	19, // 12: google.cloud.documentai.v1beta1.Document.Page.detected_languages:type_name -> google.cloud.documentai.v1beta1.Document.Page.DetectedLanguage
	12, // 13: google.cloud.documentai.v1beta1.Document.Page.blocks:type_name -> google.cloud.documentai.v1beta1.Document.Page.Block
	13, // 14: google.cloud.documentai.v1beta1.Document.Page.paragraphs:type_name -> google.cloud.documentai.v1beta1.Document.Page.Paragraph
	14, // 15: google.cloud.documentai.v1beta1.Document.Page.lines:type_name -> google.cloud.documentai.v1beta1.Document.Page.Line
	15, // 16: google.cloud.documentai.v1beta1.Document.Page.tokens:type_name -> google.cloud.documentai.v1beta1.Document.Page.Token
	16, // 17: google.cloud.documentai.v1beta1.Document.Page.visual_elements:type_name -> google.cloud.documentai.v1beta1.Document.Page.VisualElement
	17, // 18: google.cloud.documentai.v1beta1.Document.Page.tables:type_name -> google.cloud.documentai.v1beta1.Document.Page.Table
	18, // 19: google.cloud.documentai.v1beta1.Document.Page.form_fields:type_name -> google.cloud.documentai.v1beta1.Document.Page.FormField
	8,  // 20: google.cloud.documentai.v1beta1.Document.Entity.text_anchor:type_name -> google.cloud.documentai.v1beta1.Document.TextAnchor
	23, // 21: google.cloud.documentai.v1beta1.Document.TextAnchor.text_segments:type_name -> google.cloud.documentai.v1beta1.Document.TextAnchor.TextSegment
	8,  // 22: google.cloud.documentai.v1beta1.Document.Page.Layout.text_anchor:type_name -> google.cloud.documentai.v1beta1.Document.TextAnchor
	26, // 23: google.cloud.documentai.v1beta1.Document.Page.Layout.bounding_poly:type_name -> google.cloud.documentai.v1beta1.BoundingPoly
	0,  // 24: google.cloud.documentai.v1beta1.Document.Page.Layout.orientation:type_name -> google.cloud.documentai.v1beta1.Document.Page.Layout.Orientation
	11, // 25: google.cloud.documentai.v1beta1.Document.Page.Block.layout:type_name -> google.cloud.documentai.v1beta1.Document.Page.Layout
	19, // 26: google.cloud.documentai.v1beta1.Document.Page.Block.detected_languages:type_name -> google.cloud.documentai.v1beta1.Document.Page.DetectedLanguage
	11, // 27: google.cloud.documentai.v1beta1.Document.Page.Paragraph.layout:type_name -> google.cloud.documentai.v1beta1.Document.Page.Layout
	19, // 28: google.cloud.documentai.v1beta1.Document.Page.Paragraph.detected_languages:type_name -> google.cloud.documentai.v1beta1.Document.Page.DetectedLanguage
	11, // 29: google.cloud.documentai.v1beta1.Document.Page.Line.layout:type_name -> google.cloud.documentai.v1beta1.Document.Page.Layout
	19, // 30: google.cloud.documentai.v1beta1.Document.Page.Line.detected_languages:type_name -> google.cloud.documentai.v1beta1.Document.Page.DetectedLanguage
	11, // 31: google.cloud.documentai.v1beta1.Document.Page.Token.layout:type_name -> google.cloud.documentai.v1beta1.Document.Page.Layout
	20, // 32: google.cloud.documentai.v1beta1.Document.Page.Token.detected_break:type_name -> google.cloud.documentai.v1beta1.Document.Page.Token.DetectedBreak
	19, // 33: google.cloud.documentai.v1beta1.Document.Page.Token.detected_languages:type_name -> google.cloud.documentai.v1beta1.Document.Page.DetectedLanguage
	11, // 34: google.cloud.documentai.v1beta1.Document.Page.VisualElement.layout:type_name -> google.cloud.documentai.v1beta1.Document.Page.Layout
	19, // 35: google.cloud.documentai.v1beta1.Document.Page.VisualElement.detected_languages:type_name -> google.cloud.documentai.v1beta1.Document.Page.DetectedLanguage
	11, // 36: google.cloud.documentai.v1beta1.Document.Page.Table.layout:type_name -> google.cloud.documentai.v1beta1.Document.Page.Layout
	21, // 37: google.cloud.documentai.v1beta1.Document.Page.Table.header_rows:type_name -> google.cloud.documentai.v1beta1.Document.Page.Table.TableRow
	21, // 38: google.cloud.documentai.v1beta1.Document.Page.Table.body_rows:type_name -> google.cloud.documentai.v1beta1.Document.Page.Table.TableRow
	19, // 39: google.cloud.documentai.v1beta1.Document.Page.Table.detected_languages:type_name -> google.cloud.documentai.v1beta1.Document.Page.DetectedLanguage
	11, // 40: google.cloud.documentai.v1beta1.Document.Page.FormField.field_name:type_name -> google.cloud.documentai.v1beta1.Document.Page.Layout
	11, // 41: google.cloud.documentai.v1beta1.Document.Page.FormField.field_value:type_name -> google.cloud.documentai.v1beta1.Document.Page.Layout
	19, // 42: google.cloud.documentai.v1beta1.Document.Page.FormField.name_detected_languages:type_name -> google.cloud.documentai.v1beta1.Document.Page.DetectedLanguage
	19, // 43: google.cloud.documentai.v1beta1.Document.Page.FormField.value_detected_languages:type_name -> google.cloud.documentai.v1beta1.Document.Page.DetectedLanguage
	1,  // 44: google.cloud.documentai.v1beta1.Document.Page.Token.DetectedBreak.type:type_name -> google.cloud.documentai.v1beta1.Document.Page.Token.DetectedBreak.Type
	22, // 45: google.cloud.documentai.v1beta1.Document.Page.Table.TableRow.cells:type_name -> google.cloud.documentai.v1beta1.Document.Page.Table.TableCell
	11, // 46: google.cloud.documentai.v1beta1.Document.Page.Table.TableCell.layout:type_name -> google.cloud.documentai.v1beta1.Document.Page.Layout
	19, // 47: google.cloud.documentai.v1beta1.Document.Page.Table.TableCell.detected_languages:type_name -> google.cloud.documentai.v1beta1.Document.Page.DetectedLanguage
	48, // [48:48] is the sub-list for method output_type
	48, // [48:48] is the sub-list for method input_type
	48, // [48:48] is the sub-list for extension type_name
	48, // [48:48] is the sub-list for extension extendee
	0,  // [0:48] is the sub-list for field type_name
}

func init() { file_google_cloud_documentai_v1beta1_document_proto_init() }
func file_google_cloud_documentai_v1beta1_document_proto_init() {
	if File_google_cloud_documentai_v1beta1_document_proto != nil {
		return
	}
	file_google_cloud_documentai_v1beta1_geometry_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_ShardInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_Style); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_Page); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_Entity); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_EntityRelation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_TextAnchor); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_Style_FontSize); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_Page_Dimension); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_Page_Layout); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_Page_Block); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_Page_Paragraph); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_Page_Line); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_Page_Token); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_Page_VisualElement); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_Page_Table); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_Page_FormField); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_Page_DetectedLanguage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_Page_Token_DetectedBreak); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_Page_Table_TableRow); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_Page_Table_TableCell); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_documentai_v1beta1_document_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document_TextAnchor_TextSegment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_google_cloud_documentai_v1beta1_document_proto_msgTypes[0].OneofWrappers = []interface{}{
		(*Document_Uri)(nil),
		(*Document_Content)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_google_cloud_documentai_v1beta1_document_proto_rawDesc,
			NumEnums:      2,
			NumMessages:   22,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_google_cloud_documentai_v1beta1_document_proto_goTypes,
		DependencyIndexes: file_google_cloud_documentai_v1beta1_document_proto_depIdxs,
		EnumInfos:         file_google_cloud_documentai_v1beta1_document_proto_enumTypes,
		MessageInfos:      file_google_cloud_documentai_v1beta1_document_proto_msgTypes,
	}.Build()
	File_google_cloud_documentai_v1beta1_document_proto = out.File
	file_google_cloud_documentai_v1beta1_document_proto_rawDesc = nil
	file_google_cloud_documentai_v1beta1_document_proto_goTypes = nil
	file_google_cloud_documentai_v1beta1_document_proto_depIdxs = nil
}
