// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/cloud/talent/v4beta1/profile.proto

package talent

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	_ "github.com/golang/protobuf/ptypes/duration"
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	wrappers "github.com/golang/protobuf/ptypes/wrappers"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	date "google.golang.org/genproto/googleapis/type/date"
	postaladdress "google.golang.org/genproto/googleapis/type/postaladdress"
)

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

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

// The format of a structured resume.
type Resume_ResumeType int32

const (
	// Default value.
	Resume_RESUME_TYPE_UNSPECIFIED Resume_ResumeType = 0
	// The profile contents in HR-XML format.
	// See https://schemas.liquid-technologies.com/hr-xml/2007-04-15/ for more
	// information about Human Resources XML.
	Resume_HRXML Resume_ResumeType = 1
	// Resume type not specified.
	Resume_OTHER_RESUME_TYPE Resume_ResumeType = 2
)

var Resume_ResumeType_name = map[int32]string{
	0: "RESUME_TYPE_UNSPECIFIED",
	1: "HRXML",
	2: "OTHER_RESUME_TYPE",
}

var Resume_ResumeType_value = map[string]int32{
	"RESUME_TYPE_UNSPECIFIED": 0,
	"HRXML":                   1,
	"OTHER_RESUME_TYPE":       2,
}

func (x Resume_ResumeType) String() string {
	return proto.EnumName(Resume_ResumeType_name, int32(x))
}

func (Resume_ResumeType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_f0277fc1d2fabb3b, []int{2, 0}
}

// Enum that represents the type of the telephone.
type Phone_PhoneType int32

const (
	// Default value.
	Phone_PHONE_TYPE_UNSPECIFIED Phone_PhoneType = 0
	// A landline.
	Phone_LANDLINE Phone_PhoneType = 1
	// A mobile.
	Phone_MOBILE Phone_PhoneType = 2
	// A fax.
	Phone_FAX Phone_PhoneType = 3
	// A pager.
	Phone_PAGER Phone_PhoneType = 4
	// A TTY (test telephone) or TDD (telecommunication device for the deaf).
	Phone_TTY_OR_TDD Phone_PhoneType = 5
	// A voicemail.
	Phone_VOICEMAIL Phone_PhoneType = 6
	// A virtual telephone number is a number that can be routed to another
	// number and managed by the user via Web, SMS, IVR, and so on.  It is
	// associated with a particular person, and may be routed to either a MOBILE
	// or LANDLINE number. The [phone usage][google.cloud.talent.v4beta1.ContactInfoUsage] should
	// be set to PERSONAL for these phone types. Some more information can be
	// found here: https://en.wikipedia.org/wiki/Personal_Numbers
	Phone_VIRTUAL Phone_PhoneType = 7
	// Voice over IP numbers. This includes TSoIP (Telephony Service over IP).
	Phone_VOIP Phone_PhoneType = 8
	// In some regions (e.g. the USA), it is impossible to distinguish between
	// fixed-line and mobile numbers by looking at the phone number itself.
	Phone_MOBILE_OR_LANDLINE Phone_PhoneType = 9
)

var Phone_PhoneType_name = map[int32]string{
	0: "PHONE_TYPE_UNSPECIFIED",
	1: "LANDLINE",
	2: "MOBILE",
	3: "FAX",
	4: "PAGER",
	5: "TTY_OR_TDD",
	6: "VOICEMAIL",
	7: "VIRTUAL",
	8: "VOIP",
	9: "MOBILE_OR_LANDLINE",
}

var Phone_PhoneType_value = map[string]int32{
	"PHONE_TYPE_UNSPECIFIED": 0,
	"LANDLINE":               1,
	"MOBILE":                 2,
	"FAX":                    3,
	"PAGER":                  4,
	"TTY_OR_TDD":             5,
	"VOICEMAIL":              6,
	"VIRTUAL":                7,
	"VOIP":                   8,
	"MOBILE_OR_LANDLINE":     9,
}

func (x Phone_PhoneType) String() string {
	return proto.EnumName(Phone_PhoneType_name, int32(x))
}

func (Phone_PhoneType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_f0277fc1d2fabb3b, []int{6, 0}
}

