github.com/shashidharatd/test-infra@v0.0.0-20171006011030-71304e1ca560/testgrid/config/pb/config.pb.go (about)

     1  /*
     2  Copyright 2017 The Kubernetes Authors.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8      http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  
    17  // Code generated by protoc-gen-go.
    18  // source: config.proto
    19  // DO NOT EDIT!
    20  
    21  /*
    22  Package config is a generated protocol buffer package.
    23  
    24  It is generated from these files:
    25  	config.proto
    26  
    27  It has these top-level messages:
    28  	TestNameConfig
    29  	Notification
    30  	TestGroup
    31  	Dashboard
    32  	LinkTemplate
    33  	LinkOptionsTemplate
    34  	DashboardTab
    35  	DashboardTabAlertOptions
    36  	DashboardGroup
    37  	Configuration
    38  	DefaultConfiguration
    39  */
    40  package config
    41  
    42  import proto "github.com/golang/protobuf/proto"
    43  import fmt "fmt"
    44  import math "math"
    45  
    46  // Reference imports to suppress errors if they are not otherwise used.
    47  var _ = proto.Marshal
    48  var _ = fmt.Errorf
    49  var _ = math.Inf
    50  
    51  // This is a compile-time assertion to ensure that this generated file
    52  // is compatible with the proto package it is being compiled against.
    53  // A compilation error at this line likely means your copy of the
    54  // proto package needs to be updated.
    55  const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
    56  
    57  type TestGroup_TestsName int32
    58  
    59  const (
    60  	TestGroup_TESTS_NAME_MIN     TestGroup_TestsName = 0
    61  	TestGroup_TESTS_NAME_IGNORE  TestGroup_TestsName = 1
    62  	TestGroup_TESTS_NAME_REPLACE TestGroup_TestsName = 2
    63  	TestGroup_TESTS_NAME_APPEND  TestGroup_TestsName = 3
    64  )
    65  
    66  var TestGroup_TestsName_name = map[int32]string{
    67  	0: "TESTS_NAME_MIN",
    68  	1: "TESTS_NAME_IGNORE",
    69  	2: "TESTS_NAME_REPLACE",
    70  	3: "TESTS_NAME_APPEND",
    71  }
    72  var TestGroup_TestsName_value = map[string]int32{
    73  	"TESTS_NAME_MIN":     0,
    74  	"TESTS_NAME_IGNORE":  1,
    75  	"TESTS_NAME_REPLACE": 2,
    76  	"TESTS_NAME_APPEND":  3,
    77  }
    78  
    79  func (x TestGroup_TestsName) String() string {
    80  	return proto.EnumName(TestGroup_TestsName_name, int32(x))
    81  }
    82  func (TestGroup_TestsName) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2, 0} }
    83  
    84  // Specifies the test name.
    85  type TestNameConfig struct {
    86  	// The name elements specifying the target test name for this tab.
    87  	NameElements []*TestNameConfig_NameElement `protobuf:"bytes,1,rep,name=name_elements,json=nameElements" yaml:"name_elements,omitempty"`
    88  	// Specifies a printf-style format string for name elements. The format
    89  	// string should have as many conversions as there are name_elements.
    90  	// For example, two name_elements could be used with name_format="%s: %s".
    91  	NameFormat string `protobuf:"bytes,2,opt,name=name_format,json=nameFormat" yaml:"name_format,omitempty"`
    92  }
    93  
    94  func (m *TestNameConfig) Reset()                    { *m = TestNameConfig{} }
    95  func (m *TestNameConfig) String() string            { return proto.CompactTextString(m) }
    96  func (*TestNameConfig) ProtoMessage()               {}
    97  func (*TestNameConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
    98  
    99  func (m *TestNameConfig) GetNameElements() []*TestNameConfig_NameElement {
   100  	if m != nil {
   101  		return m.NameElements
   102  	}
   103  	return nil
   104  }
   105  
   106  func (m *TestNameConfig) GetNameFormat() string {
   107  	if m != nil {
   108  		return m.NameFormat
   109  	}
   110  	return ""
   111  }
   112  
   113  // Specifies name elements to be selected from configuration values
   114  type TestNameConfig_NameElement struct {
   115  	// Configuration value to use.
   116  	// Valid choice are:
   117  	// 'Tests name': The name of a test case
   118  	// 'Commit': The commit number of the build
   119  	// 'Context', 'Thread': The info extracted from each junit files:
   120  	//    - junit_core-os_01.xml -> Context: core-os, Thread: 01
   121  	//    - junit_runner.xml -> Context: runner
   122  	//    - junit_01.xml -> Thread: 01
   123  	// or any metadata key from finished.json, which is copied from your test suite.
   124  	//
   125  	// A valid sample TestNameConfig looks like:
   126  	// test_name_config:
   127  	//   name_elements:
   128  	//   - target_config: Tests name
   129  	//   - target_config: Context
   130  	//   name_format: '%s [%s]'
   131  	TargetConfig string `protobuf:"bytes,2,opt,name=target_config,json=targetConfig" yaml:"target_config,omitempty"`
   132  }
   133  
   134  func (m *TestNameConfig_NameElement) Reset()                    { *m = TestNameConfig_NameElement{} }
   135  func (m *TestNameConfig_NameElement) String() string            { return proto.CompactTextString(m) }
   136  func (*TestNameConfig_NameElement) ProtoMessage()               {}
   137  func (*TestNameConfig_NameElement) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0} }
   138  
   139  func (m *TestNameConfig_NameElement) GetTargetConfig() string {
   140  	if m != nil {
   141  		return m.TargetConfig
   142  	}
   143  	return ""
   144  }
   145  
   146  // A single notification.
   147  type Notification struct {
   148  	// Required: Text summary of the issue or notice.
   149  	Summary string `protobuf:"bytes,1,opt,name=summary" yaml:"summary,omitempty"`
   150  	// Optional: Link to further information, such as a bug, email, document, etc.
   151  	ContextLink string `protobuf:"bytes,2,opt,name=context_link,json=contextLink" yaml:"context_link,omitempty"`
   152  }
   153  
   154  func (m *Notification) Reset()                    { *m = Notification{} }
   155  func (m *Notification) String() string            { return proto.CompactTextString(m) }
   156  func (*Notification) ProtoMessage()               {}
   157  func (*Notification) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
   158  
   159  func (m *Notification) GetSummary() string {
   160  	if m != nil {
   161  		return m.Summary
   162  	}
   163  	return ""
   164  }
   165  
   166  func (m *Notification) GetContextLink() string {
   167  	if m != nil {
   168  		return m.ContextLink
   169  	}
   170  	return ""
   171  }
   172  
   173  // Specifies a group of tests to gather.
   174  type TestGroup struct {
   175  	// Name of this TestGroup, for mapping dashboard tabs to tests.
   176  	Name string `protobuf:"bytes,1,opt,name=name" yaml:"name,omitempty"`
   177  	// Path to the test result stored in gcs
   178  	GcsPrefix string `protobuf:"bytes,2,opt,name=gcs_prefix,json=gcsPrefix" yaml:"gcs_prefix,omitempty"`
   179  	// Number of days of test results to gather and serve.
   180  	DaysOfResults int32 `protobuf:"varint,3,opt,name=days_of_results,json=daysOfResults" yaml:"days_of_results,omitempty"`
   181  	// Whether to ignore pending (currently running) test results.
   182  	IgnorePending bool `protobuf:"varint,4,opt,name=ignore_pending,json=ignorePending" yaml:"ignore_pending,omitempty"`
   183  	// What to do with the 'Tests name' configuration value. It can replace the
   184  	// name of the test, be appended to the name of the test, or ignored. If it is
   185  	// ignored, then the name of the tests will be the build target.
   186  	TestsNamePolicy TestGroup_TestsName       `protobuf:"varint,6,opt,name=tests_name_policy,json=testsNamePolicy,enum=TestGroup_TestsName" yaml:"tests_name_policy,omitempty"`
   187  	ColumnHeader    []*TestGroup_ColumnHeader `protobuf:"bytes,9,rep,name=column_header,json=columnHeader" yaml:"column_header,omitempty"`
   188  	// Time in hours before an alert will be added to a test results table if the
   189  	// run date of the latest results are older than this time.  If zero, no
   190  	// alerts are raised.
   191  	AlertStaleResultsHours int32 `protobuf:"varint,11,opt,name=alert_stale_results_hours,json=alertStaleResultsHours" yaml:"alert_stale_results_hours,omitempty"`
   192  	// The number of consecutive test result failures to see before alerting of
   193  	// a consistent failure. If zero, no alerts are raised.
   194  	NumFailuresToAlert int32 `protobuf:"varint,12,opt,name=num_failures_to_alert,json=numFailuresToAlert" yaml:"num_failures_to_alert,omitempty"`
   195  	// The number of columns to consider "recent" for a variety of purposes.
   196  	NumColumnsRecent int32 `protobuf:"varint,15,opt,name=num_columns_recent,json=numColumnsRecent" yaml:"num_columns_recent,omitempty"`
   197  	// deprecated - always set to true
   198  	UseKubernetesClient bool `protobuf:"varint,24,opt,name=use_kubernetes_client,json=useKubernetesClient" yaml:"use_kubernetes_client,omitempty"`
   199  	// deprecated - always set to true
   200  	IsExternal bool `protobuf:"varint,25,opt,name=is_external,json=isExternal" yaml:"is_external,omitempty"`
   201  	// Specifies the test name for a test.
   202  	TestNameConfig *TestNameConfig `protobuf:"bytes,26,opt,name=test_name_config,json=testNameConfig" yaml:"test_name_config,omitempty"`
   203  	// A list of notifications attached to this test group.
   204  	// This is displayed on any dashboard tab backed by this test group.
   205  	Notifications []*Notification `protobuf:"bytes,27,rep,name=notifications" yaml:"notifications,omitempty"`
   206  }
   207  
   208  func (m *TestGroup) Reset()                    { *m = TestGroup{} }
   209  func (m *TestGroup) String() string            { return proto.CompactTextString(m) }
   210  func (*TestGroup) ProtoMessage()               {}
   211  func (*TestGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
   212  
   213  func (m *TestGroup) GetName() string {
   214  	if m != nil {
   215  		return m.Name
   216  	}
   217  	return ""
   218  }
   219  
   220  func (m *TestGroup) GetGcsPrefix() string {
   221  	if m != nil {
   222  		return m.GcsPrefix
   223  	}
   224  	return ""
   225  }
   226  
   227  func (m *TestGroup) GetDaysOfResults() int32 {
   228  	if m != nil {
   229  		return m.DaysOfResults
   230  	}
   231  	return 0
   232  }
   233  
   234  func (m *TestGroup) GetIgnorePending() bool {
   235  	if m != nil {
   236  		return m.IgnorePending
   237  	}
   238  	return false
   239  }
   240  
   241  func (m *TestGroup) GetTestsNamePolicy() TestGroup_TestsName {
   242  	if m != nil {
   243  		return m.TestsNamePolicy
   244  	}
   245  	return TestGroup_TESTS_NAME_MIN
   246  }
   247  
   248  func (m *TestGroup) GetColumnHeader() []*TestGroup_ColumnHeader {
   249  	if m != nil {
   250  		return m.ColumnHeader
   251  	}
   252  	return nil
   253  }
   254  
   255  func (m *TestGroup) GetAlertStaleResultsHours() int32 {
   256  	if m != nil {
   257  		return m.AlertStaleResultsHours
   258  	}
   259  	return 0
   260  }
   261  
   262  func (m *TestGroup) GetNumFailuresToAlert() int32 {
   263  	if m != nil {
   264  		return m.NumFailuresToAlert
   265  	}
   266  	return 0
   267  }
   268  
   269  func (m *TestGroup) GetNumColumnsRecent() int32 {
   270  	if m != nil {
   271  		return m.NumColumnsRecent
   272  	}
   273  	return 0
   274  }
   275  
   276  func (m *TestGroup) GetUseKubernetesClient() bool {
   277  	if m != nil {
   278  		return m.UseKubernetesClient
   279  	}
   280  	return false
   281  }
   282  
   283  func (m *TestGroup) GetIsExternal() bool {
   284  	if m != nil {
   285  		return m.IsExternal
   286  	}
   287  	return false
   288  }
   289  
   290  func (m *TestGroup) GetTestNameConfig() *TestNameConfig {
   291  	if m != nil {
   292  		return m.TestNameConfig
   293  	}
   294  	return nil
   295  }
   296  
   297  func (m *TestGroup) GetNotifications() []*Notification {
   298  	if m != nil {
   299  		return m.Notifications
   300  	}
   301  	return nil
   302  }
   303  
   304  // Custom column headers for defining extra column-heading rows from values in
   305  // the test result.
   306  type TestGroup_ColumnHeader struct {
   307  	ConfigurationValue string `protobuf:"bytes,3,opt,name=configuration_value,json=configurationValue" yaml:"configuration_value,omitempty"`
   308  }
   309  
   310  func (m *TestGroup_ColumnHeader) Reset()                    { *m = TestGroup_ColumnHeader{} }
   311  func (m *TestGroup_ColumnHeader) String() string            { return proto.CompactTextString(m) }
   312  func (*TestGroup_ColumnHeader) ProtoMessage()               {}
   313  func (*TestGroup_ColumnHeader) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2, 0} }
   314  
   315  func (m *TestGroup_ColumnHeader) GetConfigurationValue() string {
   316  	if m != nil {
   317  		return m.ConfigurationValue
   318  	}
   319  	return ""
   320  }
   321  
   322  // Specifies a dashboard.
   323  type Dashboard struct {
   324  	// A list of the tabs on the dashboard.
   325  	DashboardTab []*DashboardTab `protobuf:"bytes,1,rep,name=dashboard_tab,json=dashboardTab" yaml:"dashboard_tab,omitempty"`
   326  	// A name for the Dashboard.
   327  	Name string `protobuf:"bytes,2,opt,name=name" yaml:"name,omitempty"`
   328  	// A list of notifications attached to this dashboard.
   329  	// This is displayed on any dashboard tab in this dashboard.
   330  	Notifications []*Notification `protobuf:"bytes,3,rep,name=notifications" yaml:"notifications,omitempty"`
   331  	// Option to show 'Summary' tab instead of first results tab when you view
   332  	// this dashboard.
   333  	ShowSummaryFirst bool `protobuf:"varint,4,opt,name=show_summary_first,json=showSummaryFirst" yaml:"show_summary_first,omitempty"`
   334  }
   335  
   336  func (m *Dashboard) Reset()                    { *m = Dashboard{} }
   337  func (m *Dashboard) String() string            { return proto.CompactTextString(m) }
   338  func (*Dashboard) ProtoMessage()               {}
   339  func (*Dashboard) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
   340  
   341  func (m *Dashboard) GetDashboardTab() []*DashboardTab {
   342  	if m != nil {
   343  		return m.DashboardTab
   344  	}
   345  	return nil
   346  }
   347  
   348  func (m *Dashboard) GetName() string {
   349  	if m != nil {
   350  		return m.Name
   351  	}
   352  	return ""
   353  }
   354  
   355  func (m *Dashboard) GetNotifications() []*Notification {
   356  	if m != nil {
   357  		return m.Notifications
   358  	}
   359  	return nil
   360  }
   361  
   362  func (m *Dashboard) GetShowSummaryFirst() bool {
   363  	if m != nil {
   364  		return m.ShowSummaryFirst
   365  	}
   366  	return false
   367  }
   368  
   369  type LinkTemplate struct {
   370  	// The URL template.
   371  	Url string `protobuf:"bytes,1,opt,name=url" yaml:"url,omitempty"`
   372  	// The options templates.
   373  	Options []*LinkOptionsTemplate `protobuf:"bytes,2,rep,name=options" yaml:"options,omitempty"`
   374  }
   375  
   376  func (m *LinkTemplate) Reset()                    { *m = LinkTemplate{} }
   377  func (m *LinkTemplate) String() string            { return proto.CompactTextString(m) }
   378  func (*LinkTemplate) ProtoMessage()               {}
   379  func (*LinkTemplate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
   380  
   381  func (m *LinkTemplate) GetUrl() string {
   382  	if m != nil {
   383  		return m.Url
   384  	}
   385  	return ""
   386  }
   387  
   388  func (m *LinkTemplate) GetOptions() []*LinkOptionsTemplate {
   389  	if m != nil {
   390  		return m.Options
   391  	}
   392  	return nil
   393  }
   394  
   395  // A simple key/value pair for link options.
   396  type LinkOptionsTemplate struct {
   397  	// The key for the option. This is not expanded.
   398  	Key string `protobuf:"bytes,1,opt,name=key" yaml:"key,omitempty"`
   399  	// The value for the option. This is expanded the same as the LinkTemplate.
   400  	Value string `protobuf:"bytes,2,opt,name=value" yaml:"value,omitempty"`
   401  }
   402  
   403  func (m *LinkOptionsTemplate) Reset()                    { *m = LinkOptionsTemplate{} }
   404  func (m *LinkOptionsTemplate) String() string            { return proto.CompactTextString(m) }
   405  func (*LinkOptionsTemplate) ProtoMessage()               {}
   406  func (*LinkOptionsTemplate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
   407  
   408  func (m *LinkOptionsTemplate) GetKey() string {
   409  	if m != nil {
   410  		return m.Key
   411  	}
   412  	return ""
   413  }
   414  
   415  func (m *LinkOptionsTemplate) GetValue() string {
   416  	if m != nil {
   417  		return m.Value
   418  	}
   419  	return ""
   420  }
   421  
   422  // A single tab on a dashboard.
   423  type DashboardTab struct {
   424  	// The name of the dashboard tab to display in the client.
   425  	Name string `protobuf:"bytes,1,opt,name=name" yaml:"name,omitempty"`
   426  	// The name of the TestGroup specifying the test results for this tab.
   427  	TestGroupName string `protobuf:"bytes,2,opt,name=test_group_name,json=testGroupName" yaml:"test_group_name,omitempty"`
   428  	// Default bug component for manually filing bugs from the dashboard
   429  	BugComponent int32 `protobuf:"varint,3,opt,name=bug_component,json=bugComponent" yaml:"bug_component,omitempty"`
   430  	// Default code search path for changelist search links
   431  	CodeSearchPath string `protobuf:"bytes,4,opt,name=code_search_path,json=codeSearchPath" yaml:"code_search_path,omitempty"`
   432  	// See TestGroup.num_columns_recent. This value overrides the default in the
   433  	// TestGroup config so that dashboards may be customized separately.
   434  	NumColumnsRecent int32 `protobuf:"varint,5,opt,name=num_columns_recent,json=numColumnsRecent" yaml:"num_columns_recent,omitempty"`
   435  	// Base options to always include, for example:
   436  	// width=20&include-filter-by-regex=level_tests
   437  	// This is taken from the #fragment part of the testgrid url.
   438  	// Best way to create these is to setup the options on testgrid and then
   439  	// copy the #fragment part.
   440  	BaseOptions string `protobuf:"bytes,6,opt,name=base_options,json=baseOptions" yaml:"base_options,omitempty"`
   441  	// The URL template to visit after clicking on a cell.
   442  	OpenTestTemplate *LinkTemplate `protobuf:"bytes,7,opt,name=open_test_template,json=openTestTemplate" yaml:"open_test_template,omitempty"`
   443  	// The URL template to visit when filing a bug.
   444  	FileBugTemplate *LinkTemplate `protobuf:"bytes,8,opt,name=file_bug_template,json=fileBugTemplate" yaml:"file_bug_template,omitempty"`
   445  	// The URL template to visit when attaching a bug
   446  	AttachBugTemplate *LinkTemplate `protobuf:"bytes,9,opt,name=attach_bug_template,json=attachBugTemplate" yaml:"attach_bug_template,omitempty"`
   447  	// Text to show in the about menu as a link to another view of the results.
   448  	ResultsText string `protobuf:"bytes,10,opt,name=results_text,json=resultsText" yaml:"results_text,omitempty"`
   449  	// The URL template to visit after clicking.
   450  	ResultsUrlTemplate *LinkTemplate `protobuf:"bytes,11,opt,name=results_url_template,json=resultsUrlTemplate" yaml:"results_url_template,omitempty"`
   451  	// The URL template to visit when searching for changelists.
   452  	CodeSearchUrlTemplate *LinkTemplate `protobuf:"bytes,12,opt,name=code_search_url_template,json=codeSearchUrlTemplate" yaml:"code_search_url_template,omitempty"`
   453  	// A description paragraph to be displayed.
   454  	Description string `protobuf:"bytes,13,opt,name=description" yaml:"description,omitempty"`
   455  	// Configuration options for dashboard tab alerts.
   456  	AlertOptions *DashboardTabAlertOptions `protobuf:"bytes,15,opt,name=alert_options,json=alertOptions" yaml:"alert_options,omitempty"`
   457  }
   458  
   459  func (m *DashboardTab) Reset()                    { *m = DashboardTab{} }
   460  func (m *DashboardTab) String() string            { return proto.CompactTextString(m) }
   461  func (*DashboardTab) ProtoMessage()               {}
   462  func (*DashboardTab) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
   463  
   464  func (m *DashboardTab) GetName() string {
   465  	if m != nil {
   466  		return m.Name
   467  	}
   468  	return ""
   469  }
   470  
   471  func (m *DashboardTab) GetTestGroupName() string {
   472  	if m != nil {
   473  		return m.TestGroupName
   474  	}
   475  	return ""
   476  }
   477  
   478  func (m *DashboardTab) GetBugComponent() int32 {
   479  	if m != nil {
   480  		return m.BugComponent
   481  	}
   482  	return 0
   483  }
   484  
   485  func (m *DashboardTab) GetCodeSearchPath() string {
   486  	if m != nil {
   487  		return m.CodeSearchPath
   488  	}
   489  	return ""
   490  }
   491  
   492  func (m *DashboardTab) GetNumColumnsRecent() int32 {
   493  	if m != nil {
   494  		return m.NumColumnsRecent
   495  	}
   496  	return 0
   497  }
   498  
   499  func (m *DashboardTab) GetBaseOptions() string {
   500  	if m != nil {
   501  		return m.BaseOptions
   502  	}
   503  	return ""
   504  }
   505  
   506  func (m *DashboardTab) GetOpenTestTemplate() *LinkTemplate {
   507  	if m != nil {
   508  		return m.OpenTestTemplate
   509  	}
   510  	return nil
   511  }
   512  
   513  func (m *DashboardTab) GetFileBugTemplate() *LinkTemplate {
   514  	if m != nil {
   515  		return m.FileBugTemplate
   516  	}
   517  	return nil
   518  }
   519  
   520  func (m *DashboardTab) GetAttachBugTemplate() *LinkTemplate {
   521  	if m != nil {
   522  		return m.AttachBugTemplate
   523  	}
   524  	return nil
   525  }
   526  
   527  func (m *DashboardTab) GetResultsText() string {
   528  	if m != nil {
   529  		return m.ResultsText
   530  	}
   531  	return ""
   532  }
   533  
   534  func (m *DashboardTab) GetResultsUrlTemplate() *LinkTemplate {
   535  	if m != nil {
   536  		return m.ResultsUrlTemplate
   537  	}
   538  	return nil
   539  }
   540  
   541  func (m *DashboardTab) GetCodeSearchUrlTemplate() *LinkTemplate {
   542  	if m != nil {
   543  		return m.CodeSearchUrlTemplate
   544  	}
   545  	return nil
   546  }
   547  
   548  func (m *DashboardTab) GetDescription() string {
   549  	if m != nil {
   550  		return m.Description
   551  	}
   552  	return ""
   553  }
   554  
   555  func (m *DashboardTab) GetAlertOptions() *DashboardTabAlertOptions {
   556  	if m != nil {
   557  		return m.AlertOptions
   558  	}
   559  	return nil
   560  }
   561  
   562  // Configuration options for dashboard tab alerts.
   563  type DashboardTabAlertOptions struct {
   564  	// Time in hours before an alert will be added to a test results table if the
   565  	// run date of the latest results are older than this time.  If zero, no
   566  	// alerts are raised.
   567  	AlertStaleResultsHours int32 `protobuf:"varint,1,opt,name=alert_stale_results_hours,json=alertStaleResultsHours" yaml:"alert_stale_results_hours,omitempty"`
   568  	// The number of consecutive test result failures to see before alerting of
   569  	// a consistent failure. If zero, no alerts are raised.
   570  	NumFailuresToAlert int32 `protobuf:"varint,2,opt,name=num_failures_to_alert,json=numFailuresToAlert" yaml:"num_failures_to_alert,omitempty"`
   571  	// The comma-separated addresses to send mail.
   572  	AlertMailToAddresses string `protobuf:"bytes,3,opt,name=alert_mail_to_addresses,json=alertMailToAddresses" yaml:"alert_mail_to_addresses,omitempty"`
   573  }
   574  
   575  func (m *DashboardTabAlertOptions) Reset()                    { *m = DashboardTabAlertOptions{} }
   576  func (m *DashboardTabAlertOptions) String() string            { return proto.CompactTextString(m) }
   577  func (*DashboardTabAlertOptions) ProtoMessage()               {}
   578  func (*DashboardTabAlertOptions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
   579  
   580  func (m *DashboardTabAlertOptions) GetAlertStaleResultsHours() int32 {
   581  	if m != nil {
   582  		return m.AlertStaleResultsHours
   583  	}
   584  	return 0
   585  }
   586  
   587  func (m *DashboardTabAlertOptions) GetNumFailuresToAlert() int32 {
   588  	if m != nil {
   589  		return m.NumFailuresToAlert
   590  	}
   591  	return 0
   592  }
   593  
   594  func (m *DashboardTabAlertOptions) GetAlertMailToAddresses() string {
   595  	if m != nil {
   596  		return m.AlertMailToAddresses
   597  	}
   598  	return ""
   599  }
   600  
   601  // Specifies a dashboard group.
   602  type DashboardGroup struct {
   603  	// The name for the dashboard group.
   604  	Name string `protobuf:"bytes,1,opt,name=name" yaml:"name,omitempty"`
   605  	// A list of names specifying dashboards to show links to in a separate tabbed
   606  	// bar at the top of the page for each of the given dashboards.
   607  	DashboardNames []string `protobuf:"bytes,2,rep,name=dashboard_names,json=dashboardNames" yaml:"dashboard_names,omitempty"`
   608  }
   609  
   610  func (m *DashboardGroup) Reset()                    { *m = DashboardGroup{} }
   611  func (m *DashboardGroup) String() string            { return proto.CompactTextString(m) }
   612  func (*DashboardGroup) ProtoMessage()               {}
   613  func (*DashboardGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
   614  
   615  func (m *DashboardGroup) GetName() string {
   616  	if m != nil {
   617  		return m.Name
   618  	}
   619  	return ""
   620  }
   621  
   622  func (m *DashboardGroup) GetDashboardNames() []string {
   623  	if m != nil {
   624  		return m.DashboardNames
   625  	}
   626  	return nil
   627  }
   628  
   629  // A service configuration consisting of multiple test groups and dashboards.
   630  type Configuration struct {
   631  	// A list of groups of tests to gather.
   632  	TestGroups []*TestGroup `protobuf:"bytes,1,rep,name=test_groups,json=testGroups" yaml:"test_groups,omitempty"`
   633  	// A list of all of the dashboards for a server.
   634  	Dashboards []*Dashboard `protobuf:"bytes,2,rep,name=dashboards" yaml:"dashboards,omitempty"`
   635  	// A list of all the dashboard groups for a server.
   636  	DashboardGroups []*DashboardGroup `protobuf:"bytes,3,rep,name=dashboard_groups,json=dashboardGroups" yaml:"dashboard_groups,omitempty"`
   637  }
   638  
   639  func (m *Configuration) Reset()                    { *m = Configuration{} }
   640  func (m *Configuration) String() string            { return proto.CompactTextString(m) }
   641  func (*Configuration) ProtoMessage()               {}
   642  func (*Configuration) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
   643  
   644  func (m *Configuration) GetTestGroups() []*TestGroup {
   645  	if m != nil {
   646  		return m.TestGroups
   647  	}
   648  	return nil
   649  }
   650  
   651  func (m *Configuration) GetDashboards() []*Dashboard {
   652  	if m != nil {
   653  		return m.Dashboards
   654  	}
   655  	return nil
   656  }
   657  
   658  func (m *Configuration) GetDashboardGroups() []*DashboardGroup {
   659  	if m != nil {
   660  		return m.DashboardGroups
   661  	}
   662  	return nil
   663  }
   664  
   665  type DefaultConfiguration struct {
   666  	// A default testgroup with default initialization data
   667  	DefaultTestGroup *TestGroup `protobuf:"bytes,1,opt,name=default_test_group,json=defaultTestGroup" yaml:"default_test_group,omitempty"`
   668  	// A default dashboard tab with default initialization data
   669  	DefaultDashboardTab *DashboardTab `protobuf:"bytes,2,opt,name=default_dashboard_tab,json=defaultDashboardTab" yaml:"default_dashboard_tab,omitempty"`
   670  	// A default dashboard with default initialization data
   671  	DefaultDashboard *Dashboard `protobuf:"bytes,3,opt,name=default_dashboard,json=defaultDashboard" yaml:"default_dashboard,omitempty"`
   672  }
   673  
   674  func (m *DefaultConfiguration) Reset()                    { *m = DefaultConfiguration{} }
   675  func (m *DefaultConfiguration) String() string            { return proto.CompactTextString(m) }
   676  func (*DefaultConfiguration) ProtoMessage()               {}
   677  func (*DefaultConfiguration) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
   678  
   679  func (m *DefaultConfiguration) GetDefaultTestGroup() *TestGroup {
   680  	if m != nil {
   681  		return m.DefaultTestGroup
   682  	}
   683  	return nil
   684  }
   685  
   686  func (m *DefaultConfiguration) GetDefaultDashboardTab() *DashboardTab {
   687  	if m != nil {
   688  		return m.DefaultDashboardTab
   689  	}
   690  	return nil
   691  }
   692  
   693  func (m *DefaultConfiguration) GetDefaultDashboard() *Dashboard {
   694  	if m != nil {
   695  		return m.DefaultDashboard
   696  	}
   697  	return nil
   698  }
   699  
   700  func init() {
   701  	proto.RegisterType((*TestNameConfig)(nil), "TestNameConfig")
   702  	proto.RegisterType((*TestNameConfig_NameElement)(nil), "TestNameConfig.NameElement")
   703  	proto.RegisterType((*Notification)(nil), "Notification")
   704  	proto.RegisterType((*TestGroup)(nil), "TestGroup")
   705  	proto.RegisterType((*TestGroup_ColumnHeader)(nil), "TestGroup.ColumnHeader")
   706  	proto.RegisterType((*Dashboard)(nil), "Dashboard")
   707  	proto.RegisterType((*LinkTemplate)(nil), "LinkTemplate")
   708  	proto.RegisterType((*LinkOptionsTemplate)(nil), "LinkOptionsTemplate")
   709  	proto.RegisterType((*DashboardTab)(nil), "DashboardTab")
   710  	proto.RegisterType((*DashboardTabAlertOptions)(nil), "DashboardTabAlertOptions")
   711  	proto.RegisterType((*DashboardGroup)(nil), "DashboardGroup")
   712  	proto.RegisterType((*Configuration)(nil), "Configuration")
   713  	proto.RegisterType((*DefaultConfiguration)(nil), "DefaultConfiguration")
   714  	proto.RegisterEnum("TestGroup_TestsName", TestGroup_TestsName_name, TestGroup_TestsName_value)
   715  }
   716  
   717  func init() { proto.RegisterFile("config.proto", fileDescriptor0) }
   718  
   719  var fileDescriptor0 = []byte{
   720  	// 1254 bytes of a gzipped FileDescriptorProto
   721  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x9c, 0x56, 0xdd, 0x72, 0xdb, 0x44,
   722  	0x1b, 0xfe, 0x64, 0x2b, 0x89, 0xfc, 0x5a, 0xb2, 0x37, 0x9b, 0xa4, 0x55, 0xdb, 0x8f, 0xc1, 0x75,
   723  	0x87, 0xe2, 0x01, 0xc6, 0x0c, 0xe9, 0x30, 0x50, 0xa0, 0xd0, 0x90, 0x38, 0x6d, 0xdd, 0x26, 0xf5,
   724  	0x28, 0x86, 0xd3, 0x9d, 0xb5, 0xbc, 0xb6, 0x35, 0xd1, 0x8f, 0x47, 0xbb, 0x82, 0xf4, 0x7e, 0xb8,
   725  	0x05, 0x98, 0xe1, 0x88, 0x1b, 0xe0, 0x88, 0x2b, 0x62, 0x76, 0x57, 0x92, 0xa5, 0x36, 0x81, 0x19,
   726  	0xce, 0xb4, 0xcf, 0xfb, 0xb3, 0xef, 0xef, 0xb3, 0x02, 0xdb, 0x4f, 0xe2, 0x45, 0xb0, 0x1c, 0xae,
   727  	0xd3, 0x44, 0x24, 0xfd, 0xdf, 0x0d, 0xe8, 0x4c, 0x19, 0x17, 0xe7, 0x34, 0x62, 0xc7, 0x4a, 0x80,
   728  	0x9f, 0x82, 0x13, 0xd3, 0x88, 0x11, 0x16, 0xb2, 0x88, 0xc5, 0x82, 0xbb, 0x46, 0xaf, 0x39, 0x68,
   729  	0x1f, 0xde, 0x1b, 0xd6, 0xf5, 0x86, 0xf2, 0x73, 0xa4, 0x75, 0x3c, 0x3b, 0xde, 0x1c, 0x38, 0x7e,
   730  	0x1f, 0xda, 0xca, 0xc3, 0x22, 0x49, 0x23, 0x2a, 0xdc, 0x46, 0xcf, 0x18, 0xb4, 0x3c, 0x90, 0xd0,
   731  	0xa9, 0x42, 0xee, 0x9e, 0x40, 0xbb, 0x62, 0x8d, 0x1f, 0x80, 0x23, 0x68, 0xba, 0x64, 0x82, 0xe8,
   732  	0xd8, 0x72, 0x0b, 0x5b, 0x83, 0xfa, 0xba, 0xb1, 0x69, 0x19, 0xa8, 0x31, 0x36, 0xad, 0x26, 0x32,
   733  	0xc7, 0xa6, 0x65, 0xa2, 0xad, 0xfe, 0x4b, 0xb0, 0xcf, 0x13, 0x11, 0x2c, 0x02, 0x9f, 0x8a, 0x20,
   734  	0x89, 0xb1, 0x0b, 0x3b, 0x3c, 0x8b, 0x22, 0x9a, 0xbe, 0x71, 0x0d, 0xe5, 0xa0, 0x38, 0xe2, 0xfb,
   735  	0x2a, 0x6b, 0xc1, 0xae, 0x04, 0x09, 0x83, 0xf8, 0x32, 0xf7, 0xdf, 0xce, 0xb1, 0x57, 0x41, 0x7c,
   736  	0xd9, 0xff, 0x6b, 0x1b, 0x5a, 0x32, 0xc1, 0x67, 0x69, 0x92, 0xad, 0x31, 0x06, 0x53, 0x86, 0x9b,
   737  	0xfb, 0x51, 0xdf, 0xf8, 0x3d, 0x80, 0xa5, 0xcf, 0xc9, 0x3a, 0x65, 0x8b, 0xe0, 0x2a, 0x77, 0xd1,
   738  	0x5a, 0xfa, 0x7c, 0xa2, 0x00, 0xfc, 0x10, 0xba, 0x73, 0xfa, 0x86, 0x93, 0x64, 0x41, 0x52, 0xc6,
   739  	0xb3, 0x50, 0x70, 0xb7, 0xd9, 0x33, 0x06, 0x5b, 0x9e, 0x23, 0xe1, 0xd7, 0x0b, 0x4f, 0x83, 0xf8,
   740  	0x03, 0xe8, 0x04, 0xcb, 0x38, 0x49, 0x19, 0x59, 0xb3, 0x78, 0x1e, 0xc4, 0x4b, 0xd7, 0xec, 0x19,
   741  	0x03, 0xcb, 0x73, 0x34, 0x3a, 0xd1, 0x20, 0x7e, 0x0a, 0xbb, 0x82, 0x71, 0xc1, 0x89, 0xaa, 0xe4,
   742  	0x3a, 0x09, 0x03, 0xff, 0x8d, 0xbb, 0xdd, 0x33, 0x06, 0x9d, 0xc3, 0xfd, 0x61, 0x19, 0xa8, 0xfa,
   743  	0xe2, 0xb2, 0x96, 0x5e, 0x57, 0x14, 0x9f, 0x13, 0xa5, 0x8c, 0xbf, 0x01, 0xc7, 0x4f, 0xc2, 0x2c,
   744  	0x8a, 0xc9, 0x8a, 0xd1, 0x39, 0x4b, 0xdd, 0x96, 0xea, 0xe3, 0xed, 0x8a, 0xf5, 0xb1, 0x92, 0x3f,
   745  	0x57, 0x62, 0xcf, 0xf6, 0x2b, 0x27, 0xfc, 0x18, 0xee, 0xd0, 0x90, 0xa5, 0x82, 0x70, 0x41, 0x43,
   746  	0x56, 0xa4, 0x44, 0x56, 0x49, 0x96, 0x72, 0xb7, 0xad, 0x12, 0xbb, 0xa5, 0x14, 0x2e, 0xa4, 0x3c,
   747  	0x4f, 0xee, 0xb9, 0x94, 0xe2, 0xcf, 0xe0, 0x20, 0xce, 0x22, 0xb2, 0xa0, 0x41, 0x98, 0xa5, 0x8c,
   748  	0x13, 0x91, 0x10, 0xa5, 0xe9, 0xda, 0xca, 0x0c, 0xc7, 0x59, 0x74, 0x9a, 0xcb, 0xa6, 0xc9, 0x91,
   749  	0x94, 0xe0, 0x4f, 0x40, 0xa2, 0x44, 0x47, 0xc0, 0x49, 0xca, 0x7c, 0x16, 0x0b, 0xb7, 0xab, 0xf4,
   750  	0x51, 0x9c, 0x45, 0x3a, 0x50, 0xee, 0x29, 0x1c, 0x1f, 0xc2, 0x41, 0xc6, 0x19, 0xb9, 0xcc, 0x66,
   751  	0x2c, 0x8d, 0x99, 0x60, 0x9c, 0xf8, 0x61, 0x20, 0x0d, 0x5c, 0x55, 0xc9, 0xbd, 0x8c, 0xb3, 0x97,
   752  	0xa5, 0xec, 0x58, 0x89, 0xe4, 0x4c, 0x06, 0x9c, 0xb0, 0x2b, 0xc1, 0xd2, 0x98, 0x86, 0xee, 0x1d,
   753  	0xa5, 0x09, 0x01, 0x1f, 0xe5, 0x08, 0x7e, 0x0c, 0x48, 0x56, 0x50, 0xd7, 0x3b, 0x9f, 0xc3, 0xbb,
   754  	0x3d, 0x63, 0xd0, 0x3e, 0xec, 0xbe, 0x35, 0xf9, 0x5e, 0x47, 0xd4, 0x37, 0xe6, 0x11, 0x38, 0x71,
   755  	0x65, 0x10, 0xb9, 0x7b, 0x4f, 0x55, 0xda, 0x19, 0x56, 0xc7, 0xd3, 0xab, 0xeb, 0xdc, 0x7d, 0x09,
   756  	0x76, 0xb5, 0xfc, 0xf8, 0x53, 0xd8, 0xd3, 0xb7, 0x66, 0xa9, 0xd2, 0x20, 0x3f, 0xd1, 0x30, 0x63,
   757  	0x6a, 0x86, 0x5a, 0x1e, 0xae, 0x89, 0x7e, 0x94, 0x92, 0x72, 0x21, 0x1a, 0xa8, 0xd9, 0x67, 0x7a,
   758  	0x78, 0x55, 0xfb, 0x31, 0x86, 0xce, 0x74, 0x74, 0x31, 0xbd, 0x20, 0xe7, 0x47, 0x67, 0x23, 0x72,
   759  	0xf6, 0xe2, 0x1c, 0xfd, 0x0f, 0x1f, 0xc0, 0x6e, 0x05, 0x7b, 0xf1, 0xec, 0xfc, 0xb5, 0x37, 0x42,
   760  	0x06, 0xbe, 0x05, 0xb8, 0x02, 0x7b, 0xa3, 0xc9, 0xab, 0xa3, 0xe3, 0x11, 0x6a, 0xbc, 0xa5, 0x7e,
   761  	0x34, 0x99, 0x8c, 0xce, 0x4f, 0x50, 0x73, 0x6c, 0x5a, 0x5b, 0x68, 0x7b, 0x6c, 0x5a, 0x3b, 0xc8,
   762  	0x1a, 0x9b, 0x96, 0x85, 0x5a, 0x63, 0xd3, 0x02, 0xd4, 0x1e, 0x9b, 0x96, 0x83, 0x3a, 0x63, 0xd3,
   763  	0xea, 0xa0, 0xee, 0xd8, 0xb4, 0x10, 0x72, 0xc7, 0xa6, 0xf5, 0x7f, 0xf4, 0xa0, 0xff, 0x9b, 0x01,
   764  	0xad, 0x13, 0xca, 0x57, 0xb3, 0x84, 0xa6, 0x73, 0x7c, 0x08, 0xce, 0xbc, 0x38, 0x10, 0x41, 0x67,
   765  	0x39, 0xb1, 0x38, 0xc3, 0x52, 0x65, 0x4a, 0x67, 0x9e, 0x3d, 0xaf, 0x9c, 0xca, 0x45, 0x6c, 0x54,
   766  	0x16, 0xf1, 0x9d, 0x72, 0x37, 0xff, 0xbd, 0xdc, 0x72, 0xc2, 0xf8, 0x2a, 0xf9, 0x99, 0xe4, 0x94,
   767  	0x40, 0x16, 0x41, 0xca, 0x45, 0xbe, 0x7a, 0x48, 0x4a, 0x2e, 0xb4, 0xe0, 0x54, 0xe2, 0xfd, 0x09,
   768  	0xd8, 0x92, 0x15, 0xa6, 0x2c, 0x5a, 0x87, 0x54, 0x30, 0x8c, 0xa0, 0x99, 0xa5, 0x61, 0x4e, 0x07,
   769  	0xf2, 0x13, 0x0f, 0x61, 0x27, 0x59, 0xeb, 0xeb, 0x1b, 0xea, 0xfa, 0xfd, 0xa1, 0xb4, 0x78, 0xad,
   770  	0xb1, 0xc2, 0xd0, 0x2b, 0x94, 0xfa, 0x4f, 0x60, 0xef, 0x1a, 0xb9, 0x74, 0x7c, 0xc9, 0x0a, 0xbe,
   771  	0x92, 0x9f, 0x78, 0x1f, 0xb6, 0x74, 0xe7, 0x75, 0xca, 0xfa, 0xd0, 0xff, 0x75, 0x0b, 0xec, 0x93,
   772  	0xeb, 0x0a, 0x53, 0x65, 0xa8, 0x87, 0xa0, 0x48, 0x80, 0x2c, 0xe5, 0x72, 0x93, 0x4a, 0xdd, 0x1c,
   773  	0x51, 0xac, 0xbc, 0x1a, 0x90, 0x07, 0xe0, 0xcc, 0xb2, 0x25, 0xf1, 0x93, 0x68, 0x9d, 0xc4, 0x72,
   774  	0x6f, 0x34, 0x51, 0xd9, 0xb3, 0x6c, 0x79, 0x5c, 0x60, 0x78, 0x00, 0xc8, 0x4f, 0xe6, 0x8c, 0x70,
   775  	0x46, 0x53, 0x7f, 0x45, 0xd6, 0x54, 0xac, 0x54, 0xb9, 0x5a, 0x5e, 0x47, 0xe2, 0x17, 0x0a, 0x9e,
   776  	0x50, 0xb1, 0xba, 0x61, 0x79, 0xb7, 0x6e, 0x58, 0xde, 0xfb, 0x60, 0xcf, 0x28, 0x67, 0xa4, 0xa8,
   777  	0xde, 0xb6, 0xe6, 0x62, 0x89, 0xe5, 0xc5, 0xc1, 0x5f, 0x03, 0x4e, 0xd6, 0x2c, 0x26, 0x2a, 0x19,
   778  	0x91, 0x97, 0xca, 0xdd, 0x51, 0xcb, 0xe8, 0x0c, 0xab, 0x8d, 0xf1, 0x90, 0x54, 0x94, 0xa3, 0x5f,
   779  	0x56, 0xf4, 0x31, 0xec, 0x2e, 0x82, 0x90, 0x11, 0x99, 0x61, 0x69, 0x6b, 0x5d, 0x67, 0xdb, 0x95,
   780  	0x7a, 0xdf, 0x67, 0xcb, 0xd2, 0xf4, 0x09, 0xec, 0x51, 0x21, 0xa8, 0xbf, 0xaa, 0x1b, 0xb7, 0xae,
   781  	0x33, 0xde, 0xd5, 0x9a, 0x55, 0xf3, 0xfb, 0x60, 0x17, 0x34, 0x29, 0x9f, 0x15, 0x17, 0x74, 0x66,
   782  	0x39, 0x36, 0x65, 0x57, 0x02, 0x7f, 0x07, 0xfb, 0x85, 0x4a, 0x96, 0x86, 0x9b, 0x2b, 0xda, 0xd7,
   783  	0x5d, 0x81, 0x73, 0xd5, 0x1f, 0xd2, 0xb0, 0xbc, 0xe3, 0x14, 0xdc, 0x6a, 0x57, 0x6a, 0x4e, 0xec,
   784  	0xeb, 0x9c, 0x1c, 0x6c, 0x9a, 0x55, 0xf5, 0xd3, 0x83, 0xf6, 0x9c, 0x71, 0x3f, 0x0d, 0x54, 0xc9,
   785  	0x5d, 0x47, 0x87, 0x5a, 0x81, 0xf0, 0xb7, 0xe0, 0xe8, 0x07, 0xa0, 0x68, 0x54, 0x57, 0xb9, 0xbf,
   786  	0x53, 0xdb, 0x56, 0xc5, 0xde, 0x79, 0xdb, 0x3c, 0x9b, 0x56, 0x4e, 0x9a, 0x0d, 0xfa, 0x7f, 0x18,
   787  	0xe0, 0xde, 0x64, 0xf0, 0xcf, 0x6f, 0x8c, 0xf1, 0xdf, 0xde, 0x98, 0xc6, 0x8d, 0x6f, 0xcc, 0xe7,
   788  	0x70, 0x5b, 0xdf, 0x16, 0xd1, 0x20, 0x54, 0x06, 0xf3, 0x79, 0xca, 0x38, 0x67, 0x3c, 0x27, 0xd9,
   789  	0x7d, 0x25, 0x3e, 0xa3, 0x41, 0x38, 0x4d, 0x8e, 0x0a, 0x59, 0xff, 0x0c, 0x3a, 0x65, 0x02, 0x37,
   790  	0xff, 0x1c, 0x7c, 0x28, 0x5f, 0xff, 0x82, 0xdb, 0x24, 0xa2, 0x69, 0xa1, 0xe5, 0x75, 0x4a, 0x58,
   791  	0xae, 0x1e, 0xef, 0xff, 0x62, 0x80, 0x73, 0x5c, 0x25, 0x73, 0xfc, 0x31, 0xb4, 0x37, 0x5b, 0x5b,
   792  	0xfc, 0x6d, 0xc1, 0xe6, 0x95, 0xf6, 0xa0, 0xdc, 0x5e, 0x8e, 0x3f, 0x02, 0x28, 0x1d, 0x16, 0xcc,
   793  	0x03, 0x9b, 0x96, 0x78, 0x15, 0x29, 0xfe, 0x0a, 0xd0, 0x26, 0xa6, 0xdc, 0xbb, 0xa6, 0xca, 0xee,
   794  	0xb0, 0x9e, 0x92, 0xb7, 0x09, 0x5e, 0xdf, 0xd3, 0xff, 0xd3, 0x80, 0xfd, 0x13, 0xb6, 0xa0, 0x59,
   795  	0x28, 0xea, 0xd1, 0x7e, 0x09, 0x78, 0xae, 0x71, 0xb2, 0x89, 0x5a, 0x95, 0xa2, 0x1e, 0x34, 0xca,
   796  	0xb5, 0x36, 0xff, 0x54, 0x47, 0x70, 0x50, 0x58, 0xd6, 0x9f, 0x81, 0x46, 0x3e, 0xb7, 0xb5, 0x67,
   797  	0x60, 0x2f, 0xd7, 0xad, 0x91, 0xde, 0x17, 0xb0, 0xfb, 0x8e, 0x0b, 0xd5, 0xbc, 0x7a, 0x11, 0xd0,
   798  	0xdb, 0xb6, 0xb3, 0x6d, 0xf5, 0xb7, 0xfb, 0xe8, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x63, 0xbd,
   799  	0xf9, 0x6a, 0xfd, 0x0a, 0x00, 0x00,
   800  }