// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/ads/googleads/v3/errors/campaign_error.proto

package errors

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	_ "google.golang.org/genproto/googleapis/api/annotations"
)

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

// Enum describing possible campaign errors.
type CampaignErrorEnum_CampaignError int32

const (
	// Enum unspecified.
	CampaignErrorEnum_UNSPECIFIED CampaignErrorEnum_CampaignError = 0
	// The received error code is not known in this version.
	CampaignErrorEnum_UNKNOWN CampaignErrorEnum_CampaignError = 1
	// Cannot target content network.
	CampaignErrorEnum_CANNOT_TARGET_CONTENT_NETWORK CampaignErrorEnum_CampaignError = 3
	// Cannot target search network.
	CampaignErrorEnum_CANNOT_TARGET_SEARCH_NETWORK CampaignErrorEnum_CampaignError = 4
	// Cannot cover search network without google search network.
	CampaignErrorEnum_CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH CampaignErrorEnum_CampaignError = 5
	// Cannot target Google Search network for a CPM campaign.
	CampaignErrorEnum_CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN CampaignErrorEnum_CampaignError = 6
	// Must target at least one network.
	CampaignErrorEnum_CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK CampaignErrorEnum_CampaignError = 7
	// Only some Google partners are allowed to target partner search network.
	CampaignErrorEnum_CANNOT_TARGET_PARTNER_SEARCH_NETWORK CampaignErrorEnum_CampaignError = 8
	// Cannot target content network only as campaign has criteria-level bidding
	// strategy.
	CampaignErrorEnum_CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY CampaignErrorEnum_CampaignError = 9
	// Cannot modify the start or end date such that the campaign duration would
	// not contain the durations of all runnable trials.
	CampaignErrorEnum_CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS CampaignErrorEnum_CampaignError = 10
	// Cannot modify dates, budget or campaign name of a trial campaign.
	CampaignErrorEnum_CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN CampaignErrorEnum_CampaignError = 11
	// Trying to modify the name of an active or paused campaign, where the name
	// is already assigned to another active or paused campaign.
	CampaignErrorEnum_DUPLICATE_CAMPAIGN_NAME CampaignErrorEnum_CampaignError = 12
	// Two fields are in conflicting modes.
	CampaignErrorEnum_INCOMPATIBLE_CAMPAIGN_FIELD CampaignErrorEnum_CampaignError = 13
	// Campaign name cannot be used.
	CampaignErrorEnum_INVALID_CAMPAIGN_NAME CampaignErrorEnum_CampaignError = 14
	// Given status is invalid.
	CampaignErrorEnum_INVALID_AD_SERVING_OPTIMIZATION_STATUS CampaignErrorEnum_CampaignError = 15
	// Error in the campaign level tracking URL.
	CampaignErrorEnum_INVALID_TRACKING_URL CampaignErrorEnum_CampaignError = 16
	// Cannot set both tracking URL template and tracking setting. A user has
	// to clear legacy tracking setting in order to add tracking URL template.
	CampaignErrorEnum_CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING CampaignErrorEnum_CampaignError = 17
	// The maximum number of impressions for Frequency Cap should be an integer
	// greater than 0.
	CampaignErrorEnum_MAX_IMPRESSIONS_NOT_IN_RANGE CampaignErrorEnum_CampaignError = 18
	// Only the Day, Week and Month time units are supported.
	CampaignErrorEnum_TIME_UNIT_NOT_SUPPORTED CampaignErrorEnum_CampaignError = 19
	// Operation not allowed on a campaign whose serving status has ended
	CampaignErrorEnum_INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED CampaignErrorEnum_CampaignError = 20
	// This budget is exclusively linked to a Campaign that is using experiments
	// so it cannot be shared.
	CampaignErrorEnum_BUDGET_CANNOT_BE_SHARED CampaignErrorEnum_CampaignError = 21
	// Campaigns using experiments cannot use a shared budget.
	CampaignErrorEnum_CAMPAIGN_CANNOT_USE_SHARED_BUDGET CampaignErrorEnum_CampaignError = 22
	// A different budget cannot be assigned to a campaign when there are
	// running or scheduled trials.
	CampaignErrorEnum_CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS CampaignErrorEnum_CampaignError = 23
	// No link found between the campaign and the label.
	CampaignErrorEnum_CAMPAIGN_LABEL_DOES_NOT_EXIST CampaignErrorEnum_CampaignError = 24
	// The label has already been attached to the campaign.
	CampaignErrorEnum_CAMPAIGN_LABEL_ALREADY_EXISTS CampaignErrorEnum_CampaignError = 25
	// A ShoppingSetting was not found when creating a shopping campaign.
	CampaignErrorEnum_MISSING_SHOPPING_SETTING CampaignErrorEnum_CampaignError = 26
	// The country in shopping setting is not an allowed country.
	CampaignErrorEnum_INVALID_SHOPPING_SALES_COUNTRY CampaignErrorEnum_CampaignError = 27
	// The requested channel type is not available according to the customer's
	// account setting.
	CampaignErrorEnum_ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE CampaignErrorEnum_CampaignError = 31
	// The AdvertisingChannelSubType is not a valid subtype of the primary
	// channel type.
	CampaignErrorEnum_INVALID_ADVERTISING_CHANNEL_SUB_TYPE CampaignErrorEnum_CampaignError = 32
	// At least one conversion must be selected.
	CampaignErrorEnum_AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED CampaignErrorEnum_CampaignError = 33
	// Setting ad rotation mode for a campaign is not allowed. Ad rotation mode
	// at campaign is deprecated.
	CampaignErrorEnum_CANNOT_SET_AD_ROTATION_MODE CampaignErrorEnum_CampaignError = 34
	// Trying to change start date on a campaign that has started.
	CampaignErrorEnum_CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED CampaignErrorEnum_CampaignError = 35
	// Trying to modify a date into the past.
	CampaignErrorEnum_CANNOT_SET_DATE_TO_PAST CampaignErrorEnum_CampaignError = 36
	// Hotel center id in the hotel setting does not match any customer links.
	CampaignErrorEnum_MISSING_HOTEL_CUSTOMER_LINK CampaignErrorEnum_CampaignError = 37
	// Hotel center id in the hotel setting must match an active customer link.
	CampaignErrorEnum_INVALID_HOTEL_CUSTOMER_LINK CampaignErrorEnum_CampaignError = 38
	// Hotel setting was not found when creating a hotel ads campaign.
	CampaignErrorEnum_MISSING_HOTEL_SETTING CampaignErrorEnum_CampaignError = 39
	// A Campaign cannot use shared campaign budgets and be part of a campaign
	// group.
	CampaignErrorEnum_CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP CampaignErrorEnum_CampaignError = 40
	// The app ID was not found.
	CampaignErrorEnum_APP_NOT_FOUND CampaignErrorEnum_CampaignError = 41
	// Campaign.shopping_setting.enable_local is not supported for the specified
	// campaign type.
	CampaignErrorEnum_SHOPPING_ENABLE_LOCAL_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE CampaignErrorEnum_CampaignError = 42
	// The merchant does not support the creation of campaigns for Shopping
	// Comparison Listing Ads.
	CampaignErrorEnum_MERCHANT_NOT_ALLOWED_FOR_COMPARISON_LISTING_ADS CampaignErrorEnum_CampaignError = 43
	// The App campaign for engagement cannot be created because there aren't
	// enough installs.
	CampaignErrorEnum_INSUFFICIENT_APP_INSTALLS_COUNT CampaignErrorEnum_CampaignError = 44
	// The App campaign for engagement cannot be created because the app is
	// sensitive.
	CampaignErrorEnum_SENSITIVE_CATEGORY_APP CampaignErrorEnum_CampaignError = 45
)