// A resource that represents the profile for a job candidate (also referred to
// as a "single-source profile").
type Profile struct {
	// Required during profile update.
	//
	// Resource name assigned to a profile by the API.
	//
	// The format is
	// "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}",
	// for example, "projects/foo/tenants/bar/profiles/baz".
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Profile's id in client system, if available. This value is unique for each
	// profile inside a tenant. An error is thrown if another profile with the
	// same external_id is created.
	//
	// The maximum number of bytes allowed is 100.
	ExternalId string `protobuf:"bytes,2,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"`
	// The source description indicating where the profile is acquired.
	//
	// For example, if a candidate profile is acquired from a resume, the user can
	// input "resume" here to indicate the source.
	//
	// The maximum number of bytes allowed is 100.
	Source string `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"`
	// The URI set by clients that links to this profile's client-side copy.
	//
	// The maximum number of bytes allowed is 4000.
	Uri string `protobuf:"bytes,4,opt,name=uri,proto3" json:"uri,omitempty"`
	// The cluster id of the profile to associate with other profile(s) for the
	// same candidate.
	//
	// This field should be generated by the customer. If a value is not provided,
	// a random UUID is assigned to this field of the profile.
	//
	// This is used to link multiple profiles to the same candidate. For example,
	// a client has a candidate with two profiles, where one was created recently
	// and the other one was created 5 years ago. These two profiles may be very
	// different. The clients can create the first profile and get a generated
	// [group_id][google.cloud.talent.v4beta1.Profile.group_id], and assign it when the second profile is created,
	// indicating these two profiles are referring to the same candidate.
	GroupId string `protobuf:"bytes,5,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	// Indicates the hirable status of the candidate.
	IsHirable *wrappers.BoolValue `protobuf:"bytes,6,opt,name=is_hirable,json=isHirable,proto3" json:"is_hirable,omitempty"`
	// The timestamp when the profile was first created at this source.
	CreateTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// The timestamp when the profile was last updated at this source.
	UpdateTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	// The timestamp when the profile was last updated as a result of a direct or
	// indirect action by a candidate.
	//
	// These actions include:
	//
	// * Direct actions such as the candidate submitting a new resume as part of a
	// job application to the agency, using a self-service tool such as a website
	// to update their profile, and so on.
	// * Indirect actions by the candidate such as uploading a resume to a job
	// board that is collected by the agency through a feed, providing a resume to
	// a recruiter who then uploads it into the ATS, and so on.
	// * Updates made to the candidate's profile by the recruiter as a result of
	// interacting with the candidate (for example adding a skill or work
	// preference, and so on). Changes to [recruiting_notes][google.cloud.talent.v4beta1.Profile.recruiting_notes] are specifically
	// excluded from this action type.
	//
	// Note: [candidate_update_time][google.cloud.talent.v4beta1.Profile.candidate_update_time] must be greater than or equal to
	// [resume_update_time][google.cloud.talent.v4beta1.Profile.resume_update_time] or an error is thrown.
	CandidateUpdateTime *timestamp.Timestamp `protobuf:"bytes,67,opt,name=candidate_update_time,json=candidateUpdateTime,proto3" json:"candidate_update_time,omitempty"`
	// The timestamp when the candidate's resume was added or updated on the
	// candidate's profile. Whether that resume was directly uploaded by a
	// candidate, pulled from a 3rd party job board feed, added by a recruiter,
	// and so on.
	//
	// If this field is updated, it's expected that [resume][google.cloud.talent.v4beta1.Profile.resume] is provided in
	// the create or update calls.
	ResumeUpdateTime *timestamp.Timestamp `protobuf:"bytes,68,opt,name=resume_update_time,json=resumeUpdateTime,proto3" json:"resume_update_time,omitempty"`
	// The resume representing this profile.
	Resume *Resume `protobuf:"bytes,53,opt,name=resume,proto3" json:"resume,omitempty"`
	// The names of the candidate this profile references.
	//
	// Currently only one person name is supported.
	PersonNames []*PersonName `protobuf:"bytes,11,rep,name=person_names,json=personNames,proto3" json:"person_names,omitempty"`
	// The candidate's postal addresses. It's highly recommended to
	// input this information as accurately as possible to help improve search
	// quality. Here are some recommendations:
	//
	// * Provide [Address.usage][google.cloud.talent.v4beta1.Address.usage] if possible, especially if the address is
	// PERSONAL. During a search only personal addresses are considered. If there
	// is no such address, all addresses with unspecified usage are assumed to be
	// personal.
	// * Provide [Address.current][google.cloud.talent.v4beta1.Address.current] for the current address if possible. During
	// a search, only current addresses are considered. If there is no such
	// address, all addresses are assumed to be current.
	//
	// When displaying a candidate's addresses, it is sometimes desirable to limit
	// the number of addresses shown. In these cases we recommend that you display
	// the addresses in the following order of priority:
	// 1. [Address.usage][google.cloud.talent.v4beta1.Address.usage] is PERSONAL and [Address.current][google.cloud.talent.v4beta1.Address.current] is true.
	// 2. [Address.usage][google.cloud.talent.v4beta1.Address.usage] is PERSONAL and [Address.current][google.cloud.talent.v4beta1.Address.current] is false or not
	// set.
	// 3. [Address.usage][google.cloud.talent.v4beta1.Address.usage] is CONTACT_INFO_USAGE_UNSPECIFIED and
	// [Address.current][google.cloud.talent.v4beta1.Address.current] is true.
	// 4. [Address.usage][google.cloud.talent.v4beta1.Address.usage] is CONTACT_INFO_USAGE_UNSPECIFIED and
	// [Address.current][google.cloud.talent.v4beta1.Address.current] is false or not set.
	Addresses []*Address `protobuf:"bytes,12,rep,name=addresses,proto3" json:"addresses,omitempty"`
	// The candidate's email addresses.
	EmailAddresses []*Email `protobuf:"bytes,13,rep,name=email_addresses,json=emailAddresses,proto3" json:"email_addresses,omitempty"`
	// The candidate's phone number(s).
	PhoneNumbers []*Phone `protobuf:"bytes,14,rep,name=phone_numbers,json=phoneNumbers,proto3" json:"phone_numbers,omitempty"`
	// The candidate's personal URIs.
	PersonalUris []*PersonalUri `protobuf:"bytes,15,rep,name=personal_uris,json=personalUris,proto3" json:"personal_uris,omitempty"`
	// Available contact information besides [addresses][google.cloud.talent.v4beta1.Profile.addresses], [email_addresses][google.cloud.talent.v4beta1.Profile.email_addresses],
	// [phone_numbers][google.cloud.talent.v4beta1.Profile.phone_numbers] and [personal_uris][google.cloud.talent.v4beta1.Profile.personal_uris]. For example, Hang-out, Skype.
	AdditionalContactInfo []*AdditionalContactInfo `protobuf:"bytes,16,rep,name=additional_contact_info,json=additionalContactInfo,proto3" json:"additional_contact_info,omitempty"`
	// The employment history records of the candidate. It's highly recommended
	// to input this information as accurately as possible to help improve search
	// quality. Here are some recommendations:
	//
	// * Specify the start and end dates of the employment records.
	// * List different employment types separately, no matter how minor the
	// change is.
	// For example, only job title is changed from "software engineer" to "senior
	// software engineer".
	// * Provide [EmploymentRecord.is_current][google.cloud.talent.v4beta1.EmploymentRecord.is_current] for the current employment if
	// possible. If not, it's inferred from user inputs.
	//
	// The limitation for max number of employment records is 100.
	EmploymentRecords []*EmploymentRecord `protobuf:"bytes,17,rep,name=employment_records,json=employmentRecords,proto3" json:"employment_records,omitempty"`
	// The education history record of the candidate. It's highly recommended to
	// input this information as accurately as possible to help improve search
	// quality. Here are some recommendations:
	//
	// * Specify the start and end dates of the education records.
	// * List each education type separately, no matter how minor the change is.
	// For example, the profile contains the education experience from the same
	// school but different degrees.
	// * Provide [EducationRecord.is_current][google.cloud.talent.v4beta1.EducationRecord.is_current] for the current education if
	// possible. If not, it's inferred from user inputs.
	//
	// The limitation for max number of education records is 100.
	EducationRecords []*EducationRecord `protobuf:"bytes,18,rep,name=education_records,json=educationRecords,proto3" json:"education_records,omitempty"`
	// The skill set of the candidate. It's highly recommended to provide as
	// much information as possible to help improve the search quality.
	//
	// The limitation for max number of skills is 500.
	Skills []*Skill `protobuf:"bytes,19,rep,name=skills,proto3" json:"skills,omitempty"`
	// The individual or collaborative activities which the candidate has
	// participated in, for example, open-source projects, class assignments that
	// aren't listed in [employment_records][google.cloud.talent.v4beta1.Profile.employment_records].
	//
	// The limitation for max number of activities is 50.
	Activities []*Activity `protobuf:"bytes,20,rep,name=activities,proto3" json:"activities,omitempty"`
	// The publications published by the candidate.
	//
	// The limitation for max number of publications is 50.
	Publications []*Publication `protobuf:"bytes,21,rep,name=publications,proto3" json:"publications,omitempty"`
	// The patents acquired by the candidate.
	Patents []*Patent `protobuf:"bytes,22,rep,name=patents,proto3" json:"patents,omitempty"`
	// The certifications acquired by the candidate.
	Certifications []*Certification `protobuf:"bytes,23,rep,name=certifications,proto3" json:"certifications,omitempty"`
	// Output only. The resource names of the candidate's applications.
	Applications []string `protobuf:"bytes,47,rep,name=applications,proto3" json:"applications,omitempty"`
	// Output only. The resource names of the candidate's assignments.
	Assignments []string `protobuf:"bytes,48,rep,name=assignments,proto3" json:"assignments,omitempty"`
	// A map of fields to hold both filterable and non-filterable custom profile
	// attributes that aren't covered by the provided structured fields. See
	// [CustomAttribute][google.cloud.talent.v4beta1.CustomAttribute] for more details.
	//
	// At most 100 filterable and at most 100 unfilterable keys are supported. If
	// limit is exceeded, an error is thrown. Custom attributes are `unfilterable`
	// by default. These are filterable when the `filterable` flag is set to
	// `true`.
	//
	// Numeric custom attributes: each key can only map to one numeric value,
	// otherwise an error is thrown. Client can also filter on numeric custom
	// attributes using '>', '<' or '=' operators.
	//
	// String custom attributes: each key can map up to 50 string values. For
	// filterable string value, each value has a byte size of no more than 256B.
	// For unfilterable string values, the maximum byte size of a single key is
	// 64B. An error is thrown for any request exceeding the limit.
	// The maximum total byte size is 10KB.
	CustomAttributes map[string]*CustomAttribute `protobuf:"bytes,26,rep,name=custom_attributes,json=customAttributes,proto3" json:"custom_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Output only. Indicates if a summarized profile was created as part of the
	// profile creation API call. This flag does not indicate whether a profile is
	// searchable or not.
	Processed bool `protobuf:"varint,27,opt,name=processed,proto3" json:"processed,omitempty"`
	// Output only. Keyword snippet shows how the search result is related to a
	// search query.  This is only returned in [SearchProfilesResponse][google.cloud.talent.v4beta1.SearchProfilesResponse].
	KeywordSnippet string `protobuf:"bytes,28,opt,name=keyword_snippet,json=keywordSnippet,proto3" json:"keyword_snippet,omitempty"`
	// Output only. Candidate's availability signals.
	AvailabilitySignals []*AvailabilitySignal `protobuf:"bytes,70,rep,name=availability_signals,json=availabilitySignals,proto3" json:"availability_signals,omitempty"`
	// Output only. Derived locations of the profile, resolved from [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses].
	//
	// [derived_addresses][google.cloud.talent.v4beta1.Profile.derived_addresses] are exactly matched to [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] in the
	// same order.
	DerivedAddresses     []*Location `protobuf:"bytes,64,rep,name=derived_addresses,json=derivedAddresses,proto3" json:"derived_addresses,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

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

func (m *Profile) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Profile.Unmarshal(m, b)
}
func (m *Profile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Profile.Marshal(b, m, deterministic)
}
func (m *Profile) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Profile.Merge(m, src)
}
func (m *Profile) XXX_Size() int {
	return xxx_messageInfo_Profile.Size(m)
}
func (m *Profile) XXX_DiscardUnknown() {
	xxx_messageInfo_Profile.DiscardUnknown(m)
}

var xxx_messageInfo_Profile proto.InternalMessageInfo

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

func (m *Profile) GetExternalId() string {
	if m != nil {
		return m.ExternalId
	}
	return ""
}

func (m *Profile) GetSource() string {
	if m != nil {
		return m.Source
	}
	return ""
}

func (m *Profile) GetUri() string {
	if m != nil {
		return m.Uri
	}
	return ""
}

func (m *Profile) GetGroupId() string {
	if m != nil {
		return m.GroupId
	}
	return ""
}

func (m *Profile) GetIsHirable() *wrappers.BoolValue {
	if m != nil {
		return m.IsHirable
	}
	return nil
}

func (m *Profile) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *Profile) GetUpdateTime() *timestamp.Timestamp {
	if m != nil {
		return m.UpdateTime
	}
	return nil
}

func (m *Profile) GetCandidateUpdateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CandidateUpdateTime
	}
	return nil
}

func (m *Profile) GetResumeUpdateTime() *timestamp.Timestamp {
	if m != nil {
		return m.ResumeUpdateTime
	}
	return nil
}

func (m *Profile) GetResume() *Resume {
	if m != nil {
		return m.Resume
	}
	return nil
}

func (m *Profile) GetPersonNames() []*PersonName {
	if m != nil {
		return m.PersonNames
	}
	return nil
}

func (m *Profile) GetAddresses() []*Address {
	if m != nil {
		return m.Addresses
	}
	return nil
}

func (m *Profile) GetEmailAddresses() []*Email {
	if m != nil {
		return m.EmailAddresses
	}
	return nil
}

func (m *Profile) GetPhoneNumbers() []*Phone {
	if m != nil {
		return m.PhoneNumbers
	}
	return nil
}

func (m *Profile) GetPersonalUris() []*PersonalUri {
	if m != nil {
		return m.PersonalUris
	}
	return nil
}

func (m *Profile) GetAdditionalContactInfo() []*AdditionalContactInfo {
	if m != nil {
		return m.AdditionalContactInfo
	}
	return nil
}

func (m *Profile) GetEmploymentRecords() []*EmploymentRecord {
	if m != nil {
		return m.EmploymentRecords
	}
	return nil
}

func (m *Profile) GetEducationRecords() []*EducationRecord {
	if m != nil {
		return m.EducationRecords
	}
	return nil
}

func (m *Profile) GetSkills() []*Skill {
	if m != nil {
		return m.Skills
	}
	return nil
}

func (m *Profile) GetActivities() []*Activity {
	if m != nil {
		return m.Activities
	}
	return nil
}

func (m *Profile) GetPublications() []*Publication {
	if m != nil {
		return m.Publications
	}
	return nil
}

func (m *Profile) GetPatents() []*Patent {
	if m != nil {
		return m.Patents
	}
	return nil
}

func (m *Profile) GetCertifications() []*Certification {
	if m != nil {
		return m.Certifications
	}
	return nil
}

func (m *Profile) GetApplications() []string {
	if m != nil {
		return m.Applications
	}
	return nil
}

func (m *Profile) GetAssignments() []string {
	if m != nil {
		return m.Assignments
	}
	return nil
}

func (m *Profile) GetCustomAttributes() map[string]*CustomAttribute {
	if m != nil {
		return m.CustomAttributes
	}
	return nil
}

func (m *Profile) GetProcessed() bool {
	if m != nil {
		return m.Processed
	}
	return false
}

func (m *Profile) GetKeywordSnippet() string {
	if m != nil {
		return m.KeywordSnippet
	}
	return ""
}

func (m *Profile) GetAvailabilitySignals() []*AvailabilitySignal {
	if m != nil {
		return m.AvailabilitySignals
	}
	return nil
}

func (m *Profile) GetDerivedAddresses() []*Location {
	if m != nil {
		return m.DerivedAddresses
	}
	return nil
}

// Candidate availability signal.
type AvailabilitySignal struct {
	// Type of signal.
	Type AvailabilitySignalType `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.talent.v4beta1.AvailabilitySignalType" json:"type,omitempty"`
	// Timestamp of when the given availability activity last happened.
	LastUpdateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=last_update_time,json=lastUpdateTime,proto3" json:"last_update_time,omitempty"`
	// Indicates if the [last_update_time][google.cloud.talent.v4beta1.AvailabilitySignal.last_update_time] is within
	// [AvailabilityFilter.range][google.cloud.talent.v4beta1.AvailabilityFilter.range].
	//
	// Returned only in a search response when there is an [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter]
	// in [ProfileQuery.availability_filters][google.cloud.talent.v4beta1.ProfileQuery.availability_filters] where
	// [signal_type][google.cloud.talent.v4beta1.AvailabilityFilter.signal_type] matches [type][google.cloud.talent.v4beta1.AvailabilitySignal.type].
	FilterSatisfied      *wrappers.BoolValue `protobuf:"bytes,3,opt,name=filter_satisfied,json=filterSatisfied,proto3" json:"filter_satisfied,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

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

func (m *AvailabilitySignal) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AvailabilitySignal.Unmarshal(m, b)
}
func (m *AvailabilitySignal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AvailabilitySignal.Marshal(b, m, deterministic)
}
func (m *AvailabilitySignal) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AvailabilitySignal.Merge(m, src)
}
func (m *AvailabilitySignal) XXX_Size() int {
	return xxx_messageInfo_AvailabilitySignal.Size(m)
}
func (m *AvailabilitySignal) XXX_DiscardUnknown() {
	xxx_messageInfo_AvailabilitySignal.DiscardUnknown(m)
}

var xxx_messageInfo_AvailabilitySignal proto.InternalMessageInfo

func (m *AvailabilitySignal) GetType() AvailabilitySignalType {
	if m != nil {
		return m.Type
	}
	return AvailabilitySignalType_AVAILABILITY_SIGNAL_TYPE_UNSPECIFIED
}

func (m *AvailabilitySignal) GetLastUpdateTime() *timestamp.Timestamp {
	if m != nil {
		return m.LastUpdateTime
	}
	return nil
}

func (m *AvailabilitySignal) GetFilterSatisfied() *wrappers.BoolValue {
	if m != nil {
		return m.FilterSatisfied
	}
	return nil
}

// Resource that represents a resume.
type Resume struct {
	// Users can create a profile with only this field field, if [resume_type][google.cloud.talent.v4beta1.Resume.resume_type]
	// is [HRXML][google.cloud.talent.v4beta1.Resume.ResumeType.HRXML]. For example, the API parses this field and
	// creates a profile
	// with all structured fields populated. [EmploymentRecord][google.cloud.talent.v4beta1.EmploymentRecord],
	// [EducationRecord][google.cloud.talent.v4beta1.EducationRecord], and so on. An error is thrown if this field cannot be
	// parsed.
	//
	// Note that the use of the functionality offered by this field to extract
	// data from resumes is an Alpha feature and as such is not covered by any
	// SLA.
	StructuredResume string `protobuf:"bytes,1,opt,name=structured_resume,json=structuredResume,proto3" json:"structured_resume,omitempty"`
	// The format of [structured_resume][google.cloud.talent.v4beta1.Resume.structured_resume].
	ResumeType           Resume_ResumeType `protobuf:"varint,2,opt,name=resume_type,json=resumeType,proto3,enum=google.cloud.talent.v4beta1.Resume_ResumeType" json:"resume_type,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

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

func (m *Resume) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Resume.Unmarshal(m, b)
}
func (m *Resume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Resume.Marshal(b, m, deterministic)
}
func (m *Resume) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Resume.Merge(m, src)
}
func (m *Resume) XXX_Size() int {
	return xxx_messageInfo_Resume.Size(m)
}
func (m *Resume) XXX_DiscardUnknown() {
	xxx_messageInfo_Resume.DiscardUnknown(m)
}

