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

package talent

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	duration "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"
	latlng "google.golang.org/genproto/googleapis/type/latlng"
	timeofday "google.golang.org/genproto/googleapis/type/timeofday"
	_ "google.golang.org/genproto/protobuf/field_mask"
)

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

// Specify whether to include telecommute jobs.
type LocationFilter_TelecommutePreference int32

const (
	// Default value if the telecommute preference isn't specified.
	LocationFilter_TELECOMMUTE_PREFERENCE_UNSPECIFIED LocationFilter_TelecommutePreference = 0
	// Exclude telecommute jobs.
	LocationFilter_TELECOMMUTE_EXCLUDED LocationFilter_TelecommutePreference = 1
	// Allow telecommute jobs.
	LocationFilter_TELECOMMUTE_ALLOWED LocationFilter_TelecommutePreference = 2
)

var LocationFilter_TelecommutePreference_name = map[int32]string{
	0: "TELECOMMUTE_PREFERENCE_UNSPECIFIED",
	1: "TELECOMMUTE_EXCLUDED",
	2: "TELECOMMUTE_ALLOWED",
}

var LocationFilter_TelecommutePreference_value = map[string]int32{
	"TELECOMMUTE_PREFERENCE_UNSPECIFIED": 0,
	"TELECOMMUTE_EXCLUDED":               1,
	"TELECOMMUTE_ALLOWED":                2,
}

func (x LocationFilter_TelecommutePreference) String() string {
	return proto.EnumName(LocationFilter_TelecommutePreference_name, int32(x))
}

func (LocationFilter_TelecommutePreference) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_89d33ae01ee514a8, []int{2, 0}
}

// Specify the type of filtering.
type CompensationFilter_FilterType int32

const (
	// Filter type unspecified. Position holder, INVALID, should never be used.
	CompensationFilter_FILTER_TYPE_UNSPECIFIED CompensationFilter_FilterType = 0
	// Filter by `base compensation entry's` unit. A job is a match if and
	// only if the job contains a base CompensationEntry and the base
	// CompensationEntry's unit matches provided
	// [units][google.cloud.talent.v4beta1.CompensationFilter.units]. Populate
	// one or more
	// [units][google.cloud.talent.v4beta1.CompensationFilter.units].
	//
	// See
	// [CompensationInfo.CompensationEntry][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry]
	// for definition of base compensation entry.
	CompensationFilter_UNIT_ONLY CompensationFilter_FilterType = 1
	// Filter by `base compensation entry's` unit and amount / range. A job
	// is a match if and only if the job contains a base CompensationEntry, and
	// the base entry's unit matches provided
	// [CompensationUnit][google.cloud.talent.v4beta1.CompensationInfo.CompensationUnit]
	// and amount or range overlaps with provided
	// [CompensationRange][google.cloud.talent.v4beta1.CompensationInfo.CompensationRange].
	//
	// See
	// [CompensationInfo.CompensationEntry][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry]
	// for definition of base compensation entry.
	//
	// Set exactly one
	// [units][google.cloud.talent.v4beta1.CompensationFilter.units] and
	// populate [range][google.cloud.talent.v4beta1.CompensationFilter.range].
	CompensationFilter_UNIT_AND_AMOUNT CompensationFilter_FilterType = 2
	// Filter by annualized base compensation amount and `base compensation
	// entry's` unit. Populate
	// [range][google.cloud.talent.v4beta1.CompensationFilter.range] and zero or
	// more [units][google.cloud.talent.v4beta1.CompensationFilter.units].
	CompensationFilter_ANNUALIZED_BASE_AMOUNT CompensationFilter_FilterType = 3
	// Filter by annualized total compensation amount and `base compensation
	// entry's` unit . Populate
	// [range][google.cloud.talent.v4beta1.CompensationFilter.range] and zero or
	// more [units][google.cloud.talent.v4beta1.CompensationFilter.units].
	CompensationFilter_ANNUALIZED_TOTAL_AMOUNT CompensationFilter_FilterType = 4
)

var CompensationFilter_FilterType_name = map[int32]string{
	0: "FILTER_TYPE_UNSPECIFIED",
	1: "UNIT_ONLY",
	2: "UNIT_AND_AMOUNT",
	3: "ANNUALIZED_BASE_AMOUNT",
	4: "ANNUALIZED_TOTAL_AMOUNT",
}

var CompensationFilter_FilterType_value = map[string]int32{
	"FILTER_TYPE_UNSPECIFIED": 0,
	"UNIT_ONLY":               1,
	"UNIT_AND_AMOUNT":         2,
	"ANNUALIZED_BASE_AMOUNT":  3,
	"ANNUALIZED_TOTAL_AMOUNT": 4,
}

func (x CompensationFilter_FilterType) String() string {
	return proto.EnumName(CompensationFilter_FilterType_name, int32(x))
}

func (CompensationFilter_FilterType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_89d33ae01ee514a8, []int{3, 0}
}

// The traffic density to use when calculating commute time.
type CommuteFilter_RoadTraffic int32

const (
	// Road traffic situation isn't specified.
	CommuteFilter_ROAD_TRAFFIC_UNSPECIFIED CommuteFilter_RoadTraffic = 0
	// Optimal commute time without considering any traffic impact.
	CommuteFilter_TRAFFIC_FREE CommuteFilter_RoadTraffic = 1
	// Commute time calculation takes in account the peak traffic impact.
	CommuteFilter_BUSY_HOUR CommuteFilter_RoadTraffic = 2
)

var CommuteFilter_RoadTraffic_name = map[int32]string{
	0: "ROAD_TRAFFIC_UNSPECIFIED",
	1: "TRAFFIC_FREE",
	2: "BUSY_HOUR",
}

var CommuteFilter_RoadTraffic_value = map[string]int32{
	"ROAD_TRAFFIC_UNSPECIFIED": 0,
	"TRAFFIC_FREE":             1,
	"BUSY_HOUR":                2,
}

func (x CommuteFilter_RoadTraffic) String() string {
	return proto.EnumName(CommuteFilter_RoadTraffic_name, int32(x))
}

func (CommuteFilter_RoadTraffic) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_89d33ae01ee514a8, []int{4, 0}
}

// Enum indicating which set of
// [Profile.employment_records][google.cloud.talent.v4beta1.Profile.employment_records]
// to search against.
type EmployerFilter_EmployerFilterMode int32

const (
	// Default value.
	EmployerFilter_EMPLOYER_FILTER_MODE_UNSPECIFIED EmployerFilter_EmployerFilterMode = 0
	// Apply to all employers in
	// [Profile.employment_records][google.cloud.talent.v4beta1.Profile.employment_records].
	EmployerFilter_ALL_EMPLOYMENT_RECORDS EmployerFilter_EmployerFilterMode = 1
	// Apply only to current employer in
	// [Profile.employment_records][google.cloud.talent.v4beta1.Profile.employment_records].
	EmployerFilter_CURRENT_EMPLOYMENT_RECORDS_ONLY EmployerFilter_EmployerFilterMode = 2
	// Apply only to past (not current) employers in
	// [Profile.employment_records][google.cloud.talent.v4beta1.Profile.employment_records].
	EmployerFilter_PAST_EMPLOYMENT_RECORDS_ONLY EmployerFilter_EmployerFilterMode = 3
)

var EmployerFilter_EmployerFilterMode_name = map[int32]string{
	0: "EMPLOYER_FILTER_MODE_UNSPECIFIED",
	1: "ALL_EMPLOYMENT_RECORDS",
	2: "CURRENT_EMPLOYMENT_RECORDS_ONLY",
	3: "PAST_EMPLOYMENT_RECORDS_ONLY",
}

