// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/privacy/dlp/v2beta1/dlp.proto

/*
Package dlp is a generated protocol buffer package.

It is generated from these files:
	google/privacy/dlp/v2beta1/dlp.proto
	google/privacy/dlp/v2beta1/storage.proto

It has these top-level messages:
	InspectConfig
	ContentItem
	InspectResult
	Finding
	Location
	Range
	ImageLocation
	RedactContentRequest
	RedactContentResponse
	InspectContentRequest
	InspectContentResponse
	CreateInspectOperationRequest
	OutputStorageConfig
	InfoTypeStatistics
	InspectOperationMetadata
	InspectOperationResult
	ListInspectFindingsRequest
	ListInspectFindingsResponse
	InfoTypeDescription
	ListInfoTypesRequest
	ListInfoTypesResponse
	CategoryDescription
	ListRootCategoriesRequest
	ListRootCategoriesResponse
	InfoType
	FieldId
	PartitionId
	KindExpression
	PropertyReference
	Projection
	DatastoreOptions
	CloudStorageOptions
	CloudStoragePath
	StorageConfig
	CloudStorageKey
	DatastoreKey
	Key
	RecordKey
*/
package dlp

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import _ "google.golang.org/genproto/googleapis/api/annotations"
import google_longrunning "google.golang.org/genproto/googleapis/longrunning"
import google_protobuf3 "github.com/golang/protobuf/ptypes/timestamp"

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

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

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

// Categorization of results based on how likely they are to represent a match,
// based on the number of elements they contain which imply a match.
type Likelihood int32

const (
	// Default value; information with all likelihoods will be included.
	Likelihood_LIKELIHOOD_UNSPECIFIED Likelihood = 0
	// Few matching elements.
	Likelihood_VERY_UNLIKELY Likelihood = 1
	Likelihood_UNLIKELY      Likelihood = 2
	// Some matching elements.
	Likelihood_POSSIBLE Likelihood = 3
	Likelihood_LIKELY   Likelihood = 4
	// Many matching elements.
	Likelihood_VERY_LIKELY Likelihood = 5
)

var Likelihood_name = map[int32]string{
	0: "LIKELIHOOD_UNSPECIFIED",
	1: "VERY_UNLIKELY",
	2: "UNLIKELY",
	3: "POSSIBLE",
	4: "LIKELY",
	5: "VERY_LIKELY",
}
var Likelihood_value = map[string]int32{
	"LIKELIHOOD_UNSPECIFIED": 0,
	"VERY_UNLIKELY":          1,
	"UNLIKELY":               2,
	"POSSIBLE":               3,
	"LIKELY":                 4,
	"VERY_LIKELY":            5,
}

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

// Configuration description of the scanning process.
// When used with redactContent only info_types and min_likelihood are currently
// used.
type InspectConfig struct {
	// Restrict what info_types to look for. The values must correspond to
	// InfoType values returned by ListInfoTypes or found in documentation.
	// Empty info_types runs all enabled detectors.
	InfoTypes []*InfoType `protobuf:"bytes,1,rep,name=info_types,json=infoTypes" json:"info_types,omitempty"`
	// Only return findings equal or above this threshold.
	MinLikelihood Likelihood `protobuf:"varint,2,opt,name=min_likelihood,json=minLikelihood,enum=google.privacy.dlp.v2beta1.Likelihood" json:"min_likelihood,omitempty"`
	// Limit the number of findings per content item.
	MaxFindings int32 `protobuf:"varint,3,opt,name=max_findings,json=maxFindings" json:"max_findings,omitempty"`
	// When true, a contextual quote from the data that triggered a finding will
	// be included in the response; see Finding.quote.
	IncludeQuote bool `protobuf:"varint,4,opt,name=include_quote,json=includeQuote" json:"include_quote,omitempty"`
	// When true, exclude type information of the findings.
	ExcludeTypes bool `protobuf:"varint,6,opt,name=exclude_types,json=excludeTypes" json:"exclude_types,omitempty"`
}

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

func (m *InspectConfig) GetInfoTypes() []*InfoType {
	if m != nil {
		return m.InfoTypes
	}
	return nil
}

func (m *InspectConfig) GetMinLikelihood() Likelihood {
	if m != nil {
		return m.MinLikelihood
	}
	return Likelihood_LIKELIHOOD_UNSPECIFIED
}

func (m *InspectConfig) GetMaxFindings() int32 {
	if m != nil {
		return m.MaxFindings
	}
	return 0
}

func (m *InspectConfig) GetIncludeQuote() bool {
	if m != nil {
		return m.IncludeQuote
	}
	return false
}

func (m *InspectConfig) GetExcludeTypes() bool {
	if m != nil {
		return m.ExcludeTypes
	}
	return false
}