var xxx_messageInfo_Resume proto.InternalMessageInfo

func (m *Resume) GetStructuredResume() string {
	if m != nil {
		return m.StructuredResume
	}
	return ""
}

func (m *Resume) GetResumeType() Resume_ResumeType {
	if m != nil {
		return m.ResumeType
	}
	return Resume_RESUME_TYPE_UNSPECIFIED
}

// Resource that represents the name of a person.
type PersonName struct {
	// The name of a person. It can be one of
	// [formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name] or
	// [structured_name][google.cloud.talent.v4beta1.PersonName.structured_name].
	//
	// Types that are valid to be assigned to PersonName:
	//	*PersonName_FormattedName
	//	*PersonName_StructuredName
	PersonName isPersonName_PersonName `protobuf_oneof:"person_name"`
	// Preferred name for the person. This field is ignored if [structured_name][google.cloud.talent.v4beta1.PersonName.structured_name]
	// is provided.
	//
	// Number of characters allowed is 100.
	PreferredName        string   `protobuf:"bytes,3,opt,name=preferred_name,json=preferredName,proto3" json:"preferred_name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *PersonName) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PersonName.Unmarshal(m, b)
}
func (m *PersonName) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PersonName.Marshal(b, m, deterministic)
}
func (m *PersonName) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PersonName.Merge(m, src)
}
func (m *PersonName) XXX_Size() int {
	return xxx_messageInfo_PersonName.Size(m)
}
func (m *PersonName) XXX_DiscardUnknown() {
	xxx_messageInfo_PersonName.DiscardUnknown(m)
}

var xxx_messageInfo_PersonName proto.InternalMessageInfo

type isPersonName_PersonName interface {
	isPersonName_PersonName()
}

type PersonName_FormattedName struct {
	FormattedName string `protobuf:"bytes,1,opt,name=formatted_name,json=formattedName,proto3,oneof"`
}

type PersonName_StructuredName struct {
	StructuredName *PersonName_PersonStructuredName `protobuf:"bytes,2,opt,name=structured_name,json=structuredName,proto3,oneof"`
}

func (*PersonName_FormattedName) isPersonName_PersonName() {}

func (*PersonName_StructuredName) isPersonName_PersonName() {}

func (m *PersonName) GetPersonName() isPersonName_PersonName {
	if m != nil {
		return m.PersonName
	}
	return nil
}

func (m *PersonName) GetFormattedName() string {
	if x, ok := m.GetPersonName().(*PersonName_FormattedName); ok {
		return x.FormattedName
	}
	return ""
}

func (m *PersonName) GetStructuredName() *PersonName_PersonStructuredName {
	if x, ok := m.GetPersonName().(*PersonName_StructuredName); ok {
		return x.StructuredName
	}
	return nil
}

func (m *PersonName) GetPreferredName() string {
	if m != nil {
		return m.PreferredName
	}
	return ""
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*PersonName) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*PersonName_FormattedName)(nil),
		(*PersonName_StructuredName)(nil),
	}
}

// Resource that represents a person's structured name.
type PersonName_PersonStructuredName struct {
	// Given/first name.
	//
	// It's derived from [formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name] if not provided.
	//
	// Number of characters allowed is 100.
	GivenName string `protobuf:"bytes,1,opt,name=given_name,json=givenName,proto3" json:"given_name,omitempty"`
	// Preferred given/first name or nickname.
	//
	// Number of characters allowed is 100.
	PreferredName string `protobuf:"bytes,6,opt,name=preferred_name,json=preferredName,proto3" json:"preferred_name,omitempty"`
	// Middle initial.
	//
	// It's derived from [formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name] if not provided.
	//
	// Number of characters allowed is 20.
	MiddleInitial string `protobuf:"bytes,2,opt,name=middle_initial,json=middleInitial,proto3" json:"middle_initial,omitempty"`
	// Family/last name.
	//
	// It's derived from [formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name] if not provided.
	//
	// Number of characters allowed is 100.
	FamilyName string `protobuf:"bytes,3,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"`
	// Suffixes.
	//
	// Number of characters allowed is 20.
	Suffixes []string `protobuf:"bytes,4,rep,name=suffixes,proto3" json:"suffixes,omitempty"`
	// Prefixes.
	//
	// Number of characters allowed is 20.
	Prefixes             []string `protobuf:"bytes,5,rep,name=prefixes,proto3" json:"prefixes,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *PersonName_PersonStructuredName) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PersonName_PersonStructuredName.Unmarshal(m, b)
}
func (m *PersonName_PersonStructuredName) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PersonName_PersonStructuredName.Marshal(b, m, deterministic)
}
func (m *PersonName_PersonStructuredName) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PersonName_PersonStructuredName.Merge(m, src)
}
func (m *PersonName_PersonStructuredName) XXX_Size() int {
	return xxx_messageInfo_PersonName_PersonStructuredName.Size(m)
}
func (m *PersonName_PersonStructuredName) XXX_DiscardUnknown() {
	xxx_messageInfo_PersonName_PersonStructuredName.DiscardUnknown(m)
}