var CampaignErrorEnum_CampaignError_name = map[int32]string{
	0:  "UNSPECIFIED",
	1:  "UNKNOWN",
	3:  "CANNOT_TARGET_CONTENT_NETWORK",
	4:  "CANNOT_TARGET_SEARCH_NETWORK",
	5:  "CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH",
	6:  "CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN",
	7:  "CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK",
	8:  "CANNOT_TARGET_PARTNER_SEARCH_NETWORK",
	9:  "CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY",
	10: "CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS",
	11: "CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN",
	12: "DUPLICATE_CAMPAIGN_NAME",
	13: "INCOMPATIBLE_CAMPAIGN_FIELD",
	14: "INVALID_CAMPAIGN_NAME",
	15: "INVALID_AD_SERVING_OPTIMIZATION_STATUS",
	16: "INVALID_TRACKING_URL",
	17: "CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING",
	18: "MAX_IMPRESSIONS_NOT_IN_RANGE",
	19: "TIME_UNIT_NOT_SUPPORTED",
	20: "INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED",
	21: "BUDGET_CANNOT_BE_SHARED",
	22: "CAMPAIGN_CANNOT_USE_SHARED_BUDGET",
	23: "CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS",
	24: "CAMPAIGN_LABEL_DOES_NOT_EXIST",
	25: "CAMPAIGN_LABEL_ALREADY_EXISTS",
	26: "MISSING_SHOPPING_SETTING",
	27: "INVALID_SHOPPING_SALES_COUNTRY",
	31: "ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE",
	32: "INVALID_ADVERTISING_CHANNEL_SUB_TYPE",
	33: "AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED",
	34: "CANNOT_SET_AD_ROTATION_MODE",
	35: "CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED",
	36: "CANNOT_SET_DATE_TO_PAST",
	37: "MISSING_HOTEL_CUSTOMER_LINK",
	38: "INVALID_HOTEL_CUSTOMER_LINK",
	39: "MISSING_HOTEL_SETTING",
	40: "CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP",
	41: "APP_NOT_FOUND",
	42: "SHOPPING_ENABLE_LOCAL_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE",
	43: "MERCHANT_NOT_ALLOWED_FOR_COMPARISON_LISTING_ADS",
	44: "INSUFFICIENT_APP_INSTALLS_COUNT",
	45: "SENSITIVE_CATEGORY_APP",
}