// Container structure for the content to inspect.
type ContentItem struct {
	// Type of the content, as defined in Content-Type HTTP header.
	// Supported types are: all "text" types, octet streams, PNG images,
	// JPEG images.
	Type string `protobuf:"bytes,1,opt,name=type" json:"type,omitempty"`
	// Data of the item either in the byte array or UTF-8 string form.
	//
	// Types that are valid to be assigned to DataItem:
	//	*ContentItem_Data
	//	*ContentItem_Value
	DataItem isContentItem_DataItem `protobuf_oneof:"data_item"`
}

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

type isContentItem_DataItem interface {
	isContentItem_DataItem()
}

type ContentItem_Data struct {
	Data []byte `protobuf:"bytes,2,opt,name=data,proto3,oneof"`
}
type ContentItem_Value struct {
	Value string `protobuf:"bytes,3,opt,name=value,oneof"`
}

func (*ContentItem_Data) isContentItem_DataItem()  {}
func (*ContentItem_Value) isContentItem_DataItem() {}

func (m *ContentItem) GetDataItem() isContentItem_DataItem {
	if m != nil {
		return m.DataItem
	}
	return nil
}

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

func (m *ContentItem) GetData() []byte {
	if x, ok := m.GetDataItem().(*ContentItem_Data); ok {
		return x.Data
	}
	return nil
}

func (m *ContentItem) GetValue() string {
	if x, ok := m.GetDataItem().(*ContentItem_Value); ok {
		return x.Value
	}
	return ""
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*ContentItem) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _ContentItem_OneofMarshaler, _ContentItem_OneofUnmarshaler, _ContentItem_OneofSizer, []interface{}{
		(*ContentItem_Data)(nil),
		(*ContentItem_Value)(nil),
	}
}

func _ContentItem_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*ContentItem)
	// data_item
	switch x := m.DataItem.(type) {
	case *ContentItem_Data:
		b.EncodeVarint(2<<3 | proto.WireBytes)
		b.EncodeRawBytes(x.Data)
	case *ContentItem_Value:
		b.EncodeVarint(3<<3 | proto.WireBytes)
		b.EncodeStringBytes(x.Value)
	case nil:
	default:
		return fmt.Errorf("ContentItem.DataItem has unexpected type %T", x)
	}
	return nil
}

func _ContentItem_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*ContentItem)
	switch tag {
	case 2: // data_item.data
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeRawBytes(true)
		m.DataItem = &ContentItem_Data{x}
		return true, err
	case 3: // data_item.value
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.DataItem = &ContentItem_Value{x}
		return true, err
	default:
		return false, nil
	}
}