var xxx_messageInfo_PersonName_PersonStructuredName proto.InternalMessageInfo

func (m *PersonName_PersonStructuredName) GetGivenName() string {
	if m != nil {
		return m.GivenName
	}
	return ""
}

func (m *PersonName_PersonStructuredName) GetPreferredName() string {
	if m != nil {
		return m.PreferredName
	}
	return ""
}

func (m *PersonName_PersonStructuredName) GetMiddleInitial() string {
	if m != nil {
		return m.MiddleInitial
	}
	return ""
}

func (m *PersonName_PersonStructuredName) GetFamilyName() string {
	if m != nil {
		return m.FamilyName
	}
	return ""
}

func (m *PersonName_PersonStructuredName) GetSuffixes() []string {
	if m != nil {
		return m.Suffixes
	}
	return nil
}

func (m *PersonName_PersonStructuredName) GetPrefixes() []string {
	if m != nil {
		return m.Prefixes
	}
	return nil
}

// Resource that represents a address.
type Address struct {
	// The usage of the address. For example, SCHOOL, WORK, PERSONAL.
	Usage ContactInfoUsage `protobuf:"varint,1,opt,name=usage,proto3,enum=google.cloud.talent.v4beta1.ContactInfoUsage" json:"usage,omitempty"`
	// The address of a person. It can be one of
	// [unstructured_address][google.cloud.talent.v4beta1.Address.unstructured_address] or
	// [structured_address][google.cloud.talent.v4beta1.Address.structured_address].
	//
	// Types that are valid to be assigned to Address:
	//	*Address_UnstructuredAddress
	//	*Address_StructuredAddress
	Address isAddress_Address `protobuf_oneof:"address"`
	// Indicates if it's the person's current address.
	Current              *wrappers.BoolValue `protobuf:"bytes,4,opt,name=current,proto3" json:"current,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

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

func (m *Address) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Address.Unmarshal(m, b)
}
func (m *Address) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Address.Marshal(b, m, deterministic)
}
func (m *Address) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Address.Merge(m, src)
}
func (m *Address) XXX_Size() int {
	return xxx_messageInfo_Address.Size(m)
}
func (m *Address) XXX_DiscardUnknown() {
	xxx_messageInfo_Address.DiscardUnknown(m)
}

var xxx_messageInfo_Address proto.InternalMessageInfo

func (m *Address) GetUsage() ContactInfoUsage {
	if m != nil {
		return m.Usage
	}
	return ContactInfoUsage_CONTACT_INFO_USAGE_UNSPECIFIED
}

type isAddress_Address interface {
	isAddress_Address()
}

type Address_UnstructuredAddress struct {
	UnstructuredAddress string `protobuf:"bytes,2,opt,name=unstructured_address,json=unstructuredAddress,proto3,oneof"`
}

type Address_StructuredAddress struct {
	StructuredAddress *postaladdress.PostalAddress `protobuf:"bytes,3,opt,name=structured_address,json=structuredAddress,proto3,oneof"`
}

func (*Address_UnstructuredAddress) isAddress_Address() {}

func (*Address_StructuredAddress) isAddress_Address() {}

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

func (m *Address) GetUnstructuredAddress() string {
	if x, ok := m.GetAddress().(*Address_UnstructuredAddress); ok {
		return x.UnstructuredAddress
	}
	return ""
}

func (m *Address) GetStructuredAddress() *postaladdress.PostalAddress {
	if x, ok := m.GetAddress().(*Address_StructuredAddress); ok {
		return x.StructuredAddress
	}
	return nil
}

func (m *Address) GetCurrent() *wrappers.BoolValue {
	if m != nil {
		return m.Current
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*Address) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*Address_UnstructuredAddress)(nil),
		(*Address_StructuredAddress)(nil),
	}
}

// Resource that represents a person's email address.
type Email struct {
	// The usage of the email address. For example, SCHOOL, WORK, PERSONAL.
	Usage ContactInfoUsage `protobuf:"varint,1,opt,name=usage,proto3,enum=google.cloud.talent.v4beta1.ContactInfoUsage" json:"usage,omitempty"`
	// Email address.
	//
	// Number of characters allowed is 4,000.
	EmailAddress         string   `protobuf:"bytes,2,opt,name=email_address,json=emailAddress,proto3" json:"email_address,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *Email) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Email.Unmarshal(m, b)
}
func (m *Email) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Email.Marshal(b, m, deterministic)
}
func (m *Email) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Email.Merge(m, src)
}
func (m *Email) XXX_Size() int {
	return xxx_messageInfo_Email.Size(m)
}
func (m *Email) XXX_DiscardUnknown() {
	xxx_messageInfo_Email.DiscardUnknown(m)
}

