github.com/zorawar87/trillian@v1.2.1/quota/etcd/quotapb/quotapb.pb.go (about)

     1  // Code generated by protoc-gen-go. DO NOT EDIT.
     2  // source: quotapb.proto
     3  
     4  package quotapb
     5  
     6  import proto "github.com/golang/protobuf/proto"
     7  import fmt "fmt"
     8  import math "math"
     9  import empty "github.com/golang/protobuf/ptypes/empty"
    10  import _ "google.golang.org/genproto/googleapis/api/annotations"
    11  import field_mask "google.golang.org/genproto/protobuf/field_mask"
    12  
    13  import (
    14  	context "golang.org/x/net/context"
    15  	grpc "google.golang.org/grpc"
    16  )
    17  
    18  // Reference imports to suppress errors if they are not otherwise used.
    19  var _ = proto.Marshal
    20  var _ = fmt.Errorf
    21  var _ = math.Inf
    22  
    23  // This is a compile-time assertion to ensure that this generated file
    24  // is compatible with the proto package it is being compiled against.
    25  // A compilation error at this line likely means your copy of the
    26  // proto package needs to be updated.
    27  const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
    28  
    29  // Possible states of a quota configuration.
    30  type Config_State int32
    31  
    32  const (
    33  	// Unknown quota state. Invalid.
    34  	Config_UNKNOWN_CONFIG_STATE Config_State = 0
    35  	// Quota is enabled.
    36  	Config_ENABLED Config_State = 1
    37  	// Quota is disabled (considered infinite).
    38  	Config_DISABLED Config_State = 2
    39  )
    40  
    41  var Config_State_name = map[int32]string{
    42  	0: "UNKNOWN_CONFIG_STATE",
    43  	1: "ENABLED",
    44  	2: "DISABLED",
    45  }
    46  var Config_State_value = map[string]int32{
    47  	"UNKNOWN_CONFIG_STATE": 0,
    48  	"ENABLED":              1,
    49  	"DISABLED":             2,
    50  }
    51  
    52  func (x Config_State) String() string {
    53  	return proto.EnumName(Config_State_name, int32(x))
    54  }
    55  func (Config_State) EnumDescriptor() ([]byte, []int) {
    56  	return fileDescriptor_quotapb_e21da34a69faec1d, []int{0, 0}
    57  }
    58  
    59  // Possible views for ListConfig.
    60  type ListConfigsRequest_ListView int32
    61  
    62  const (
    63  	// Only the Config name gets returned.
    64  	ListConfigsRequest_BASIC ListConfigsRequest_ListView = 0
    65  	// Complete Config.
    66  	ListConfigsRequest_FULL ListConfigsRequest_ListView = 1
    67  )
    68  
    69  var ListConfigsRequest_ListView_name = map[int32]string{
    70  	0: "BASIC",
    71  	1: "FULL",
    72  }
    73  var ListConfigsRequest_ListView_value = map[string]int32{
    74  	"BASIC": 0,
    75  	"FULL":  1,
    76  }
    77  
    78  func (x ListConfigsRequest_ListView) String() string {
    79  	return proto.EnumName(ListConfigsRequest_ListView_name, int32(x))
    80  }
    81  func (ListConfigsRequest_ListView) EnumDescriptor() ([]byte, []int) {
    82  	return fileDescriptor_quotapb_e21da34a69faec1d, []int{6, 0}
    83  }
    84  
    85  // Configuration of a quota.
    86  //
    87  // Quotas contain a certain number of tokens that get applied to their
    88  // corresponding entities. Global quotas apply to all operations, tree and user
    89  // quotas to certain trees and users, respectively.
    90  //
    91  // Performing an operation costs a certain number of tokens (usually one). Once
    92  // a quota has no more tokens available, requests that would subtract from it
    93  // are denied with a resource_exhausted error.
    94  //
    95  // Tokens may be replenished in two different ways: either by passage of time or
    96  // sequencing progress. Time-based replenishment adds a fixed amount of tokens
    97  // after a certain interval. Sequencing-based adds a token for each leaf
    98  // processed by the sequencer. Sequencing-based replenishment may only be used
    99  // with global and tree quotas.
   100  //
   101  // A quota may be disabled or removed at any time. The effect is the same: a
   102  // disabled or non-existing quota is considered infinite by the quota system.
   103  // (Disabling is handy if you plan to re-enable a quota later on.)
   104  type Config struct {
   105  	// Name of the config, eg, “quotas/trees/1234/read/config”.
   106  	// Readonly.
   107  	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
   108  	// State of the config.
   109  	State Config_State `protobuf:"varint,2,opt,name=state,enum=quotapb.Config_State" json:"state,omitempty"`
   110  	// Max number of tokens available for the config.
   111  	MaxTokens int64 `protobuf:"varint,3,opt,name=max_tokens,json=maxTokens" json:"max_tokens,omitempty"`
   112  	// Replenishment strategy used by the config.
   113  	//
   114  	// Types that are valid to be assigned to ReplenishmentStrategy:
   115  	//	*Config_SequencingBased
   116  	//	*Config_TimeBased
   117  	ReplenishmentStrategy isConfig_ReplenishmentStrategy `protobuf_oneof:"replenishment_strategy"`
   118  	// Current number of tokens available for the config.
   119  	// May be higher than max_tokens for DISABLED configs, which are considered to
   120  	// have "infinite" tokens.
   121  	// Readonly.
   122  	CurrentTokens        int64    `protobuf:"varint,6,opt,name=current_tokens,json=currentTokens" json:"current_tokens,omitempty"`
   123  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   124  	XXX_unrecognized     []byte   `json:"-"`
   125  	XXX_sizecache        int32    `json:"-"`
   126  }
   127  
   128  func (m *Config) Reset()         { *m = Config{} }
   129  func (m *Config) String() string { return proto.CompactTextString(m) }
   130  func (*Config) ProtoMessage()    {}
   131  func (*Config) Descriptor() ([]byte, []int) {
   132  	return fileDescriptor_quotapb_e21da34a69faec1d, []int{0}
   133  }
   134  func (m *Config) XXX_Unmarshal(b []byte) error {
   135  	return xxx_messageInfo_Config.Unmarshal(m, b)
   136  }
   137  func (m *Config) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   138  	return xxx_messageInfo_Config.Marshal(b, m, deterministic)
   139  }
   140  func (dst *Config) XXX_Merge(src proto.Message) {
   141  	xxx_messageInfo_Config.Merge(dst, src)
   142  }
   143  func (m *Config) XXX_Size() int {
   144  	return xxx_messageInfo_Config.Size(m)
   145  }
   146  func (m *Config) XXX_DiscardUnknown() {
   147  	xxx_messageInfo_Config.DiscardUnknown(m)
   148  }
   149  
   150  var xxx_messageInfo_Config proto.InternalMessageInfo
   151  
   152  type isConfig_ReplenishmentStrategy interface {
   153  	isConfig_ReplenishmentStrategy()
   154  }
   155  
   156  type Config_SequencingBased struct {
   157  	SequencingBased *SequencingBasedStrategy `protobuf:"bytes,4,opt,name=sequencing_based,json=sequencingBased,oneof"`
   158  }
   159  type Config_TimeBased struct {
   160  	TimeBased *TimeBasedStrategy `protobuf:"bytes,5,opt,name=time_based,json=timeBased,oneof"`
   161  }
   162  
   163  func (*Config_SequencingBased) isConfig_ReplenishmentStrategy() {}
   164  func (*Config_TimeBased) isConfig_ReplenishmentStrategy()       {}
   165  
   166  func (m *Config) GetReplenishmentStrategy() isConfig_ReplenishmentStrategy {
   167  	if m != nil {
   168  		return m.ReplenishmentStrategy
   169  	}
   170  	return nil
   171  }
   172  
   173  func (m *Config) GetName() string {
   174  	if m != nil {
   175  		return m.Name
   176  	}
   177  	return ""
   178  }
   179  
   180  func (m *Config) GetState() Config_State {
   181  	if m != nil {
   182  		return m.State
   183  	}
   184  	return Config_UNKNOWN_CONFIG_STATE
   185  }
   186  
   187  func (m *Config) GetMaxTokens() int64 {
   188  	if m != nil {
   189  		return m.MaxTokens
   190  	}
   191  	return 0
   192  }
   193  
   194  func (m *Config) GetSequencingBased() *SequencingBasedStrategy {
   195  	if x, ok := m.GetReplenishmentStrategy().(*Config_SequencingBased); ok {
   196  		return x.SequencingBased
   197  	}
   198  	return nil
   199  }
   200  
   201  func (m *Config) GetTimeBased() *TimeBasedStrategy {
   202  	if x, ok := m.GetReplenishmentStrategy().(*Config_TimeBased); ok {
   203  		return x.TimeBased
   204  	}
   205  	return nil
   206  }
   207  
   208  func (m *Config) GetCurrentTokens() int64 {
   209  	if m != nil {
   210  		return m.CurrentTokens
   211  	}
   212  	return 0
   213  }
   214  
   215  // XXX_OneofFuncs is for the internal use of the proto package.
   216  func (*Config) 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{}) {
   217  	return _Config_OneofMarshaler, _Config_OneofUnmarshaler, _Config_OneofSizer, []interface{}{
   218  		(*Config_SequencingBased)(nil),
   219  		(*Config_TimeBased)(nil),
   220  	}
   221  }
   222  
   223  func _Config_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
   224  	m := msg.(*Config)
   225  	// replenishment_strategy
   226  	switch x := m.ReplenishmentStrategy.(type) {
   227  	case *Config_SequencingBased:
   228  		b.EncodeVarint(4<<3 | proto.WireBytes)
   229  		if err := b.EncodeMessage(x.SequencingBased); err != nil {
   230  			return err
   231  		}
   232  	case *Config_TimeBased:
   233  		b.EncodeVarint(5<<3 | proto.WireBytes)
   234  		if err := b.EncodeMessage(x.TimeBased); err != nil {
   235  			return err
   236  		}
   237  	case nil:
   238  	default:
   239  		return fmt.Errorf("Config.ReplenishmentStrategy has unexpected type %T", x)
   240  	}
   241  	return nil
   242  }
   243  
   244  func _Config_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
   245  	m := msg.(*Config)
   246  	switch tag {
   247  	case 4: // replenishment_strategy.sequencing_based
   248  		if wire != proto.WireBytes {
   249  			return true, proto.ErrInternalBadWireType
   250  		}
   251  		msg := new(SequencingBasedStrategy)
   252  		err := b.DecodeMessage(msg)
   253  		m.ReplenishmentStrategy = &Config_SequencingBased{msg}
   254  		return true, err
   255  	case 5: // replenishment_strategy.time_based
   256  		if wire != proto.WireBytes {
   257  			return true, proto.ErrInternalBadWireType
   258  		}
   259  		msg := new(TimeBasedStrategy)
   260  		err := b.DecodeMessage(msg)
   261  		m.ReplenishmentStrategy = &Config_TimeBased{msg}
   262  		return true, err
   263  	default:
   264  		return false, nil
   265  	}
   266  }
   267  
   268  func _Config_OneofSizer(msg proto.Message) (n int) {
   269  	m := msg.(*Config)
   270  	// replenishment_strategy
   271  	switch x := m.ReplenishmentStrategy.(type) {
   272  	case *Config_SequencingBased:
   273  		s := proto.Size(x.SequencingBased)
   274  		n += 1 // tag and wire
   275  		n += proto.SizeVarint(uint64(s))
   276  		n += s
   277  	case *Config_TimeBased:
   278  		s := proto.Size(x.TimeBased)
   279  		n += 1 // tag and wire
   280  		n += proto.SizeVarint(uint64(s))
   281  		n += s
   282  	case nil:
   283  	default:
   284  		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
   285  	}
   286  	return n
   287  }
   288  
   289  // Sequencing-based replenishment strategy settings.
   290  //
   291  // Only global/write and trees/write quotas may use sequencing-based
   292  // replenishment.
   293  type SequencingBasedStrategy struct {
   294  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   295  	XXX_unrecognized     []byte   `json:"-"`
   296  	XXX_sizecache        int32    `json:"-"`
   297  }
   298  
   299  func (m *SequencingBasedStrategy) Reset()         { *m = SequencingBasedStrategy{} }
   300  func (m *SequencingBasedStrategy) String() string { return proto.CompactTextString(m) }
   301  func (*SequencingBasedStrategy) ProtoMessage()    {}
   302  func (*SequencingBasedStrategy) Descriptor() ([]byte, []int) {
   303  	return fileDescriptor_quotapb_e21da34a69faec1d, []int{1}
   304  }
   305  func (m *SequencingBasedStrategy) XXX_Unmarshal(b []byte) error {
   306  	return xxx_messageInfo_SequencingBasedStrategy.Unmarshal(m, b)
   307  }
   308  func (m *SequencingBasedStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   309  	return xxx_messageInfo_SequencingBasedStrategy.Marshal(b, m, deterministic)
   310  }
   311  func (dst *SequencingBasedStrategy) XXX_Merge(src proto.Message) {
   312  	xxx_messageInfo_SequencingBasedStrategy.Merge(dst, src)
   313  }
   314  func (m *SequencingBasedStrategy) XXX_Size() int {
   315  	return xxx_messageInfo_SequencingBasedStrategy.Size(m)
   316  }
   317  func (m *SequencingBasedStrategy) XXX_DiscardUnknown() {
   318  	xxx_messageInfo_SequencingBasedStrategy.DiscardUnknown(m)
   319  }
   320  
   321  var xxx_messageInfo_SequencingBasedStrategy proto.InternalMessageInfo
   322  
   323  // Time-based replenishment strategy settings.
   324  type TimeBasedStrategy struct {
   325  	// Number of tokens to replenish at every replenish_interval_seconds.
   326  	TokensToReplenish int64 `protobuf:"varint,1,opt,name=tokens_to_replenish,json=tokensToReplenish" json:"tokens_to_replenish,omitempty"`
   327  	// Interval at which tokens_to_replenish get replenished.
   328  	ReplenishIntervalSeconds int64    `protobuf:"varint,2,opt,name=replenish_interval_seconds,json=replenishIntervalSeconds" json:"replenish_interval_seconds,omitempty"`
   329  	XXX_NoUnkeyedLiteral     struct{} `json:"-"`
   330  	XXX_unrecognized         []byte   `json:"-"`
   331  	XXX_sizecache            int32    `json:"-"`
   332  }
   333  
   334  func (m *TimeBasedStrategy) Reset()         { *m = TimeBasedStrategy{} }
   335  func (m *TimeBasedStrategy) String() string { return proto.CompactTextString(m) }
   336  func (*TimeBasedStrategy) ProtoMessage()    {}
   337  func (*TimeBasedStrategy) Descriptor() ([]byte, []int) {
   338  	return fileDescriptor_quotapb_e21da34a69faec1d, []int{2}
   339  }
   340  func (m *TimeBasedStrategy) XXX_Unmarshal(b []byte) error {
   341  	return xxx_messageInfo_TimeBasedStrategy.Unmarshal(m, b)
   342  }
   343  func (m *TimeBasedStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   344  	return xxx_messageInfo_TimeBasedStrategy.Marshal(b, m, deterministic)
   345  }
   346  func (dst *TimeBasedStrategy) XXX_Merge(src proto.Message) {
   347  	xxx_messageInfo_TimeBasedStrategy.Merge(dst, src)
   348  }
   349  func (m *TimeBasedStrategy) XXX_Size() int {
   350  	return xxx_messageInfo_TimeBasedStrategy.Size(m)
   351  }
   352  func (m *TimeBasedStrategy) XXX_DiscardUnknown() {
   353  	xxx_messageInfo_TimeBasedStrategy.DiscardUnknown(m)
   354  }
   355  
   356  var xxx_messageInfo_TimeBasedStrategy proto.InternalMessageInfo
   357  
   358  func (m *TimeBasedStrategy) GetTokensToReplenish() int64 {
   359  	if m != nil {
   360  		return m.TokensToReplenish
   361  	}
   362  	return 0
   363  }
   364  
   365  func (m *TimeBasedStrategy) GetReplenishIntervalSeconds() int64 {
   366  	if m != nil {
   367  		return m.ReplenishIntervalSeconds
   368  	}
   369  	return 0
   370  }
   371  
   372  // CreateConfig request.
   373  type CreateConfigRequest struct {
   374  	// Name of the config to create.
   375  	// For example, "quotas/global/read/config" (global/read quota) or
   376  	// "quotas/trees/1234/write/config" (write quota for tree 1234).
   377  	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
   378  	// Config to be created.
   379  	Config               *Config  `protobuf:"bytes,2,opt,name=config" json:"config,omitempty"`
   380  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   381  	XXX_unrecognized     []byte   `json:"-"`
   382  	XXX_sizecache        int32    `json:"-"`
   383  }
   384  
   385  func (m *CreateConfigRequest) Reset()         { *m = CreateConfigRequest{} }
   386  func (m *CreateConfigRequest) String() string { return proto.CompactTextString(m) }
   387  func (*CreateConfigRequest) ProtoMessage()    {}
   388  func (*CreateConfigRequest) Descriptor() ([]byte, []int) {
   389  	return fileDescriptor_quotapb_e21da34a69faec1d, []int{3}
   390  }
   391  func (m *CreateConfigRequest) XXX_Unmarshal(b []byte) error {
   392  	return xxx_messageInfo_CreateConfigRequest.Unmarshal(m, b)
   393  }
   394  func (m *CreateConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   395  	return xxx_messageInfo_CreateConfigRequest.Marshal(b, m, deterministic)
   396  }
   397  func (dst *CreateConfigRequest) XXX_Merge(src proto.Message) {
   398  	xxx_messageInfo_CreateConfigRequest.Merge(dst, src)
   399  }
   400  func (m *CreateConfigRequest) XXX_Size() int {
   401  	return xxx_messageInfo_CreateConfigRequest.Size(m)
   402  }
   403  func (m *CreateConfigRequest) XXX_DiscardUnknown() {
   404  	xxx_messageInfo_CreateConfigRequest.DiscardUnknown(m)
   405  }
   406  
   407  var xxx_messageInfo_CreateConfigRequest proto.InternalMessageInfo
   408  
   409  func (m *CreateConfigRequest) GetName() string {
   410  	if m != nil {
   411  		return m.Name
   412  	}
   413  	return ""
   414  }
   415  
   416  func (m *CreateConfigRequest) GetConfig() *Config {
   417  	if m != nil {
   418  		return m.Config
   419  	}
   420  	return nil
   421  }
   422  
   423  // DeleteConfig request.
   424  type DeleteConfigRequest struct {
   425  	// Name of the config to delete.
   426  	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
   427  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   428  	XXX_unrecognized     []byte   `json:"-"`
   429  	XXX_sizecache        int32    `json:"-"`
   430  }
   431  
   432  func (m *DeleteConfigRequest) Reset()         { *m = DeleteConfigRequest{} }
   433  func (m *DeleteConfigRequest) String() string { return proto.CompactTextString(m) }
   434  func (*DeleteConfigRequest) ProtoMessage()    {}
   435  func (*DeleteConfigRequest) Descriptor() ([]byte, []int) {
   436  	return fileDescriptor_quotapb_e21da34a69faec1d, []int{4}
   437  }
   438  func (m *DeleteConfigRequest) XXX_Unmarshal(b []byte) error {
   439  	return xxx_messageInfo_DeleteConfigRequest.Unmarshal(m, b)
   440  }
   441  func (m *DeleteConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   442  	return xxx_messageInfo_DeleteConfigRequest.Marshal(b, m, deterministic)
   443  }
   444  func (dst *DeleteConfigRequest) XXX_Merge(src proto.Message) {
   445  	xxx_messageInfo_DeleteConfigRequest.Merge(dst, src)
   446  }
   447  func (m *DeleteConfigRequest) XXX_Size() int {
   448  	return xxx_messageInfo_DeleteConfigRequest.Size(m)
   449  }
   450  func (m *DeleteConfigRequest) XXX_DiscardUnknown() {
   451  	xxx_messageInfo_DeleteConfigRequest.DiscardUnknown(m)
   452  }
   453  
   454  var xxx_messageInfo_DeleteConfigRequest proto.InternalMessageInfo
   455  
   456  func (m *DeleteConfigRequest) GetName() string {
   457  	if m != nil {
   458  		return m.Name
   459  	}
   460  	return ""
   461  }
   462  
   463  // GetConfig request.
   464  type GetConfigRequest struct {
   465  	// Name of the config to retrieve.
   466  	// For example, "quotas/global/read/config".
   467  	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
   468  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   469  	XXX_unrecognized     []byte   `json:"-"`
   470  	XXX_sizecache        int32    `json:"-"`
   471  }
   472  
   473  func (m *GetConfigRequest) Reset()         { *m = GetConfigRequest{} }
   474  func (m *GetConfigRequest) String() string { return proto.CompactTextString(m) }
   475  func (*GetConfigRequest) ProtoMessage()    {}
   476  func (*GetConfigRequest) Descriptor() ([]byte, []int) {
   477  	return fileDescriptor_quotapb_e21da34a69faec1d, []int{5}
   478  }
   479  func (m *GetConfigRequest) XXX_Unmarshal(b []byte) error {
   480  	return xxx_messageInfo_GetConfigRequest.Unmarshal(m, b)
   481  }
   482  func (m *GetConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   483  	return xxx_messageInfo_GetConfigRequest.Marshal(b, m, deterministic)
   484  }
   485  func (dst *GetConfigRequest) XXX_Merge(src proto.Message) {
   486  	xxx_messageInfo_GetConfigRequest.Merge(dst, src)
   487  }
   488  func (m *GetConfigRequest) XXX_Size() int {
   489  	return xxx_messageInfo_GetConfigRequest.Size(m)
   490  }
   491  func (m *GetConfigRequest) XXX_DiscardUnknown() {
   492  	xxx_messageInfo_GetConfigRequest.DiscardUnknown(m)
   493  }
   494  
   495  var xxx_messageInfo_GetConfigRequest proto.InternalMessageInfo
   496  
   497  func (m *GetConfigRequest) GetName() string {
   498  	if m != nil {
   499  		return m.Name
   500  	}
   501  	return ""
   502  }
   503  
   504  // ListConfig request.
   505  type ListConfigsRequest struct {
   506  	// Names of the config to retrieve. For example, "quotas/global/read/config".
   507  	// If empty, all configs are listed.
   508  	// Name components may be substituted by "-" to search for all variations of
   509  	// that component. For example:
   510  	// - "quotas/global/-/config" (both read and write global quotas)
   511  	// - "quotas/trees/-/-/config" (all tree quotas)
   512  	Names []string `protobuf:"bytes,1,rep,name=names" json:"names,omitempty"`
   513  	// View specifies how much data to return.
   514  	View                 ListConfigsRequest_ListView `protobuf:"varint,2,opt,name=view,enum=quotapb.ListConfigsRequest_ListView" json:"view,omitempty"`
   515  	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
   516  	XXX_unrecognized     []byte                      `json:"-"`
   517  	XXX_sizecache        int32                       `json:"-"`
   518  }
   519  
   520  func (m *ListConfigsRequest) Reset()         { *m = ListConfigsRequest{} }
   521  func (m *ListConfigsRequest) String() string { return proto.CompactTextString(m) }
   522  func (*ListConfigsRequest) ProtoMessage()    {}
   523  func (*ListConfigsRequest) Descriptor() ([]byte, []int) {
   524  	return fileDescriptor_quotapb_e21da34a69faec1d, []int{6}
   525  }
   526  func (m *ListConfigsRequest) XXX_Unmarshal(b []byte) error {
   527  	return xxx_messageInfo_ListConfigsRequest.Unmarshal(m, b)
   528  }
   529  func (m *ListConfigsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   530  	return xxx_messageInfo_ListConfigsRequest.Marshal(b, m, deterministic)
   531  }
   532  func (dst *ListConfigsRequest) XXX_Merge(src proto.Message) {
   533  	xxx_messageInfo_ListConfigsRequest.Merge(dst, src)
   534  }
   535  func (m *ListConfigsRequest) XXX_Size() int {
   536  	return xxx_messageInfo_ListConfigsRequest.Size(m)
   537  }
   538  func (m *ListConfigsRequest) XXX_DiscardUnknown() {
   539  	xxx_messageInfo_ListConfigsRequest.DiscardUnknown(m)
   540  }
   541  
   542  var xxx_messageInfo_ListConfigsRequest proto.InternalMessageInfo
   543  
   544  func (m *ListConfigsRequest) GetNames() []string {
   545  	if m != nil {
   546  		return m.Names
   547  	}
   548  	return nil
   549  }
   550  
   551  func (m *ListConfigsRequest) GetView() ListConfigsRequest_ListView {
   552  	if m != nil {
   553  		return m.View
   554  	}
   555  	return ListConfigsRequest_BASIC
   556  }
   557  
   558  // ListConfig response.
   559  type ListConfigsResponse struct {
   560  	// Configs matching the request filter.
   561  	Configs              []*Config `protobuf:"bytes,1,rep,name=configs" json:"configs,omitempty"`
   562  	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
   563  	XXX_unrecognized     []byte    `json:"-"`
   564  	XXX_sizecache        int32     `json:"-"`
   565  }
   566  
   567  func (m *ListConfigsResponse) Reset()         { *m = ListConfigsResponse{} }
   568  func (m *ListConfigsResponse) String() string { return proto.CompactTextString(m) }
   569  func (*ListConfigsResponse) ProtoMessage()    {}
   570  func (*ListConfigsResponse) Descriptor() ([]byte, []int) {
   571  	return fileDescriptor_quotapb_e21da34a69faec1d, []int{7}
   572  }
   573  func (m *ListConfigsResponse) XXX_Unmarshal(b []byte) error {
   574  	return xxx_messageInfo_ListConfigsResponse.Unmarshal(m, b)
   575  }
   576  func (m *ListConfigsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   577  	return xxx_messageInfo_ListConfigsResponse.Marshal(b, m, deterministic)
   578  }
   579  func (dst *ListConfigsResponse) XXX_Merge(src proto.Message) {
   580  	xxx_messageInfo_ListConfigsResponse.Merge(dst, src)
   581  }
   582  func (m *ListConfigsResponse) XXX_Size() int {
   583  	return xxx_messageInfo_ListConfigsResponse.Size(m)
   584  }
   585  func (m *ListConfigsResponse) XXX_DiscardUnknown() {
   586  	xxx_messageInfo_ListConfigsResponse.DiscardUnknown(m)
   587  }
   588  
   589  var xxx_messageInfo_ListConfigsResponse proto.InternalMessageInfo
   590  
   591  func (m *ListConfigsResponse) GetConfigs() []*Config {
   592  	if m != nil {
   593  		return m.Configs
   594  	}
   595  	return nil
   596  }
   597  
   598  // Updates a quota config according to the update_mask provided.
   599  //
   600  // Some config changes will cause the current number of tokens to be updated, as
   601  // listed below:
   602  //
   603  // * If max_tokens is reduced and the current number of tokens is greater than
   604  //   the new max_tokens, the current number of tokens is reduced to max_tokens.
   605  //   This happens so the quota is immediately conformant to the new
   606  //   configuration.
   607  //
   608  // * A state transition from disabled to enabled causes the quota to be fully
   609  //   replenished. This happens so the re-enabled quota will enter in action in a
   610  //   known, predictable state.
   611  //
   612  // A "full replenish", also called "reset", may be forced via the reset_quota
   613  // parameter, regardless of any other changes. For convenience, reset only
   614  // requests (name and reset_quota = true) are allowed.
   615  type UpdateConfigRequest struct {
   616  	// Name of the config to update.
   617  	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
   618  	// Config to update. Only the fields specified by update_mask need to be
   619  	// filled.
   620  	Config *Config `protobuf:"bytes,2,opt,name=config" json:"config,omitempty"`
   621  	// Fields modified by the update request.
   622  	// For example: "state" or "max_tokens".
   623  	UpdateMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask" json:"update_mask,omitempty"`
   624  	// If true the updated quota is reset, regardless of the update's contents.
   625  	// A reset quota is replenished to its maximum number of tokens.
   626  	ResetQuota           bool     `protobuf:"varint,4,opt,name=reset_quota,json=resetQuota" json:"reset_quota,omitempty"`
   627  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   628  	XXX_unrecognized     []byte   `json:"-"`
   629  	XXX_sizecache        int32    `json:"-"`
   630  }
   631  
   632  func (m *UpdateConfigRequest) Reset()         { *m = UpdateConfigRequest{} }
   633  func (m *UpdateConfigRequest) String() string { return proto.CompactTextString(m) }
   634  func (*UpdateConfigRequest) ProtoMessage()    {}
   635  func (*UpdateConfigRequest) Descriptor() ([]byte, []int) {
   636  	return fileDescriptor_quotapb_e21da34a69faec1d, []int{8}
   637  }
   638  func (m *UpdateConfigRequest) XXX_Unmarshal(b []byte) error {
   639  	return xxx_messageInfo_UpdateConfigRequest.Unmarshal(m, b)
   640  }
   641  func (m *UpdateConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   642  	return xxx_messageInfo_UpdateConfigRequest.Marshal(b, m, deterministic)
   643  }
   644  func (dst *UpdateConfigRequest) XXX_Merge(src proto.Message) {
   645  	xxx_messageInfo_UpdateConfigRequest.Merge(dst, src)
   646  }
   647  func (m *UpdateConfigRequest) XXX_Size() int {
   648  	return xxx_messageInfo_UpdateConfigRequest.Size(m)
   649  }
   650  func (m *UpdateConfigRequest) XXX_DiscardUnknown() {
   651  	xxx_messageInfo_UpdateConfigRequest.DiscardUnknown(m)
   652  }
   653  
   654  var xxx_messageInfo_UpdateConfigRequest proto.InternalMessageInfo
   655  
   656  func (m *UpdateConfigRequest) GetName() string {
   657  	if m != nil {
   658  		return m.Name
   659  	}
   660  	return ""
   661  }
   662  
   663  func (m *UpdateConfigRequest) GetConfig() *Config {
   664  	if m != nil {
   665  		return m.Config
   666  	}
   667  	return nil
   668  }
   669  
   670  func (m *UpdateConfigRequest) GetUpdateMask() *field_mask.FieldMask {
   671  	if m != nil {
   672  		return m.UpdateMask
   673  	}
   674  	return nil
   675  }
   676  
   677  func (m *UpdateConfigRequest) GetResetQuota() bool {
   678  	if m != nil {
   679  		return m.ResetQuota
   680  	}
   681  	return false
   682  }
   683  
   684  func init() {
   685  	proto.RegisterType((*Config)(nil), "quotapb.Config")
   686  	proto.RegisterType((*SequencingBasedStrategy)(nil), "quotapb.SequencingBasedStrategy")
   687  	proto.RegisterType((*TimeBasedStrategy)(nil), "quotapb.TimeBasedStrategy")
   688  	proto.RegisterType((*CreateConfigRequest)(nil), "quotapb.CreateConfigRequest")
   689  	proto.RegisterType((*DeleteConfigRequest)(nil), "quotapb.DeleteConfigRequest")
   690  	proto.RegisterType((*GetConfigRequest)(nil), "quotapb.GetConfigRequest")
   691  	proto.RegisterType((*ListConfigsRequest)(nil), "quotapb.ListConfigsRequest")
   692  	proto.RegisterType((*ListConfigsResponse)(nil), "quotapb.ListConfigsResponse")
   693  	proto.RegisterType((*UpdateConfigRequest)(nil), "quotapb.UpdateConfigRequest")
   694  	proto.RegisterEnum("quotapb.Config_State", Config_State_name, Config_State_value)
   695  	proto.RegisterEnum("quotapb.ListConfigsRequest_ListView", ListConfigsRequest_ListView_name, ListConfigsRequest_ListView_value)
   696  }
   697  
   698  // Reference imports to suppress errors if they are not otherwise used.
   699  var _ context.Context
   700  var _ grpc.ClientConn
   701  
   702  // This is a compile-time assertion to ensure that this generated file
   703  // is compatible with the grpc package it is being compiled against.
   704  const _ = grpc.SupportPackageIsVersion4
   705  
   706  // QuotaClient is the client API for Quota service.
   707  //
   708  // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
   709  type QuotaClient interface {
   710  	// Creates a new quota.
   711  	CreateConfig(ctx context.Context, in *CreateConfigRequest, opts ...grpc.CallOption) (*Config, error)
   712  	// Deletes an existing quota. Non-existing quotas are considered infinite by
   713  	// the quota system.
   714  	DeleteConfig(ctx context.Context, in *DeleteConfigRequest, opts ...grpc.CallOption) (*empty.Empty, error)
   715  	// Retrieves a quota by name.
   716  	GetConfig(ctx context.Context, in *GetConfigRequest, opts ...grpc.CallOption) (*Config, error)
   717  	// Lists quotas according to the specified criteria.
   718  	ListConfigs(ctx context.Context, in *ListConfigsRequest, opts ...grpc.CallOption) (*ListConfigsResponse, error)
   719  	// Updates a quota.
   720  	UpdateConfig(ctx context.Context, in *UpdateConfigRequest, opts ...grpc.CallOption) (*Config, error)
   721  }
   722  
   723  type quotaClient struct {
   724  	cc *grpc.ClientConn
   725  }
   726  
   727  func NewQuotaClient(cc *grpc.ClientConn) QuotaClient {
   728  	return &quotaClient{cc}
   729  }
   730  
   731  func (c *quotaClient) CreateConfig(ctx context.Context, in *CreateConfigRequest, opts ...grpc.CallOption) (*Config, error) {
   732  	out := new(Config)
   733  	err := c.cc.Invoke(ctx, "/quotapb.Quota/CreateConfig", in, out, opts...)
   734  	if err != nil {
   735  		return nil, err
   736  	}
   737  	return out, nil
   738  }
   739  
   740  func (c *quotaClient) DeleteConfig(ctx context.Context, in *DeleteConfigRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
   741  	out := new(empty.Empty)
   742  	err := c.cc.Invoke(ctx, "/quotapb.Quota/DeleteConfig", in, out, opts...)
   743  	if err != nil {
   744  		return nil, err
   745  	}
   746  	return out, nil
   747  }
   748  
   749  func (c *quotaClient) GetConfig(ctx context.Context, in *GetConfigRequest, opts ...grpc.CallOption) (*Config, error) {
   750  	out := new(Config)
   751  	err := c.cc.Invoke(ctx, "/quotapb.Quota/GetConfig", in, out, opts...)
   752  	if err != nil {
   753  		return nil, err
   754  	}
   755  	return out, nil
   756  }
   757  
   758  func (c *quotaClient) ListConfigs(ctx context.Context, in *ListConfigsRequest, opts ...grpc.CallOption) (*ListConfigsResponse, error) {
   759  	out := new(ListConfigsResponse)
   760  	err := c.cc.Invoke(ctx, "/quotapb.Quota/ListConfigs", in, out, opts...)
   761  	if err != nil {
   762  		return nil, err
   763  	}
   764  	return out, nil
   765  }
   766  
   767  func (c *quotaClient) UpdateConfig(ctx context.Context, in *UpdateConfigRequest, opts ...grpc.CallOption) (*Config, error) {
   768  	out := new(Config)
   769  	err := c.cc.Invoke(ctx, "/quotapb.Quota/UpdateConfig", in, out, opts...)
   770  	if err != nil {
   771  		return nil, err
   772  	}
   773  	return out, nil
   774  }
   775  
   776  // Server API for Quota service
   777  
   778  type QuotaServer interface {
   779  	// Creates a new quota.
   780  	CreateConfig(context.Context, *CreateConfigRequest) (*Config, error)
   781  	// Deletes an existing quota. Non-existing quotas are considered infinite by
   782  	// the quota system.
   783  	DeleteConfig(context.Context, *DeleteConfigRequest) (*empty.Empty, error)
   784  	// Retrieves a quota by name.
   785  	GetConfig(context.Context, *GetConfigRequest) (*Config, error)
   786  	// Lists quotas according to the specified criteria.
   787  	ListConfigs(context.Context, *ListConfigsRequest) (*ListConfigsResponse, error)
   788  	// Updates a quota.
   789  	UpdateConfig(context.Context, *UpdateConfigRequest) (*Config, error)
   790  }
   791  
   792  func RegisterQuotaServer(s *grpc.Server, srv QuotaServer) {
   793  	s.RegisterService(&_Quota_serviceDesc, srv)
   794  }
   795  
   796  func _Quota_CreateConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
   797  	in := new(CreateConfigRequest)
   798  	if err := dec(in); err != nil {
   799  		return nil, err
   800  	}
   801  	if interceptor == nil {
   802  		return srv.(QuotaServer).CreateConfig(ctx, in)
   803  	}
   804  	info := &grpc.UnaryServerInfo{
   805  		Server:     srv,
   806  		FullMethod: "/quotapb.Quota/CreateConfig",
   807  	}
   808  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
   809  		return srv.(QuotaServer).CreateConfig(ctx, req.(*CreateConfigRequest))
   810  	}
   811  	return interceptor(ctx, in, info, handler)
   812  }
   813  
   814  func _Quota_DeleteConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
   815  	in := new(DeleteConfigRequest)
   816  	if err := dec(in); err != nil {
   817  		return nil, err
   818  	}
   819  	if interceptor == nil {
   820  		return srv.(QuotaServer).DeleteConfig(ctx, in)
   821  	}
   822  	info := &grpc.UnaryServerInfo{
   823  		Server:     srv,
   824  		FullMethod: "/quotapb.Quota/DeleteConfig",
   825  	}
   826  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
   827  		return srv.(QuotaServer).DeleteConfig(ctx, req.(*DeleteConfigRequest))
   828  	}
   829  	return interceptor(ctx, in, info, handler)
   830  }
   831  
   832  func _Quota_GetConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
   833  	in := new(GetConfigRequest)
   834  	if err := dec(in); err != nil {
   835  		return nil, err
   836  	}
   837  	if interceptor == nil {
   838  		return srv.(QuotaServer).GetConfig(ctx, in)
   839  	}
   840  	info := &grpc.UnaryServerInfo{
   841  		Server:     srv,
   842  		FullMethod: "/quotapb.Quota/GetConfig",
   843  	}
   844  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
   845  		return srv.(QuotaServer).GetConfig(ctx, req.(*GetConfigRequest))
   846  	}
   847  	return interceptor(ctx, in, info, handler)
   848  }
   849  
   850  func _Quota_ListConfigs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
   851  	in := new(ListConfigsRequest)
   852  	if err := dec(in); err != nil {
   853  		return nil, err
   854  	}
   855  	if interceptor == nil {
   856  		return srv.(QuotaServer).ListConfigs(ctx, in)
   857  	}
   858  	info := &grpc.UnaryServerInfo{
   859  		Server:     srv,
   860  		FullMethod: "/quotapb.Quota/ListConfigs",
   861  	}
   862  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
   863  		return srv.(QuotaServer).ListConfigs(ctx, req.(*ListConfigsRequest))
   864  	}
   865  	return interceptor(ctx, in, info, handler)
   866  }
   867  
   868  func _Quota_UpdateConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
   869  	in := new(UpdateConfigRequest)
   870  	if err := dec(in); err != nil {
   871  		return nil, err
   872  	}
   873  	if interceptor == nil {
   874  		return srv.(QuotaServer).UpdateConfig(ctx, in)
   875  	}
   876  	info := &grpc.UnaryServerInfo{
   877  		Server:     srv,
   878  		FullMethod: "/quotapb.Quota/UpdateConfig",
   879  	}
   880  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
   881  		return srv.(QuotaServer).UpdateConfig(ctx, req.(*UpdateConfigRequest))
   882  	}
   883  	return interceptor(ctx, in, info, handler)
   884  }
   885  
   886  var _Quota_serviceDesc = grpc.ServiceDesc{
   887  	ServiceName: "quotapb.Quota",
   888  	HandlerType: (*QuotaServer)(nil),
   889  	Methods: []grpc.MethodDesc{
   890  		{
   891  			MethodName: "CreateConfig",
   892  			Handler:    _Quota_CreateConfig_Handler,
   893  		},
   894  		{
   895  			MethodName: "DeleteConfig",
   896  			Handler:    _Quota_DeleteConfig_Handler,
   897  		},
   898  		{
   899  			MethodName: "GetConfig",
   900  			Handler:    _Quota_GetConfig_Handler,
   901  		},
   902  		{
   903  			MethodName: "ListConfigs",
   904  			Handler:    _Quota_ListConfigs_Handler,
   905  		},
   906  		{
   907  			MethodName: "UpdateConfig",
   908  			Handler:    _Quota_UpdateConfig_Handler,
   909  		},
   910  	},
   911  	Streams:  []grpc.StreamDesc{},
   912  	Metadata: "quotapb.proto",
   913  }
   914  
   915  func init() { proto.RegisterFile("quotapb.proto", fileDescriptor_quotapb_e21da34a69faec1d) }
   916  
   917  var fileDescriptor_quotapb_e21da34a69faec1d = []byte{
   918  	// 759 bytes of a gzipped FileDescriptorProto
   919  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0xdd, 0x4e, 0x13, 0x41,
   920  	0x18, 0x65, 0xfb, 0x47, 0xfb, 0x95, 0x9f, 0x32, 0x45, 0x58, 0x0a, 0x86, 0xcd, 0x46, 0xb4, 0x94,
   921  	0xa4, 0x0d, 0xf5, 0xc6, 0x08, 0x26, 0xd2, 0x52, 0xb0, 0xb1, 0x94, 0xb8, 0x2d, 0x7a, 0xb9, 0x99,
   922  	0xb6, 0x43, 0x5d, 0xe9, 0xee, 0x96, 0x9d, 0x29, 0x3f, 0x31, 0x5e, 0x68, 0xe2, 0x13, 0x18, 0xdf,
   923  	0xc3, 0x77, 0xf1, 0x15, 0x7c, 0x03, 0x5f, 0xc0, 0xec, 0xcc, 0xee, 0x5a, 0xda, 0x22, 0x5c, 0x78,
   924  	0xb7, 0xf3, 0x9d, 0xb3, 0xe7, 0x3b, 0xdf, 0xcc, 0x99, 0x81, 0xd9, 0xf3, 0x81, 0xcd, 0x70, 0xbf,
   925  	0x95, 0xef, 0x3b, 0x36, 0xb3, 0xd1, 0xb4, 0xb7, 0xcc, 0xac, 0x75, 0x6d, 0xbb, 0xdb, 0x23, 0x05,
   926  	0xdc, 0x37, 0x0a, 0xd8, 0xb2, 0x6c, 0x86, 0x99, 0x61, 0x5b, 0x54, 0xd0, 0x32, 0xab, 0x1e, 0xca,
   927  	0x57, 0xad, 0xc1, 0x69, 0x81, 0x98, 0x7d, 0x76, 0xed, 0x81, 0xca, 0x28, 0x78, 0x6a, 0x90, 0x5e,
   928  	0x47, 0x37, 0x31, 0x3d, 0x13, 0x0c, 0xf5, 0x77, 0x08, 0x62, 0x65, 0xdb, 0x3a, 0x35, 0xba, 0x08,
   929  	0x41, 0xc4, 0xc2, 0x26, 0x91, 0x25, 0x45, 0xca, 0x26, 0x34, 0xfe, 0x8d, 0xb6, 0x20, 0x4a, 0x19,
   930  	0x66, 0x44, 0x0e, 0x29, 0x52, 0x76, 0xae, 0xf8, 0x20, 0xef, 0x7b, 0x14, 0xff, 0xe4, 0x1b, 0x2e,
   931  	0xa8, 0x09, 0x0e, 0x7a, 0x08, 0x60, 0xe2, 0x2b, 0x9d, 0xd9, 0x67, 0xc4, 0xa2, 0x72, 0x58, 0x91,
   932  	0xb2, 0x61, 0x2d, 0x61, 0xe2, 0xab, 0x26, 0x2f, 0xa0, 0x23, 0x48, 0x51, 0x72, 0x3e, 0x20, 0x56,
   933  	0xdb, 0xb0, 0xba, 0x7a, 0x0b, 0x53, 0xd2, 0x91, 0x23, 0x8a, 0x94, 0x4d, 0x16, 0x95, 0x40, 0xb6,
   934  	0x11, 0x10, 0x4a, 0x2e, 0xde, 0x60, 0x0e, 0x66, 0xa4, 0x7b, 0xfd, 0x6a, 0x4a, 0x9b, 0xa7, 0x37,
   935  	0x21, 0xb4, 0x03, 0xc0, 0x0c, 0x93, 0x78, 0x42, 0x51, 0x2e, 0x94, 0x09, 0x84, 0x9a, 0x86, 0x49,
   936  	0x46, 0x25, 0x12, 0xcc, 0x2f, 0xa2, 0x0d, 0x98, 0x6b, 0x0f, 0x1c, 0x87, 0x58, 0xcc, 0xb7, 0x1b,
   937  	0xe3, 0x76, 0x67, 0xbd, 0xaa, 0xb0, 0xac, 0xee, 0x42, 0x94, 0x4f, 0x88, 0x64, 0x58, 0x3c, 0xa9,
   938  	0xbf, 0xae, 0x1f, 0xbf, 0xab, 0xeb, 0xe5, 0xe3, 0xfa, 0x41, 0xf5, 0x50, 0x6f, 0x34, 0xf7, 0x9a,
   939  	0x95, 0xd4, 0x14, 0x4a, 0xc2, 0x74, 0xa5, 0xbe, 0x57, 0xaa, 0x55, 0xf6, 0x53, 0x12, 0x9a, 0x81,
   940  	0xf8, 0x7e, 0xb5, 0x21, 0x56, 0xa1, 0x92, 0x0c, 0x4b, 0x0e, 0xe9, 0xf7, 0x88, 0x65, 0xd0, 0xf7,
   941  	0xa6, 0xdb, 0x8a, 0x7a, 0x5e, 0xd4, 0x15, 0x58, 0xbe, 0x65, 0x52, 0xf5, 0xb3, 0x04, 0x0b, 0x63,
   942  	0xe6, 0x51, 0x1e, 0xd2, 0xc2, 0xa7, 0xce, 0x6c, 0x3d, 0x10, 0xe5, 0x47, 0x15, 0xd6, 0x16, 0x04,
   943  	0xd4, 0xb4, 0x35, 0x1f, 0x40, 0xbb, 0x90, 0x09, 0x58, 0xba, 0x61, 0x31, 0xe2, 0x5c, 0xe0, 0x9e,
   944  	0x4e, 0x49, 0xdb, 0xb6, 0x3a, 0x94, 0x1f, 0x66, 0x58, 0x93, 0x03, 0x46, 0xd5, 0x23, 0x34, 0x04,
   945  	0xae, 0x6a, 0x90, 0x2e, 0x3b, 0x04, 0x33, 0x22, 0x4e, 0x59, 0x73, 0xad, 0x52, 0x36, 0x31, 0x20,
   946  	0x4f, 0x20, 0xd6, 0xe6, 0x24, 0x2e, 0x9a, 0x2c, 0xce, 0x8f, 0x24, 0x44, 0xf3, 0x60, 0x75, 0x13,
   947  	0xd2, 0xfb, 0xa4, 0x47, 0xee, 0xa1, 0xa9, 0x3e, 0x86, 0xd4, 0x21, 0x61, 0x77, 0xf3, 0xbe, 0x4a,
   948  	0x80, 0x6a, 0x06, 0xf5, 0x98, 0xd4, 0xa7, 0x2e, 0x42, 0xd4, 0x85, 0xa9, 0x2c, 0x29, 0xe1, 0x6c,
   949  	0x42, 0x13, 0x0b, 0xf4, 0x0c, 0x22, 0x17, 0x06, 0xb9, 0xf4, 0x82, 0xfc, 0x28, 0xb0, 0x39, 0x2e,
   950  	0xc0, 0x4b, 0x6f, 0x0d, 0x72, 0xa9, 0xf1, 0x3f, 0xd4, 0x75, 0x88, 0xfb, 0x15, 0x94, 0x80, 0x68,
   951  	0x69, 0xaf, 0x51, 0x2d, 0xa7, 0xa6, 0x50, 0x1c, 0x22, 0x07, 0x27, 0xb5, 0x5a, 0x4a, 0x52, 0x5f,
   952  	0x42, 0xfa, 0x86, 0x0a, 0xed, 0xdb, 0x16, 0x25, 0x68, 0x13, 0xa6, 0xc5, 0xec, 0xc2, 0xc9, 0x84,
   953  	0xbd, 0xf1, 0x71, 0xf5, 0x87, 0x04, 0xe9, 0x93, 0x7e, 0xe7, 0xbf, 0xee, 0x38, 0xda, 0x81, 0xe4,
   954  	0x80, 0x6b, 0xf2, 0xfb, 0xce, 0xef, 0xa3, 0x7b, 0x43, 0xc4, 0x93, 0x90, 0xf7, 0x9f, 0x84, 0xfc,
   955  	0x81, 0xfb, 0x24, 0x1c, 0x61, 0x7a, 0xa6, 0x81, 0xa0, 0xbb, 0xdf, 0x68, 0x1d, 0x92, 0x0e, 0xa1,
   956  	0x84, 0xe9, 0x5c, 0x9c, 0xdf, 0xd3, 0xb8, 0x06, 0xbc, 0xf4, 0xc6, 0xad, 0x14, 0xbf, 0x47, 0x20,
   957  	0xca, 0xbf, 0xd0, 0x07, 0x98, 0x19, 0x4e, 0x0b, 0x5a, 0xfb, 0x6b, 0x68, 0x3c, 0x44, 0x99, 0x51,
   958  	0xbb, 0xea, 0xd6, 0x97, 0x9f, 0xbf, 0xbe, 0x85, 0x36, 0x54, 0xa5, 0x70, 0xb1, 0xdd, 0x22, 0x0c,
   959  	0x6f, 0x17, 0x3e, 0xba, 0x73, 0xbe, 0xe0, 0x34, 0x5a, 0xc8, 0xe5, 0x0a, 0x62, 0x9e, 0x4f, 0xcf,
   960  	0xa5, 0x1c, 0xb2, 0x60, 0x66, 0x38, 0x45, 0x43, 0xbd, 0x26, 0x84, 0x2b, 0xb3, 0x34, 0x36, 0x6c,
   961  	0xc5, 0x7d, 0x1c, 0xd5, 0x2c, 0x6f, 0xa9, 0xe6, 0xee, 0x6c, 0x89, 0x30, 0x24, 0x82, 0x28, 0xa2,
   962  	0x95, 0xa0, 0xd9, 0x68, 0x3c, 0xc7, 0xa7, 0xf2, 0x5a, 0xa0, 0xfb, 0xb4, 0x48, 0x0e, 0xa5, 0x07,
   963  	0xad, 0xfe, 0x23, 0x99, 0x99, 0xb5, 0xc9, 0xa0, 0x08, 0x9c, 0xba, 0xcc, 0x7b, 0x2e, 0xa0, 0xf9,
   964  	0xa0, 0xa7, 0xe8, 0xe6, 0x9e, 0xd0, 0x70, 0xba, 0x86, 0x76, 0x6d, 0x42, 0xe8, 0x6e, 0x3d, 0xa1,
   965  	0xe2, 0x7d, 0x4e, 0xa8, 0x15, 0xe3, 0x7b, 0xfd, 0xf4, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa0,
   966  	0x60, 0xf5, 0x62, 0xce, 0x06, 0x00, 0x00,
   967  }