func _ContentItem_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*ContentItem)
	// data_item
	switch x := m.DataItem.(type) {
	case *ContentItem_Data:
		n += proto.SizeVarint(2<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(len(x.Data)))
		n += len(x.Data)
	case *ContentItem_Value:
		n += proto.SizeVarint(3<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(len(x.Value)))
		n += len(x.Value)
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

// All the findings for a single scanned item.
type InspectResult struct {
	// List of findings for an item.
	Findings []*Finding `protobuf:"bytes,1,rep,name=findings" json:"findings,omitempty"`
	// If true, then this item might have more findings than were returned,
	// and the findings returned are an arbitrary subset of all findings.
	// The findings list might be truncated because the input items were too
	// large, or because the server reached the maximum amount of resources
	// allowed for a single API call. For best results, divide the input into
	// smaller batches.
	FindingsTruncated bool `protobuf:"varint,2,opt,name=findings_truncated,json=findingsTruncated" json:"findings_truncated,omitempty"`
}

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

func (m *InspectResult) GetFindings() []*Finding {
	if m != nil {
		return m.Findings
	}
	return nil
}

func (m *InspectResult) GetFindingsTruncated() bool {
	if m != nil {
		return m.FindingsTruncated
	}
	return false
}

// Container structure describing a single finding within a string or image.
type Finding struct {
	// The specific string that may be potentially sensitive info.
	Quote string `protobuf:"bytes,1,opt,name=quote" json:"quote,omitempty"`
	// The specific type of info the string might be.
	InfoType *InfoType `protobuf:"bytes,2,opt,name=info_type,json=infoType" json:"info_type,omitempty"`
	// Estimate of how likely it is that the info_type is correct.
	Likelihood Likelihood `protobuf:"varint,3,opt,name=likelihood,enum=google.privacy.dlp.v2beta1.Likelihood" json:"likelihood,omitempty"`
	// Location of the info found.
	Location *Location `protobuf:"bytes,4,opt,name=location" json:"location,omitempty"`
	// Timestamp when finding was detected.
	CreateTime *google_protobuf3.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
}

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

func (m *Finding) GetQuote() string {
	if m != nil {
		return m.Quote
	}
	return ""
}

func (m *Finding) GetInfoType() *InfoType {
	if m != nil {
		return m.InfoType
	}
	return nil
}

func (m *Finding) GetLikelihood() Likelihood {
	if m != nil {
		return m.Likelihood
	}
	return Likelihood_LIKELIHOOD_UNSPECIFIED
}

func (m *Finding) GetLocation() *Location {
	if m != nil {
		return m.Location
	}
	return nil
}

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

// Specifies the location of a finding within its source item.
type Location struct {
	// Zero-based byte offsets within a content item.
	ByteRange *Range `protobuf:"bytes,1,opt,name=byte_range,json=byteRange" json:"byte_range,omitempty"`
	// Character offsets within a content item, included when content type
	// is a text. Default charset assumed to be UTF-8.
	CodepointRange *Range `protobuf:"bytes,2,opt,name=codepoint_range,json=codepointRange" json:"codepoint_range,omitempty"`
	// Location within an image's pixels.
	ImageBoxes []*ImageLocation `protobuf:"bytes,3,rep,name=image_boxes,json=imageBoxes" json:"image_boxes,omitempty"`
	// Key of the finding.
	RecordKey *RecordKey `protobuf:"bytes,4,opt,name=record_key,json=recordKey" json:"record_key,omitempty"`
	// Field id of the field containing the finding.
	FieldId *FieldId `protobuf:"bytes,5,opt,name=field_id,json=fieldId" json:"field_id,omitempty"`
}

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

func (m *Location) GetByteRange() *Range {
	if m != nil {
		return m.ByteRange
	}
	return nil
}

func (m *Location) GetCodepointRange() *Range {
	if m != nil {
		return m.CodepointRange
	}
	return nil
}

func (m *Location) GetImageBoxes() []*ImageLocation {
	if m != nil {
		return m.ImageBoxes
	}
	return nil
}

func (m *Location) GetRecordKey() *RecordKey {
	if m != nil {
		return m.RecordKey
	}
	return nil
}

func (m *Location) GetFieldId() *FieldId {
	if m != nil {
		return m.FieldId
	}
	return nil
}

// Generic half-open interval [start, end)
type Range struct {
	// Index of the first character of the range (inclusive).
	Start int64 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"`
	// Index of the last character of the range (exclusive).
	End int64 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"`
}

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

func (m *Range) GetStart() int64 {
	if m != nil {
		return m.Start
	}
	return 0
}

func (m *Range) GetEnd() int64 {
	if m != nil {
		return m.End
	}
	return 0
}

// Bounding box encompassing detected text within an image.
type ImageLocation struct {
	// Top coordinate of the bounding box. (0,0) is upper left.
	Top int32 `protobuf:"varint,1,opt,name=top" json:"top,omitempty"`
	// Left coordinate of the bounding box. (0,0) is upper left.
	Left int32 `protobuf:"varint,2,opt,name=left" json:"left,omitempty"`
	// Width of the bounding box in pixels.
	Width int32 `protobuf:"varint,3,opt,name=width" json:"width,omitempty"`
	// Height of the bounding box in pixels.
	Height int32 `protobuf:"varint,4,opt,name=height" json:"height,omitempty"`
}

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

func (m *ImageLocation) GetTop() int32 {
	if m != nil {
		return m.Top
	}
	return 0
}

func (m *ImageLocation) GetLeft() int32 {
	if m != nil {
		return m.Left
	}
	return 0
}

func (m *ImageLocation) GetWidth() int32 {
	if m != nil {
		return m.Width
	}
	return 0
}

func (m *ImageLocation) GetHeight() int32 {
	if m != nil {
		return m.Height
	}
	return 0
}

// Request to search for potentially sensitive info in a list of items
// and replace it with a default or provided content.
type RedactContentRequest struct {
	// Configuration for the inspector.
	InspectConfig *InspectConfig `protobuf:"bytes,1,opt,name=inspect_config,json=inspectConfig" json:"inspect_config,omitempty"`
	// The list of items to inspect. Up to 100 are allowed per request.
	Items []*ContentItem `protobuf:"bytes,2,rep,name=items" json:"items,omitempty"`
	// The strings to replace findings with. Must specify at least one.
	ReplaceConfigs []*RedactContentRequest_ReplaceConfig `protobuf:"bytes,3,rep,name=replace_configs,json=replaceConfigs" json:"replace_configs,omitempty"`
}

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

func (m *RedactContentRequest) GetInspectConfig() *InspectConfig {
	if m != nil {
		return m.InspectConfig
	}
	return nil
}

func (m *RedactContentRequest) GetItems() []*ContentItem {
	if m != nil {
		return m.Items
	}
	return nil
}

func (m *RedactContentRequest) GetReplaceConfigs() []*RedactContentRequest_ReplaceConfig {
	if m != nil {
		return m.ReplaceConfigs
	}
	return nil
}

type RedactContentRequest_ReplaceConfig struct {
	// Type of information to replace. Only one ReplaceConfig per info_type
	// should be provided. If ReplaceConfig does not have an info_type, we'll
	// match it against all info_types that are found but not specified in
	// another ReplaceConfig.
	InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType" json:"info_type,omitempty"`
	// Content replacing sensitive information of given type. Max 256 chars.
	ReplaceWith string `protobuf:"bytes,2,opt,name=replace_with,json=replaceWith" json:"replace_with,omitempty"`
}

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

func (m *RedactContentRequest_ReplaceConfig) GetInfoType() *InfoType {
	if m != nil {
		return m.InfoType
	}
	return nil
}

func (m *RedactContentRequest_ReplaceConfig) GetReplaceWith() string {
	if m != nil {
		return m.ReplaceWith
	}
	return ""
}

// Results of deidentifying a list of items.
type RedactContentResponse struct {
	// The redacted content.
	Items []*ContentItem `protobuf:"bytes,1,rep,name=items" json:"items,omitempty"`
}

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

func (m *RedactContentResponse) GetItems() []*ContentItem {
	if m != nil {
		return m.Items
	}
	return nil
}

// Request to search for potentially sensitive info in a list of items.
type InspectContentRequest struct {
	// Configuration for the inspector.
	InspectConfig *InspectConfig `protobuf:"bytes,1,opt,name=inspect_config,json=inspectConfig" json:"inspect_config,omitempty"`
	// The list of items to inspect. Items in a single request are
	// considered "related" unless inspect_config.independent_inputs is true.
	// Up to 100 are allowed per request.
	Items []*ContentItem `protobuf:"bytes,2,rep,name=items" json:"items,omitempty"`
}

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

func (m *InspectContentRequest) GetInspectConfig() *InspectConfig {
	if m != nil {
		return m.InspectConfig
	}
	return nil
}

func (m *InspectContentRequest) GetItems() []*ContentItem {
	if m != nil {
		return m.Items
	}
	return nil
}

// Results of inspecting a list of items.
type InspectContentResponse struct {
	// Each content_item from the request will have a result in this list, in the
	// same order as the request.
	Results []*InspectResult `protobuf:"bytes,1,rep,name=results" json:"results,omitempty"`
}

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

func (m *InspectContentResponse) GetResults() []*InspectResult {
	if m != nil {
		return m.Results
	}
	return nil
}

// Request for scheduling a scan of a data subset from a Google Platform data
// repository.
type CreateInspectOperationRequest struct {
	// Configuration for the inspector.
	InspectConfig *InspectConfig `protobuf:"bytes,1,opt,name=inspect_config,json=inspectConfig" json:"inspect_config,omitempty"`
	// Specification of the data set to process.
	StorageConfig *StorageConfig `protobuf:"bytes,2,opt,name=storage_config,json=storageConfig" json:"storage_config,omitempty"`
	// Optional location to store findings. The bucket must already exist and
	// the Google APIs service account for DLP must have write permission to
	// write to the given bucket.
	// Results will be split over multiple csv files with each file name matching
	// the pattern "[operation_id] + [count].csv".
	// The operation_id will match the identifier for the Operation,
	// and the [count] is a counter used for tracking the number of files written.
	// The CSV file(s) contain the following columns regardless of storage type
	// scanned: id, info_type, likelihood, byte size of finding, quote, time_stamp
	// For cloud storage the next two columns are: file_path, start_offset
	// For datastore the next two columns are: project_id, namespace_id, path,
	//     column_name, offset.
	OutputConfig *OutputStorageConfig `protobuf:"bytes,3,opt,name=output_config,json=outputConfig" json:"output_config,omitempty"`
}

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

func (m *CreateInspectOperationRequest) GetInspectConfig() *InspectConfig {
	if m != nil {
		return m.InspectConfig
	}
	return nil
}

func (m *CreateInspectOperationRequest) GetStorageConfig() *StorageConfig {
	if m != nil {
		return m.StorageConfig
	}
	return nil
}

func (m *CreateInspectOperationRequest) GetOutputConfig() *OutputStorageConfig {
	if m != nil {
		return m.OutputConfig
	}
	return nil
}

// Cloud repository for storing output.
type OutputStorageConfig struct {
	// Types that are valid to be assigned to Type:
	//	*OutputStorageConfig_StoragePath
	Type isOutputStorageConfig_Type `protobuf_oneof:"type"`
}

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

type isOutputStorageConfig_Type interface {
	isOutputStorageConfig_Type()
}

type OutputStorageConfig_StoragePath struct {
	StoragePath *CloudStoragePath `protobuf:"bytes,2,opt,name=storage_path,json=storagePath,oneof"`
}

func (*OutputStorageConfig_StoragePath) isOutputStorageConfig_Type() {}

func (m *OutputStorageConfig) GetType() isOutputStorageConfig_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (m *OutputStorageConfig) GetStoragePath() *CloudStoragePath {
	if x, ok := m.GetType().(*OutputStorageConfig_StoragePath); ok {
		return x.StoragePath
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*OutputStorageConfig) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _OutputStorageConfig_OneofMarshaler, _OutputStorageConfig_OneofUnmarshaler, _OutputStorageConfig_OneofSizer, []interface{}{
		(*OutputStorageConfig_StoragePath)(nil),
	}
}

func _OutputStorageConfig_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*OutputStorageConfig)
	// type
	switch x := m.Type.(type) {
	case *OutputStorageConfig_StoragePath:
		b.EncodeVarint(2<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.StoragePath); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("OutputStorageConfig.Type has unexpected type %T", x)
	}
	return nil
}