var EmployerFilter_EmployerFilterMode_value = map[string]int32{
	"EMPLOYER_FILTER_MODE_UNSPECIFIED": 0,
	"ALL_EMPLOYMENT_RECORDS":           1,
	"CURRENT_EMPLOYMENT_RECORDS_ONLY":  2,
	"PAST_EMPLOYMENT_RECORDS_ONLY":     3,
}

func (x EmployerFilter_EmployerFilterMode) String() string {
	return proto.EnumName(EmployerFilter_EmployerFilterMode_name, int32(x))
}

func (EmployerFilter_EmployerFilterMode) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_89d33ae01ee514a8, []int{7, 0}
}

// Time fields can be used in TimeFilter.
type TimeFilter_TimeField int32

const (
	// Default value.
	TimeFilter_TIME_FIELD_UNSPECIFIED TimeFilter_TimeField = 0
	// Earliest profile create time.
	TimeFilter_CREATE_TIME TimeFilter_TimeField = 1
	// Latest profile update time.
	TimeFilter_UPDATE_TIME TimeFilter_TimeField = 2
)

var TimeFilter_TimeField_name = map[int32]string{
	0: "TIME_FIELD_UNSPECIFIED",
	1: "CREATE_TIME",
	2: "UPDATE_TIME",
}

var TimeFilter_TimeField_value = map[string]int32{
	"TIME_FIELD_UNSPECIFIED": 0,
	"CREATE_TIME":            1,
	"UPDATE_TIME":            2,
}

func (x TimeFilter_TimeField) String() string {
	return proto.EnumName(TimeFilter_TimeField_name, int32(x))
}

func (TimeFilter_TimeField) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_89d33ae01ee514a8, []int{13, 0}
}