var CampaignErrorEnum_CampaignError_value = map[string]int32{
	"UNSPECIFIED":                   0,
	"UNKNOWN":                       1,
	"CANNOT_TARGET_CONTENT_NETWORK": 3,
	"CANNOT_TARGET_SEARCH_NETWORK":  4,
	"CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH":                      5,
	"CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN":                            6,
	"CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK":                               7,
	"CANNOT_TARGET_PARTNER_SEARCH_NETWORK":                                    8,
	"CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY": 9,
	"CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS":                      10,
	"CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN":                                        11,
	"DUPLICATE_CAMPAIGN_NAME":                                                 12,
	"INCOMPATIBLE_CAMPAIGN_FIELD":                                             13,
	"INVALID_CAMPAIGN_NAME":                                                   14,
	"INVALID_AD_SERVING_OPTIMIZATION_STATUS":                                  15,
	"INVALID_TRACKING_URL":                                                    16,
	"CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING":              17,
	"MAX_IMPRESSIONS_NOT_IN_RANGE":                                            18,
	"TIME_UNIT_NOT_SUPPORTED":                                                 19,
	"INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED":                           20,
	"BUDGET_CANNOT_BE_SHARED":                                                 21,
	"CAMPAIGN_CANNOT_USE_SHARED_BUDGET":                                       22,
	"CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS":                            23,
	"CAMPAIGN_LABEL_DOES_NOT_EXIST":                                           24,
	"CAMPAIGN_LABEL_ALREADY_EXISTS":                                           25,
	"MISSING_SHOPPING_SETTING":                                                26,
	"INVALID_SHOPPING_SALES_COUNTRY":                                          27,
	"ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE":                 31,
	"INVALID_ADVERTISING_CHANNEL_SUB_TYPE":                                    32,
	"AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED":                                33,
	"CANNOT_SET_AD_ROTATION_MODE":                                             34,
	"CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED":                             35,
	"CANNOT_SET_DATE_TO_PAST":                                                 36,
	"MISSING_HOTEL_CUSTOMER_LINK":                                             37,
	"INVALID_HOTEL_CUSTOMER_LINK":                                             38,
	"MISSING_HOTEL_SETTING":                                                   39,
	"CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP":          40,
	"APP_NOT_FOUND":                                                           41,
	"SHOPPING_ENABLE_LOCAL_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE":                   42,
	"MERCHANT_NOT_ALLOWED_FOR_COMPARISON_LISTING_ADS":                         43,
	"INSUFFICIENT_APP_INSTALLS_COUNT":                                         44,
	"SENSITIVE_CATEGORY_APP":                                                  45,
}

func (x CampaignErrorEnum_CampaignError) String() string {
	return proto.EnumName(CampaignErrorEnum_CampaignError_name, int32(x))
}

func (CampaignErrorEnum_CampaignError) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_1bc27234034fa291, []int{0, 0}
}

// Container for enum describing possible campaign errors.
type CampaignErrorEnum struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_CampaignErrorEnum proto.InternalMessageInfo

func init() {
	proto.RegisterEnum("google.ads.googleads.v3.errors.CampaignErrorEnum_CampaignError", CampaignErrorEnum_CampaignError_name, CampaignErrorEnum_CampaignError_value)
	proto.RegisterType((*CampaignErrorEnum)(nil), "google.ads.googleads.v3.errors.CampaignErrorEnum")
}

func init() {
	proto.RegisterFile("google/ads/googleads/v3/errors/campaign_error.proto", fileDescriptor_1bc27234034fa291)
}

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