func _OutputStorageConfig_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*OutputStorageConfig)
	switch tag {
	case 2: // type.storage_path
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(CloudStoragePath)
		err := b.DecodeMessage(msg)
		m.Type = &OutputStorageConfig_StoragePath{msg}
		return true, err
	default:
		return false, nil
	}
}

func _OutputStorageConfig_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*OutputStorageConfig)
	// type
	switch x := m.Type.(type) {
	case *OutputStorageConfig_StoragePath:
		s := proto.Size(x.StoragePath)
		n += proto.SizeVarint(2<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

// Stats regarding a specific InfoType.
type InfoTypeStatistics struct {
	// The type of finding this stat is for.
	InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType" json:"info_type,omitempty"`
	// Number of findings for this info type.
	Count int64 `protobuf:"varint,2,opt,name=count" json:"count,omitempty"`
}

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

func (m *InfoTypeStatistics) GetInfoType() *InfoType {
	if m != nil {
		return m.InfoType
	}
	return nil
}

func (m *InfoTypeStatistics) GetCount() int64 {
	if m != nil {
		return m.Count
	}
	return 0
}

// Metadata returned within GetOperation for an inspect request.
type InspectOperationMetadata struct {
	// Total size in bytes that were processed.
	ProcessedBytes int64 `protobuf:"varint,1,opt,name=processed_bytes,json=processedBytes" json:"processed_bytes,omitempty"`
	// Estimate of the number of bytes to process.
	TotalEstimatedBytes int64                 `protobuf:"varint,4,opt,name=total_estimated_bytes,json=totalEstimatedBytes" json:"total_estimated_bytes,omitempty"`
	InfoTypeStats       []*InfoTypeStatistics `protobuf:"bytes,2,rep,name=info_type_stats,json=infoTypeStats" json:"info_type_stats,omitempty"`
	// The time which this request was started.
	CreateTime *google_protobuf3.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
	// The inspect config used to create the Operation.
	RequestInspectConfig *InspectConfig `protobuf:"bytes,5,opt,name=request_inspect_config,json=requestInspectConfig" json:"request_inspect_config,omitempty"`
	// The storage config used to create the Operation.
	RequestStorageConfig *StorageConfig `protobuf:"bytes,6,opt,name=request_storage_config,json=requestStorageConfig" json:"request_storage_config,omitempty"`
	// Optional location to store findings.
	RequestOutputConfig *OutputStorageConfig `protobuf:"bytes,7,opt,name=request_output_config,json=requestOutputConfig" json:"request_output_config,omitempty"`
}

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

func (m *InspectOperationMetadata) GetProcessedBytes() int64 {
	if m != nil {
		return m.ProcessedBytes
	}
	return 0
}

func (m *InspectOperationMetadata) GetTotalEstimatedBytes() int64 {
	if m != nil {
		return m.TotalEstimatedBytes
	}
	return 0
}

func (m *InspectOperationMetadata) GetInfoTypeStats() []*InfoTypeStatistics {
	if m != nil {
		return m.InfoTypeStats
	}
	return nil
}

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

func (m *InspectOperationMetadata) GetRequestInspectConfig() *InspectConfig {
	if m != nil {
		return m.RequestInspectConfig
	}
	return nil
}

func (m *InspectOperationMetadata) GetRequestStorageConfig() *StorageConfig {
	if m != nil {
		return m.RequestStorageConfig
	}
	return nil
}

func (m *InspectOperationMetadata) GetRequestOutputConfig() *OutputStorageConfig {
	if m != nil {
		return m.RequestOutputConfig
	}
	return nil
}

// The operational data.
type InspectOperationResult struct {
	// The server-assigned name, which is only unique within the same service that
	// originally returns it. If you use the default HTTP mapping, the
	// `name` should have the format of `inspect/results/{id}`.
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
}

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

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

// Request for the list of results in a given inspect operation.
type ListInspectFindingsRequest struct {
	// Identifier of the results set returned as metadata of
	// the longrunning operation created by a call to CreateInspectOperation.
	// Should be in the format of `inspect/results/{id}.
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	// Maximum number of results to return.
	// If 0, the implementation will select a reasonable value.
	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
	// The value returned by the last `ListInspectFindingsResponse`; indicates
	// that this is a continuation of a prior `ListInspectFindings` call, and that
	// the system should return the next page of data.
	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
}

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

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

func (m *ListInspectFindingsRequest) GetPageSize() int32 {
	if m != nil {
		return m.PageSize
	}
	return 0
}

func (m *ListInspectFindingsRequest) GetPageToken() string {
	if m != nil {
		return m.PageToken
	}
	return ""
}

// Response to the ListInspectFindings request.
type ListInspectFindingsResponse struct {
	// The results.
	Result *InspectResult `protobuf:"bytes,1,opt,name=result" json:"result,omitempty"`
	// If not empty, indicates that there may be more results that match the
	// request; this value should be passed in a new `ListInspectFindingsRequest`.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
}

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

func (m *ListInspectFindingsResponse) GetResult() *InspectResult {
	if m != nil {
		return m.Result
	}
	return nil
}

func (m *ListInspectFindingsResponse) GetNextPageToken() string {
	if m != nil {
		return m.NextPageToken
	}
	return ""
}

// Info type description.
type InfoTypeDescription struct {
	// Internal name of the info type.
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	// Human readable form of the info type name.
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
	// List of categories this info type belongs to.
	Categories []*CategoryDescription `protobuf:"bytes,3,rep,name=categories" json:"categories,omitempty"`
}

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

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

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

func (m *InfoTypeDescription) GetCategories() []*CategoryDescription {
	if m != nil {
		return m.Categories
	}
	return nil
}

// Request for the list of info types belonging to a given category,
// or all supported info types if no category is specified.
type ListInfoTypesRequest struct {
	// Category name as returned by ListRootCategories.
	Category string `protobuf:"bytes,1,opt,name=category" json:"category,omitempty"`
	// Optional BCP-47 language code for localized info type friendly
	// names. If omitted, or if localized strings are not available,
	// en-US strings will be returned.
	LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
}

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

func (m *ListInfoTypesRequest) GetCategory() string {
	if m != nil {
		return m.Category
	}
	return ""
}

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

// Response to the ListInfoTypes request.
type ListInfoTypesResponse struct {
	// Set of sensitive info types belonging to a category.
	InfoTypes []*InfoTypeDescription `protobuf:"bytes,1,rep,name=info_types,json=infoTypes" json:"info_types,omitempty"`
}

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

func (m *ListInfoTypesResponse) GetInfoTypes() []*InfoTypeDescription {
	if m != nil {
		return m.InfoTypes
	}
	return nil
}

// Info Type Category description.
type CategoryDescription struct {
	// Internal name of the category.
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	// Human readable form of the category name.
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
}

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

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

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

// Request for root categories of Info Types supported by the API.
// Example values might include "FINANCE", "HEALTH", "FAST", "DEFAULT".
type ListRootCategoriesRequest struct {
	// Optional language code for localized friendly category names.
	// If omitted or if localized strings are not available,
	// en-US strings will be returned.
	LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
}

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

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

// Response for ListRootCategories request.
type ListRootCategoriesResponse struct {
	// List of all into type categories supported by the API.
	Categories []*CategoryDescription `protobuf:"bytes,1,rep,name=categories" json:"categories,omitempty"`
}

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

func (m *ListRootCategoriesResponse) GetCategories() []*CategoryDescription {
	if m != nil {
		return m.Categories
	}
	return nil
}

func init() {
	proto.RegisterType((*InspectConfig)(nil), "google.privacy.dlp.v2beta1.InspectConfig")
	proto.RegisterType((*ContentItem)(nil), "google.privacy.dlp.v2beta1.ContentItem")
	proto.RegisterType((*InspectResult)(nil), "google.privacy.dlp.v2beta1.InspectResult")
	proto.RegisterType((*Finding)(nil), "google.privacy.dlp.v2beta1.Finding")
	proto.RegisterType((*Location)(nil), "google.privacy.dlp.v2beta1.Location")
	proto.RegisterType((*Range)(nil), "google.privacy.dlp.v2beta1.Range")
	proto.RegisterType((*ImageLocation)(nil), "google.privacy.dlp.v2beta1.ImageLocation")
	proto.RegisterType((*RedactContentRequest)(nil), "google.privacy.dlp.v2beta1.RedactContentRequest")
	proto.RegisterType((*RedactContentRequest_ReplaceConfig)(nil), "google.privacy.dlp.v2beta1.RedactContentRequest.ReplaceConfig")
	proto.RegisterType((*RedactContentResponse)(nil), "google.privacy.dlp.v2beta1.RedactContentResponse")
	proto.RegisterType((*InspectContentRequest)(nil), "google.privacy.dlp.v2beta1.InspectContentRequest")
	proto.RegisterType((*InspectContentResponse)(nil), "google.privacy.dlp.v2beta1.InspectContentResponse")
	proto.RegisterType((*CreateInspectOperationRequest)(nil), "google.privacy.dlp.v2beta1.CreateInspectOperationRequest")
	proto.RegisterType((*OutputStorageConfig)(nil), "google.privacy.dlp.v2beta1.OutputStorageConfig")
	proto.RegisterType((*InfoTypeStatistics)(nil), "google.privacy.dlp.v2beta1.InfoTypeStatistics")
	proto.RegisterType((*InspectOperationMetadata)(nil), "google.privacy.dlp.v2beta1.InspectOperationMetadata")
	proto.RegisterType((*InspectOperationResult)(nil), "google.privacy.dlp.v2beta1.InspectOperationResult")
	proto.RegisterType((*ListInspectFindingsRequest)(nil), "google.privacy.dlp.v2beta1.ListInspectFindingsRequest")
	proto.RegisterType((*ListInspectFindingsResponse)(nil), "google.privacy.dlp.v2beta1.ListInspectFindingsResponse")
	proto.RegisterType((*InfoTypeDescription)(nil), "google.privacy.dlp.v2beta1.InfoTypeDescription")
	proto.RegisterType((*ListInfoTypesRequest)(nil), "google.privacy.dlp.v2beta1.ListInfoTypesRequest")
	proto.RegisterType((*ListInfoTypesResponse)(nil), "google.privacy.dlp.v2beta1.ListInfoTypesResponse")
	proto.RegisterType((*CategoryDescription)(nil), "google.privacy.dlp.v2beta1.CategoryDescription")
	proto.RegisterType((*ListRootCategoriesRequest)(nil), "google.privacy.dlp.v2beta1.ListRootCategoriesRequest")
	proto.RegisterType((*ListRootCategoriesResponse)(nil), "google.privacy.dlp.v2beta1.ListRootCategoriesResponse")
	proto.RegisterEnum("google.privacy.dlp.v2beta1.Likelihood", Likelihood_name, Likelihood_value)
}

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

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// Client API for DlpService service

type DlpServiceClient interface {
	// Find potentially sensitive info in a list of strings.
	// This method has limits on input size, processing time, and output size.
	InspectContent(ctx context.Context, in *InspectContentRequest, opts ...grpc.CallOption) (*InspectContentResponse, error)
	// Redact potentially sensitive info from a list of strings.
	// This method has limits on input size, processing time, and output size.
	RedactContent(ctx context.Context, in *RedactContentRequest, opts ...grpc.CallOption) (*RedactContentResponse, error)
	// Schedule a job scanning content in a Google Cloud Platform data repository.
	CreateInspectOperation(ctx context.Context, in *CreateInspectOperationRequest, opts ...grpc.CallOption) (*google_longrunning.Operation, error)
	// Returns list of results for given inspect operation result set id.
	ListInspectFindings(ctx context.Context, in *ListInspectFindingsRequest, opts ...grpc.CallOption) (*ListInspectFindingsResponse, error)
	// Returns sensitive information types for given category.
	ListInfoTypes(ctx context.Context, in *ListInfoTypesRequest, opts ...grpc.CallOption) (*ListInfoTypesResponse, error)
	// Returns the list of root categories of sensitive information.
	ListRootCategories(ctx context.Context, in *ListRootCategoriesRequest, opts ...grpc.CallOption) (*ListRootCategoriesResponse, error)
}

type dlpServiceClient struct {
	cc *grpc.ClientConn
}

func NewDlpServiceClient(cc *grpc.ClientConn) DlpServiceClient {
	return &dlpServiceClient{cc}
}

func (c *dlpServiceClient) InspectContent(ctx context.Context, in *InspectContentRequest, opts ...grpc.CallOption) (*InspectContentResponse, error) {
	out := new(InspectContentResponse)
	err := grpc.Invoke(ctx, "/google.privacy.dlp.v2beta1.DlpService/InspectContent", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) RedactContent(ctx context.Context, in *RedactContentRequest, opts ...grpc.CallOption) (*RedactContentResponse, error) {
	out := new(RedactContentResponse)
	err := grpc.Invoke(ctx, "/google.privacy.dlp.v2beta1.DlpService/RedactContent", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) CreateInspectOperation(ctx context.Context, in *CreateInspectOperationRequest, opts ...grpc.CallOption) (*google_longrunning.Operation, error) {
	out := new(google_longrunning.Operation)
	err := grpc.Invoke(ctx, "/google.privacy.dlp.v2beta1.DlpService/CreateInspectOperation", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) ListInspectFindings(ctx context.Context, in *ListInspectFindingsRequest, opts ...grpc.CallOption) (*ListInspectFindingsResponse, error) {
	out := new(ListInspectFindingsResponse)
	err := grpc.Invoke(ctx, "/google.privacy.dlp.v2beta1.DlpService/ListInspectFindings", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) ListInfoTypes(ctx context.Context, in *ListInfoTypesRequest, opts ...grpc.CallOption) (*ListInfoTypesResponse, error) {
	out := new(ListInfoTypesResponse)
	err := grpc.Invoke(ctx, "/google.privacy.dlp.v2beta1.DlpService/ListInfoTypes", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) ListRootCategories(ctx context.Context, in *ListRootCategoriesRequest, opts ...grpc.CallOption) (*ListRootCategoriesResponse, error) {
	out := new(ListRootCategoriesResponse)
	err := grpc.Invoke(ctx, "/google.privacy.dlp.v2beta1.DlpService/ListRootCategories", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Server API for DlpService service

type DlpServiceServer interface {
	// Find potentially sensitive info in a list of strings.
	// This method has limits on input size, processing time, and output size.
	InspectContent(context.Context, *InspectContentRequest) (*InspectContentResponse, error)
	// Redact potentially sensitive info from a list of strings.
	// This method has limits on input size, processing time, and output size.
	RedactContent(context.Context, *RedactContentRequest) (*RedactContentResponse, error)
	// Schedule a job scanning content in a Google Cloud Platform data repository.
	CreateInspectOperation(context.Context, *CreateInspectOperationRequest) (*google_longrunning.Operation, error)
	// Returns list of results for given inspect operation result set id.
	ListInspectFindings(context.Context, *ListInspectFindingsRequest) (*ListInspectFindingsResponse, error)
	// Returns sensitive information types for given category.
	ListInfoTypes(context.Context, *ListInfoTypesRequest) (*ListInfoTypesResponse, error)
	// Returns the list of root categories of sensitive information.
	ListRootCategories(context.Context, *ListRootCategoriesRequest) (*ListRootCategoriesResponse, error)
}

func RegisterDlpServiceServer(s *grpc.Server, srv DlpServiceServer) {
	s.RegisterService(&_DlpService_serviceDesc, srv)
}

func _DlpService_InspectContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(InspectContentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).InspectContent(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2beta1.DlpService/InspectContent",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).InspectContent(ctx, req.(*InspectContentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_RedactContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RedactContentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).RedactContent(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2beta1.DlpService/RedactContent",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).RedactContent(ctx, req.(*RedactContentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_CreateInspectOperation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateInspectOperationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).CreateInspectOperation(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2beta1.DlpService/CreateInspectOperation",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).CreateInspectOperation(ctx, req.(*CreateInspectOperationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_ListInspectFindings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListInspectFindingsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).ListInspectFindings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2beta1.DlpService/ListInspectFindings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).ListInspectFindings(ctx, req.(*ListInspectFindingsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_ListInfoTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListInfoTypesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).ListInfoTypes(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2beta1.DlpService/ListInfoTypes",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).ListInfoTypes(ctx, req.(*ListInfoTypesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_ListRootCategories_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListRootCategoriesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).ListRootCategories(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2beta1.DlpService/ListRootCategories",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).ListRootCategories(ctx, req.(*ListRootCategoriesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _DlpService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "google.privacy.dlp.v2beta1.DlpService",
	HandlerType: (*DlpServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "InspectContent",
			Handler:    _DlpService_InspectContent_Handler,
		},
		{
			MethodName: "RedactContent",
			Handler:    _DlpService_RedactContent_Handler,
		},
		{
			MethodName: "CreateInspectOperation",
			Handler:    _DlpService_CreateInspectOperation_Handler,
		},
		{
			MethodName: "ListInspectFindings",
			Handler:    _DlpService_ListInspectFindings_Handler,
		},
		{
			MethodName: "ListInfoTypes",
			Handler:    _DlpService_ListInfoTypes_Handler,
		},
		{
			MethodName: "ListRootCategories",
			Handler:    _DlpService_ListRootCategories_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "google/privacy/dlp/v2beta1/dlp.proto",
}

func init() { proto.RegisterFile("google/privacy/dlp/v2beta1/dlp.proto", fileDescriptor0) }

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