// The query required to perform a search query.
type JobQuery struct {
	// The query string that matches against the job title, description, and
	// location fields.
	//
	// The maximum number of allowed characters is 255.
	Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
	// The language code of [query][google.cloud.talent.v4beta1.JobQuery.query].
	// For example, "en-US". This field helps to better interpret the query.
	//
	// If a value isn't specified, the query language code is automatically
	// detected, which may not be accurate.
	//
	// Language code should be in BCP-47 format, such as "en-US" or "sr-Latn".
	// For more information, see
	// [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
	QueryLanguageCode string `protobuf:"bytes,14,opt,name=query_language_code,json=queryLanguageCode,proto3" json:"query_language_code,omitempty"`
	// This filter specifies the company entities to search against.
	//
	// If a value isn't specified, jobs are searched for against all
	// companies.
	//
	// If multiple values are specified, jobs are searched against the
	// companies specified.
	//
	// The format is
	// "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
	// example, "projects/foo/tenants/bar/companies/baz".
	//
	// If tenant id is unspecified, the default tenant is used. For
	// example, "projects/foo/companies/bar".
	//
	// At most 20 company filters are allowed.
	Companies []string `protobuf:"bytes,2,rep,name=companies,proto3" json:"companies,omitempty"`
	// The location filter specifies geo-regions containing the jobs to
	// search against. See
	// [LocationFilter][google.cloud.talent.v4beta1.LocationFilter] for more
	// information.
	//
	// If a location value isn't specified, jobs fitting the other search
	// criteria are retrieved regardless of where they're located.
	//
	// If multiple values are specified, jobs are retrieved from any of the
	// specified locations. If different values are specified for the
	// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles]
	// parameter, the maximum provided distance is used for all locations.
	//
	// At most 5 location filters are allowed.
	LocationFilters []*LocationFilter `protobuf:"bytes,3,rep,name=location_filters,json=locationFilters,proto3" json:"location_filters,omitempty"`
	// The category filter specifies the categories of jobs to search against.
	// See [JobCategory][google.cloud.talent.v4beta1.JobCategory] for more
	// information.
	//
	// If a value isn't specified, jobs from any category are searched against.
	//
	// If multiple values are specified, jobs from any of the specified
	// categories are searched against.
	JobCategories []JobCategory `protobuf:"varint,4,rep,packed,name=job_categories,json=jobCategories,proto3,enum=google.cloud.talent.v4beta1.JobCategory" json:"job_categories,omitempty"`
	// Allows filtering jobs by commute time with different travel methods (for
	//  example, driving or public transit).
	//
	// Note: This only works when you specify a
	// [CommuteMethod][google.cloud.talent.v4beta1.CommuteMethod]. In this case,
	// [location_filters][google.cloud.talent.v4beta1.JobQuery.location_filters]
	// is ignored.
	//
	//  Currently we don't support sorting by commute time.
	CommuteFilter *CommuteFilter `protobuf:"bytes,5,opt,name=commute_filter,json=commuteFilter,proto3" json:"commute_filter,omitempty"`
	// This filter specifies the exact company
	// [Company.display_name][google.cloud.talent.v4beta1.Company.display_name] of
	// the jobs to search against.
	//
	// If a value isn't specified, jobs within the search results are
	// associated with any company.
	//
	// If multiple values are specified, jobs within the search results may be
	// associated with any of the specified companies.
	//
	// At most 20 company display name filters are allowed.
	CompanyDisplayNames []string `protobuf:"bytes,6,rep,name=company_display_names,json=companyDisplayNames,proto3" json:"company_display_names,omitempty"`
	// This search filter is applied only to
	// [Job.compensation_info][google.cloud.talent.v4beta1.Job.compensation_info].
	// For example, if the filter is specified as "Hourly job with per-hour
	// compensation > $15", only jobs meeting these criteria are searched. If a
	// filter isn't defined, all open jobs are searched.
	CompensationFilter *CompensationFilter `protobuf:"bytes,7,opt,name=compensation_filter,json=compensationFilter,proto3" json:"compensation_filter,omitempty"`
	// This filter specifies a structured syntax to match against the
	// [Job.custom_attributes][google.cloud.talent.v4beta1.Job.custom_attributes]
	// marked as `filterable`.
	//
	// The syntax for this expression is a subset of SQL syntax.
	//
	// Supported operators are: `=`, `!=`, `<`, `<=`, `>`, and `>=` where the
	// left of the operator is a custom field key and the right of the operator
	// is a number or a quoted string. You must escape backslash (\\) and
	// quote (\") characters.
	//
	// Supported functions are `LOWER([field_name])` to
	// perform a case insensitive match and `EMPTY([field_name])` to filter on the
	// existence of a key.
	//
	// Boolean expressions (AND/OR/NOT) are supported up to 3 levels of
	// nesting (for example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 100
	// comparisons or functions are allowed in the expression. The expression
	// must be < 6000 bytes in length.
	//
	// Sample Query:
	// `(LOWER(driving_license)="class \"a\"" OR EMPTY(driving_license)) AND
	// driving_years > 10`
	CustomAttributeFilter string `protobuf:"bytes,8,opt,name=custom_attribute_filter,json=customAttributeFilter,proto3" json:"custom_attribute_filter,omitempty"`
	// This flag controls the spell-check feature. If false, the
	// service attempts to correct a misspelled query,
	// for example, "enginee" is corrected to "engineer".
	//
	// Defaults to false: a spell check is performed.
	DisableSpellCheck bool `protobuf:"varint,9,opt,name=disable_spell_check,json=disableSpellCheck,proto3" json:"disable_spell_check,omitempty"`
	// The employment type filter specifies the employment type of jobs to
	// search against, such as
	// [EmploymentType.FULL_TIME][google.cloud.talent.v4beta1.EmploymentType.FULL_TIME].
	//
	// If a value isn't specified, jobs in the search results includes any
	// employment type.
	//
	// If multiple values are specified, jobs in the search results include
	// any of the specified employment types.
	EmploymentTypes []EmploymentType `protobuf:"varint,10,rep,packed,name=employment_types,json=employmentTypes,proto3,enum=google.cloud.talent.v4beta1.EmploymentType" json:"employment_types,omitempty"`
	// This filter specifies the locale of jobs to search against,
	// for example, "en-US".
	//
	// If a value isn't specified, the search results can contain jobs in any
	// locale.
	//
	//
	// Language codes should be in BCP-47 format, such as "en-US" or "sr-Latn".
	// For more information, see
	// [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
	//
	// At most 10 language code filters are allowed.
	LanguageCodes []string `protobuf:"bytes,11,rep,name=language_codes,json=languageCodes,proto3" json:"language_codes,omitempty"`
	// Jobs published within a range specified by this filter are searched
	// against.
	PublishTimeRange *TimestampRange `protobuf:"bytes,12,opt,name=publish_time_range,json=publishTimeRange,proto3" json:"publish_time_range,omitempty"`
	// This filter specifies a list of job names to be excluded during search.
	//
	// At most 400 excluded job names are allowed.
	ExcludedJobs         []string `protobuf:"bytes,13,rep,name=excluded_jobs,json=excludedJobs,proto3" json:"excluded_jobs,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_JobQuery proto.InternalMessageInfo

func (m *JobQuery) GetQuery() string {
	if m != nil {
		return m.Query
	}
	return ""
}

func (m *JobQuery) GetQueryLanguageCode() string {
	if m != nil {
		return m.QueryLanguageCode
	}
	return ""
}

func (m *JobQuery) GetCompanies() []string {
	if m != nil {
		return m.Companies
	}
	return nil
}

func (m *JobQuery) GetLocationFilters() []*LocationFilter {
	if m != nil {
		return m.LocationFilters
	}
	return nil
}

func (m *JobQuery) GetJobCategories() []JobCategory {
	if m != nil {
		return m.JobCategories
	}
	return nil
}

func (m *JobQuery) GetCommuteFilter() *CommuteFilter {
	if m != nil {
		return m.CommuteFilter
	}
	return nil
}

func (m *JobQuery) GetCompanyDisplayNames() []string {
	if m != nil {
		return m.CompanyDisplayNames
	}
	return nil
}

func (m *JobQuery) GetCompensationFilter() *CompensationFilter {
	if m != nil {
		return m.CompensationFilter
	}
	return nil
}

func (m *JobQuery) GetCustomAttributeFilter() string {
	if m != nil {
		return m.CustomAttributeFilter
	}
	return ""
}

func (m *JobQuery) GetDisableSpellCheck() bool {
	if m != nil {
		return m.DisableSpellCheck
	}
	return false
}

func (m *JobQuery) GetEmploymentTypes() []EmploymentType {
	if m != nil {
		return m.EmploymentTypes
	}
	return nil
}

func (m *JobQuery) GetLanguageCodes() []string {
	if m != nil {
		return m.LanguageCodes
	}
	return nil
}

func (m *JobQuery) GetPublishTimeRange() *TimestampRange {
	if m != nil {
		return m.PublishTimeRange
	}
	return nil
}

func (m *JobQuery) GetExcludedJobs() []string {
	if m != nil {
		return m.ExcludedJobs
	}
	return nil
}

// Filters to apply when performing the search query.
type ProfileQuery struct {
	// Keywords to match any text fields of profiles.
	//
	// For example, "software engineer in Palo Alto".
	Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
	// The location filter specifies geo-regions containing the profiles to
	// search against.
	//
	// One of
	// [LocationFilter.address][google.cloud.talent.v4beta1.LocationFilter.address]
	// or
	// [LocationFilter.lat_lng][google.cloud.talent.v4beta1.LocationFilter.lat_lng]
	// must be provided or an error is thrown. If both
	// [LocationFilter.address][google.cloud.talent.v4beta1.LocationFilter.address]
	// and
	// [LocationFilter.lat_lng][google.cloud.talent.v4beta1.LocationFilter.lat_lng]
	// are provided, an error is thrown.
	//
	// The following logic is used to determine which locations in
	// the profile to filter against:
	//
	// 1. All of the profile's geocoded
	// [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] where
	// [Address.usage][google.cloud.talent.v4beta1.Address.usage] is PERSONAL and
	// [Address.current][google.cloud.talent.v4beta1.Address.current] is true.
	//
	// 2. If the above set of locations is empty, all of the profile's geocoded
	// [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] where
	// [Address.usage][google.cloud.talent.v4beta1.Address.usage] is
	// CONTACT_INFO_USAGE_UNSPECIFIED and
	// [Address.current][google.cloud.talent.v4beta1.Address.current] is true.
	//
	// 3. If the above set of locations is empty, all of the profile's geocoded
	// [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] where
	// [Address.usage][google.cloud.talent.v4beta1.Address.usage] is PERSONAL or
	// CONTACT_INFO_USAGE_UNSPECIFIED and
	// [Address.current][google.cloud.talent.v4beta1.Address.current] is not set.
	//
	// This means that any profiles without any
	// [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] that
	// match any of the above criteria will not be included in a search with
	// location filter. Furthermore, any
	// [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] where
	// [Address.usage][google.cloud.talent.v4beta1.Address.usage] is WORK or
	// SCHOOL or where
	// [Address.current][google.cloud.talent.v4beta1.Address.current] is false are
	// not considered for location filter.
	//
	// If a location filter isn't specified, profiles fitting the other search
	// criteria are retrieved regardless of where they're located.
	//
	// If
	// [LocationFilter.negated][google.cloud.talent.v4beta1.LocationFilter.negated]
	// is specified, the result doesn't contain profiles from that location.
	//
	// If
	// [LocationFilter.address][google.cloud.talent.v4beta1.LocationFilter.address]
	// is provided, the
	// [LocationType][google.cloud.talent.v4beta1.Location.LocationType], center
	// point (latitude and longitude), and radius are automatically detected by
	// the Google Maps Geocoding API and included as well. If
	// [LocationFilter.address][google.cloud.talent.v4beta1.LocationFilter.address]
	// cannot be geocoded, the filter falls back to keyword search.
	//
	// If the detected
	// [LocationType][google.cloud.talent.v4beta1.Location.LocationType] is
	// [LocationType.SUB_ADMINISTRATIVE_AREA][google.cloud.talent.v4beta1.Location.LocationType.SUB_ADMINISTRATIVE_AREA],
	// [LocationType.ADMINISTRATIVE_AREA][google.cloud.talent.v4beta1.Location.LocationType.ADMINISTRATIVE_AREA],
	// or
	// [LocationType.COUNTRY][google.cloud.talent.v4beta1.Location.LocationType.COUNTRY],
	// the filter is performed against the detected location name (using exact
	// text matching). Otherwise, the filter is performed against the detected
	// center point and a radius of detected location radius +
	// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles].
	//
	// If
	// [LocationFilter.address][google.cloud.talent.v4beta1.LocationFilter.address]
	// is provided,
	// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles]
	// is the additional radius on top of the radius of the location geocoded from
	// [LocationFilter.address][google.cloud.talent.v4beta1.LocationFilter.address].
	// If
	// [LocationFilter.lat_lng][google.cloud.talent.v4beta1.LocationFilter.lat_lng]
	// is provided,
	// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles]
	// is the only radius that is used.
	//
	// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles]
	// is 10 by default. Note that the value of
	// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles]
	// is 0 if it is unset, so the server does not differentiate
	// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles]
	// that is explicitly set to 0 and
	// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles]
	// that is not set. Which means that if
	// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles]
	// is explicitly set to 0, the server will use the default value of
	// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles]
	// which is 10. To work around this and effectively set
	// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles]
	// to 0, we recommend setting
	// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles]
	// to a very small decimal number (such as 0.00001).
	//
	// If
	// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles]
	// is negative, an error is thrown.
	LocationFilters []*LocationFilter `protobuf:"bytes,2,rep,name=location_filters,json=locationFilters,proto3" json:"location_filters,omitempty"`
	// Job title filter specifies job titles of profiles to match on.
	//
	// If a job title isn't specified, profiles with any titles are retrieved.
	//
	// If multiple values are specified, profiles are retrieved with any of the
	// specified job titles.
	//
	// If
	// [JobTitleFilter.negated][google.cloud.talent.v4beta1.JobTitleFilter.negated]
	// is specified, the result won't contain profiles with the job titles.
	//
	// For example, search for profiles with a job title "Product Manager".
	JobTitleFilters []*JobTitleFilter `protobuf:"bytes,3,rep,name=job_title_filters,json=jobTitleFilters,proto3" json:"job_title_filters,omitempty"`
	// Employer filter specifies employers of profiles to match on.
	//
	// If an employer filter isn't specified, profiles with any employers are
	// retrieved.
	//
	// If multiple employer filters are specified, profiles with any matching
	// employers are retrieved.
	//
	// If
	// [EmployerFilter.negated][google.cloud.talent.v4beta1.EmployerFilter.negated]
	// is specified, the result won't contain profiles that match the employers.
	//
	// For example, search for profiles that have working experience at "Google
	// LLC".
	EmployerFilters []*EmployerFilter `protobuf:"bytes,4,rep,name=employer_filters,json=employerFilters,proto3" json:"employer_filters,omitempty"`
	// Education filter specifies education of profiles to match on.
	//
	// If an education filter isn't specified, profiles with any education are
	// retrieved.
	//
	// If multiple education filters are specified, profiles that match any
	// education filters are retrieved.
	//
	// If
	// [EducationFilter.negated][google.cloud.talent.v4beta1.EducationFilter.negated]
	// is specified, the result won't contain profiles that match the educations.
	//
	// For example, search for profiles with a master degree.
	EducationFilters []*EducationFilter `protobuf:"bytes,5,rep,name=education_filters,json=educationFilters,proto3" json:"education_filters,omitempty"`
	// Skill filter specifies skill of profiles to match on.
	//
	// If a skill filter isn't specified, profiles with any skills are retrieved.
	//
	// If multiple skill filters are specified, profiles that match any skill
	// filters are retrieved.
	//
	// If [SkillFilter.negated][google.cloud.talent.v4beta1.SkillFilter.negated]
	// is specified, the result won't contain profiles that match the skills.
	//
	// For example, search for profiles that have "Java" and "Python" in skill
	// list.
	SkillFilters []*SkillFilter `protobuf:"bytes,6,rep,name=skill_filters,json=skillFilters,proto3" json:"skill_filters,omitempty"`
	// Work experience filter specifies the total working experience of profiles
	// to match on.
	//
	// If a work experience filter isn't specified, profiles with any
	// professional experience are retrieved.
	//
	// If multiple work experience filters are specified, profiles that match any
	// work experience filters are retrieved.
	//
	// For example, search for profiles with 10 years of work experience.
	WorkExperienceFilter []*WorkExperienceFilter `protobuf:"bytes,7,rep,name=work_experience_filter,json=workExperienceFilter,proto3" json:"work_experience_filter,omitempty"`
	// Time filter specifies the create/update timestamp of the profiles to match
	// on.
	//
	// For example, search for profiles created since "2018-1-1".
	TimeFilters []*TimeFilter `protobuf:"bytes,8,rep,name=time_filters,json=timeFilters,proto3" json:"time_filters,omitempty"`
	// The hirable filter specifies the profile's hirable status to match on.
	HirableFilter *wrappers.BoolValue `protobuf:"bytes,9,opt,name=hirable_filter,json=hirableFilter,proto3" json:"hirable_filter,omitempty"`
	// The application date filters specify application date ranges to match on.
	ApplicationDateFilters []*ApplicationDateFilter `protobuf:"bytes,10,rep,name=application_date_filters,json=applicationDateFilters,proto3" json:"application_date_filters,omitempty"`
	// The application outcome notes filters specify the notes for the outcome of
	// the job application.
	ApplicationOutcomeNotesFilters []*ApplicationOutcomeNotesFilter `protobuf:"bytes,11,rep,name=application_outcome_notes_filters,json=applicationOutcomeNotesFilters,proto3" json:"application_outcome_notes_filters,omitempty"`
	// The application job filters specify the job applied for in the application.
	ApplicationJobFilters []*ApplicationJobFilter `protobuf:"bytes,13,rep,name=application_job_filters,json=applicationJobFilters,proto3" json:"application_job_filters,omitempty"`
	// This filter specifies a structured syntax to match against the
	// [Profile.custom_attributes][google.cloud.talent.v4beta1.Profile.custom_attributes]
	// that are marked as `filterable`.
	//
	// The syntax for this expression is a subset of Google SQL syntax.
	//
	// String custom attributes: supported operators are =, != where the left of
	// the operator is a custom field key and the right of the operator is a
	// string (surrounded by quotes) value.
	//
	// Numeric custom attributes: Supported operators are '>', '<' or '='
	// operators where the left of the operator is a custom field key and the
	// right of the operator is a numeric value.
	//
	// Supported functions are LOWER(<field_name>) to
	// perform case insensitive match and EMPTY(<field_name>) to filter on the
	// existence of a key.
	//
	// Boolean expressions (AND/OR/NOT) are supported up to 3 levels of
	// nesting (for example "((A AND B AND C) OR NOT D) AND E"), and there can be
	// a maximum of 50 comparisons/functions in the expression. The expression
	// must be < 2000 characters in length.
	//
	// Sample Query:
	// (key1 = "TEST" OR LOWER(key1)="test" OR NOT EMPTY(key1))
	CustomAttributeFilter string `protobuf:"bytes,15,opt,name=custom_attribute_filter,json=customAttributeFilter,proto3" json:"custom_attribute_filter,omitempty"`
	// Deprecated. Use availability_filters instead.
	//
	// The candidate availability filter which filters based on availability
	// signals.
	//
	// Signal 1: Number of days since most recent job application.  See
	// [Availability.JobApplicationAvailabilitySignal][google.cloud.talent.v4beta1.Availability.JobApplicationAvailabilitySignal]
	// for the details of this signal.
	//
	// Signal 2: Number of days since last profile update. See
	// [Availability.ProfileUpdateAvailabilitySignal][google.cloud.talent.v4beta1.Availability.ProfileUpdateAvailabilitySignal]
	// for the details of this signal.
	//
	// The candidate availability filter helps a recruiter understand if a
	// specific candidate is likely to be actively seeking new job opportunities
	// based on an aggregated set of signals.  Specifically, the intent is NOT to
	// indicate the candidate's potential qualification / interest / close ability
	// for a specific job.
	CandidateAvailabilityFilter *CandidateAvailabilityFilter `protobuf:"bytes,16,opt,name=candidate_availability_filter,json=candidateAvailabilityFilter,proto3" json:"candidate_availability_filter,omitempty"` // Deprecated: Do not use.
	// The availability filter which filters based on
	// [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals].
	//
	// The availability filter helps a recruiter understand if a
	// specific candidate is likely to be actively seeking new job opportunities
	// based on an aggregated set of signals.  Specifically, the intent is NOT to
	// indicate the candidate's potential qualification / interest / close ability
	// for a specific job.
	//
	// There can be at most one
	// [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter] per
	// [signal_type][google.cloud.talent.v4beta1.AvailabilityFilter.signal_type].
	// If there are multiple
	// [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter] for a
	// [signal_type][google.cloud.talent.v4beta1.AvailabilityFilter.signal_type],
	// an error is thrown.
	AvailabilityFilters []*AvailabilityFilter `protobuf:"bytes,18,rep,name=availability_filters,json=availabilityFilters,proto3" json:"availability_filters,omitempty"`
	// Person name filter specifies person name of profiles to match on.
	//
	// If multiple person name filters are specified, profiles that match any
	// person name filters are retrieved.
	//
	// For example, search for profiles of candidates with name "John Smith".
	PersonNameFilters    []*PersonNameFilter `protobuf:"bytes,17,rep,name=person_name_filters,json=personNameFilters,proto3" json:"person_name_filters,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

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

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

var xxx_messageInfo_ProfileQuery proto.InternalMessageInfo

func (m *ProfileQuery) GetQuery() string {
	if m != nil {
		return m.Query
	}
	return ""
}

func (m *ProfileQuery) GetLocationFilters() []*LocationFilter {
	if m != nil {
		return m.LocationFilters
	}
	return nil
}

func (m *ProfileQuery) GetJobTitleFilters() []*JobTitleFilter {
	if m != nil {
		return m.JobTitleFilters
	}
	return nil
}

func (m *ProfileQuery) GetEmployerFilters() []*EmployerFilter {
	if m != nil {
		return m.EmployerFilters
	}
	return nil
}

func (m *ProfileQuery) GetEducationFilters() []*EducationFilter {
	if m != nil {
		return m.EducationFilters
	}
	return nil
}

func (m *ProfileQuery) GetSkillFilters() []*SkillFilter {
	if m != nil {
		return m.SkillFilters
	}
	return nil
}

func (m *ProfileQuery) GetWorkExperienceFilter() []*WorkExperienceFilter {
	if m != nil {
		return m.WorkExperienceFilter
	}
	return nil
}

func (m *ProfileQuery) GetTimeFilters() []*TimeFilter {
	if m != nil {
		return m.TimeFilters
	}
	return nil
}

func (m *ProfileQuery) GetHirableFilter() *wrappers.BoolValue {
	if m != nil {
		return m.HirableFilter
	}
	return nil
}

func (m *ProfileQuery) GetApplicationDateFilters() []*ApplicationDateFilter {
	if m != nil {
		return m.ApplicationDateFilters
	}
	return nil
}

func (m *ProfileQuery) GetApplicationOutcomeNotesFilters() []*ApplicationOutcomeNotesFilter {
	if m != nil {
		return m.ApplicationOutcomeNotesFilters
	}
	return nil
}

func (m *ProfileQuery) GetApplicationJobFilters() []*ApplicationJobFilter {
	if m != nil {
		return m.ApplicationJobFilters
	}
	return nil
}

func (m *ProfileQuery) GetCustomAttributeFilter() string {
	if m != nil {
		return m.CustomAttributeFilter
	}
	return ""
}

// Deprecated: Do not use.
func (m *ProfileQuery) GetCandidateAvailabilityFilter() *CandidateAvailabilityFilter {
	if m != nil {
		return m.CandidateAvailabilityFilter
	}
	return nil
}

func (m *ProfileQuery) GetAvailabilityFilters() []*AvailabilityFilter {
	if m != nil {
		return m.AvailabilityFilters
	}
	return nil
}

func (m *ProfileQuery) GetPersonNameFilters() []*PersonNameFilter {
	if m != nil {
		return m.PersonNameFilters
	}
	return nil
}

// Geographic region of the search.
type LocationFilter struct {
	// The address name, such as "Mountain View" or "Bay Area".
	Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	// CLDR region code of the country/region of the address. This is used
	// to address ambiguity of the user-input location, for example, "Liverpool"
	// against "Liverpool, NY, US" or "Liverpool, UK".
	//
	// Set this field to bias location resolution toward a specific country
	// or territory. If this field is not set, application behavior is biased
	// toward the United States by default.
	//
	// See https://cldr.unicode.org/ and
	// https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
	// for details. Example: "CH" for Switzerland.
	// Note that this filter is not applicable for Profile Search related queries.
	RegionCode string `protobuf:"bytes,2,opt,name=region_code,json=regionCode,proto3" json:"region_code,omitempty"`
	// The latitude and longitude of the geographic center to search from. This
	// field is ignored if `address` is provided.
	LatLng *latlng.LatLng `protobuf:"bytes,3,opt,name=lat_lng,json=latLng,proto3" json:"lat_lng,omitempty"`
	// The distance_in_miles is applied when the location being searched for is
	// identified as a city or smaller. This field is ignored if the location
	// being searched for is a state or larger.
	DistanceInMiles float64 `protobuf:"fixed64,4,opt,name=distance_in_miles,json=distanceInMiles,proto3" json:"distance_in_miles,omitempty"`
	// Allows the client to return jobs without a
	// set location, specifically, telecommuting jobs (telecommuting is considered
	// by the service as a special location.
	// [Job.posting_region][google.cloud.talent.v4beta1.Job.posting_region]
	// indicates if a job permits telecommuting. If this field is set to
	// [TelecommutePreference.TELECOMMUTE_ALLOWED][google.cloud.talent.v4beta1.LocationFilter.TelecommutePreference.TELECOMMUTE_ALLOWED],
	// telecommuting jobs are searched, and
	// [address][google.cloud.talent.v4beta1.LocationFilter.address] and
	// [lat_lng][google.cloud.talent.v4beta1.LocationFilter.lat_lng] are ignored.
	// If not set or set to
	// [TelecommutePreference.TELECOMMUTE_EXCLUDED][google.cloud.talent.v4beta1.LocationFilter.TelecommutePreference.TELECOMMUTE_EXCLUDED],
	// telecommute job are not searched.
	//
	// This filter can be used by itself to search exclusively for telecommuting
	// jobs, or it can be combined with another location
	// filter to search for a combination of job locations,
	// such as "Mountain View" or "telecommuting" jobs. However, when used in
	// combination with other location filters, telecommuting jobs can be
	// treated as less relevant than other jobs in the search response.
	//
	// This field is only used for job search requests.
	TelecommutePreference LocationFilter_TelecommutePreference `protobuf:"varint,5,opt,name=telecommute_preference,json=telecommutePreference,proto3,enum=google.cloud.talent.v4beta1.LocationFilter_TelecommutePreference" json:"telecommute_preference,omitempty"`
	// Whether to apply negation to the filter so profiles matching the filter
	// are excluded.
	//
	// Currently only supported in profile search.
	Negated              bool     `protobuf:"varint,6,opt,name=negated,proto3" json:"negated,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_LocationFilter proto.InternalMessageInfo

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

func (m *LocationFilter) GetRegionCode() string {
	if m != nil {
		return m.RegionCode
	}
	return ""
}

func (m *LocationFilter) GetLatLng() *latlng.LatLng {
	if m != nil {
		return m.LatLng
	}
	return nil
}

func (m *LocationFilter) GetDistanceInMiles() float64 {
	if m != nil {
		return m.DistanceInMiles
	}
	return 0
}

func (m *LocationFilter) GetTelecommutePreference() LocationFilter_TelecommutePreference {
	if m != nil {
		return m.TelecommutePreference
	}
	return LocationFilter_TELECOMMUTE_PREFERENCE_UNSPECIFIED
}

func (m *LocationFilter) GetNegated() bool {
	if m != nil {
		return m.Negated
	}
	return false
}

// Filter on job compensation type and amount.
type CompensationFilter struct {
	// Required. Type of filter.
	Type CompensationFilter_FilterType `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.talent.v4beta1.CompensationFilter_FilterType" json:"type,omitempty"`
	// Required. Specify desired `base compensation entry's`
	// [CompensationInfo.CompensationUnit][google.cloud.talent.v4beta1.CompensationInfo.CompensationUnit].
	Units []CompensationInfo_CompensationUnit `protobuf:"varint,2,rep,packed,name=units,proto3,enum=google.cloud.talent.v4beta1.CompensationInfo_CompensationUnit" json:"units,omitempty"`
	// Compensation range.
	Range *CompensationInfo_CompensationRange `protobuf:"bytes,3,opt,name=range,proto3" json:"range,omitempty"`
	// If set to true, jobs with unspecified compensation range fields are
	// included.
	IncludeJobsWithUnspecifiedCompensationRange bool     `protobuf:"varint,4,opt,name=include_jobs_with_unspecified_compensation_range,json=includeJobsWithUnspecifiedCompensationRange,proto3" json:"include_jobs_with_unspecified_compensation_range,omitempty"`
	XXX_NoUnkeyedLiteral                        struct{} `json:"-"`
	XXX_unrecognized                            []byte   `json:"-"`
	XXX_sizecache                               int32    `json:"-"`
}

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

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

var xxx_messageInfo_CompensationFilter proto.InternalMessageInfo

func (m *CompensationFilter) GetType() CompensationFilter_FilterType {
	if m != nil {
		return m.Type
	}
	return CompensationFilter_FILTER_TYPE_UNSPECIFIED
}

func (m *CompensationFilter) GetUnits() []CompensationInfo_CompensationUnit {
	if m != nil {
		return m.Units
	}
	return nil
}

func (m *CompensationFilter) GetRange() *CompensationInfo_CompensationRange {
	if m != nil {
		return m.Range
	}
	return nil
}

func (m *CompensationFilter) GetIncludeJobsWithUnspecifiedCompensationRange() bool {
	if m != nil {
		return m.IncludeJobsWithUnspecifiedCompensationRange
	}
	return false
}

// Parameters needed for commute search.
type CommuteFilter struct {
	// Required. The method of transportation to calculate the commute time for.
	CommuteMethod CommuteMethod `protobuf:"varint,1,opt,name=commute_method,json=commuteMethod,proto3,enum=google.cloud.talent.v4beta1.CommuteMethod" json:"commute_method,omitempty"`
	// Required. The latitude and longitude of the location to calculate the
	// commute time from.
	StartCoordinates *latlng.LatLng `protobuf:"bytes,2,opt,name=start_coordinates,json=startCoordinates,proto3" json:"start_coordinates,omitempty"`
	// Required. The maximum travel time in seconds. The maximum allowed value is
	// `3600s` (one hour). Format is `123s`.
	TravelDuration *duration.Duration `protobuf:"bytes,3,opt,name=travel_duration,json=travelDuration,proto3" json:"travel_duration,omitempty"`
	// If `true`, jobs without street level addresses may also be returned.
	// For city level addresses, the city center is used. For state and coarser
	// level addresses, text matching is used.
	// If this field is set to `false` or isn't specified, only jobs that include
	// street level addresses will be returned by commute search.
	AllowImpreciseAddresses bool `protobuf:"varint,4,opt,name=allow_imprecise_addresses,json=allowImpreciseAddresses,proto3" json:"allow_imprecise_addresses,omitempty"`
	// Traffic factor to take into account while searching by commute.
	//
	// Types that are valid to be assigned to TrafficOption:
	//	*CommuteFilter_RoadTraffic_
	//	*CommuteFilter_DepartureTime
	TrafficOption        isCommuteFilter_TrafficOption `protobuf_oneof:"traffic_option"`
	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
	XXX_unrecognized     []byte                        `json:"-"`
	XXX_sizecache        int32                         `json:"-"`
}

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

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

var xxx_messageInfo_CommuteFilter proto.InternalMessageInfo

func (m *CommuteFilter) GetCommuteMethod() CommuteMethod {
	if m != nil {
		return m.CommuteMethod
	}
	return CommuteMethod_COMMUTE_METHOD_UNSPECIFIED
}

func (m *CommuteFilter) GetStartCoordinates() *latlng.LatLng {
	if m != nil {
		return m.StartCoordinates
	}
	return nil
}

func (m *CommuteFilter) GetTravelDuration() *duration.Duration {
	if m != nil {
		return m.TravelDuration
	}
	return nil
}

func (m *CommuteFilter) GetAllowImpreciseAddresses() bool {
	if m != nil {
		return m.AllowImpreciseAddresses
	}
	return false
}

type isCommuteFilter_TrafficOption interface {
	isCommuteFilter_TrafficOption()
}

type CommuteFilter_RoadTraffic_ struct {
	RoadTraffic CommuteFilter_RoadTraffic `protobuf:"varint,5,opt,name=road_traffic,json=roadTraffic,proto3,enum=google.cloud.talent.v4beta1.CommuteFilter_RoadTraffic,oneof"`
}

type CommuteFilter_DepartureTime struct {
	DepartureTime *timeofday.TimeOfDay `protobuf:"bytes,6,opt,name=departure_time,json=departureTime,proto3,oneof"`
}

func (*CommuteFilter_RoadTraffic_) isCommuteFilter_TrafficOption() {}

func (*CommuteFilter_DepartureTime) isCommuteFilter_TrafficOption() {}

func (m *CommuteFilter) GetTrafficOption() isCommuteFilter_TrafficOption {
	if m != nil {
		return m.TrafficOption
	}
	return nil
}

func (m *CommuteFilter) GetRoadTraffic() CommuteFilter_RoadTraffic {
	if x, ok := m.GetTrafficOption().(*CommuteFilter_RoadTraffic_); ok {
		return x.RoadTraffic
	}
	return CommuteFilter_ROAD_TRAFFIC_UNSPECIFIED
}

func (m *CommuteFilter) GetDepartureTime() *timeofday.TimeOfDay {
	if x, ok := m.GetTrafficOption().(*CommuteFilter_DepartureTime); ok {
		return x.DepartureTime
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*CommuteFilter) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*CommuteFilter_RoadTraffic_)(nil),
		(*CommuteFilter_DepartureTime)(nil),
	}
}