var xxx_messageInfo_Email proto.InternalMessageInfo

func (m *Email) GetUsage() ContactInfoUsage {
	if m != nil {
		return m.Usage
	}
	return ContactInfoUsage_CONTACT_INFO_USAGE_UNSPECIFIED
}

func (m *Email) GetEmailAddress() string {
	if m != nil {
		return m.EmailAddress
	}
	return ""
}

// Resource that represents a person's telephone number.
type Phone struct {
	// The usage of the phone. For example, SCHOOL, WORK, PERSONAL.
	Usage ContactInfoUsage `protobuf:"varint,1,opt,name=usage,proto3,enum=google.cloud.talent.v4beta1.ContactInfoUsage" json:"usage,omitempty"`
	// The phone type. For example, LANDLINE, MOBILE, FAX.
	Type Phone_PhoneType `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.talent.v4beta1.Phone_PhoneType" json:"type,omitempty"`
	// Phone number.
	//
	// Any phone formats are supported and only exact matches are performed on
	// searches. For example, if a phone number in profile is provided in the
	// format of "(xxx)xxx-xxxx", in profile searches the same phone format
	// has to be provided.
	//
	// Number of characters allowed is 20.
	Number string `protobuf:"bytes,3,opt,name=number,proto3" json:"number,omitempty"`
	// When this number is available. Any descriptive string is expected.
	//
	// Number of characters allowed is 100.
	WhenAvailable        string   `protobuf:"bytes,4,opt,name=when_available,json=whenAvailable,proto3" json:"when_available,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *Phone) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Phone.Unmarshal(m, b)
}
func (m *Phone) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Phone.Marshal(b, m, deterministic)
}
func (m *Phone) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Phone.Merge(m, src)
}
func (m *Phone) XXX_Size() int {
	return xxx_messageInfo_Phone.Size(m)
}
func (m *Phone) XXX_DiscardUnknown() {
	xxx_messageInfo_Phone.DiscardUnknown(m)
}

var xxx_messageInfo_Phone proto.InternalMessageInfo

func (m *Phone) GetUsage() ContactInfoUsage {
	if m != nil {
		return m.Usage
	}
	return ContactInfoUsage_CONTACT_INFO_USAGE_UNSPECIFIED
}

func (m *Phone) GetType() Phone_PhoneType {
	if m != nil {
		return m.Type
	}
	return Phone_PHONE_TYPE_UNSPECIFIED
}

func (m *Phone) GetNumber() string {
	if m != nil {
		return m.Number
	}
	return ""
}

func (m *Phone) GetWhenAvailable() string {
	if m != nil {
		return m.WhenAvailable
	}
	return ""
}

// Resource that represents a valid URI for a personal use.
type PersonalUri struct {
	// The personal URI.
	//
	// Number of characters allowed is 4,000.
	Uri                  string   `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *PersonalUri) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PersonalUri.Unmarshal(m, b)
}
func (m *PersonalUri) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PersonalUri.Marshal(b, m, deterministic)
}
func (m *PersonalUri) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PersonalUri.Merge(m, src)
}
func (m *PersonalUri) XXX_Size() int {
	return xxx_messageInfo_PersonalUri.Size(m)
}
func (m *PersonalUri) XXX_DiscardUnknown() {
	xxx_messageInfo_PersonalUri.DiscardUnknown(m)
}

var xxx_messageInfo_PersonalUri proto.InternalMessageInfo

func (m *PersonalUri) GetUri() string {
	if m != nil {
		return m.Uri
	}
	return ""
}

// Resource that represents contact information other than phone, email,
// URI and addresses.
type AdditionalContactInfo struct {
	// The usage of this contact method. For example, SCHOOL, WORK, PERSONAL.
	Usage ContactInfoUsage `protobuf:"varint,1,opt,name=usage,proto3,enum=google.cloud.talent.v4beta1.ContactInfoUsage" json:"usage,omitempty"`
	// The name of the contact method.
	//
	// For example, "hangout", "skype".
	//
	// Number of characters allowed is 100.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// The contact id.
	//
	// Number of characters allowed is 100.
	ContactId            string   `protobuf:"bytes,3,opt,name=contact_id,json=contactId,proto3" json:"contact_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *AdditionalContactInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AdditionalContactInfo.Unmarshal(m, b)
}
func (m *AdditionalContactInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AdditionalContactInfo.Marshal(b, m, deterministic)
}
func (m *AdditionalContactInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AdditionalContactInfo.Merge(m, src)
}
func (m *AdditionalContactInfo) XXX_Size() int {
	return xxx_messageInfo_AdditionalContactInfo.Size(m)
}
func (m *AdditionalContactInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_AdditionalContactInfo.DiscardUnknown(m)
}

var xxx_messageInfo_AdditionalContactInfo proto.InternalMessageInfo

func (m *AdditionalContactInfo) GetUsage() ContactInfoUsage {
	if m != nil {
		return m.Usage
	}
	return ContactInfoUsage_CONTACT_INFO_USAGE_UNSPECIFIED
}

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

func (m *AdditionalContactInfo) GetContactId() string {
	if m != nil {
		return m.ContactId
	}
	return ""
}

// Resource that represents an employment record of a candidate.
type EmploymentRecord struct {
	// Start date of the employment.
	StartDate *date.Date `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"`
	// End date of the employment.
	EndDate *date.Date `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"`
	// The name of the employer company/organization.
	//
	// For example, "Google", "Alphabet", and so on.
	//
	// Number of characters allowed is 250.
	EmployerName string `protobuf:"bytes,3,opt,name=employer_name,json=employerName,proto3" json:"employer_name,omitempty"`
	// The division name of the employment.
	//
	// For example, division, department, client, and so on.
	//
	// Number of characters allowed is 100.
	DivisionName string `protobuf:"bytes,4,opt,name=division_name,json=divisionName,proto3" json:"division_name,omitempty"`
	// The physical address of the employer.
	Address *Address `protobuf:"bytes,5,opt,name=address,proto3" json:"address,omitempty"`
	// The job title of the employment.
	//
	// For example, "Software Engineer", "Data Scientist", and so on.
	//
	// Number of characters allowed is 250.
	JobTitle string `protobuf:"bytes,6,opt,name=job_title,json=jobTitle,proto3" json:"job_title,omitempty"`
	// The description of job content.
	//
	// Number of characters allowed is 100,000.
	JobDescription string `protobuf:"bytes,7,opt,name=job_description,json=jobDescription,proto3" json:"job_description,omitempty"`
	// If the jobs is a supervisor position.
	IsSupervisor *wrappers.BoolValue `protobuf:"bytes,8,opt,name=is_supervisor,json=isSupervisor,proto3" json:"is_supervisor,omitempty"`
	// If this employment is self-employed.
	IsSelfEmployed *wrappers.BoolValue `protobuf:"bytes,9,opt,name=is_self_employed,json=isSelfEmployed,proto3" json:"is_self_employed,omitempty"`
	// If this employment is current.
	IsCurrent *wrappers.BoolValue `protobuf:"bytes,10,opt,name=is_current,json=isCurrent,proto3" json:"is_current,omitempty"`
	// Output only. The job title snippet shows how the [job_title][google.cloud.talent.v4beta1.EmploymentRecord.job_title] is related
	// to a search query. It's empty if the [job_title][google.cloud.talent.v4beta1.EmploymentRecord.job_title] isn't related to the
	// search query.
	JobTitleSnippet string `protobuf:"bytes,11,opt,name=job_title_snippet,json=jobTitleSnippet,proto3" json:"job_title_snippet,omitempty"`
	// Output only. The job description snippet shows how the [job_description][google.cloud.talent.v4beta1.EmploymentRecord.job_description]
	// is related to a search query. It's empty if the [job_description][google.cloud.talent.v4beta1.EmploymentRecord.job_description] isn't
	// related to the search query.
	JobDescriptionSnippet string `protobuf:"bytes,12,opt,name=job_description_snippet,json=jobDescriptionSnippet,proto3" json:"job_description_snippet,omitempty"`
	// Output only. The employer name snippet shows how the [employer_name][google.cloud.talent.v4beta1.EmploymentRecord.employer_name] is
	// related to a search query. It's empty if the [employer_name][google.cloud.talent.v4beta1.EmploymentRecord.employer_name] isn't
	// related to the search query.
	EmployerNameSnippet  string   `protobuf:"bytes,13,opt,name=employer_name_snippet,json=employerNameSnippet,proto3" json:"employer_name_snippet,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *EmploymentRecord) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_EmploymentRecord.Unmarshal(m, b)
}
func (m *EmploymentRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_EmploymentRecord.Marshal(b, m, deterministic)
}
func (m *EmploymentRecord) XXX_Merge(src proto.Message) {
	xxx_messageInfo_EmploymentRecord.Merge(m, src)
}
func (m *EmploymentRecord) XXX_Size() int {
	return xxx_messageInfo_EmploymentRecord.Size(m)
}
func (m *EmploymentRecord) XXX_DiscardUnknown() {
	xxx_messageInfo_EmploymentRecord.DiscardUnknown(m)
}

var xxx_messageInfo_EmploymentRecord proto.InternalMessageInfo

func (m *EmploymentRecord) GetStartDate() *date.Date {
	if m != nil {
		return m.StartDate
	}
	return nil
}

func (m *EmploymentRecord) GetEndDate() *date.Date {
	if m != nil {
		return m.EndDate
	}
	return nil
}

func (m *EmploymentRecord) GetEmployerName() string {
	if m != nil {
		return m.EmployerName
	}
	return ""
}

func (m *EmploymentRecord) GetDivisionName() string {
	if m != nil {
		return m.DivisionName
	}
	return ""
}

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

func (m *EmploymentRecord) GetJobTitle() string {
	if m != nil {
		return m.JobTitle
	}
	return ""
}

func (m *EmploymentRecord) GetJobDescription() string {
	if m != nil {
		return m.JobDescription
	}
	return ""
}

func (m *EmploymentRecord) GetIsSupervisor() *wrappers.BoolValue {
	if m != nil {
		return m.IsSupervisor
	}
	return nil
}

func (m *EmploymentRecord) GetIsSelfEmployed() *wrappers.BoolValue {
	if m != nil {
		return m.IsSelfEmployed
	}
	return nil
}

func (m *EmploymentRecord) GetIsCurrent() *wrappers.BoolValue {
	if m != nil {
		return m.IsCurrent
	}
	return nil
}

func (m *EmploymentRecord) GetJobTitleSnippet() string {
	if m != nil {
		return m.JobTitleSnippet
	}
	return ""
}

func (m *EmploymentRecord) GetJobDescriptionSnippet() string {
	if m != nil {
		return m.JobDescriptionSnippet
	}
	return ""
}

func (m *EmploymentRecord) GetEmployerNameSnippet() string {
	if m != nil {
		return m.EmployerNameSnippet
	}
	return ""
}

// Resource that represents an education record of a candidate.
type EducationRecord struct {
	// The start date of the education.
	StartDate *date.Date `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"`
	// The end date of the education.
	EndDate *date.Date `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"`
	// The expected graduation date if currently pursuing a degree.
	ExpectedGraduationDate *date.Date `protobuf:"bytes,3,opt,name=expected_graduation_date,json=expectedGraduationDate,proto3" json:"expected_graduation_date,omitempty"`
	// The name of the school or institution.
	//
	// For example, "Stanford University", "UC Berkeley", and so on.
	//
	// Number of characters allowed is 250.
	SchoolName string `protobuf:"bytes,4,opt,name=school_name,json=schoolName,proto3" json:"school_name,omitempty"`
	// The physical address of the education institution.
	Address *Address `protobuf:"bytes,5,opt,name=address,proto3" json:"address,omitempty"`
	// The degree information. It can be one of
	// [degree_description][google.cloud.talent.v4beta1.EducationRecord.degree_description] or
	// [structured_degree][google.cloud.talent.v4beta1.EducationRecord.structured_degree].
	//
	// Types that are valid to be assigned to Degree:
	//	*EducationRecord_DegreeDescription
	//	*EducationRecord_StructuredDegree
	Degree isEducationRecord_Degree `protobuf_oneof:"degree"`
	// The description of the education.
	//
	// Number of characters allowed is 100,000.
	Description string `protobuf:"bytes,8,opt,name=description,proto3" json:"description,omitempty"`
	// If this education is current.
	IsCurrent *wrappers.BoolValue `protobuf:"bytes,9,opt,name=is_current,json=isCurrent,proto3" json:"is_current,omitempty"`
	// Output only. The school name snippet shows how the [school_name][google.cloud.talent.v4beta1.EducationRecord.school_name] is related to a
	// search query in search result. It's empty if the [school_name][google.cloud.talent.v4beta1.EducationRecord.school_name] isn't
	// related to the search query.
	SchoolNameSnippet string `protobuf:"bytes,10,opt,name=school_name_snippet,json=schoolNameSnippet,proto3" json:"school_name_snippet,omitempty"`
	// Output only. The job description snippet shows how the [Degree][google.cloud.talent.v4beta1.Degree] is related to a search
	// query in search result. It's empty if the [Degree][google.cloud.talent.v4beta1.Degree] isn't related to the
	// search query.
	DegreeSnippet        string   `protobuf:"bytes,11,opt,name=degree_snippet,json=degreeSnippet,proto3" json:"degree_snippet,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *EducationRecord) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_EducationRecord.Unmarshal(m, b)
}
func (m *EducationRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_EducationRecord.Marshal(b, m, deterministic)
}
func (m *EducationRecord) XXX_Merge(src proto.Message) {
	xxx_messageInfo_EducationRecord.Merge(m, src)
}
func (m *EducationRecord) XXX_Size() int {
	return xxx_messageInfo_EducationRecord.Size(m)
}
func (m *EducationRecord) XXX_DiscardUnknown() {
	xxx_messageInfo_EducationRecord.DiscardUnknown(m)
}

var xxx_messageInfo_EducationRecord proto.InternalMessageInfo

func (m *EducationRecord) GetStartDate() *date.Date {
	if m != nil {
		return m.StartDate
	}
	return nil
}

func (m *EducationRecord) GetEndDate() *date.Date {
	if m != nil {
		return m.EndDate
	}
	return nil
}

func (m *EducationRecord) GetExpectedGraduationDate() *date.Date {
	if m != nil {
		return m.ExpectedGraduationDate
	}
	return nil
}

func (m *EducationRecord) GetSchoolName() string {
	if m != nil {
		return m.SchoolName
	}
	return ""
}

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

type isEducationRecord_Degree interface {
	isEducationRecord_Degree()
}

type EducationRecord_DegreeDescription struct {
	DegreeDescription string `protobuf:"bytes,6,opt,name=degree_description,json=degreeDescription,proto3,oneof"`
}

type EducationRecord_StructuredDegree struct {
	StructuredDegree *Degree `protobuf:"bytes,7,opt,name=structured_degree,json=structuredDegree,proto3,oneof"`
}

func (*EducationRecord_DegreeDescription) isEducationRecord_Degree() {}

func (*EducationRecord_StructuredDegree) isEducationRecord_Degree() {}

func (m *EducationRecord) GetDegree() isEducationRecord_Degree {
	if m != nil {
		return m.Degree
	}
	return nil
}

func (m *EducationRecord) GetDegreeDescription() string {
	if x, ok := m.GetDegree().(*EducationRecord_DegreeDescription); ok {
		return x.DegreeDescription
	}
	return ""
}

func (m *EducationRecord) GetStructuredDegree() *Degree {
	if x, ok := m.GetDegree().(*EducationRecord_StructuredDegree); ok {
		return x.StructuredDegree
	}
	return nil
}

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

func (m *EducationRecord) GetIsCurrent() *wrappers.BoolValue {
	if m != nil {
		return m.IsCurrent
	}
	return nil
}

func (m *EducationRecord) GetSchoolNameSnippet() string {
	if m != nil {
		return m.SchoolNameSnippet
	}
	return ""
}

func (m *EducationRecord) GetDegreeSnippet() string {
	if m != nil {
		return m.DegreeSnippet
	}
	return ""
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*EducationRecord) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*EducationRecord_DegreeDescription)(nil),
		(*EducationRecord_StructuredDegree)(nil),
	}
}

// Resource that represents a degree pursuing or acquired by a candidate.
type Degree struct {
	// ISCED degree type.
	DegreeType DegreeType `protobuf:"varint,1,opt,name=degree_type,json=degreeType,proto3,enum=google.cloud.talent.v4beta1.DegreeType" json:"degree_type,omitempty"`
	// Full Degree name.
	//
	// For example, "B.S.", "Master of Arts", and so on.
	//
	// Number of characters allowed is 100.
	DegreeName string `protobuf:"bytes,2,opt,name=degree_name,json=degreeName,proto3" json:"degree_name,omitempty"`
	// Fields of study for the degree.
	//
	// For example, "Computer science", "engineering".
	//
	// Number of characters allowed is 100.
	FieldsOfStudy        []string `protobuf:"bytes,3,rep,name=fields_of_study,json=fieldsOfStudy,proto3" json:"fields_of_study,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *Degree) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Degree.Unmarshal(m, b)
}
func (m *Degree) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Degree.Marshal(b, m, deterministic)
}
func (m *Degree) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Degree.Merge(m, src)
}
func (m *Degree) XXX_Size() int {
	return xxx_messageInfo_Degree.Size(m)
}
func (m *Degree) XXX_DiscardUnknown() {
	xxx_messageInfo_Degree.DiscardUnknown(m)
}