// Job title of the search.
type JobTitleFilter struct {
	// Required. The job title. For example, "Software engineer", or "Product
	// manager".
	JobTitle string `protobuf:"bytes,1,opt,name=job_title,json=jobTitle,proto3" json:"job_title,omitempty"`
	// Whether to apply negation to the filter so profiles matching the filter
	// are excluded.
	Negated              bool     `protobuf:"varint,2,opt,name=negated,proto3" json:"negated,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_JobTitleFilter proto.InternalMessageInfo

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

func (m *JobTitleFilter) GetNegated() bool {
	if m != nil {
		return m.Negated
	}
	return false
}

// Skill filter of the search.
type SkillFilter struct {
	// Required. The skill name. For example, "java", "j2ee", and so on.
	Skill string `protobuf:"bytes,1,opt,name=skill,proto3" json:"skill,omitempty"`
	// Whether to apply negation to the filter so profiles matching the filter
	// are excluded.
	Negated              bool     `protobuf:"varint,2,opt,name=negated,proto3" json:"negated,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_SkillFilter proto.InternalMessageInfo

func (m *SkillFilter) GetSkill() string {
	if m != nil {
		return m.Skill
	}
	return ""
}

func (m *SkillFilter) GetNegated() bool {
	if m != nil {
		return m.Negated
	}
	return false
}

// Employer filter of the search.
type EmployerFilter struct {
	// Required. The name of the employer, for example "Google", "Alphabet".
	Employer string `protobuf:"bytes,1,opt,name=employer,proto3" json:"employer,omitempty"`
	// Define set of
	// [EmploymentRecord][google.cloud.talent.v4beta1.EmploymentRecord]s to search
	// against.
	//
	// Defaults to
	// [EmployerFilterMode.ALL_EMPLOYMENT_RECORDS][google.cloud.talent.v4beta1.EmployerFilter.EmployerFilterMode.ALL_EMPLOYMENT_RECORDS].
	Mode EmployerFilter_EmployerFilterMode `protobuf:"varint,2,opt,name=mode,proto3,enum=google.cloud.talent.v4beta1.EmployerFilter_EmployerFilterMode" json:"mode,omitempty"`
	// Whether to apply negation to the filter so profiles matching the filter
	// is excluded.
	Negated              bool     `protobuf:"varint,3,opt,name=negated,proto3" json:"negated,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_EmployerFilter proto.InternalMessageInfo

func (m *EmployerFilter) GetEmployer() string {
	if m != nil {
		return m.Employer
	}
	return ""
}

func (m *EmployerFilter) GetMode() EmployerFilter_EmployerFilterMode {
	if m != nil {
		return m.Mode
	}
	return EmployerFilter_EMPLOYER_FILTER_MODE_UNSPECIFIED
}

func (m *EmployerFilter) GetNegated() bool {
	if m != nil {
		return m.Negated
	}
	return false
}

// Education filter of the search.
type EducationFilter struct {
	// The school name. For example "MIT", "University of California, Berkeley".
	School string `protobuf:"bytes,1,opt,name=school,proto3" json:"school,omitempty"`
	// The field of study. This is to search against value provided in
	// [Degree.fields_of_study][google.cloud.talent.v4beta1.Degree.fields_of_study].
	// For example "Computer Science", "Mathematics".
	FieldOfStudy string `protobuf:"bytes,2,opt,name=field_of_study,json=fieldOfStudy,proto3" json:"field_of_study,omitempty"`
	// Education degree in ISCED code. Each value in degree covers a specific
	// level of education, without any expansion to upper nor lower levels of
	// education degree.
	DegreeType DegreeType `protobuf:"varint,3,opt,name=degree_type,json=degreeType,proto3,enum=google.cloud.talent.v4beta1.DegreeType" json:"degree_type,omitempty"`
	// Whether to apply negation to the filter so profiles matching the filter
	// is excluded.
	Negated              bool     `protobuf:"varint,6,opt,name=negated,proto3" json:"negated,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_EducationFilter proto.InternalMessageInfo

func (m *EducationFilter) GetSchool() string {
	if m != nil {
		return m.School
	}
	return ""
}

func (m *EducationFilter) GetFieldOfStudy() string {
	if m != nil {
		return m.FieldOfStudy
	}
	return ""
}

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

func (m *EducationFilter) GetNegated() bool {
	if m != nil {
		return m.Negated
	}
	return false
}

// Work experience filter.
//
// This filter is used to search for profiles with working experience length
// between
// [min_experience][google.cloud.talent.v4beta1.WorkExperienceFilter.min_experience]
// and
// [max_experience][google.cloud.talent.v4beta1.WorkExperienceFilter.max_experience].
type WorkExperienceFilter struct {
	// The minimum duration of the work experience (inclusive).
	MinExperience *duration.Duration `protobuf:"bytes,1,opt,name=min_experience,json=minExperience,proto3" json:"min_experience,omitempty"`
	// The maximum duration of the work experience (exclusive).
	MaxExperience        *duration.Duration `protobuf:"bytes,2,opt,name=max_experience,json=maxExperience,proto3" json:"max_experience,omitempty"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

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

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

var xxx_messageInfo_WorkExperienceFilter proto.InternalMessageInfo

func (m *WorkExperienceFilter) GetMinExperience() *duration.Duration {
	if m != nil {
		return m.MinExperience
	}
	return nil
}

func (m *WorkExperienceFilter) GetMaxExperience() *duration.Duration {
	if m != nil {
		return m.MaxExperience
	}
	return nil
}

// Application Date Range Filter.
//
// The API matches profiles with
// [Application.application_date][google.cloud.talent.v4beta1.Application.application_date]
// between start date and end date (both boundaries are inclusive). The filter
// is ignored if both
// [start_date][google.cloud.talent.v4beta1.ApplicationDateFilter.start_date]
// and [end_date][google.cloud.talent.v4beta1.ApplicationDateFilter.end_date]
// are missing.
type ApplicationDateFilter struct {
	// Start date. If it's missing, The API matches profiles with application date
	// not after the end date.
	StartDate *date.Date `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"`
	// End date. If it's missing, The API matches profiles with application date
	// not before the start date.
	EndDate              *date.Date `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

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

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

var xxx_messageInfo_ApplicationDateFilter proto.InternalMessageInfo

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

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

// Outcome Notes Filter.
type ApplicationOutcomeNotesFilter struct {
	// Required. User entered or selected outcome reason. The API does an exact
	// match on the
	// [Application.outcome_notes][google.cloud.talent.v4beta1.Application.outcome_notes]
	// in profiles.
	OutcomeNotes string `protobuf:"bytes,1,opt,name=outcome_notes,json=outcomeNotes,proto3" json:"outcome_notes,omitempty"`
	// If true, The API excludes all candidates with any
	// [Application.outcome_notes][google.cloud.talent.v4beta1.Application.outcome_notes]
	// matching the outcome reason specified in the filter.
	Negated              bool     `protobuf:"varint,2,opt,name=negated,proto3" json:"negated,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ApplicationOutcomeNotesFilter proto.InternalMessageInfo

func (m *ApplicationOutcomeNotesFilter) GetOutcomeNotes() string {
	if m != nil {
		return m.OutcomeNotes
	}
	return ""
}

func (m *ApplicationOutcomeNotesFilter) GetNegated() bool {
	if m != nil {
		return m.Negated
	}
	return false
}

// Filter on the job information of Application.
type ApplicationJobFilter struct {
	// The job requisition id in the application. The API does an exact match on
	// the [Job.requisition_id][google.cloud.talent.v4beta1.Job.requisition_id] of
	// [Application.job][google.cloud.talent.v4beta1.Application.job] in profiles.
	JobRequisitionId string `protobuf:"bytes,2,opt,name=job_requisition_id,json=jobRequisitionId,proto3" json:"job_requisition_id,omitempty"`
	// The job title in the application. The API does an exact match on the
	// [Job.title][google.cloud.talent.v4beta1.Job.title] of
	// [Application.job][google.cloud.talent.v4beta1.Application.job] in profiles.
	JobTitle string `protobuf:"bytes,3,opt,name=job_title,json=jobTitle,proto3" json:"job_title,omitempty"`
	// If true, the API excludes all profiles with any
	// [Application.job][google.cloud.talent.v4beta1.Application.job] matching the
	// filters.
	Negated              bool     `protobuf:"varint,4,opt,name=negated,proto3" json:"negated,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ApplicationJobFilter proto.InternalMessageInfo

func (m *ApplicationJobFilter) GetJobRequisitionId() string {
	if m != nil {
		return m.JobRequisitionId
	}
	return ""
}

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

func (m *ApplicationJobFilter) GetNegated() bool {
	if m != nil {
		return m.Negated
	}
	return false
}

// Filter on create timestamp or update timestamp of profiles.
type TimeFilter struct {
	// Start timestamp, matching profiles with the start time. If this field
	// missing, The API matches profiles with create / update timestamp before the
	// end timestamp.
	StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	// End timestamp, matching profiles with the end time. If this field
	// missing, The API matches profiles with create / update timestamp after the
	// start timestamp.
	EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
	// Specifies which time field to filter profiles.
	//
	// Defaults to
	// [TimeField.CREATE_TIME][google.cloud.talent.v4beta1.TimeFilter.TimeField.CREATE_TIME].
	TimeField            TimeFilter_TimeField `protobuf:"varint,3,opt,name=time_field,json=timeField,proto3,enum=google.cloud.talent.v4beta1.TimeFilter_TimeField" json:"time_field,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

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

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

var xxx_messageInfo_TimeFilter proto.InternalMessageInfo

func (m *TimeFilter) GetStartTime() *timestamp.Timestamp {
	if m != nil {
		return m.StartTime
	}
	return nil
}

func (m *TimeFilter) GetEndTime() *timestamp.Timestamp {
	if m != nil {
		return m.EndTime
	}
	return nil
}

func (m *TimeFilter) GetTimeField() TimeFilter_TimeField {
	if m != nil {
		return m.TimeField
	}
	return TimeFilter_TIME_FIELD_UNSPECIFIED
}

// Deprecated. Use AvailabilityFilter instead.
//
// Filter on availability signals.
//
// Deprecated: Do not use.
type CandidateAvailabilityFilter struct {
	// It is false by default. If true, API excludes all the potential available
	// profiles.
	Negated              bool     `protobuf:"varint,1,opt,name=negated,proto3" json:"negated,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_CandidateAvailabilityFilter proto.InternalMessageInfo

func (m *CandidateAvailabilityFilter) GetNegated() bool {
	if m != nil {
		return m.Negated
	}
	return false
}

// Filter on availability signals.
type AvailabilityFilter struct {
	// Required. Type of signal to apply filter on.
	SignalType AvailabilitySignalType `protobuf:"varint,1,opt,name=signal_type,json=signalType,proto3,enum=google.cloud.talent.v4beta1.AvailabilitySignalType" json:"signal_type,omitempty"`
	// Required. Range of times to filter candidate signals by.
	Range *TimestampRange `protobuf:"bytes,2,opt,name=range,proto3" json:"range,omitempty"`
	// If multiple
	// [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter] are
	// provided, the default behavior is to OR all filters, but if this field is
	// set to true, this particular
	// [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter] will
	// be AND'ed against other
	// [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter].
	Required             bool     `protobuf:"varint,3,opt,name=required,proto3" json:"required,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AvailabilityFilter proto.InternalMessageInfo

func (m *AvailabilityFilter) GetSignalType() AvailabilitySignalType {
	if m != nil {
		return m.SignalType
	}
	return AvailabilitySignalType_AVAILABILITY_SIGNAL_TYPE_UNSPECIFIED
}

func (m *AvailabilityFilter) GetRange() *TimestampRange {
	if m != nil {
		return m.Range
	}
	return nil
}

func (m *AvailabilityFilter) GetRequired() bool {
	if m != nil {
		return m.Required
	}
	return false
}

// Filter on person name.
type PersonNameFilter struct {
	// Required. The person name. For example, "John Smith".
	//
	// Can be any combination of [PersonName.structured_name.given_name][],
	// [PersonName.structured_name.middle_initial][],
	// [PersonName.structured_name.family_name][], and
	// [PersonName.formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name].
	PersonName           string   `protobuf:"bytes,1,opt,name=person_name,json=personName,proto3" json:"person_name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_PersonNameFilter proto.InternalMessageInfo

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

func init() {
	proto.RegisterEnum("google.cloud.talent.v4beta1.LocationFilter_TelecommutePreference", LocationFilter_TelecommutePreference_name, LocationFilter_TelecommutePreference_value)
	proto.RegisterEnum("google.cloud.talent.v4beta1.CompensationFilter_FilterType", CompensationFilter_FilterType_name, CompensationFilter_FilterType_value)
	proto.RegisterEnum("google.cloud.talent.v4beta1.CommuteFilter_RoadTraffic", CommuteFilter_RoadTraffic_name, CommuteFilter_RoadTraffic_value)
	proto.RegisterEnum("google.cloud.talent.v4beta1.EmployerFilter_EmployerFilterMode", EmployerFilter_EmployerFilterMode_name, EmployerFilter_EmployerFilterMode_value)
	proto.RegisterEnum("google.cloud.talent.v4beta1.TimeFilter_TimeField", TimeFilter_TimeField_name, TimeFilter_TimeField_value)
	proto.RegisterType((*JobQuery)(nil), "google.cloud.talent.v4beta1.JobQuery")
	proto.RegisterType((*ProfileQuery)(nil), "google.cloud.talent.v4beta1.ProfileQuery")
	proto.RegisterType((*LocationFilter)(nil), "google.cloud.talent.v4beta1.LocationFilter")
	proto.RegisterType((*CompensationFilter)(nil), "google.cloud.talent.v4beta1.CompensationFilter")
	proto.RegisterType((*CommuteFilter)(nil), "google.cloud.talent.v4beta1.CommuteFilter")
	proto.RegisterType((*JobTitleFilter)(nil), "google.cloud.talent.v4beta1.JobTitleFilter")
	proto.RegisterType((*SkillFilter)(nil), "google.cloud.talent.v4beta1.SkillFilter")
	proto.RegisterType((*EmployerFilter)(nil), "google.cloud.talent.v4beta1.EmployerFilter")
	proto.RegisterType((*EducationFilter)(nil), "google.cloud.talent.v4beta1.EducationFilter")
	proto.RegisterType((*WorkExperienceFilter)(nil), "google.cloud.talent.v4beta1.WorkExperienceFilter")
	proto.RegisterType((*ApplicationDateFilter)(nil), "google.cloud.talent.v4beta1.ApplicationDateFilter")
	proto.RegisterType((*ApplicationOutcomeNotesFilter)(nil), "google.cloud.talent.v4beta1.ApplicationOutcomeNotesFilter")
	proto.RegisterType((*ApplicationJobFilter)(nil), "google.cloud.talent.v4beta1.ApplicationJobFilter")
	proto.RegisterType((*TimeFilter)(nil), "google.cloud.talent.v4beta1.TimeFilter")
	proto.RegisterType((*CandidateAvailabilityFilter)(nil), "google.cloud.talent.v4beta1.CandidateAvailabilityFilter")
	proto.RegisterType((*AvailabilityFilter)(nil), "google.cloud.talent.v4beta1.AvailabilityFilter")
	proto.RegisterType((*PersonNameFilter)(nil), "google.cloud.talent.v4beta1.PersonNameFilter")
}

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

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