var xxx_messageInfo_Degree proto.InternalMessageInfo

func (m *Degree) GetDegreeType() DegreeType {
	if m != nil {
		return m.DegreeType
	}
	return DegreeType_DEGREE_TYPE_UNSPECIFIED
}

func (m *Degree) GetDegreeName() string {
	if m != nil {
		return m.DegreeName
	}
	return ""
}

func (m *Degree) GetFieldsOfStudy() []string {
	if m != nil {
		return m.FieldsOfStudy
	}
	return nil
}

// Resource that represents an individual or collaborative activity participated
// in by a candidate, for example, an open-source project, a class assignment,
// and so on.
type Activity struct {
	// Activity display name.
	//
	// Number of characters allowed is 100.
	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Activity description.
	//
	// Number of characters allowed is 100,000.
	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	// Activity URI.
	//
	// Number of characters allowed is 4,000.
	Uri string `protobuf:"bytes,3,opt,name=uri,proto3" json:"uri,omitempty"`
	// The first creation date of the activity.
	CreateDate *date.Date `protobuf:"bytes,4,opt,name=create_date,json=createDate,proto3" json:"create_date,omitempty"`
	// The last update date of the activity.
	UpdateDate *date.Date `protobuf:"bytes,5,opt,name=update_date,json=updateDate,proto3" json:"update_date,omitempty"`
	// A list of team members involved in this activity.
	//
	// Number of characters allowed is 100.
	//
	// The limitation for max number of team members is 50.
	TeamMembers []string `protobuf:"bytes,6,rep,name=team_members,json=teamMembers,proto3" json:"team_members,omitempty"`
	// A list of skills used in this activity.
	//
	// The limitation for max number of skills used is 50.
	SkillsUsed []*Skill `protobuf:"bytes,7,rep,name=skills_used,json=skillsUsed,proto3" json:"skills_used,omitempty"`
	// Output only. Activity name snippet shows how the [display_name][google.cloud.talent.v4beta1.Activity.display_name] is related to a search
	// query. It's empty if the [display_name][google.cloud.talent.v4beta1.Activity.display_name] isn't related to the search
	// query.
	ActivityNameSnippet string `protobuf:"bytes,8,opt,name=activity_name_snippet,json=activityNameSnippet,proto3" json:"activity_name_snippet,omitempty"`
	// Output only. Activity description snippet shows how the
	// [description][google.cloud.talent.v4beta1.Activity.description] is related to a search query. It's empty if the
	// [description][google.cloud.talent.v4beta1.Activity.description] isn't related to the search query.
	ActivityDescriptionSnippet string `protobuf:"bytes,9,opt,name=activity_description_snippet,json=activityDescriptionSnippet,proto3" json:"activity_description_snippet,omitempty"`
	// Output only. Skill used snippet shows how the corresponding
	// [skills_used][google.cloud.talent.v4beta1.Activity.skills_used] are related to a search query. It's empty if the
	// corresponding [skills_used][google.cloud.talent.v4beta1.Activity.skills_used] are not related to the search query.
	SkillsUsedSnippet    []string `protobuf:"bytes,10,rep,name=skills_used_snippet,json=skillsUsedSnippet,proto3" json:"skills_used_snippet,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *Activity) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Activity.Unmarshal(m, b)
}
func (m *Activity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Activity.Marshal(b, m, deterministic)
}
func (m *Activity) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Activity.Merge(m, src)
}
func (m *Activity) XXX_Size() int {
	return xxx_messageInfo_Activity.Size(m)
}
func (m *Activity) XXX_DiscardUnknown() {
	xxx_messageInfo_Activity.DiscardUnknown(m)
}

var xxx_messageInfo_Activity proto.InternalMessageInfo

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

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

func (m *Activity) GetUri() string {
	if m != nil {
		return m.Uri
	}
	return ""
}

func (m *Activity) GetCreateDate() *date.Date {
	if m != nil {
		return m.CreateDate
	}
	return nil
}

func (m *Activity) GetUpdateDate() *date.Date {
	if m != nil {
		return m.UpdateDate
	}
	return nil
}

func (m *Activity) GetTeamMembers() []string {
	if m != nil {
		return m.TeamMembers
	}
	return nil
}

func (m *Activity) GetSkillsUsed() []*Skill {
	if m != nil {
		return m.SkillsUsed
	}
	return nil
}

func (m *Activity) GetActivityNameSnippet() string {
	if m != nil {
		return m.ActivityNameSnippet
	}
	return ""
}

func (m *Activity) GetActivityDescriptionSnippet() string {
	if m != nil {
		return m.ActivityDescriptionSnippet
	}
	return ""
}

func (m *Activity) GetSkillsUsedSnippet() []string {
	if m != nil {
		return m.SkillsUsedSnippet
	}
	return nil
}

// Resource that represents a publication resource of a candidate.
type Publication struct {
	// A list of author names.
	//
	// Number of characters allowed is 100.
	Authors []string `protobuf:"bytes,1,rep,name=authors,proto3" json:"authors,omitempty"`
	// The title of the publication.
	//
	// Number of characters allowed is 100.
	Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
	// The description of the publication.
	//
	// Number of characters allowed is 100,000.
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// The journal name of the publication.
	//
	// Number of characters allowed is 100.
	Journal string `protobuf:"bytes,4,opt,name=journal,proto3" json:"journal,omitempty"`
	// Volume number.
	//
	// Number of characters allowed is 100.
	Volume string `protobuf:"bytes,5,opt,name=volume,proto3" json:"volume,omitempty"`
	// The publisher of the journal.
	//
	// Number of characters allowed is 100.
	Publisher string `protobuf:"bytes,6,opt,name=publisher,proto3" json:"publisher,omitempty"`
	// The publication date.
	PublicationDate *date.Date `protobuf:"bytes,7,opt,name=publication_date,json=publicationDate,proto3" json:"publication_date,omitempty"`
	// The publication type.
	//
	// Number of characters allowed is 100.
	PublicationType string `protobuf:"bytes,8,opt,name=publication_type,json=publicationType,proto3" json:"publication_type,omitempty"`
	// ISBN number.
	//
	// Number of characters allowed is 100.
	Isbn                 string   `protobuf:"bytes,9,opt,name=isbn,proto3" json:"isbn,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *Publication) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Publication.Unmarshal(m, b)
}
func (m *Publication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Publication.Marshal(b, m, deterministic)
}
func (m *Publication) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Publication.Merge(m, src)
}
func (m *Publication) XXX_Size() int {
	return xxx_messageInfo_Publication.Size(m)
}
func (m *Publication) XXX_DiscardUnknown() {
	xxx_messageInfo_Publication.DiscardUnknown(m)
}

var xxx_messageInfo_Publication proto.InternalMessageInfo

func (m *Publication) GetAuthors() []string {
	if m != nil {
		return m.Authors
	}
	return nil
}

func (m *Publication) GetTitle() string {
	if m != nil {
		return m.Title
	}
	return ""
}

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

func (m *Publication) GetJournal() string {
	if m != nil {
		return m.Journal
	}
	return ""
}

func (m *Publication) GetVolume() string {
	if m != nil {
		return m.Volume
	}
	return ""
}

func (m *Publication) GetPublisher() string {
	if m != nil {
		return m.Publisher
	}
	return ""
}

func (m *Publication) GetPublicationDate() *date.Date {
	if m != nil {
		return m.PublicationDate
	}
	return nil
}

func (m *Publication) GetPublicationType() string {
	if m != nil {
		return m.PublicationType
	}
	return ""
}

func (m *Publication) GetIsbn() string {
	if m != nil {
		return m.Isbn
	}
	return ""
}

// Resource that represents the patent acquired by a candidate.
type Patent struct {
	// Name of the patent.
	//
	// Number of characters allowed is 100.
	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// A list of inventors' names.
	//
	// Number of characters allowed for each is 100.
	Inventors []string `protobuf:"bytes,2,rep,name=inventors,proto3" json:"inventors,omitempty"`
	// The status of the patent.
	//
	// Number of characters allowed is 100.
	PatentStatus string `protobuf:"bytes,3,opt,name=patent_status,json=patentStatus,proto3" json:"patent_status,omitempty"`
	// The date the last time the status of the patent was checked.
	PatentStatusDate *date.Date `protobuf:"bytes,4,opt,name=patent_status_date,json=patentStatusDate,proto3" json:"patent_status_date,omitempty"`
	// The date that the patent was filed.
	PatentFilingDate *date.Date `protobuf:"bytes,5,opt,name=patent_filing_date,json=patentFilingDate,proto3" json:"patent_filing_date,omitempty"`
	// The name of the patent office.
	//
	// Number of characters allowed is 100.
	PatentOffice string `protobuf:"bytes,6,opt,name=patent_office,json=patentOffice,proto3" json:"patent_office,omitempty"`
	// The number of the patent.
	//
	// Number of characters allowed is 100.
	PatentNumber string `protobuf:"bytes,7,opt,name=patent_number,json=patentNumber,proto3" json:"patent_number,omitempty"`
	// The description of the patent.
	//
	// Number of characters allowed is 100,000.
	PatentDescription string `protobuf:"bytes,8,opt,name=patent_description,json=patentDescription,proto3" json:"patent_description,omitempty"`
	// The skills used in this patent.
	SkillsUsed           []*Skill `protobuf:"bytes,9,rep,name=skills_used,json=skillsUsed,proto3" json:"skills_used,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *Patent) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Patent.Unmarshal(m, b)
}
func (m *Patent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Patent.Marshal(b, m, deterministic)
}
func (m *Patent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Patent.Merge(m, src)
}
func (m *Patent) XXX_Size() int {
	return xxx_messageInfo_Patent.Size(m)
}
func (m *Patent) XXX_DiscardUnknown() {
	xxx_messageInfo_Patent.DiscardUnknown(m)
}

var xxx_messageInfo_Patent proto.InternalMessageInfo

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

func (m *Patent) GetInventors() []string {
	if m != nil {
		return m.Inventors
	}
	return nil
}

func (m *Patent) GetPatentStatus() string {
	if m != nil {
		return m.PatentStatus
	}
	return ""
}

func (m *Patent) GetPatentStatusDate() *date.Date {
	if m != nil {
		return m.PatentStatusDate
	}
	return nil
}

func (m *Patent) GetPatentFilingDate() *date.Date {
	if m != nil {
		return m.PatentFilingDate
	}
	return nil
}

func (m *Patent) GetPatentOffice() string {
	if m != nil {
		return m.PatentOffice
	}
	return ""
}

func (m *Patent) GetPatentNumber() string {
	if m != nil {
		return m.PatentNumber
	}
	return ""
}

func (m *Patent) GetPatentDescription() string {
	if m != nil {
		return m.PatentDescription
	}
	return ""
}

func (m *Patent) GetSkillsUsed() []*Skill {
	if m != nil {
		return m.SkillsUsed
	}
	return nil
}

func init() {
	proto.RegisterEnum("google.cloud.talent.v4beta1.Resume_ResumeType", Resume_ResumeType_name, Resume_ResumeType_value)
	proto.RegisterEnum("google.cloud.talent.v4beta1.Phone_PhoneType", Phone_PhoneType_name, Phone_PhoneType_value)
	proto.RegisterType((*Profile)(nil), "google.cloud.talent.v4beta1.Profile")
	proto.RegisterMapType((map[string]*CustomAttribute)(nil), "google.cloud.talent.v4beta1.Profile.CustomAttributesEntry")
	proto.RegisterType((*AvailabilitySignal)(nil), "google.cloud.talent.v4beta1.AvailabilitySignal")
	proto.RegisterType((*Resume)(nil), "google.cloud.talent.v4beta1.Resume")
	proto.RegisterType((*PersonName)(nil), "google.cloud.talent.v4beta1.PersonName")
	proto.RegisterType((*PersonName_PersonStructuredName)(nil), "google.cloud.talent.v4beta1.PersonName.PersonStructuredName")
	proto.RegisterType((*Address)(nil), "google.cloud.talent.v4beta1.Address")
	proto.RegisterType((*Email)(nil), "google.cloud.talent.v4beta1.Email")
	proto.RegisterType((*Phone)(nil), "google.cloud.talent.v4beta1.Phone")
	proto.RegisterType((*PersonalUri)(nil), "google.cloud.talent.v4beta1.PersonalUri")
	proto.RegisterType((*AdditionalContactInfo)(nil), "google.cloud.talent.v4beta1.AdditionalContactInfo")
	proto.RegisterType((*EmploymentRecord)(nil), "google.cloud.talent.v4beta1.EmploymentRecord")
	proto.RegisterType((*EducationRecord)(nil), "google.cloud.talent.v4beta1.EducationRecord")
	proto.RegisterType((*Degree)(nil), "google.cloud.talent.v4beta1.Degree")
	proto.RegisterType((*Activity)(nil), "google.cloud.talent.v4beta1.Activity")
	proto.RegisterType((*Publication)(nil), "google.cloud.talent.v4beta1.Publication")
	proto.RegisterType((*Patent)(nil), "google.cloud.talent.v4beta1.Patent")
}

func init() {
	proto.RegisterFile("google/cloud/talent/v4beta1/profile.proto", fileDescriptor_f0277fc1d2fabb3b)
}

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