aboutsummaryrefslogblamecommitdiff
path: root/src/google/protobuf/descriptor.pb.cc
blob: ab1c96ff5e2ca28fef1368bda14b8108a9efbe8f (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356












                                                           


                                                                           
                                                                             

                                                               
                                                                         

                                                               
                                                                                        

                                                               
                                                                              

                                                               


                                                                                        

                                                               
                                                                                  

                                                               
                                                                                

                                                               
                                                                               

                                                               
                                                                     

                                                               

                                                                                      

                                                               
                                                                      

                                                               

                                                                                

                                                               
                                                                          

                                                               
                                                                        

                                                               
                                                                       

                                                               





                                                                                      



               
                                                                                                                                        
                                                        
                                                                 


                                                                 
                                           





                                                                                          
                                                                         
                                                          
                                                                     


                                                                 
                                             




                                                                                            
                                                                       
                                                                             
                                                      
                                                             


                                                                 
                                         




                                                                                        
                                                                                           
                                                                                           


                                                                 
                                                        




                                                                                                       
                                                                       
                                                                                                   
                                                                       
                                                                     
                                                           
                                                                       


                                                                 
                                              




                                                                                             


                                                                                          
                                                                               
                                                          
                                                                     


                                                                 
                                             




                                                                                            
                                                                       
                                                                             
                                                               
                                                                               


                                                                 
                                                  




                                                                                                 
                                                                       
                                                                                       
                                                             
                                                                           


                                                                 
                                                




                                                                                               
                                                                       
                                                                                   
                                                            
                                                                         


                                                                 
                                               




                                                                                              
                                                                       
                                                                                 
                                                  
                                                     


                                                                 
                                     


                                                                                    
                                                                                
                                                            

                                                                               
                                                             
                                                     
                                                           


                                                                 
                                        


                                                                                       
                                                                                   
                                                            
                                                                       
                                                                   
                                                    
                                                       


                                                                 
                                      


                                                                                     
                                                                                 
                                                            

                                                                          
                                                               
                                                   
                                                     


                                                                 
                                     


                                                                                    
                                                                                
                                                            
                                                                       
                                                             
                                                        
                                                               


                                                                 
                                          


                                                                                         
                                                                                     
                                                            
                                                                       
                                                                       
                                                      
                                                           


                                                                 
                                        


                                                                                       
                                                                                   
                                                            
                                                                       
                                                                   
                                                     
                                                         


                                                                 
                                       


                                                                                      























                                                                                                     

                                                            
                                                                       























































































































                                                                                                           




                                                                           
                                                                





                                                                        





                                                                           

                                  
                                              

 

                                                  
                                                                   

                                  




                                              
                                  







                                                                                                         






                                                                                             

















































































































                                                                                                   


                                                     













                                                                                                         



















                                                                                     

                                  



                                                              


                                                                                                                                                                    


                                                                         

                                  













                                                              
                                  




                                                                         
                                                                                                           


                                         






                                                                                             





























































































































































































































































































                                                                                                           
                                                                   







































                                                                                    














                                                             






                                                                                  


                                                                                                           



                                                                      







                                                                                         

                                  


                                              

 

                                                               
                                                                                                          

                                  






                                                                   
                                  



                                                                                    
                                                                                                                      


                                                    






                                                                                             




















































































































                                                                                                   
                                                                   






































                                                                                             


                                                                                                                      



                                                                      

















                                                                                    

                                  


                                                        


                                                                                                                                                                      


                                                             

                                  









                                                        
                                  




                                                                     
                                                                                                       


                                     






                                                                                             


































































































































































































































































                                                                                                              
                                                                   




































                                                                                       














                                                            






                                                                              


                                                                                                       




                                                                                  
                                                                                                                 


















































                                                                                   
                                                                                                                  



















                                                                      



















                                                                                       

                                  








                                                                          


                                                                                                                                                                       


                                                                            

                                  
























                                                                          
                                  




                                                                          
                                                                                                            


                                          






                                                                                             

































































































































































































































































































                                                                                                     
                                                                   

















































                                                                                     


                                                       






                                                                                   


                                                                                                            



                                                                      









                                                                                

                                  


                                                        


                                                                                                                                                                    


                                                                         

                                  









                                                        
                                  




                                                                         
                                                                                                           


                                         






                                                                                             


















































































































































                                                                                                     
                                                                   
































                                                                                    





                                                       






                                                                                  


                                                                                                           



                                                                      









                                                                                     

                                  



                                                        


                                                                                                                                                                                   


                                                                                        

                                  










                                                        
                                  




                                                                              
                                                                                                                


                                              






                                                                                             

















































































































































                                                                                                     
                                                                   


































                                                                                         


                                                       






                                                                                       


                                                                                                                



                                                                      









                                                                                   

                                  


                                                        


                                                                                                                                                                             


                                                                                  

                                  









                                                        
                                  




                                                                            
                                                                                                              


                                            






                                                                                             


















































































































































                                                                                                     
                                                                   
































                                                                                       





                                                       






                                                                                     


                                                                                                              



                                                                      











                                                                                      

                                  




                                                                      


                                                                                                                                                                          


                                                                               

                                  

















                                                                      
                                  




                                                                           
                                                                                                             


                                           






                                                                                             














































































































































































                                                                                                     
                                                                   





































                                                                                      


                                                       






                                                                                    


                                                                                                             




                                                                                 
                                                                                                                

















                                                             



                                                                

                                       



                                                                                     
                                                                                     


                          
                                  


                                                                          
                     




                                                                                        

 

                                            
                                                 
                                  


                                                                          
                     














                                                                                        
                                  



                                                                 
                                                                                                   


                                 






                                                                                             




                                       
                       













                                                                     
                                




























































                                                                                                         













                                                                                  









                                                                            



                                                         
































                                                                                                        








                                                                                                                     



































                                                                                                 


                                                                              
                 









                                                                         










                                                                                
                                                                   






                                                      
                                                              













                                                            
                                            
















                                                                     




                                                                     





                                                                          


                                                                                                   



                                                                      

 
                                          
                                                                                           
                                                                                        


                                
                                  


                                                                          
                     

                                              

 

                                               
                                                          
                                  


                                                                          
                     





                                              
                                  



                                                                    
                                                                                                      


                                    






                                                                                             




                                             
                       


                                                 
                                


















                                                                               













                                                                                  









                                                                            



                                                         

















                                                                                                         








                                                                                                                     

















                                                                         









                                                                              














                                                                                   
                                                                   






                                                            
                                                              




                                                                  
                                            
















                                                                        




                                                                     





                                                                             


                                                                                                      




                                                                           
                                                                                                          

















                                                    

                                                                 

                                        

                                                                                      
                                                                                      


                            
                                  


                                                                          
                     


                                                                                         

 

                                             
                                                    
                                  


                                                                          
                     









                                                                                         
                                  



                                                                  
                                                                                                    


                                  






                                                                                             




                                         
                       







                                                                     
                                


































                                                                                                         













                                                                                  









                                                                            



                                                         






















                                                                                                        








                                                                                                                     
























                                                                                           









                                                                              














                                                                                 
                                                                   






                                                        
                                                              







                                                            
                                            
















                                                                      




                                                                     





                                                                           


                                                                                                    



                                                                      

                                       
                                                                                     


                          
                                  


                                                                          
                      
                                              

 

                                            
                                                 
                                  


                                                                          
                      




                                              
                                  



                                                                 
                                                                                                   


                                 






                                                                                             




                                       

                                








                                                       




























                                                                                  
     







                                                              








                                                                                                                     










                                                                         









                                                                              










                                                                         







                                                                                



                                                      

                                                              
















                                                                     




                                                                     





                                                                          


                                                                                                   



                                                                      

                                            
                                                                                          


                                    
                                  


                                                                          
                      
                                              

 

                                                 
                                                                
                                  


                                                                          
                      




                                              
                                  



                                                                      
                                                                                                        


                                      






                                                                                             




                                                 

                                








                                                       




























                                                                                  
     







                                                              








                                                                                                                     










                                                                         









                                                                              










                                                                           







                                                                                     



                                                                

                                                              
















                                                                          




                                                                     





                                                                               


                                                                                                        



                                                                      

                                          
                                                                                        


                                
                                  


                                                                          
                      
                                              

 

                                               
                                                          
                                  


                                                                          
                      




                                              
                                  



                                                                    
                                                                                                      


                                    






                                                                                             




                                             

                                








                                                       




























                                                                                  
     







                                                              








                                                                                                                     










                                                                         









                                                                              










                                                                         







                                                                                   



                                                            

                                                              
















                                                                        




                                                                     





                                                                             


                                                                                                      



                                                                      

                                         
                                                                                       


                              
                                  


                                                                          
                      
                                              

 

                                              
                                                       
                                  


                                                                          
                      




                                              
                                  



                                                                   
                                                                                                     


                                   






                                                                                             




                                           

                                








                                                       




























                                                                                  
     







                                                              








                                                                                                                     










                                                                         









                                                                              










                                                                         







                                                                                  



                                                          

                                                              
















                                                                       




                                                                     





                                                                            


                                                                                                     

 















































































































































































































































































































































































































































































































































































                                                                                                                    

                        
// Generated by the protocol buffer compiler.  DO NOT EDIT!

#include "google/protobuf/descriptor.pb.h"
#include <google/protobuf/descriptor.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format_inl.h>

namespace google {
namespace protobuf {

namespace {

const ::google::protobuf::Descriptor* FileDescriptorSet_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  FileDescriptorSet_reflection_ = NULL;
const ::google::protobuf::Descriptor* FileDescriptorProto_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  FileDescriptorProto_reflection_ = NULL;
const ::google::protobuf::Descriptor* DescriptorProto_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  DescriptorProto_reflection_ = NULL;
const ::google::protobuf::Descriptor* DescriptorProto_ExtensionRange_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  DescriptorProto_ExtensionRange_reflection_ = NULL;
const ::google::protobuf::Descriptor* FieldDescriptorProto_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  FieldDescriptorProto_reflection_ = NULL;
const ::google::protobuf::EnumDescriptor* FieldDescriptorProto_Type_descriptor_ = NULL;
const ::google::protobuf::EnumDescriptor* FieldDescriptorProto_Label_descriptor_ = NULL;
const ::google::protobuf::Descriptor* EnumDescriptorProto_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  EnumDescriptorProto_reflection_ = NULL;
const ::google::protobuf::Descriptor* EnumValueDescriptorProto_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  EnumValueDescriptorProto_reflection_ = NULL;
const ::google::protobuf::Descriptor* ServiceDescriptorProto_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  ServiceDescriptorProto_reflection_ = NULL;
const ::google::protobuf::Descriptor* MethodDescriptorProto_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  MethodDescriptorProto_reflection_ = NULL;
const ::google::protobuf::Descriptor* FileOptions_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  FileOptions_reflection_ = NULL;
const ::google::protobuf::EnumDescriptor* FileOptions_OptimizeMode_descriptor_ = NULL;
const ::google::protobuf::Descriptor* MessageOptions_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  MessageOptions_reflection_ = NULL;
const ::google::protobuf::Descriptor* FieldOptions_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  FieldOptions_reflection_ = NULL;
const ::google::protobuf::EnumDescriptor* FieldOptions_CType_descriptor_ = NULL;
const ::google::protobuf::Descriptor* EnumOptions_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  EnumOptions_reflection_ = NULL;
const ::google::protobuf::Descriptor* EnumValueOptions_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  EnumValueOptions_reflection_ = NULL;
const ::google::protobuf::Descriptor* ServiceOptions_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  ServiceOptions_reflection_ = NULL;
const ::google::protobuf::Descriptor* MethodOptions_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  MethodOptions_reflection_ = NULL;
const ::google::protobuf::Descriptor* UninterpretedOption_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  UninterpretedOption_reflection_ = NULL;
const ::google::protobuf::Descriptor* UninterpretedOption_NamePart_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  UninterpretedOption_NamePart_reflection_ = NULL;

}  // namespace


void protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto_AssignGlobalDescriptors(const ::google::protobuf::FileDescriptor* file) {
  FileDescriptorSet_descriptor_ = file->message_type(0);
  FileDescriptorSet::default_instance_ = new FileDescriptorSet();
  FileDescriptorSet_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      FileDescriptorSet_descriptor_,
      FileDescriptorSet::default_instance_,
      FileDescriptorSet::_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileDescriptorSet, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileDescriptorSet, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    FileDescriptorSet_descriptor_, FileDescriptorSet::default_instance_);
  FileDescriptorProto_descriptor_ = file->message_type(1);
  FileDescriptorProto::default_instance_ = new FileDescriptorProto();
  FileDescriptorProto_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      FileDescriptorProto_descriptor_,
      FileDescriptorProto::default_instance_,
      FileDescriptorProto::_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileDescriptorProto, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileDescriptorProto, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    FileDescriptorProto_descriptor_, FileDescriptorProto::default_instance_);
  DescriptorProto_descriptor_ = file->message_type(2);
  DescriptorProto::default_instance_ = new DescriptorProto();
  DescriptorProto_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      DescriptorProto_descriptor_,
      DescriptorProto::default_instance_,
      DescriptorProto::_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool());
  DescriptorProto_ExtensionRange_descriptor_ = DescriptorProto_descriptor_->nested_type(0);
  DescriptorProto_ExtensionRange::default_instance_ = new DescriptorProto_ExtensionRange();
  DescriptorProto_ExtensionRange_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      DescriptorProto_ExtensionRange_descriptor_,
      DescriptorProto_ExtensionRange::default_instance_,
      DescriptorProto_ExtensionRange::_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto_ExtensionRange, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto_ExtensionRange, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    DescriptorProto_ExtensionRange_descriptor_, DescriptorProto_ExtensionRange::default_instance_);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    DescriptorProto_descriptor_, DescriptorProto::default_instance_);
  FieldDescriptorProto_descriptor_ = file->message_type(3);
  FieldDescriptorProto::default_instance_ = new FieldDescriptorProto();
  FieldDescriptorProto_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      FieldDescriptorProto_descriptor_,
      FieldDescriptorProto::default_instance_,
      FieldDescriptorProto::_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldDescriptorProto, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldDescriptorProto, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool());
  FieldDescriptorProto_Type_descriptor_ = FieldDescriptorProto_descriptor_->enum_type(0);
  FieldDescriptorProto_Label_descriptor_ = FieldDescriptorProto_descriptor_->enum_type(1);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    FieldDescriptorProto_descriptor_, FieldDescriptorProto::default_instance_);
  EnumDescriptorProto_descriptor_ = file->message_type(4);
  EnumDescriptorProto::default_instance_ = new EnumDescriptorProto();
  EnumDescriptorProto_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      EnumDescriptorProto_descriptor_,
      EnumDescriptorProto::default_instance_,
      EnumDescriptorProto::_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumDescriptorProto, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumDescriptorProto, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    EnumDescriptorProto_descriptor_, EnumDescriptorProto::default_instance_);
  EnumValueDescriptorProto_descriptor_ = file->message_type(5);
  EnumValueDescriptorProto::default_instance_ = new EnumValueDescriptorProto();
  EnumValueDescriptorProto_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      EnumValueDescriptorProto_descriptor_,
      EnumValueDescriptorProto::default_instance_,
      EnumValueDescriptorProto::_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumValueDescriptorProto, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumValueDescriptorProto, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    EnumValueDescriptorProto_descriptor_, EnumValueDescriptorProto::default_instance_);
  ServiceDescriptorProto_descriptor_ = file->message_type(6);
  ServiceDescriptorProto::default_instance_ = new ServiceDescriptorProto();
  ServiceDescriptorProto_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      ServiceDescriptorProto_descriptor_,
      ServiceDescriptorProto::default_instance_,
      ServiceDescriptorProto::_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServiceDescriptorProto, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServiceDescriptorProto, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    ServiceDescriptorProto_descriptor_, ServiceDescriptorProto::default_instance_);
  MethodDescriptorProto_descriptor_ = file->message_type(7);
  MethodDescriptorProto::default_instance_ = new MethodDescriptorProto();
  MethodDescriptorProto_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      MethodDescriptorProto_descriptor_,
      MethodDescriptorProto::default_instance_,
      MethodDescriptorProto::_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MethodDescriptorProto, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MethodDescriptorProto, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    MethodDescriptorProto_descriptor_, MethodDescriptorProto::default_instance_);
  FileOptions_descriptor_ = file->message_type(8);
  FileOptions::default_instance_ = new FileOptions();
  FileOptions_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      FileOptions_descriptor_,
      FileOptions::default_instance_,
      FileOptions::_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, _unknown_fields_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, _extensions_),
      ::google::protobuf::DescriptorPool::generated_pool());
  FileOptions_OptimizeMode_descriptor_ = FileOptions_descriptor_->enum_type(0);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    FileOptions_descriptor_, FileOptions::default_instance_);
  MessageOptions_descriptor_ = file->message_type(9);
  MessageOptions::default_instance_ = new MessageOptions();
  MessageOptions_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      MessageOptions_descriptor_,
      MessageOptions::default_instance_,
      MessageOptions::_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageOptions, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageOptions, _unknown_fields_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageOptions, _extensions_),
      ::google::protobuf::DescriptorPool::generated_pool());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    MessageOptions_descriptor_, MessageOptions::default_instance_);
  FieldOptions_descriptor_ = file->message_type(10);
  FieldOptions::default_instance_ = new FieldOptions();
  FieldOptions_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      FieldOptions_descriptor_,
      FieldOptions::default_instance_,
      FieldOptions::_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldOptions, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldOptions, _unknown_fields_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldOptions, _extensions_),
      ::google::protobuf::DescriptorPool::generated_pool());
  FieldOptions_CType_descriptor_ = FieldOptions_descriptor_->enum_type(0);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    FieldOptions_descriptor_, FieldOptions::default_instance_);
  EnumOptions_descriptor_ = file->message_type(11);
  EnumOptions::default_instance_ = new EnumOptions();
  EnumOptions_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      EnumOptions_descriptor_,
      EnumOptions::default_instance_,
      EnumOptions::_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumOptions, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumOptions, _unknown_fields_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumOptions, _extensions_),
      ::google::protobuf::DescriptorPool::generated_pool());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    EnumOptions_descriptor_, EnumOptions::default_instance_);
  EnumValueOptions_descriptor_ = file->message_type(12);
  EnumValueOptions::default_instance_ = new EnumValueOptions();
  EnumValueOptions_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      EnumValueOptions_descriptor_,
      EnumValueOptions::default_instance_,
      EnumValueOptions::_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumValueOptions, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumValueOptions, _unknown_fields_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumValueOptions, _extensions_),
      ::google::protobuf::DescriptorPool::generated_pool());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    EnumValueOptions_descriptor_, EnumValueOptions::default_instance_);
  ServiceOptions_descriptor_ = file->message_type(13);
  ServiceOptions::default_instance_ = new ServiceOptions();
  ServiceOptions_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      ServiceOptions_descriptor_,
      ServiceOptions::default_instance_,
      ServiceOptions::_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServiceOptions, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServiceOptions, _unknown_fields_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServiceOptions, _extensions_),
      ::google::protobuf::DescriptorPool::generated_pool());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    ServiceOptions_descriptor_, ServiceOptions::default_instance_);
  MethodOptions_descriptor_ = file->message_type(14);
  MethodOptions::default_instance_ = new MethodOptions();
  MethodOptions_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      MethodOptions_descriptor_,
      MethodOptions::default_instance_,
      MethodOptions::_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MethodOptions, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MethodOptions, _unknown_fields_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MethodOptions, _extensions_),
      ::google::protobuf::DescriptorPool::generated_pool());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    MethodOptions_descriptor_, MethodOptions::default_instance_);
  UninterpretedOption_descriptor_ = file->message_type(15);
  UninterpretedOption::default_instance_ = new UninterpretedOption();
  UninterpretedOption_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      UninterpretedOption_descriptor_,
      UninterpretedOption::default_instance_,
      UninterpretedOption::_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UninterpretedOption, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UninterpretedOption, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool());
  UninterpretedOption_NamePart_descriptor_ = UninterpretedOption_descriptor_->nested_type(0);
  UninterpretedOption_NamePart::default_instance_ = new UninterpretedOption_NamePart();
  UninterpretedOption_NamePart_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      UninterpretedOption_NamePart_descriptor_,
      UninterpretedOption_NamePart::default_instance_,
      UninterpretedOption_NamePart::_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UninterpretedOption_NamePart, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UninterpretedOption_NamePart, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    UninterpretedOption_NamePart_descriptor_, UninterpretedOption_NamePart::default_instance_);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    UninterpretedOption_descriptor_, UninterpretedOption::default_instance_);
  FileDescriptorSet::default_instance_->InitAsDefaultInstance();
  FileDescriptorProto::default_instance_->InitAsDefaultInstance();
  DescriptorProto::default_instance_->InitAsDefaultInstance();
  DescriptorProto_ExtensionRange::default_instance_->InitAsDefaultInstance();
  FieldDescriptorProto::default_instance_->InitAsDefaultInstance();
  EnumDescriptorProto::default_instance_->InitAsDefaultInstance();
  EnumValueDescriptorProto::default_instance_->InitAsDefaultInstance();
  ServiceDescriptorProto::default_instance_->InitAsDefaultInstance();
  MethodDescriptorProto::default_instance_->InitAsDefaultInstance();
  FileOptions::default_instance_->InitAsDefaultInstance();
  MessageOptions::default_instance_->InitAsDefaultInstance();
  FieldOptions::default_instance_->InitAsDefaultInstance();
  EnumOptions::default_instance_->InitAsDefaultInstance();
  EnumValueOptions::default_instance_->InitAsDefaultInstance();
  ServiceOptions::default_instance_->InitAsDefaultInstance();
  MethodOptions::default_instance_->InitAsDefaultInstance();
  UninterpretedOption::default_instance_->InitAsDefaultInstance();
  UninterpretedOption_NamePart::default_instance_->InitAsDefaultInstance();
}

void protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto() {
  static bool already_here = false;
  if (already_here) return;
  already_here = true;
  GOOGLE_PROTOBUF_VERIFY_VERSION;
  ::google::protobuf::DescriptorPool* pool =
    ::google::protobuf::DescriptorPool::internal_generated_pool();

  pool->InternalBuildGeneratedFile(
    "\n google/protobuf/descriptor.proto\022\017goog"
    "le.protobuf\"G\n\021FileDescriptorSet\0222\n\004file"
    "\030\001 \003(\0132$.google.protobuf.FileDescriptorP"
    "roto\"\334\002\n\023FileDescriptorProto\022\014\n\004name\030\001 \001"
    "(\t\022\017\n\007package\030\002 \001(\t\022\022\n\ndependency\030\003 \003(\t\022"
    "6\n\014message_type\030\004 \003(\0132 .google.protobuf."
    "DescriptorProto\0227\n\tenum_type\030\005 \003(\0132$.goo"
    "gle.protobuf.EnumDescriptorProto\0228\n\007serv"
    "ice\030\006 \003(\0132\'.google.protobuf.ServiceDescr"
    "iptorProto\0228\n\textension\030\007 \003(\0132%.google.p"
    "rotobuf.FieldDescriptorProto\022-\n\007options\030"
    "\010 \001(\0132\034.google.protobuf.FileOptions\"\251\003\n\017"
    "DescriptorProto\022\014\n\004name\030\001 \001(\t\0224\n\005field\030\002"
    " \003(\0132%.google.protobuf.FieldDescriptorPr"
    "oto\0228\n\textension\030\006 \003(\0132%.google.protobuf"
    ".FieldDescriptorProto\0225\n\013nested_type\030\003 \003"
    "(\0132 .google.protobuf.DescriptorProto\0227\n\t"
    "enum_type\030\004 \003(\0132$.google.protobuf.EnumDe"
    "scriptorProto\022H\n\017extension_range\030\005 \003(\0132/"
    ".google.protobuf.DescriptorProto.Extensi"
    "onRange\0220\n\007options\030\007 \001(\0132\037.google.protob"
    "uf.MessageOptions\032,\n\016ExtensionRange\022\r\n\005s"
    "tart\030\001 \001(\005\022\013\n\003end\030\002 \001(\005\"\224\005\n\024FieldDescrip"
    "torProto\022\014\n\004name\030\001 \001(\t\022\016\n\006number\030\003 \001(\005\022:"
    "\n\005label\030\004 \001(\0162+.google.protobuf.FieldDes"
    "criptorProto.Label\0228\n\004type\030\005 \001(\0162*.googl"
    "e.protobuf.FieldDescriptorProto.Type\022\021\n\t"
    "type_name\030\006 \001(\t\022\020\n\010extendee\030\002 \001(\t\022\025\n\rdef"
    "ault_value\030\007 \001(\t\022.\n\007options\030\010 \001(\0132\035.goog"
    "le.protobuf.FieldOptions\"\266\002\n\004Type\022\017\n\013TYP"
    "E_DOUBLE\020\001\022\016\n\nTYPE_FLOAT\020\002\022\016\n\nTYPE_INT64"
    "\020\003\022\017\n\013TYPE_UINT64\020\004\022\016\n\nTYPE_INT32\020\005\022\020\n\014T"
    "YPE_FIXED64\020\006\022\020\n\014TYPE_FIXED32\020\007\022\r\n\tTYPE_"
    "BOOL\020\010\022\017\n\013TYPE_STRING\020\t\022\016\n\nTYPE_GROUP\020\n\022"
    "\020\n\014TYPE_MESSAGE\020\013\022\016\n\nTYPE_BYTES\020\014\022\017\n\013TYP"
    "E_UINT32\020\r\022\r\n\tTYPE_ENUM\020\016\022\021\n\rTYPE_SFIXED"
    "32\020\017\022\021\n\rTYPE_SFIXED64\020\020\022\017\n\013TYPE_SINT32\020\021"
    "\022\017\n\013TYPE_SINT64\020\022\"C\n\005Label\022\022\n\016LABEL_OPTI"
    "ONAL\020\001\022\022\n\016LABEL_REQUIRED\020\002\022\022\n\016LABEL_REPE"
    "ATED\020\003\"\214\001\n\023EnumDescriptorProto\022\014\n\004name\030\001"
    " \001(\t\0228\n\005value\030\002 \003(\0132).google.protobuf.En"
    "umValueDescriptorProto\022-\n\007options\030\003 \001(\0132"
    "\034.google.protobuf.EnumOptions\"l\n\030EnumVal"
    "ueDescriptorProto\022\014\n\004name\030\001 \001(\t\022\016\n\006numbe"
    "r\030\002 \001(\005\0222\n\007options\030\003 \001(\0132!.google.protob"
    "uf.EnumValueOptions\"\220\001\n\026ServiceDescripto"
    "rProto\022\014\n\004name\030\001 \001(\t\0226\n\006method\030\002 \003(\0132&.g"
    "oogle.protobuf.MethodDescriptorProto\0220\n\007"
    "options\030\003 \001(\0132\037.google.protobuf.ServiceO"
    "ptions\"\177\n\025MethodDescriptorProto\022\014\n\004name\030"
    "\001 \001(\t\022\022\n\ninput_type\030\002 \001(\t\022\023\n\013output_type"
    "\030\003 \001(\t\022/\n\007options\030\004 \001(\0132\036.google.protobu"
    "f.MethodOptions\"\253\002\n\013FileOptions\022\024\n\014java_"
    "package\030\001 \001(\t\022\034\n\024java_outer_classname\030\010 "
    "\001(\t\022\"\n\023java_multiple_files\030\n \001(\010:\005false\022"
    "J\n\014optimize_for\030\t \001(\0162).google.protobuf."
    "FileOptions.OptimizeMode:\tCODE_SIZE\022C\n\024u"
    "ninterpreted_option\030\347\007 \003(\0132$.google.prot"
    "obuf.UninterpretedOption\"(\n\014OptimizeMode"
    "\022\t\n\005SPEED\020\001\022\r\n\tCODE_SIZE\020\002*\t\010\350\007\020\200\200\200\200\002\"\210\001"
    "\n\016MessageOptions\022&\n\027message_set_wire_for"
    "mat\030\001 \001(\010:\005false\022C\n\024uninterpreted_option"
    "\030\347\007 \003(\0132$.google.protobuf.UninterpretedO"
    "ption*\t\010\350\007\020\200\200\200\200\002\"\325\001\n\014FieldOptions\0222\n\005cty"
    "pe\030\001 \001(\0162#.google.protobuf.FieldOptions."
    "CType\022\034\n\024experimental_map_key\030\t \001(\t\022C\n\024u"
    "ninterpreted_option\030\347\007 \003(\0132$.google.prot"
    "obuf.UninterpretedOption\"#\n\005CType\022\010\n\004COR"
    "D\020\001\022\020\n\014STRING_PIECE\020\002*\t\010\350\007\020\200\200\200\200\002\"]\n\013Enum"
    "Options\022C\n\024uninterpreted_option\030\347\007 \003(\0132$"
    ".google.protobuf.UninterpretedOption*\t\010\350"
    "\007\020\200\200\200\200\002\"b\n\020EnumValueOptions\022C\n\024uninterpr"
    "eted_option\030\347\007 \003(\0132$.google.protobuf.Uni"
    "nterpretedOption*\t\010\350\007\020\200\200\200\200\002\"`\n\016ServiceOp"
    "tions\022C\n\024uninterpreted_option\030\347\007 \003(\0132$.g"
    "oogle.protobuf.UninterpretedOption*\t\010\350\007\020"
    "\200\200\200\200\002\"_\n\rMethodOptions\022C\n\024uninterpreted_"
    "option\030\347\007 \003(\0132$.google.protobuf.Uninterp"
    "retedOption*\t\010\350\007\020\200\200\200\200\002\"\205\002\n\023Uninterpreted"
    "Option\022;\n\004name\030\002 \003(\0132-.google.protobuf.U"
    "ninterpretedOption.NamePart\022\030\n\020identifie"
    "r_value\030\003 \001(\t\022\032\n\022positive_int_value\030\004 \001("
    "\004\022\032\n\022negative_int_value\030\005 \001(\003\022\024\n\014double_"
    "value\030\006 \001(\001\022\024\n\014string_value\030\007 \001(\014\0323\n\010Nam"
    "ePart\022\021\n\tname_part\030\001 \002(\t\022\024\n\014is_extension"
    "\030\002 \002(\010B)\n\023com.google.protobufB\020Descripto"
    "rProtosH\001", 3449,
  &protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto_AssignGlobalDescriptors);
}

// Force BuildDescriptors() to be called at static initialization time.
struct StaticDescriptorInitializer_google_2fprotobuf_2fdescriptor_2eproto {
  StaticDescriptorInitializer_google_2fprotobuf_2fdescriptor_2eproto() {
    protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  }
} static_descriptor_initializer_google_2fprotobuf_2fdescriptor_2eproto_;


// ===================================================================


const int FileDescriptorSet::_offsets_[1] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileDescriptorSet, file_),
};

FileDescriptorSet::FileDescriptorSet()
  : ::google::protobuf::Message(),
    _cached_size_(0) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

void FileDescriptorSet::InitAsDefaultInstance() {}

FileDescriptorSet::FileDescriptorSet(const FileDescriptorSet& from)
  : ::google::protobuf::Message(),
    _cached_size_(0) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  MergeFrom(from);
}

FileDescriptorSet::~FileDescriptorSet() {
  if (this != default_instance_) {
  }
}

const ::google::protobuf::Descriptor* FileDescriptorSet::descriptor() {
  if (FileDescriptorSet_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return FileDescriptorSet_descriptor_;
}

const FileDescriptorSet& FileDescriptorSet::default_instance() {
  if (default_instance_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return *default_instance_;
}

FileDescriptorSet* FileDescriptorSet::default_instance_ = NULL;

FileDescriptorSet* FileDescriptorSet::New() const {
  return new FileDescriptorSet;
}

void FileDescriptorSet::Clear() {
  file_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool FileDescriptorSet::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  ::google::protobuf::uint32 tag;
  while ((tag = input->ReadTag()) != 0) {
    switch (::google::protobuf::internal::WireFormat::GetTagFieldNumber(tag)) {
      // repeated .google.protobuf.FileDescriptorProto file = 1;
      case 1: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_file:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_file()));
        if (input->ExpectTag(10)) goto parse_file;
        if (input->ExpectAtEnd()) return true;
        break;
      }
      
      default: {
      handle_uninterpreted:
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormat::WIRETYPE_END_GROUP) {
          return true;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
  return true;
#undef DO_
}

bool FileDescriptorSet::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  // repeated .google.protobuf.FileDescriptorProto file = 1;
  for (int i = 0; i < file_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(1, this->file(i), output));
  }
  
  if (!unknown_fields().empty()) {
    DO_(::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output));
  }
  return true;
#undef DO_
}

int FileDescriptorSet::ByteSize() const {
  int total_size = 0;
  
  // repeated .google.protobuf.FileDescriptorProto file = 1;
  total_size += 1 * file_size();
  for (int i = 0; i < file_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->file(i));
  }
  
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  _cached_size_ = total_size;
  return total_size;
}

void FileDescriptorSet::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const FileDescriptorSet* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const FileDescriptorSet*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void FileDescriptorSet::MergeFrom(const FileDescriptorSet& from) {
  GOOGLE_CHECK_NE(&from, this);
  file_.MergeFrom(from.file_);
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void FileDescriptorSet::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void FileDescriptorSet::CopyFrom(const FileDescriptorSet& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FileDescriptorSet::IsInitialized() const {
  
  for (int i = 0; i < file_size(); i++) {
    if (!this->file(i).IsInitialized()) return false;
  }
  return true;
}

const ::google::protobuf::Descriptor* FileDescriptorSet::GetDescriptor() const {
  return descriptor();
}

const ::google::protobuf::Reflection* FileDescriptorSet::GetReflection() const {
  if (FileDescriptorSet_reflection_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return FileDescriptorSet_reflection_;
}

// ===================================================================

const ::std::string FileDescriptorProto::_default_name_;
const ::std::string FileDescriptorProto::_default_package_;






const int FileDescriptorProto::_offsets_[8] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileDescriptorProto, name_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileDescriptorProto, package_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileDescriptorProto, dependency_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileDescriptorProto, message_type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileDescriptorProto, enum_type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileDescriptorProto, service_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileDescriptorProto, extension_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileDescriptorProto, options_),
};

FileDescriptorProto::FileDescriptorProto()
  : ::google::protobuf::Message(),
    _cached_size_(0),
    name_(const_cast< ::std::string*>(&_default_name_)),
    package_(const_cast< ::std::string*>(&_default_package_)),
    options_(NULL) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

void FileDescriptorProto::InitAsDefaultInstance() {  options_ = const_cast< ::google::protobuf::FileOptions*>(&::google::protobuf::FileOptions::default_instance());
}

FileDescriptorProto::FileDescriptorProto(const FileDescriptorProto& from)
  : ::google::protobuf::Message(),
    _cached_size_(0),
    name_(const_cast< ::std::string*>(&_default_name_)),
    package_(const_cast< ::std::string*>(&_default_package_)),
    options_(NULL) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  MergeFrom(from);
}

FileDescriptorProto::~FileDescriptorProto() {
  if (name_ != &_default_name_) {
    delete name_;
  }
  if (package_ != &_default_package_) {
    delete package_;
  }
  if (this != default_instance_) {
    delete options_;
  }
}

const ::google::protobuf::Descriptor* FileDescriptorProto::descriptor() {
  if (FileDescriptorProto_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return FileDescriptorProto_descriptor_;
}

const FileDescriptorProto& FileDescriptorProto::default_instance() {
  if (default_instance_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return *default_instance_;
}

FileDescriptorProto* FileDescriptorProto::default_instance_ = NULL;

FileDescriptorProto* FileDescriptorProto::New() const {
  return new FileDescriptorProto;
}

void FileDescriptorProto::Clear() {
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (_has_bit(0)) {
      if (name_ != &_default_name_) {
        name_->clear();
      }
    }
    if (_has_bit(1)) {
      if (package_ != &_default_package_) {
        package_->clear();
      }
    }
    if (_has_bit(7)) {
      if (options_ != NULL) options_->::google::protobuf::FileOptions::Clear();
    }
  }
  dependency_.Clear();
  message_type_.Clear();
  enum_type_.Clear();
  service_.Clear();
  extension_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool FileDescriptorProto::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  ::google::protobuf::uint32 tag;
  while ((tag = input->ReadTag()) != 0) {
    switch (::google::protobuf::internal::WireFormat::GetTagFieldNumber(tag)) {
      // optional string name = 1;
      case 1: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
        DO_(::google::protobuf::internal::WireFormat::ReadString(input, mutable_name()));
        if (input->ExpectTag(18)) goto parse_package;
        break;
      }
      
      // optional string package = 2;
      case 2: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_package:
        DO_(::google::protobuf::internal::WireFormat::ReadString(input, mutable_package()));
        if (input->ExpectTag(26)) goto parse_dependency;
        break;
      }
      
      // repeated string dependency = 3;
      case 3: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_dependency:
        DO_(::google::protobuf::internal::WireFormat::ReadString(
             input, add_dependency()));
        if (input->ExpectTag(26)) goto parse_dependency;
        if (input->ExpectTag(34)) goto parse_message_type;
        break;
      }
      
      // repeated .google.protobuf.DescriptorProto message_type = 4;
      case 4: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_message_type:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_message_type()));
        if (input->ExpectTag(34)) goto parse_message_type;
        if (input->ExpectTag(42)) goto parse_enum_type;
        break;
      }
      
      // repeated .google.protobuf.EnumDescriptorProto enum_type = 5;
      case 5: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_enum_type:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_enum_type()));
        if (input->ExpectTag(42)) goto parse_enum_type;
        if (input->ExpectTag(50)) goto parse_service;
        break;
      }
      
      // repeated .google.protobuf.ServiceDescriptorProto service = 6;
      case 6: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_service:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_service()));
        if (input->ExpectTag(50)) goto parse_service;
        if (input->ExpectTag(58)) goto parse_extension;
        break;
      }
      
      // repeated .google.protobuf.FieldDescriptorProto extension = 7;
      case 7: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_extension:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_extension()));
        if (input->ExpectTag(58)) goto parse_extension;
        if (input->ExpectTag(66)) goto parse_options;
        break;
      }
      
      // optional .google.protobuf.FileOptions options = 8;
      case 8: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_options:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, mutable_options()));
        if (input->ExpectAtEnd()) return true;
        break;
      }
      
      default: {
      handle_uninterpreted:
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormat::WIRETYPE_END_GROUP) {
          return true;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
  return true;
#undef DO_
}

bool FileDescriptorProto::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  // optional string name = 1;
  if (_has_bit(0)) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(1, this->name(), output));
  }
  
  // optional string package = 2;
  if (_has_bit(1)) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(2, this->package(), output));
  }
  
  // repeated string dependency = 3;
  for (int i = 0; i < dependency_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(3, this->dependency(i), output));
  }
  
  // repeated .google.protobuf.DescriptorProto message_type = 4;
  for (int i = 0; i < message_type_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(4, this->message_type(i), output));
  }
  
  // repeated .google.protobuf.EnumDescriptorProto enum_type = 5;
  for (int i = 0; i < enum_type_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(5, this->enum_type(i), output));
  }
  
  // repeated .google.protobuf.ServiceDescriptorProto service = 6;
  for (int i = 0; i < service_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(6, this->service(i), output));
  }
  
  // repeated .google.protobuf.FieldDescriptorProto extension = 7;
  for (int i = 0; i < extension_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(7, this->extension(i), output));
  }
  
  // optional .google.protobuf.FileOptions options = 8;
  if (_has_bit(7)) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(8, this->options(), output));
  }
  
  if (!unknown_fields().empty()) {
    DO_(::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output));
  }
  return true;
#undef DO_
}

int FileDescriptorProto::ByteSize() const {
  int total_size = 0;
  
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string name = 1;
    if (has_name()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::StringSize(this->name());
    }
    
    // optional string package = 2;
    if (has_package()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::StringSize(this->package());
    }
    
    // optional .google.protobuf.FileOptions options = 8;
    if (has_options()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
          this->options());
    }
    
  }
  // repeated string dependency = 3;
  total_size += 1 * dependency_size();
  for (int i = 0; i < dependency_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormat::StringSize(
      this->dependency(i));
  }
  
  // repeated .google.protobuf.DescriptorProto message_type = 4;
  total_size += 1 * message_type_size();
  for (int i = 0; i < message_type_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->message_type(i));
  }
  
  // repeated .google.protobuf.EnumDescriptorProto enum_type = 5;
  total_size += 1 * enum_type_size();
  for (int i = 0; i < enum_type_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->enum_type(i));
  }
  
  // repeated .google.protobuf.ServiceDescriptorProto service = 6;
  total_size += 1 * service_size();
  for (int i = 0; i < service_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->service(i));
  }
  
  // repeated .google.protobuf.FieldDescriptorProto extension = 7;
  total_size += 1 * extension_size();
  for (int i = 0; i < extension_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->extension(i));
  }
  
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  _cached_size_ = total_size;
  return total_size;
}

void FileDescriptorProto::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const FileDescriptorProto* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const FileDescriptorProto*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void FileDescriptorProto::MergeFrom(const FileDescriptorProto& from) {
  GOOGLE_CHECK_NE(&from, this);
  dependency_.MergeFrom(from.dependency_);
  message_type_.MergeFrom(from.message_type_);
  enum_type_.MergeFrom(from.enum_type_);
  service_.MergeFrom(from.service_);
  extension_.MergeFrom(from.extension_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from._has_bit(0)) {
      set_name(from.name());
    }
    if (from._has_bit(1)) {
      set_package(from.package());
    }
    if (from._has_bit(7)) {
      mutable_options()->::google::protobuf::FileOptions::MergeFrom(from.options());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void FileDescriptorProto::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void FileDescriptorProto::CopyFrom(const FileDescriptorProto& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FileDescriptorProto::IsInitialized() const {
  
  for (int i = 0; i < message_type_size(); i++) {
    if (!this->message_type(i).IsInitialized()) return false;
  }
  for (int i = 0; i < enum_type_size(); i++) {
    if (!this->enum_type(i).IsInitialized()) return false;
  }
  for (int i = 0; i < service_size(); i++) {
    if (!this->service(i).IsInitialized()) return false;
  }
  for (int i = 0; i < extension_size(); i++) {
    if (!this->extension(i).IsInitialized()) return false;
  }
  if (has_options()) {
    if (!this->options().IsInitialized()) return false;
  }
  return true;
}

const ::google::protobuf::Descriptor* FileDescriptorProto::GetDescriptor() const {
  return descriptor();
}

const ::google::protobuf::Reflection* FileDescriptorProto::GetReflection() const {
  if (FileDescriptorProto_reflection_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return FileDescriptorProto_reflection_;
}

// ===================================================================



const int DescriptorProto_ExtensionRange::_offsets_[2] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto_ExtensionRange, start_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto_ExtensionRange, end_),
};

DescriptorProto_ExtensionRange::DescriptorProto_ExtensionRange()
  : ::google::protobuf::Message(),
    _cached_size_(0),
    start_(0),
    end_(0) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

void DescriptorProto_ExtensionRange::InitAsDefaultInstance() {}

DescriptorProto_ExtensionRange::DescriptorProto_ExtensionRange(const DescriptorProto_ExtensionRange& from)
  : ::google::protobuf::Message(),
    _cached_size_(0),
    start_(0),
    end_(0) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  MergeFrom(from);
}

DescriptorProto_ExtensionRange::~DescriptorProto_ExtensionRange() {
  if (this != default_instance_) {
  }
}

const ::google::protobuf::Descriptor* DescriptorProto_ExtensionRange::descriptor() {
  if (DescriptorProto_ExtensionRange_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return DescriptorProto_ExtensionRange_descriptor_;
}

const DescriptorProto_ExtensionRange& DescriptorProto_ExtensionRange::default_instance() {
  if (default_instance_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return *default_instance_;
}

DescriptorProto_ExtensionRange* DescriptorProto_ExtensionRange::default_instance_ = NULL;

DescriptorProto_ExtensionRange* DescriptorProto_ExtensionRange::New() const {
  return new DescriptorProto_ExtensionRange;
}

void DescriptorProto_ExtensionRange::Clear() {
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    start_ = 0;
    end_ = 0;
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool DescriptorProto_ExtensionRange::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  ::google::protobuf::uint32 tag;
  while ((tag = input->ReadTag()) != 0) {
    switch (::google::protobuf::internal::WireFormat::GetTagFieldNumber(tag)) {
      // optional int32 start = 1;
      case 1: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_VARINT) {
          goto handle_uninterpreted;
        }
        DO_(::google::protobuf::internal::WireFormat::ReadInt32(
              input, &start_));
        _set_bit(0);
        if (input->ExpectTag(16)) goto parse_end;
        break;
      }
      
      // optional int32 end = 2;
      case 2: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_VARINT) {
          goto handle_uninterpreted;
        }
       parse_end:
        DO_(::google::protobuf::internal::WireFormat::ReadInt32(
              input, &end_));
        _set_bit(1);
        if (input->ExpectAtEnd()) return true;
        break;
      }
      
      default: {
      handle_uninterpreted:
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormat::WIRETYPE_END_GROUP) {
          return true;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
  return true;
#undef DO_
}

bool DescriptorProto_ExtensionRange::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  // optional int32 start = 1;
  if (_has_bit(0)) {
    DO_(::google::protobuf::internal::WireFormat::WriteInt32(1, this->start(), output));
  }
  
  // optional int32 end = 2;
  if (_has_bit(1)) {
    DO_(::google::protobuf::internal::WireFormat::WriteInt32(2, this->end(), output));
  }
  
  if (!unknown_fields().empty()) {
    DO_(::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output));
  }
  return true;
#undef DO_
}

int DescriptorProto_ExtensionRange::ByteSize() const {
  int total_size = 0;
  
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional int32 start = 1;
    if (has_start()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::Int32Size(
          this->start());
    }
    
    // optional int32 end = 2;
    if (has_end()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::Int32Size(
          this->end());
    }
    
  }
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  _cached_size_ = total_size;
  return total_size;
}

void DescriptorProto_ExtensionRange::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const DescriptorProto_ExtensionRange* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const DescriptorProto_ExtensionRange*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void DescriptorProto_ExtensionRange::MergeFrom(const DescriptorProto_ExtensionRange& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from._has_bit(0)) {
      set_start(from.start());
    }
    if (from._has_bit(1)) {
      set_end(from.end());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void DescriptorProto_ExtensionRange::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DescriptorProto_ExtensionRange::CopyFrom(const DescriptorProto_ExtensionRange& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DescriptorProto_ExtensionRange::IsInitialized() const {
  
  return true;
}

const ::google::protobuf::Descriptor* DescriptorProto_ExtensionRange::GetDescriptor() const {
  return descriptor();
}

const ::google::protobuf::Reflection* DescriptorProto_ExtensionRange::GetReflection() const {
  if (DescriptorProto_ExtensionRange_reflection_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return DescriptorProto_ExtensionRange_reflection_;
}

// -------------------------------------------------------------------

const ::std::string DescriptorProto::_default_name_;






const int DescriptorProto::_offsets_[7] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto, name_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto, field_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto, extension_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto, nested_type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto, enum_type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto, extension_range_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto, options_),
};

DescriptorProto::DescriptorProto()
  : ::google::protobuf::Message(),
    _cached_size_(0),
    name_(const_cast< ::std::string*>(&_default_name_)),
    options_(NULL) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

void DescriptorProto::InitAsDefaultInstance() {  options_ = const_cast< ::google::protobuf::MessageOptions*>(&::google::protobuf::MessageOptions::default_instance());
}

DescriptorProto::DescriptorProto(const DescriptorProto& from)
  : ::google::protobuf::Message(),
    _cached_size_(0),
    name_(const_cast< ::std::string*>(&_default_name_)),
    options_(NULL) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  MergeFrom(from);
}

DescriptorProto::~DescriptorProto() {
  if (name_ != &_default_name_) {
    delete name_;
  }
  if (this != default_instance_) {
    delete options_;
  }
}

const ::google::protobuf::Descriptor* DescriptorProto::descriptor() {
  if (DescriptorProto_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return DescriptorProto_descriptor_;
}

const DescriptorProto& DescriptorProto::default_instance() {
  if (default_instance_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return *default_instance_;
}

DescriptorProto* DescriptorProto::default_instance_ = NULL;

DescriptorProto* DescriptorProto::New() const {
  return new DescriptorProto;
}

void DescriptorProto::Clear() {
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (_has_bit(0)) {
      if (name_ != &_default_name_) {
        name_->clear();
      }
    }
    if (_has_bit(6)) {
      if (options_ != NULL) options_->::google::protobuf::MessageOptions::Clear();
    }
  }
  field_.Clear();
  extension_.Clear();
  nested_type_.Clear();
  enum_type_.Clear();
  extension_range_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool DescriptorProto::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  ::google::protobuf::uint32 tag;
  while ((tag = input->ReadTag()) != 0) {
    switch (::google::protobuf::internal::WireFormat::GetTagFieldNumber(tag)) {
      // optional string name = 1;
      case 1: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
        DO_(::google::protobuf::internal::WireFormat::ReadString(input, mutable_name()));
        if (input->ExpectTag(18)) goto parse_field;
        break;
      }
      
      // repeated .google.protobuf.FieldDescriptorProto field = 2;
      case 2: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_field:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_field()));
        if (input->ExpectTag(18)) goto parse_field;
        if (input->ExpectTag(26)) goto parse_nested_type;
        break;
      }
      
      // repeated .google.protobuf.DescriptorProto nested_type = 3;
      case 3: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_nested_type:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_nested_type()));
        if (input->ExpectTag(26)) goto parse_nested_type;
        if (input->ExpectTag(34)) goto parse_enum_type;
        break;
      }
      
      // repeated .google.protobuf.EnumDescriptorProto enum_type = 4;
      case 4: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_enum_type:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_enum_type()));
        if (input->ExpectTag(34)) goto parse_enum_type;
        if (input->ExpectTag(42)) goto parse_extension_range;
        break;
      }
      
      // repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;
      case 5: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_extension_range:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_extension_range()));
        if (input->ExpectTag(42)) goto parse_extension_range;
        if (input->ExpectTag(50)) goto parse_extension;
        break;
      }
      
      // repeated .google.protobuf.FieldDescriptorProto extension = 6;
      case 6: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_extension:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_extension()));
        if (input->ExpectTag(50)) goto parse_extension;
        if (input->ExpectTag(58)) goto parse_options;
        break;
      }
      
      // optional .google.protobuf.MessageOptions options = 7;
      case 7: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_options:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, mutable_options()));
        if (input->ExpectAtEnd()) return true;
        break;
      }
      
      default: {
      handle_uninterpreted:
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormat::WIRETYPE_END_GROUP) {
          return true;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
  return true;
#undef DO_
}

bool DescriptorProto::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  // optional string name = 1;
  if (_has_bit(0)) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(1, this->name(), output));
  }
  
  // repeated .google.protobuf.FieldDescriptorProto field = 2;
  for (int i = 0; i < field_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(2, this->field(i), output));
  }
  
  // repeated .google.protobuf.DescriptorProto nested_type = 3;
  for (int i = 0; i < nested_type_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(3, this->nested_type(i), output));
  }
  
  // repeated .google.protobuf.EnumDescriptorProto enum_type = 4;
  for (int i = 0; i < enum_type_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(4, this->enum_type(i), output));
  }
  
  // repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;
  for (int i = 0; i < extension_range_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(5, this->extension_range(i), output));
  }
  
  // repeated .google.protobuf.FieldDescriptorProto extension = 6;
  for (int i = 0; i < extension_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(6, this->extension(i), output));
  }
  
  // optional .google.protobuf.MessageOptions options = 7;
  if (_has_bit(6)) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(7, this->options(), output));
  }
  
  if (!unknown_fields().empty()) {
    DO_(::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output));
  }
  return true;
#undef DO_
}

int DescriptorProto::ByteSize() const {
  int total_size = 0;
  
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string name = 1;
    if (has_name()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::StringSize(this->name());
    }
    
    // optional .google.protobuf.MessageOptions options = 7;
    if (has_options()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
          this->options());
    }
    
  }
  // repeated .google.protobuf.FieldDescriptorProto field = 2;
  total_size += 1 * field_size();
  for (int i = 0; i < field_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->field(i));
  }
  
  // repeated .google.protobuf.FieldDescriptorProto extension = 6;
  total_size += 1 * extension_size();
  for (int i = 0; i < extension_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->extension(i));
  }
  
  // repeated .google.protobuf.DescriptorProto nested_type = 3;
  total_size += 1 * nested_type_size();
  for (int i = 0; i < nested_type_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->nested_type(i));
  }
  
  // repeated .google.protobuf.EnumDescriptorProto enum_type = 4;
  total_size += 1 * enum_type_size();
  for (int i = 0; i < enum_type_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->enum_type(i));
  }
  
  // repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;
  total_size += 1 * extension_range_size();
  for (int i = 0; i < extension_range_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->extension_range(i));
  }
  
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  _cached_size_ = total_size;
  return total_size;
}

void DescriptorProto::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const DescriptorProto* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const DescriptorProto*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void DescriptorProto::MergeFrom(const DescriptorProto& from) {
  GOOGLE_CHECK_NE(&from, this);
  field_.MergeFrom(from.field_);
  extension_.MergeFrom(from.extension_);
  nested_type_.MergeFrom(from.nested_type_);
  enum_type_.MergeFrom(from.enum_type_);
  extension_range_.MergeFrom(from.extension_range_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from._has_bit(0)) {
      set_name(from.name());
    }
    if (from._has_bit(6)) {
      mutable_options()->::google::protobuf::MessageOptions::MergeFrom(from.options());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void DescriptorProto::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DescriptorProto::CopyFrom(const DescriptorProto& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool DescriptorProto::IsInitialized() const {
  
  for (int i = 0; i < field_size(); i++) {
    if (!this->field(i).IsInitialized()) return false;
  }
  for (int i = 0; i < extension_size(); i++) {
    if (!this->extension(i).IsInitialized()) return false;
  }
  for (int i = 0; i < nested_type_size(); i++) {
    if (!this->nested_type(i).IsInitialized()) return false;
  }
  for (int i = 0; i < enum_type_size(); i++) {
    if (!this->enum_type(i).IsInitialized()) return false;
  }
  if (has_options()) {
    if (!this->options().IsInitialized()) return false;
  }
  return true;
}

const ::google::protobuf::Descriptor* DescriptorProto::GetDescriptor() const {
  return descriptor();
}

const ::google::protobuf::Reflection* DescriptorProto::GetReflection() const {
  if (DescriptorProto_reflection_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return DescriptorProto_reflection_;
}

// ===================================================================

const ::google::protobuf::EnumDescriptor* FieldDescriptorProto_Type_descriptor() {
  if (FieldDescriptorProto_Type_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return FieldDescriptorProto_Type_descriptor_;
}
bool FieldDescriptorProto_Type_IsValid(int value) {
  switch(value) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
      return true;
    default:
      return false;
  }
}

#ifndef _MSC_VER
const FieldDescriptorProto_Type FieldDescriptorProto::TYPE_DOUBLE;
const FieldDescriptorProto_Type FieldDescriptorProto::TYPE_FLOAT;
const FieldDescriptorProto_Type FieldDescriptorProto::TYPE_INT64;
const FieldDescriptorProto_Type FieldDescriptorProto::TYPE_UINT64;
const FieldDescriptorProto_Type FieldDescriptorProto::TYPE_INT32;
const FieldDescriptorProto_Type FieldDescriptorProto::TYPE_FIXED64;
const FieldDescriptorProto_Type FieldDescriptorProto::TYPE_FIXED32;
const FieldDescriptorProto_Type FieldDescriptorProto::TYPE_BOOL;
const FieldDescriptorProto_Type FieldDescriptorProto::TYPE_STRING;
const FieldDescriptorProto_Type FieldDescriptorProto::TYPE_GROUP;
const FieldDescriptorProto_Type FieldDescriptorProto::TYPE_MESSAGE;
const FieldDescriptorProto_Type FieldDescriptorProto::TYPE_BYTES;
const FieldDescriptorProto_Type FieldDescriptorProto::TYPE_UINT32;
const FieldDescriptorProto_Type FieldDescriptorProto::TYPE_ENUM;
const FieldDescriptorProto_Type FieldDescriptorProto::TYPE_SFIXED32;
const FieldDescriptorProto_Type FieldDescriptorProto::TYPE_SFIXED64;
const FieldDescriptorProto_Type FieldDescriptorProto::TYPE_SINT32;
const FieldDescriptorProto_Type FieldDescriptorProto::TYPE_SINT64;
const FieldDescriptorProto_Type FieldDescriptorProto::Type_MIN;
const FieldDescriptorProto_Type FieldDescriptorProto::Type_MAX;
#endif  // _MSC_VER
const ::google::protobuf::EnumDescriptor* FieldDescriptorProto_Label_descriptor() {
  if (FieldDescriptorProto_Label_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return FieldDescriptorProto_Label_descriptor_;
}
bool FieldDescriptorProto_Label_IsValid(int value) {
  switch(value) {
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

#ifndef _MSC_VER
const FieldDescriptorProto_Label FieldDescriptorProto::LABEL_OPTIONAL;
const FieldDescriptorProto_Label FieldDescriptorProto::LABEL_REQUIRED;
const FieldDescriptorProto_Label FieldDescriptorProto::LABEL_REPEATED;
const FieldDescriptorProto_Label FieldDescriptorProto::Label_MIN;
const FieldDescriptorProto_Label FieldDescriptorProto::Label_MAX;
#endif  // _MSC_VER
const ::std::string FieldDescriptorProto::_default_name_;



const ::std::string FieldDescriptorProto::_default_type_name_;
const ::std::string FieldDescriptorProto::_default_extendee_;
const ::std::string FieldDescriptorProto::_default_default_value_;

const int FieldDescriptorProto::_offsets_[8] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldDescriptorProto, name_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldDescriptorProto, number_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldDescriptorProto, label_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldDescriptorProto, type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldDescriptorProto, type_name_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldDescriptorProto, extendee_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldDescriptorProto, default_value_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldDescriptorProto, options_),
};

FieldDescriptorProto::FieldDescriptorProto()
  : ::google::protobuf::Message(),
    _cached_size_(0),
    name_(const_cast< ::std::string*>(&_default_name_)),
    number_(0),
    label_(1),
    type_(1),
    type_name_(const_cast< ::std::string*>(&_default_type_name_)),
    extendee_(const_cast< ::std::string*>(&_default_extendee_)),
    default_value_(const_cast< ::std::string*>(&_default_default_value_)),
    options_(NULL) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

void FieldDescriptorProto::InitAsDefaultInstance() {  options_ = const_cast< ::google::protobuf::FieldOptions*>(&::google::protobuf::FieldOptions::default_instance());
}

FieldDescriptorProto::FieldDescriptorProto(const FieldDescriptorProto& from)
  : ::google::protobuf::Message(),
    _cached_size_(0),
    name_(const_cast< ::std::string*>(&_default_name_)),
    number_(0),
    label_(1),
    type_(1),
    type_name_(const_cast< ::std::string*>(&_default_type_name_)),
    extendee_(const_cast< ::std::string*>(&_default_extendee_)),
    default_value_(const_cast< ::std::string*>(&_default_default_value_)),
    options_(NULL) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  MergeFrom(from);
}

FieldDescriptorProto::~FieldDescriptorProto() {
  if (name_ != &_default_name_) {
    delete name_;
  }
  if (type_name_ != &_default_type_name_) {
    delete type_name_;
  }
  if (extendee_ != &_default_extendee_) {
    delete extendee_;
  }
  if (default_value_ != &_default_default_value_) {
    delete default_value_;
  }
  if (this != default_instance_) {
    delete options_;
  }
}

const ::google::protobuf::Descriptor* FieldDescriptorProto::descriptor() {
  if (FieldDescriptorProto_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return FieldDescriptorProto_descriptor_;
}

const FieldDescriptorProto& FieldDescriptorProto::default_instance() {
  if (default_instance_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return *default_instance_;
}

FieldDescriptorProto* FieldDescriptorProto::default_instance_ = NULL;

FieldDescriptorProto* FieldDescriptorProto::New() const {
  return new FieldDescriptorProto;
}

void FieldDescriptorProto::Clear() {
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (_has_bit(0)) {
      if (name_ != &_default_name_) {
        name_->clear();
      }
    }
    number_ = 0;
    label_ = 1;
    type_ = 1;
    if (_has_bit(4)) {
      if (type_name_ != &_default_type_name_) {
        type_name_->clear();
      }
    }
    if (_has_bit(5)) {
      if (extendee_ != &_default_extendee_) {
        extendee_->clear();
      }
    }
    if (_has_bit(6)) {
      if (default_value_ != &_default_default_value_) {
        default_value_->clear();
      }
    }
    if (_has_bit(7)) {
      if (options_ != NULL) options_->::google::protobuf::FieldOptions::Clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool FieldDescriptorProto::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  ::google::protobuf::uint32 tag;
  while ((tag = input->ReadTag()) != 0) {
    switch (::google::protobuf::internal::WireFormat::GetTagFieldNumber(tag)) {
      // optional string name = 1;
      case 1: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
        DO_(::google::protobuf::internal::WireFormat::ReadString(input, mutable_name()));
        if (input->ExpectTag(18)) goto parse_extendee;
        break;
      }
      
      // optional string extendee = 2;
      case 2: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_extendee:
        DO_(::google::protobuf::internal::WireFormat::ReadString(input, mutable_extendee()));
        if (input->ExpectTag(24)) goto parse_number;
        break;
      }
      
      // optional int32 number = 3;
      case 3: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_VARINT) {
          goto handle_uninterpreted;
        }
       parse_number:
        DO_(::google::protobuf::internal::WireFormat::ReadInt32(
              input, &number_));
        _set_bit(1);
        if (input->ExpectTag(32)) goto parse_label;
        break;
      }
      
      // optional .google.protobuf.FieldDescriptorProto.Label label = 4;
      case 4: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_VARINT) {
          goto handle_uninterpreted;
        }
       parse_label:
        int value;
        DO_(::google::protobuf::internal::WireFormat::ReadEnum(input, &value));
        if (::google::protobuf::FieldDescriptorProto_Label_IsValid(value)) {
          set_label(static_cast< ::google::protobuf::FieldDescriptorProto_Label >(value));
        } else {
          mutable_unknown_fields()->AddField(4)->add_varint(value);
        }
        if (input->ExpectTag(40)) goto parse_type;
        break;
      }
      
      // optional .google.protobuf.FieldDescriptorProto.Type type = 5;
      case 5: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_VARINT) {
          goto handle_uninterpreted;
        }
       parse_type:
        int value;
        DO_(::google::protobuf::internal::WireFormat::ReadEnum(input, &value));
        if (::google::protobuf::FieldDescriptorProto_Type_IsValid(value)) {
          set_type(static_cast< ::google::protobuf::FieldDescriptorProto_Type >(value));
        } else {
          mutable_unknown_fields()->AddField(5)->add_varint(value);
        }
        if (input->ExpectTag(50)) goto parse_type_name;
        break;
      }
      
      // optional string type_name = 6;
      case 6: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_type_name:
        DO_(::google::protobuf::internal::WireFormat::ReadString(input, mutable_type_name()));
        if (input->ExpectTag(58)) goto parse_default_value;
        break;
      }
      
      // optional string default_value = 7;
      case 7: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_default_value:
        DO_(::google::protobuf::internal::WireFormat::ReadString(input, mutable_default_value()));
        if (input->ExpectTag(66)) goto parse_options;
        break;
      }
      
      // optional .google.protobuf.FieldOptions options = 8;
      case 8: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_options:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, mutable_options()));
        if (input->ExpectAtEnd()) return true;
        break;
      }
      
      default: {
      handle_uninterpreted:
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormat::WIRETYPE_END_GROUP) {
          return true;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
  return true;
#undef DO_
}

bool FieldDescriptorProto::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  // optional string name = 1;
  if (_has_bit(0)) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(1, this->name(), output));
  }
  
  // optional string extendee = 2;
  if (_has_bit(5)) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(2, this->extendee(), output));
  }
  
  // optional int32 number = 3;
  if (_has_bit(1)) {
    DO_(::google::protobuf::internal::WireFormat::WriteInt32(3, this->number(), output));
  }
  
  // optional .google.protobuf.FieldDescriptorProto.Label label = 4;
  if (_has_bit(2)) {
    DO_(::google::protobuf::internal::WireFormat::WriteEnum(4, this->label(), output));
  }
  
  // optional .google.protobuf.FieldDescriptorProto.Type type = 5;
  if (_has_bit(3)) {
    DO_(::google::protobuf::internal::WireFormat::WriteEnum(5, this->type(), output));
  }
  
  // optional string type_name = 6;
  if (_has_bit(4)) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(6, this->type_name(), output));
  }
  
  // optional string default_value = 7;
  if (_has_bit(6)) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(7, this->default_value(), output));
  }
  
  // optional .google.protobuf.FieldOptions options = 8;
  if (_has_bit(7)) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(8, this->options(), output));
  }
  
  if (!unknown_fields().empty()) {
    DO_(::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output));
  }
  return true;
#undef DO_
}

int FieldDescriptorProto::ByteSize() const {
  int total_size = 0;
  
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string name = 1;
    if (has_name()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::StringSize(this->name());
    }
    
    // optional int32 number = 3;
    if (has_number()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::Int32Size(
          this->number());
    }
    
    // optional .google.protobuf.FieldDescriptorProto.Label label = 4;
    if (has_label()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::EnumSize(this->label());
    }
    
    // optional .google.protobuf.FieldDescriptorProto.Type type = 5;
    if (has_type()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::EnumSize(this->type());
    }
    
    // optional string type_name = 6;
    if (has_type_name()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::StringSize(this->type_name());
    }
    
    // optional string extendee = 2;
    if (has_extendee()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::StringSize(this->extendee());
    }
    
    // optional string default_value = 7;
    if (has_default_value()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::StringSize(this->default_value());
    }
    
    // optional .google.protobuf.FieldOptions options = 8;
    if (has_options()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
          this->options());
    }
    
  }
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  _cached_size_ = total_size;
  return total_size;
}

void FieldDescriptorProto::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const FieldDescriptorProto* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const FieldDescriptorProto*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void FieldDescriptorProto::MergeFrom(const FieldDescriptorProto& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from._has_bit(0)) {
      set_name(from.name());
    }
    if (from._has_bit(1)) {
      set_number(from.number());
    }
    if (from._has_bit(2)) {
      set_label(from.label());
    }
    if (from._has_bit(3)) {
      set_type(from.type());
    }
    if (from._has_bit(4)) {
      set_type_name(from.type_name());
    }
    if (from._has_bit(5)) {
      set_extendee(from.extendee());
    }
    if (from._has_bit(6)) {
      set_default_value(from.default_value());
    }
    if (from._has_bit(7)) {
      mutable_options()->::google::protobuf::FieldOptions::MergeFrom(from.options());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void FieldDescriptorProto::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void FieldDescriptorProto::CopyFrom(const FieldDescriptorProto& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FieldDescriptorProto::IsInitialized() const {
  
  if (has_options()) {
    if (!this->options().IsInitialized()) return false;
  }
  return true;
}

const ::google::protobuf::Descriptor* FieldDescriptorProto::GetDescriptor() const {
  return descriptor();
}

const ::google::protobuf::Reflection* FieldDescriptorProto::GetReflection() const {
  if (FieldDescriptorProto_reflection_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return FieldDescriptorProto_reflection_;
}

// ===================================================================

const ::std::string EnumDescriptorProto::_default_name_;


const int EnumDescriptorProto::_offsets_[3] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumDescriptorProto, name_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumDescriptorProto, value_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumDescriptorProto, options_),
};

EnumDescriptorProto::EnumDescriptorProto()
  : ::google::protobuf::Message(),
    _cached_size_(0),
    name_(const_cast< ::std::string*>(&_default_name_)),
    options_(NULL) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

void EnumDescriptorProto::InitAsDefaultInstance() {  options_ = const_cast< ::google::protobuf::EnumOptions*>(&::google::protobuf::EnumOptions::default_instance());
}

EnumDescriptorProto::EnumDescriptorProto(const EnumDescriptorProto& from)
  : ::google::protobuf::Message(),
    _cached_size_(0),
    name_(const_cast< ::std::string*>(&_default_name_)),
    options_(NULL) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  MergeFrom(from);
}

EnumDescriptorProto::~EnumDescriptorProto() {
  if (name_ != &_default_name_) {
    delete name_;
  }
  if (this != default_instance_) {
    delete options_;
  }
}

const ::google::protobuf::Descriptor* EnumDescriptorProto::descriptor() {
  if (EnumDescriptorProto_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return EnumDescriptorProto_descriptor_;
}

const EnumDescriptorProto& EnumDescriptorProto::default_instance() {
  if (default_instance_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return *default_instance_;
}

EnumDescriptorProto* EnumDescriptorProto::default_instance_ = NULL;

EnumDescriptorProto* EnumDescriptorProto::New() const {
  return new EnumDescriptorProto;
}

void EnumDescriptorProto::Clear() {
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (_has_bit(0)) {
      if (name_ != &_default_name_) {
        name_->clear();
      }
    }
    if (_has_bit(2)) {
      if (options_ != NULL) options_->::google::protobuf::EnumOptions::Clear();
    }
  }
  value_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool EnumDescriptorProto::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  ::google::protobuf::uint32 tag;
  while ((tag = input->ReadTag()) != 0) {
    switch (::google::protobuf::internal::WireFormat::GetTagFieldNumber(tag)) {
      // optional string name = 1;
      case 1: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
        DO_(::google::protobuf::internal::WireFormat::ReadString(input, mutable_name()));
        if (input->ExpectTag(18)) goto parse_value;
        break;
      }
      
      // repeated .google.protobuf.EnumValueDescriptorProto value = 2;
      case 2: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_value:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_value()));
        if (input->ExpectTag(18)) goto parse_value;
        if (input->ExpectTag(26)) goto parse_options;
        break;
      }
      
      // optional .google.protobuf.EnumOptions options = 3;
      case 3: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_options:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, mutable_options()));
        if (input->ExpectAtEnd()) return true;
        break;
      }
      
      default: {
      handle_uninterpreted:
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormat::WIRETYPE_END_GROUP) {
          return true;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
  return true;
#undef DO_
}

bool EnumDescriptorProto::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  // optional string name = 1;
  if (_has_bit(0)) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(1, this->name(), output));
  }
  
  // repeated .google.protobuf.EnumValueDescriptorProto value = 2;
  for (int i = 0; i < value_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(2, this->value(i), output));
  }
  
  // optional .google.protobuf.EnumOptions options = 3;
  if (_has_bit(2)) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(3, this->options(), output));
  }
  
  if (!unknown_fields().empty()) {
    DO_(::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output));
  }
  return true;
#undef DO_
}

int EnumDescriptorProto::ByteSize() const {
  int total_size = 0;
  
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string name = 1;
    if (has_name()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::StringSize(this->name());
    }
    
    // optional .google.protobuf.EnumOptions options = 3;
    if (has_options()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
          this->options());
    }
    
  }
  // repeated .google.protobuf.EnumValueDescriptorProto value = 2;
  total_size += 1 * value_size();
  for (int i = 0; i < value_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->value(i));
  }
  
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  _cached_size_ = total_size;
  return total_size;
}

void EnumDescriptorProto::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const EnumDescriptorProto* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const EnumDescriptorProto*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void EnumDescriptorProto::MergeFrom(const EnumDescriptorProto& from) {
  GOOGLE_CHECK_NE(&from, this);
  value_.MergeFrom(from.value_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from._has_bit(0)) {
      set_name(from.name());
    }
    if (from._has_bit(2)) {
      mutable_options()->::google::protobuf::EnumOptions::MergeFrom(from.options());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void EnumDescriptorProto::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void EnumDescriptorProto::CopyFrom(const EnumDescriptorProto& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool EnumDescriptorProto::IsInitialized() const {
  
  for (int i = 0; i < value_size(); i++) {
    if (!this->value(i).IsInitialized()) return false;
  }
  if (has_options()) {
    if (!this->options().IsInitialized()) return false;
  }
  return true;
}

const ::google::protobuf::Descriptor* EnumDescriptorProto::GetDescriptor() const {
  return descriptor();
}

const ::google::protobuf::Reflection* EnumDescriptorProto::GetReflection() const {
  if (EnumDescriptorProto_reflection_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return EnumDescriptorProto_reflection_;
}

// ===================================================================

const ::std::string EnumValueDescriptorProto::_default_name_;


const int EnumValueDescriptorProto::_offsets_[3] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumValueDescriptorProto, name_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumValueDescriptorProto, number_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumValueDescriptorProto, options_),
};

EnumValueDescriptorProto::EnumValueDescriptorProto()
  : ::google::protobuf::Message(),
    _cached_size_(0),
    name_(const_cast< ::std::string*>(&_default_name_)),
    number_(0),
    options_(NULL) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

void EnumValueDescriptorProto::InitAsDefaultInstance() {  options_ = const_cast< ::google::protobuf::EnumValueOptions*>(&::google::protobuf::EnumValueOptions::default_instance());
}

EnumValueDescriptorProto::EnumValueDescriptorProto(const EnumValueDescriptorProto& from)
  : ::google::protobuf::Message(),
    _cached_size_(0),
    name_(const_cast< ::std::string*>(&_default_name_)),
    number_(0),
    options_(NULL) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  MergeFrom(from);
}

EnumValueDescriptorProto::~EnumValueDescriptorProto() {
  if (name_ != &_default_name_) {
    delete name_;
  }
  if (this != default_instance_) {
    delete options_;
  }
}

const ::google::protobuf::Descriptor* EnumValueDescriptorProto::descriptor() {
  if (EnumValueDescriptorProto_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return EnumValueDescriptorProto_descriptor_;
}

const EnumValueDescriptorProto& EnumValueDescriptorProto::default_instance() {
  if (default_instance_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return *default_instance_;
}

EnumValueDescriptorProto* EnumValueDescriptorProto::default_instance_ = NULL;

EnumValueDescriptorProto* EnumValueDescriptorProto::New() const {
  return new EnumValueDescriptorProto;
}

void EnumValueDescriptorProto::Clear() {
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (_has_bit(0)) {
      if (name_ != &_default_name_) {
        name_->clear();
      }
    }
    number_ = 0;
    if (_has_bit(2)) {
      if (options_ != NULL) options_->::google::protobuf::EnumValueOptions::Clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool EnumValueDescriptorProto::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  ::google::protobuf::uint32 tag;
  while ((tag = input->ReadTag()) != 0) {
    switch (::google::protobuf::internal::WireFormat::GetTagFieldNumber(tag)) {
      // optional string name = 1;
      case 1: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
        DO_(::google::protobuf::internal::WireFormat::ReadString(input, mutable_name()));
        if (input->ExpectTag(16)) goto parse_number;
        break;
      }
      
      // optional int32 number = 2;
      case 2: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_VARINT) {
          goto handle_uninterpreted;
        }
       parse_number:
        DO_(::google::protobuf::internal::WireFormat::ReadInt32(
              input, &number_));
        _set_bit(1);
        if (input->ExpectTag(26)) goto parse_options;
        break;
      }
      
      // optional .google.protobuf.EnumValueOptions options = 3;
      case 3: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_options:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, mutable_options()));
        if (input->ExpectAtEnd()) return true;
        break;
      }
      
      default: {
      handle_uninterpreted:
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormat::WIRETYPE_END_GROUP) {
          return true;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
  return true;
#undef DO_
}

bool EnumValueDescriptorProto::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  // optional string name = 1;
  if (_has_bit(0)) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(1, this->name(), output));
  }
  
  // optional int32 number = 2;
  if (_has_bit(1)) {
    DO_(::google::protobuf::internal::WireFormat::WriteInt32(2, this->number(), output));
  }
  
  // optional .google.protobuf.EnumValueOptions options = 3;
  if (_has_bit(2)) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(3, this->options(), output));
  }
  
  if (!unknown_fields().empty()) {
    DO_(::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output));
  }
  return true;
#undef DO_
}

int EnumValueDescriptorProto::ByteSize() const {
  int total_size = 0;
  
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string name = 1;
    if (has_name()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::StringSize(this->name());
    }
    
    // optional int32 number = 2;
    if (has_number()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::Int32Size(
          this->number());
    }
    
    // optional .google.protobuf.EnumValueOptions options = 3;
    if (has_options()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
          this->options());
    }
    
  }
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  _cached_size_ = total_size;
  return total_size;
}

void EnumValueDescriptorProto::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const EnumValueDescriptorProto* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const EnumValueDescriptorProto*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void EnumValueDescriptorProto::MergeFrom(const EnumValueDescriptorProto& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from._has_bit(0)) {
      set_name(from.name());
    }
    if (from._has_bit(1)) {
      set_number(from.number());
    }
    if (from._has_bit(2)) {
      mutable_options()->::google::protobuf::EnumValueOptions::MergeFrom(from.options());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void EnumValueDescriptorProto::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void EnumValueDescriptorProto::CopyFrom(const EnumValueDescriptorProto& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool EnumValueDescriptorProto::IsInitialized() const {
  
  if (has_options()) {
    if (!this->options().IsInitialized()) return false;
  }
  return true;
}

const ::google::protobuf::Descriptor* EnumValueDescriptorProto::GetDescriptor() const {
  return descriptor();
}

const ::google::protobuf::Reflection* EnumValueDescriptorProto::GetReflection() const {
  if (EnumValueDescriptorProto_reflection_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return EnumValueDescriptorProto_reflection_;
}

// ===================================================================

const ::std::string ServiceDescriptorProto::_default_name_;


const int ServiceDescriptorProto::_offsets_[3] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServiceDescriptorProto, name_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServiceDescriptorProto, method_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServiceDescriptorProto, options_),
};

ServiceDescriptorProto::ServiceDescriptorProto()
  : ::google::protobuf::Message(),
    _cached_size_(0),
    name_(const_cast< ::std::string*>(&_default_name_)),
    options_(NULL) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

void ServiceDescriptorProto::InitAsDefaultInstance() {  options_ = const_cast< ::google::protobuf::ServiceOptions*>(&::google::protobuf::ServiceOptions::default_instance());
}

ServiceDescriptorProto::ServiceDescriptorProto(const ServiceDescriptorProto& from)
  : ::google::protobuf::Message(),
    _cached_size_(0),
    name_(const_cast< ::std::string*>(&_default_name_)),
    options_(NULL) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  MergeFrom(from);
}

ServiceDescriptorProto::~ServiceDescriptorProto() {
  if (name_ != &_default_name_) {
    delete name_;
  }
  if (this != default_instance_) {
    delete options_;
  }
}

const ::google::protobuf::Descriptor* ServiceDescriptorProto::descriptor() {
  if (ServiceDescriptorProto_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return ServiceDescriptorProto_descriptor_;
}

const ServiceDescriptorProto& ServiceDescriptorProto::default_instance() {
  if (default_instance_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return *default_instance_;
}

ServiceDescriptorProto* ServiceDescriptorProto::default_instance_ = NULL;

ServiceDescriptorProto* ServiceDescriptorProto::New() const {
  return new ServiceDescriptorProto;
}

void ServiceDescriptorProto::Clear() {
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (_has_bit(0)) {
      if (name_ != &_default_name_) {
        name_->clear();
      }
    }
    if (_has_bit(2)) {
      if (options_ != NULL) options_->::google::protobuf::ServiceOptions::Clear();
    }
  }
  method_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool ServiceDescriptorProto::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  ::google::protobuf::uint32 tag;
  while ((tag = input->ReadTag()) != 0) {
    switch (::google::protobuf::internal::WireFormat::GetTagFieldNumber(tag)) {
      // optional string name = 1;
      case 1: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
        DO_(::google::protobuf::internal::WireFormat::ReadString(input, mutable_name()));
        if (input->ExpectTag(18)) goto parse_method;
        break;
      }
      
      // repeated .google.protobuf.MethodDescriptorProto method = 2;
      case 2: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_method:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_method()));
        if (input->ExpectTag(18)) goto parse_method;
        if (input->ExpectTag(26)) goto parse_options;
        break;
      }
      
      // optional .google.protobuf.ServiceOptions options = 3;
      case 3: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_options:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, mutable_options()));
        if (input->ExpectAtEnd()) return true;
        break;
      }
      
      default: {
      handle_uninterpreted:
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormat::WIRETYPE_END_GROUP) {
          return true;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
  return true;
#undef DO_
}

bool ServiceDescriptorProto::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  // optional string name = 1;
  if (_has_bit(0)) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(1, this->name(), output));
  }
  
  // repeated .google.protobuf.MethodDescriptorProto method = 2;
  for (int i = 0; i < method_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(2, this->method(i), output));
  }
  
  // optional .google.protobuf.ServiceOptions options = 3;
  if (_has_bit(2)) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(3, this->options(), output));
  }
  
  if (!unknown_fields().empty()) {
    DO_(::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output));
  }
  return true;
#undef DO_
}

int ServiceDescriptorProto::ByteSize() const {
  int total_size = 0;
  
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string name = 1;
    if (has_name()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::StringSize(this->name());
    }
    
    // optional .google.protobuf.ServiceOptions options = 3;
    if (has_options()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
          this->options());
    }
    
  }
  // repeated .google.protobuf.MethodDescriptorProto method = 2;
  total_size += 1 * method_size();
  for (int i = 0; i < method_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->method(i));
  }
  
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  _cached_size_ = total_size;
  return total_size;
}

void ServiceDescriptorProto::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const ServiceDescriptorProto* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const ServiceDescriptorProto*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void ServiceDescriptorProto::MergeFrom(const ServiceDescriptorProto& from) {
  GOOGLE_CHECK_NE(&from, this);
  method_.MergeFrom(from.method_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from._has_bit(0)) {
      set_name(from.name());
    }
    if (from._has_bit(2)) {
      mutable_options()->::google::protobuf::ServiceOptions::MergeFrom(from.options());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void ServiceDescriptorProto::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ServiceDescriptorProto::CopyFrom(const ServiceDescriptorProto& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ServiceDescriptorProto::IsInitialized() const {
  
  for (int i = 0; i < method_size(); i++) {
    if (!this->method(i).IsInitialized()) return false;
  }
  if (has_options()) {
    if (!this->options().IsInitialized()) return false;
  }
  return true;
}

const ::google::protobuf::Descriptor* ServiceDescriptorProto::GetDescriptor() const {
  return descriptor();
}

const ::google::protobuf::Reflection* ServiceDescriptorProto::GetReflection() const {
  if (ServiceDescriptorProto_reflection_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return ServiceDescriptorProto_reflection_;
}

// ===================================================================

const ::std::string MethodDescriptorProto::_default_name_;
const ::std::string MethodDescriptorProto::_default_input_type_;
const ::std::string MethodDescriptorProto::_default_output_type_;

const int MethodDescriptorProto::_offsets_[4] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MethodDescriptorProto, name_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MethodDescriptorProto, input_type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MethodDescriptorProto, output_type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MethodDescriptorProto, options_),
};

MethodDescriptorProto::MethodDescriptorProto()
  : ::google::protobuf::Message(),
    _cached_size_(0),
    name_(const_cast< ::std::string*>(&_default_name_)),
    input_type_(const_cast< ::std::string*>(&_default_input_type_)),
    output_type_(const_cast< ::std::string*>(&_default_output_type_)),
    options_(NULL) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

void MethodDescriptorProto::InitAsDefaultInstance() {  options_ = const_cast< ::google::protobuf::MethodOptions*>(&::google::protobuf::MethodOptions::default_instance());
}

MethodDescriptorProto::MethodDescriptorProto(const MethodDescriptorProto& from)
  : ::google::protobuf::Message(),
    _cached_size_(0),
    name_(const_cast< ::std::string*>(&_default_name_)),
    input_type_(const_cast< ::std::string*>(&_default_input_type_)),
    output_type_(const_cast< ::std::string*>(&_default_output_type_)),
    options_(NULL) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  MergeFrom(from);
}

MethodDescriptorProto::~MethodDescriptorProto() {
  if (name_ != &_default_name_) {
    delete name_;
  }
  if (input_type_ != &_default_input_type_) {
    delete input_type_;
  }
  if (output_type_ != &_default_output_type_) {
    delete output_type_;
  }
  if (this != default_instance_) {
    delete options_;
  }
}

const ::google::protobuf::Descriptor* MethodDescriptorProto::descriptor() {
  if (MethodDescriptorProto_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return MethodDescriptorProto_descriptor_;
}

const MethodDescriptorProto& MethodDescriptorProto::default_instance() {
  if (default_instance_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return *default_instance_;
}

MethodDescriptorProto* MethodDescriptorProto::default_instance_ = NULL;

MethodDescriptorProto* MethodDescriptorProto::New() const {
  return new MethodDescriptorProto;
}

void MethodDescriptorProto::Clear() {
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (_has_bit(0)) {
      if (name_ != &_default_name_) {
        name_->clear();
      }
    }
    if (_has_bit(1)) {
      if (input_type_ != &_default_input_type_) {
        input_type_->clear();
      }
    }
    if (_has_bit(2)) {
      if (output_type_ != &_default_output_type_) {
        output_type_->clear();
      }
    }
    if (_has_bit(3)) {
      if (options_ != NULL) options_->::google::protobuf::MethodOptions::Clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool MethodDescriptorProto::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  ::google::protobuf::uint32 tag;
  while ((tag = input->ReadTag()) != 0) {
    switch (::google::protobuf::internal::WireFormat::GetTagFieldNumber(tag)) {
      // optional string name = 1;
      case 1: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
        DO_(::google::protobuf::internal::WireFormat::ReadString(input, mutable_name()));
        if (input->ExpectTag(18)) goto parse_input_type;
        break;
      }
      
      // optional string input_type = 2;
      case 2: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_input_type:
        DO_(::google::protobuf::internal::WireFormat::ReadString(input, mutable_input_type()));
        if (input->ExpectTag(26)) goto parse_output_type;
        break;
      }
      
      // optional string output_type = 3;
      case 3: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_output_type:
        DO_(::google::protobuf::internal::WireFormat::ReadString(input, mutable_output_type()));
        if (input->ExpectTag(34)) goto parse_options;
        break;
      }
      
      // optional .google.protobuf.MethodOptions options = 4;
      case 4: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_options:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, mutable_options()));
        if (input->ExpectAtEnd()) return true;
        break;
      }
      
      default: {
      handle_uninterpreted:
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormat::WIRETYPE_END_GROUP) {
          return true;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
  return true;
#undef DO_
}

bool MethodDescriptorProto::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  // optional string name = 1;
  if (_has_bit(0)) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(1, this->name(), output));
  }
  
  // optional string input_type = 2;
  if (_has_bit(1)) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(2, this->input_type(), output));
  }
  
  // optional string output_type = 3;
  if (_has_bit(2)) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(3, this->output_type(), output));
  }
  
  // optional .google.protobuf.MethodOptions options = 4;
  if (_has_bit(3)) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(4, this->options(), output));
  }
  
  if (!unknown_fields().empty()) {
    DO_(::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output));
  }
  return true;
#undef DO_
}

int MethodDescriptorProto::ByteSize() const {
  int total_size = 0;
  
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string name = 1;
    if (has_name()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::StringSize(this->name());
    }
    
    // optional string input_type = 2;
    if (has_input_type()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::StringSize(this->input_type());
    }
    
    // optional string output_type = 3;
    if (has_output_type()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::StringSize(this->output_type());
    }
    
    // optional .google.protobuf.MethodOptions options = 4;
    if (has_options()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
          this->options());
    }
    
  }
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  _cached_size_ = total_size;
  return total_size;
}

void MethodDescriptorProto::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const MethodDescriptorProto* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const MethodDescriptorProto*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void MethodDescriptorProto::MergeFrom(const MethodDescriptorProto& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from._has_bit(0)) {
      set_name(from.name());
    }
    if (from._has_bit(1)) {
      set_input_type(from.input_type());
    }
    if (from._has_bit(2)) {
      set_output_type(from.output_type());
    }
    if (from._has_bit(3)) {
      mutable_options()->::google::protobuf::MethodOptions::MergeFrom(from.options());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void MethodDescriptorProto::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void MethodDescriptorProto::CopyFrom(const MethodDescriptorProto& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MethodDescriptorProto::IsInitialized() const {
  
  if (has_options()) {
    if (!this->options().IsInitialized()) return false;
  }
  return true;
}

const ::google::protobuf::Descriptor* MethodDescriptorProto::GetDescriptor() const {
  return descriptor();
}

const ::google::protobuf::Reflection* MethodDescriptorProto::GetReflection() const {
  if (MethodDescriptorProto_reflection_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return MethodDescriptorProto_reflection_;
}

// ===================================================================

const ::google::protobuf::EnumDescriptor* FileOptions_OptimizeMode_descriptor() {
  if (FileOptions_OptimizeMode_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return FileOptions_OptimizeMode_descriptor_;
}
bool FileOptions_OptimizeMode_IsValid(int value) {
  switch(value) {
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

#ifndef _MSC_VER
const FileOptions_OptimizeMode FileOptions::SPEED;
const FileOptions_OptimizeMode FileOptions::CODE_SIZE;
const FileOptions_OptimizeMode FileOptions::OptimizeMode_MIN;
const FileOptions_OptimizeMode FileOptions::OptimizeMode_MAX;
#endif  // _MSC_VER
const ::std::string FileOptions::_default_java_package_;
const ::std::string FileOptions::_default_java_outer_classname_;



const int FileOptions::_offsets_[5] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, java_package_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, java_outer_classname_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, java_multiple_files_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, optimize_for_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, uninterpreted_option_),
};

FileOptions::FileOptions()
  : ::google::protobuf::Message(),
    _extensions_(&FileOptions_descriptor_,
                 ::google::protobuf::DescriptorPool::generated_pool(),
                 ::google::protobuf::MessageFactory::generated_factory()),
    _cached_size_(0),
    java_package_(const_cast< ::std::string*>(&_default_java_package_)),
    java_outer_classname_(const_cast< ::std::string*>(&_default_java_outer_classname_)),
    java_multiple_files_(false),
    optimize_for_(2) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

void FileOptions::InitAsDefaultInstance() {}

FileOptions::FileOptions(const FileOptions& from)
  : ::google::protobuf::Message(),
    _extensions_(&FileOptions_descriptor_,
                 ::google::protobuf::DescriptorPool::generated_pool(),
                 ::google::protobuf::MessageFactory::generated_factory()),
    _cached_size_(0),
    java_package_(const_cast< ::std::string*>(&_default_java_package_)),
    java_outer_classname_(const_cast< ::std::string*>(&_default_java_outer_classname_)),
    java_multiple_files_(false),
    optimize_for_(2) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  MergeFrom(from);
}

FileOptions::~FileOptions() {
  if (java_package_ != &_default_java_package_) {
    delete java_package_;
  }
  if (java_outer_classname_ != &_default_java_outer_classname_) {
    delete java_outer_classname_;
  }
  if (this != default_instance_) {
  }
}

const ::google::protobuf::Descriptor* FileOptions::descriptor() {
  if (FileOptions_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return FileOptions_descriptor_;
}

const FileOptions& FileOptions::default_instance() {
  if (default_instance_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return *default_instance_;
}

FileOptions* FileOptions::default_instance_ = NULL;

FileOptions* FileOptions::New() const {
  return new FileOptions;
}

void FileOptions::Clear() {
  _extensions_.Clear();
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (_has_bit(0)) {
      if (java_package_ != &_default_java_package_) {
        java_package_->clear();
      }
    }
    if (_has_bit(1)) {
      if (java_outer_classname_ != &_default_java_outer_classname_) {
        java_outer_classname_->clear();
      }
    }
    java_multiple_files_ = false;
    optimize_for_ = 2;
  }
  uninterpreted_option_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool FileOptions::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  ::google::protobuf::uint32 tag;
  while ((tag = input->ReadTag()) != 0) {
    switch (::google::protobuf::internal::WireFormat::GetTagFieldNumber(tag)) {
      // optional string java_package = 1;
      case 1: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
        DO_(::google::protobuf::internal::WireFormat::ReadString(input, mutable_java_package()));
        if (input->ExpectTag(66)) goto parse_java_outer_classname;
        break;
      }
      
      // optional string java_outer_classname = 8;
      case 8: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_java_outer_classname:
        DO_(::google::protobuf::internal::WireFormat::ReadString(input, mutable_java_outer_classname()));
        if (input->ExpectTag(72)) goto parse_optimize_for;
        break;
      }
      
      // optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = CODE_SIZE];
      case 9: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_VARINT) {
          goto handle_uninterpreted;
        }
       parse_optimize_for:
        int value;
        DO_(::google::protobuf::internal::WireFormat::ReadEnum(input, &value));
        if (::google::protobuf::FileOptions_OptimizeMode_IsValid(value)) {
          set_optimize_for(static_cast< ::google::protobuf::FileOptions_OptimizeMode >(value));
        } else {
          mutable_unknown_fields()->AddField(9)->add_varint(value);
        }
        if (input->ExpectTag(80)) goto parse_java_multiple_files;
        break;
      }
      
      // optional bool java_multiple_files = 10 [default = false];
      case 10: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_VARINT) {
          goto handle_uninterpreted;
        }
       parse_java_multiple_files:
        DO_(::google::protobuf::internal::WireFormat::ReadBool(
              input, &java_multiple_files_));
        _set_bit(2);
        if (input->ExpectTag(7994)) goto parse_uninterpreted_option;
        break;
      }
      
      // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
      case 999: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_uninterpreted_option:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_uninterpreted_option()));
        if (input->ExpectTag(7994)) goto parse_uninterpreted_option;
        if (input->ExpectAtEnd()) return true;
        break;
      }
      
      default: {
      handle_uninterpreted:
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormat::WIRETYPE_END_GROUP) {
          return true;
        }
        if ((8000u <= tag)) {
          DO_(_extensions_.ParseField(tag, input, this));
          continue;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
  return true;
#undef DO_
}

bool FileOptions::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  // optional string java_package = 1;
  if (_has_bit(0)) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(1, this->java_package(), output));
  }
  
  // optional string java_outer_classname = 8;
  if (_has_bit(1)) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(8, this->java_outer_classname(), output));
  }
  
  // optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = CODE_SIZE];
  if (_has_bit(3)) {
    DO_(::google::protobuf::internal::WireFormat::WriteEnum(9, this->optimize_for(), output));
  }
  
  // optional bool java_multiple_files = 10 [default = false];
  if (_has_bit(2)) {
    DO_(::google::protobuf::internal::WireFormat::WriteBool(10, this->java_multiple_files(), output));
  }
  
  // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
  for (int i = 0; i < uninterpreted_option_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(999, this->uninterpreted_option(i), output));
  }
  
  // Extension range [1000, 536870912)
  DO_(_extensions_.SerializeWithCachedSizes(
      1000, 536870912, *this, output));
  
  if (!unknown_fields().empty()) {
    DO_(::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output));
  }
  return true;
#undef DO_
}

int FileOptions::ByteSize() const {
  int total_size = 0;
  
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional string java_package = 1;
    if (has_java_package()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::StringSize(this->java_package());
    }
    
    // optional string java_outer_classname = 8;
    if (has_java_outer_classname()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::StringSize(this->java_outer_classname());
    }
    
    // optional bool java_multiple_files = 10 [default = false];
    if (has_java_multiple_files()) {
      total_size += 1 + 1;
    }
    
    // optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = CODE_SIZE];
    if (has_optimize_for()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::EnumSize(this->optimize_for());
    }
    
  }
  // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
  total_size += 2 * uninterpreted_option_size();
  for (int i = 0; i < uninterpreted_option_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->uninterpreted_option(i));
  }
  
  total_size += _extensions_.ByteSize(*this);
  
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  _cached_size_ = total_size;
  return total_size;
}

void FileOptions::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const FileOptions* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const FileOptions*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void FileOptions::MergeFrom(const FileOptions& from) {
  GOOGLE_CHECK_NE(&from, this);
  uninterpreted_option_.MergeFrom(from.uninterpreted_option_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from._has_bit(0)) {
      set_java_package(from.java_package());
    }
    if (from._has_bit(1)) {
      set_java_outer_classname(from.java_outer_classname());
    }
    if (from._has_bit(2)) {
      set_java_multiple_files(from.java_multiple_files());
    }
    if (from._has_bit(3)) {
      set_optimize_for(from.optimize_for());
    }
  }
  _extensions_.MergeFrom(from._extensions_);
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void FileOptions::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void FileOptions::CopyFrom(const FileOptions& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FileOptions::IsInitialized() const {
  
  for (int i = 0; i < uninterpreted_option_size(); i++) {
    if (!this->uninterpreted_option(i).IsInitialized()) return false;
  }
  
  if (!_extensions_.IsInitialized()) return false;  return true;
}

const ::google::protobuf::Descriptor* FileOptions::GetDescriptor() const {
  return descriptor();
}

const ::google::protobuf::Reflection* FileOptions::GetReflection() const {
  if (FileOptions_reflection_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return FileOptions_reflection_;
}

// ===================================================================



const int MessageOptions::_offsets_[2] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageOptions, message_set_wire_format_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageOptions, uninterpreted_option_),
};

MessageOptions::MessageOptions()
  : ::google::protobuf::Message(),
    _extensions_(&MessageOptions_descriptor_,
                 ::google::protobuf::DescriptorPool::generated_pool(),
                 ::google::protobuf::MessageFactory::generated_factory()),
    _cached_size_(0),
    message_set_wire_format_(false) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

void MessageOptions::InitAsDefaultInstance() {}

MessageOptions::MessageOptions(const MessageOptions& from)
  : ::google::protobuf::Message(),
    _extensions_(&MessageOptions_descriptor_,
                 ::google::protobuf::DescriptorPool::generated_pool(),
                 ::google::protobuf::MessageFactory::generated_factory()),
    _cached_size_(0),
    message_set_wire_format_(false) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  MergeFrom(from);
}

MessageOptions::~MessageOptions() {
  if (this != default_instance_) {
  }
}

const ::google::protobuf::Descriptor* MessageOptions::descriptor() {
  if (MessageOptions_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return MessageOptions_descriptor_;
}

const MessageOptions& MessageOptions::default_instance() {
  if (default_instance_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return *default_instance_;
}

MessageOptions* MessageOptions::default_instance_ = NULL;

MessageOptions* MessageOptions::New() const {
  return new MessageOptions;
}

void MessageOptions::Clear() {
  _extensions_.Clear();
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    message_set_wire_format_ = false;
  }
  uninterpreted_option_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool MessageOptions::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  ::google::protobuf::uint32 tag;
  while ((tag = input->ReadTag()) != 0) {
    switch (::google::protobuf::internal::WireFormat::GetTagFieldNumber(tag)) {
      // optional bool message_set_wire_format = 1 [default = false];
      case 1: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_VARINT) {
          goto handle_uninterpreted;
        }
        DO_(::google::protobuf::internal::WireFormat::ReadBool(
              input, &message_set_wire_format_));
        _set_bit(0);
        if (input->ExpectTag(7994)) goto parse_uninterpreted_option;
        break;
      }
      
      // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
      case 999: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_uninterpreted_option:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_uninterpreted_option()));
        if (input->ExpectTag(7994)) goto parse_uninterpreted_option;
        if (input->ExpectAtEnd()) return true;
        break;
      }
      
      default: {
      handle_uninterpreted:
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormat::WIRETYPE_END_GROUP) {
          return true;
        }
        if ((8000u <= tag)) {
          DO_(_extensions_.ParseField(tag, input, this));
          continue;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
  return true;
#undef DO_
}

bool MessageOptions::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  // optional bool message_set_wire_format = 1 [default = false];
  if (_has_bit(0)) {
    DO_(::google::protobuf::internal::WireFormat::WriteBool(1, this->message_set_wire_format(), output));
  }
  
  // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
  for (int i = 0; i < uninterpreted_option_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(999, this->uninterpreted_option(i), output));
  }
  
  // Extension range [1000, 536870912)
  DO_(_extensions_.SerializeWithCachedSizes(
      1000, 536870912, *this, output));
  
  if (!unknown_fields().empty()) {
    DO_(::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output));
  }
  return true;
#undef DO_
}

int MessageOptions::ByteSize() const {
  int total_size = 0;
  
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional bool message_set_wire_format = 1 [default = false];
    if (has_message_set_wire_format()) {
      total_size += 1 + 1;
    }
    
  }
  // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
  total_size += 2 * uninterpreted_option_size();
  for (int i = 0; i < uninterpreted_option_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->uninterpreted_option(i));
  }
  
  total_size += _extensions_.ByteSize(*this);
  
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  _cached_size_ = total_size;
  return total_size;
}

void MessageOptions::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const MessageOptions* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const MessageOptions*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void MessageOptions::MergeFrom(const MessageOptions& from) {
  GOOGLE_CHECK_NE(&from, this);
  uninterpreted_option_.MergeFrom(from.uninterpreted_option_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from._has_bit(0)) {
      set_message_set_wire_format(from.message_set_wire_format());
    }
  }
  _extensions_.MergeFrom(from._extensions_);
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void MessageOptions::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void MessageOptions::CopyFrom(const MessageOptions& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MessageOptions::IsInitialized() const {
  
  for (int i = 0; i < uninterpreted_option_size(); i++) {
    if (!this->uninterpreted_option(i).IsInitialized()) return false;
  }
  
  if (!_extensions_.IsInitialized()) return false;  return true;
}

const ::google::protobuf::Descriptor* MessageOptions::GetDescriptor() const {
  return descriptor();
}

const ::google::protobuf::Reflection* MessageOptions::GetReflection() const {
  if (MessageOptions_reflection_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return MessageOptions_reflection_;
}

// ===================================================================

const ::google::protobuf::EnumDescriptor* FieldOptions_CType_descriptor() {
  if (FieldOptions_CType_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return FieldOptions_CType_descriptor_;
}
bool FieldOptions_CType_IsValid(int value) {
  switch(value) {
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

#ifndef _MSC_VER
const FieldOptions_CType FieldOptions::CORD;
const FieldOptions_CType FieldOptions::STRING_PIECE;
const FieldOptions_CType FieldOptions::CType_MIN;
const FieldOptions_CType FieldOptions::CType_MAX;
#endif  // _MSC_VER

const ::std::string FieldOptions::_default_experimental_map_key_;

const int FieldOptions::_offsets_[3] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldOptions, ctype_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldOptions, experimental_map_key_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldOptions, uninterpreted_option_),
};

FieldOptions::FieldOptions()
  : ::google::protobuf::Message(),
    _extensions_(&FieldOptions_descriptor_,
                 ::google::protobuf::DescriptorPool::generated_pool(),
                 ::google::protobuf::MessageFactory::generated_factory()),
    _cached_size_(0),
    ctype_(1),
    experimental_map_key_(const_cast< ::std::string*>(&_default_experimental_map_key_)) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

void FieldOptions::InitAsDefaultInstance() {}

FieldOptions::FieldOptions(const FieldOptions& from)
  : ::google::protobuf::Message(),
    _extensions_(&FieldOptions_descriptor_,
                 ::google::protobuf::DescriptorPool::generated_pool(),
                 ::google::protobuf::MessageFactory::generated_factory()),
    _cached_size_(0),
    ctype_(1),
    experimental_map_key_(const_cast< ::std::string*>(&_default_experimental_map_key_)) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  MergeFrom(from);
}

FieldOptions::~FieldOptions() {
  if (experimental_map_key_ != &_default_experimental_map_key_) {
    delete experimental_map_key_;
  }
  if (this != default_instance_) {
  }
}

const ::google::protobuf::Descriptor* FieldOptions::descriptor() {
  if (FieldOptions_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return FieldOptions_descriptor_;
}

const FieldOptions& FieldOptions::default_instance() {
  if (default_instance_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return *default_instance_;
}

FieldOptions* FieldOptions::default_instance_ = NULL;

FieldOptions* FieldOptions::New() const {
  return new FieldOptions;
}

void FieldOptions::Clear() {
  _extensions_.Clear();
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    ctype_ = 1;
    if (_has_bit(1)) {
      if (experimental_map_key_ != &_default_experimental_map_key_) {
        experimental_map_key_->clear();
      }
    }
  }
  uninterpreted_option_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool FieldOptions::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  ::google::protobuf::uint32 tag;
  while ((tag = input->ReadTag()) != 0) {
    switch (::google::protobuf::internal::WireFormat::GetTagFieldNumber(tag)) {
      // optional .google.protobuf.FieldOptions.CType ctype = 1;
      case 1: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_VARINT) {
          goto handle_uninterpreted;
        }
        int value;
        DO_(::google::protobuf::internal::WireFormat::ReadEnum(input, &value));
        if (::google::protobuf::FieldOptions_CType_IsValid(value)) {
          set_ctype(static_cast< ::google::protobuf::FieldOptions_CType >(value));
        } else {
          mutable_unknown_fields()->AddField(1)->add_varint(value);
        }
        if (input->ExpectTag(74)) goto parse_experimental_map_key;
        break;
      }
      
      // optional string experimental_map_key = 9;
      case 9: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_experimental_map_key:
        DO_(::google::protobuf::internal::WireFormat::ReadString(input, mutable_experimental_map_key()));
        if (input->ExpectTag(7994)) goto parse_uninterpreted_option;
        break;
      }
      
      // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
      case 999: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_uninterpreted_option:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_uninterpreted_option()));
        if (input->ExpectTag(7994)) goto parse_uninterpreted_option;
        if (input->ExpectAtEnd()) return true;
        break;
      }
      
      default: {
      handle_uninterpreted:
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormat::WIRETYPE_END_GROUP) {
          return true;
        }
        if ((8000u <= tag)) {
          DO_(_extensions_.ParseField(tag, input, this));
          continue;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
  return true;
#undef DO_
}

bool FieldOptions::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  // optional .google.protobuf.FieldOptions.CType ctype = 1;
  if (_has_bit(0)) {
    DO_(::google::protobuf::internal::WireFormat::WriteEnum(1, this->ctype(), output));
  }
  
  // optional string experimental_map_key = 9;
  if (_has_bit(1)) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(9, this->experimental_map_key(), output));
  }
  
  // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
  for (int i = 0; i < uninterpreted_option_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(999, this->uninterpreted_option(i), output));
  }
  
  // Extension range [1000, 536870912)
  DO_(_extensions_.SerializeWithCachedSizes(
      1000, 536870912, *this, output));
  
  if (!unknown_fields().empty()) {
    DO_(::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output));
  }
  return true;
#undef DO_
}

int FieldOptions::ByteSize() const {
  int total_size = 0;
  
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // optional .google.protobuf.FieldOptions.CType ctype = 1;
    if (has_ctype()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::EnumSize(this->ctype());
    }
    
    // optional string experimental_map_key = 9;
    if (has_experimental_map_key()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::StringSize(this->experimental_map_key());
    }
    
  }
  // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
  total_size += 2 * uninterpreted_option_size();
  for (int i = 0; i < uninterpreted_option_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->uninterpreted_option(i));
  }
  
  total_size += _extensions_.ByteSize(*this);
  
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  _cached_size_ = total_size;
  return total_size;
}

void FieldOptions::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const FieldOptions* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const FieldOptions*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void FieldOptions::MergeFrom(const FieldOptions& from) {
  GOOGLE_CHECK_NE(&from, this);
  uninterpreted_option_.MergeFrom(from.uninterpreted_option_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from._has_bit(0)) {
      set_ctype(from.ctype());
    }
    if (from._has_bit(1)) {
      set_experimental_map_key(from.experimental_map_key());
    }
  }
  _extensions_.MergeFrom(from._extensions_);
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void FieldOptions::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void FieldOptions::CopyFrom(const FieldOptions& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FieldOptions::IsInitialized() const {
  
  for (int i = 0; i < uninterpreted_option_size(); i++) {
    if (!this->uninterpreted_option(i).IsInitialized()) return false;
  }
  
  if (!_extensions_.IsInitialized()) return false;  return true;
}

const ::google::protobuf::Descriptor* FieldOptions::GetDescriptor() const {
  return descriptor();
}

const ::google::protobuf::Reflection* FieldOptions::GetReflection() const {
  if (FieldOptions_reflection_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return FieldOptions_reflection_;
}

// ===================================================================


const int EnumOptions::_offsets_[1] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumOptions, uninterpreted_option_),
};

EnumOptions::EnumOptions()
  : ::google::protobuf::Message(),
    _extensions_(&EnumOptions_descriptor_,
                 ::google::protobuf::DescriptorPool::generated_pool(),
                 ::google::protobuf::MessageFactory::generated_factory()),
    _cached_size_(0) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

void EnumOptions::InitAsDefaultInstance() {}

EnumOptions::EnumOptions(const EnumOptions& from)
  : ::google::protobuf::Message(),
    _extensions_(&EnumOptions_descriptor_,
                 ::google::protobuf::DescriptorPool::generated_pool(),
                 ::google::protobuf::MessageFactory::generated_factory()),
    _cached_size_(0) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  MergeFrom(from);
}

EnumOptions::~EnumOptions() {
  if (this != default_instance_) {
  }
}

const ::google::protobuf::Descriptor* EnumOptions::descriptor() {
  if (EnumOptions_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return EnumOptions_descriptor_;
}

const EnumOptions& EnumOptions::default_instance() {
  if (default_instance_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return *default_instance_;
}

EnumOptions* EnumOptions::default_instance_ = NULL;

EnumOptions* EnumOptions::New() const {
  return new EnumOptions;
}

void EnumOptions::Clear() {
  _extensions_.Clear();
  uninterpreted_option_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool EnumOptions::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  ::google::protobuf::uint32 tag;
  while ((tag = input->ReadTag()) != 0) {
    switch (::google::protobuf::internal::WireFormat::GetTagFieldNumber(tag)) {
      // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
      case 999: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_uninterpreted_option:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_uninterpreted_option()));
        if (input->ExpectTag(7994)) goto parse_uninterpreted_option;
        if (input->ExpectAtEnd()) return true;
        break;
      }
      
      default: {
      handle_uninterpreted:
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormat::WIRETYPE_END_GROUP) {
          return true;
        }
        if ((8000u <= tag)) {
          DO_(_extensions_.ParseField(tag, input, this));
          continue;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
  return true;
#undef DO_
}

bool EnumOptions::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
  for (int i = 0; i < uninterpreted_option_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(999, this->uninterpreted_option(i), output));
  }
  
  // Extension range [1000, 536870912)
  DO_(_extensions_.SerializeWithCachedSizes(
      1000, 536870912, *this, output));
  
  if (!unknown_fields().empty()) {
    DO_(::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output));
  }
  return true;
#undef DO_
}

int EnumOptions::ByteSize() const {
  int total_size = 0;
  
  // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
  total_size += 2 * uninterpreted_option_size();
  for (int i = 0; i < uninterpreted_option_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->uninterpreted_option(i));
  }
  
  total_size += _extensions_.ByteSize(*this);
  
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  _cached_size_ = total_size;
  return total_size;
}

void EnumOptions::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const EnumOptions* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const EnumOptions*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void EnumOptions::MergeFrom(const EnumOptions& from) {
  GOOGLE_CHECK_NE(&from, this);
  uninterpreted_option_.MergeFrom(from.uninterpreted_option_);
  _extensions_.MergeFrom(from._extensions_);
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void EnumOptions::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void EnumOptions::CopyFrom(const EnumOptions& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool EnumOptions::IsInitialized() const {
  
  for (int i = 0; i < uninterpreted_option_size(); i++) {
    if (!this->uninterpreted_option(i).IsInitialized()) return false;
  }
  
  if (!_extensions_.IsInitialized()) return false;  return true;
}

const ::google::protobuf::Descriptor* EnumOptions::GetDescriptor() const {
  return descriptor();
}

const ::google::protobuf::Reflection* EnumOptions::GetReflection() const {
  if (EnumOptions_reflection_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return EnumOptions_reflection_;
}

// ===================================================================


const int EnumValueOptions::_offsets_[1] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumValueOptions, uninterpreted_option_),
};

EnumValueOptions::EnumValueOptions()
  : ::google::protobuf::Message(),
    _extensions_(&EnumValueOptions_descriptor_,
                 ::google::protobuf::DescriptorPool::generated_pool(),
                 ::google::protobuf::MessageFactory::generated_factory()),
    _cached_size_(0) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

void EnumValueOptions::InitAsDefaultInstance() {}

EnumValueOptions::EnumValueOptions(const EnumValueOptions& from)
  : ::google::protobuf::Message(),
    _extensions_(&EnumValueOptions_descriptor_,
                 ::google::protobuf::DescriptorPool::generated_pool(),
                 ::google::protobuf::MessageFactory::generated_factory()),
    _cached_size_(0) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  MergeFrom(from);
}

EnumValueOptions::~EnumValueOptions() {
  if (this != default_instance_) {
  }
}

const ::google::protobuf::Descriptor* EnumValueOptions::descriptor() {
  if (EnumValueOptions_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return EnumValueOptions_descriptor_;
}

const EnumValueOptions& EnumValueOptions::default_instance() {
  if (default_instance_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return *default_instance_;
}

EnumValueOptions* EnumValueOptions::default_instance_ = NULL;

EnumValueOptions* EnumValueOptions::New() const {
  return new EnumValueOptions;
}

void EnumValueOptions::Clear() {
  _extensions_.Clear();
  uninterpreted_option_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool EnumValueOptions::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  ::google::protobuf::uint32 tag;
  while ((tag = input->ReadTag()) != 0) {
    switch (::google::protobuf::internal::WireFormat::GetTagFieldNumber(tag)) {
      // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
      case 999: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_uninterpreted_option:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_uninterpreted_option()));
        if (input->ExpectTag(7994)) goto parse_uninterpreted_option;
        if (input->ExpectAtEnd()) return true;
        break;
      }
      
      default: {
      handle_uninterpreted:
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormat::WIRETYPE_END_GROUP) {
          return true;
        }
        if ((8000u <= tag)) {
          DO_(_extensions_.ParseField(tag, input, this));
          continue;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
  return true;
#undef DO_
}

bool EnumValueOptions::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
  for (int i = 0; i < uninterpreted_option_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(999, this->uninterpreted_option(i), output));
  }
  
  // Extension range [1000, 536870912)
  DO_(_extensions_.SerializeWithCachedSizes(
      1000, 536870912, *this, output));
  
  if (!unknown_fields().empty()) {
    DO_(::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output));
  }
  return true;
#undef DO_
}

int EnumValueOptions::ByteSize() const {
  int total_size = 0;
  
  // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
  total_size += 2 * uninterpreted_option_size();
  for (int i = 0; i < uninterpreted_option_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->uninterpreted_option(i));
  }
  
  total_size += _extensions_.ByteSize(*this);
  
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  _cached_size_ = total_size;
  return total_size;
}

void EnumValueOptions::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const EnumValueOptions* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const EnumValueOptions*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void EnumValueOptions::MergeFrom(const EnumValueOptions& from) {
  GOOGLE_CHECK_NE(&from, this);
  uninterpreted_option_.MergeFrom(from.uninterpreted_option_);
  _extensions_.MergeFrom(from._extensions_);
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void EnumValueOptions::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void EnumValueOptions::CopyFrom(const EnumValueOptions& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool EnumValueOptions::IsInitialized() const {
  
  for (int i = 0; i < uninterpreted_option_size(); i++) {
    if (!this->uninterpreted_option(i).IsInitialized()) return false;
  }
  
  if (!_extensions_.IsInitialized()) return false;  return true;
}

const ::google::protobuf::Descriptor* EnumValueOptions::GetDescriptor() const {
  return descriptor();
}

const ::google::protobuf::Reflection* EnumValueOptions::GetReflection() const {
  if (EnumValueOptions_reflection_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return EnumValueOptions_reflection_;
}

// ===================================================================


const int ServiceOptions::_offsets_[1] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServiceOptions, uninterpreted_option_),
};

ServiceOptions::ServiceOptions()
  : ::google::protobuf::Message(),
    _extensions_(&ServiceOptions_descriptor_,
                 ::google::protobuf::DescriptorPool::generated_pool(),
                 ::google::protobuf::MessageFactory::generated_factory()),
    _cached_size_(0) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

void ServiceOptions::InitAsDefaultInstance() {}

ServiceOptions::ServiceOptions(const ServiceOptions& from)
  : ::google::protobuf::Message(),
    _extensions_(&ServiceOptions_descriptor_,
                 ::google::protobuf::DescriptorPool::generated_pool(),
                 ::google::protobuf::MessageFactory::generated_factory()),
    _cached_size_(0) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  MergeFrom(from);
}

ServiceOptions::~ServiceOptions() {
  if (this != default_instance_) {
  }
}

const ::google::protobuf::Descriptor* ServiceOptions::descriptor() {
  if (ServiceOptions_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return ServiceOptions_descriptor_;
}

const ServiceOptions& ServiceOptions::default_instance() {
  if (default_instance_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return *default_instance_;
}

ServiceOptions* ServiceOptions::default_instance_ = NULL;

ServiceOptions* ServiceOptions::New() const {
  return new ServiceOptions;
}

void ServiceOptions::Clear() {
  _extensions_.Clear();
  uninterpreted_option_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool ServiceOptions::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  ::google::protobuf::uint32 tag;
  while ((tag = input->ReadTag()) != 0) {
    switch (::google::protobuf::internal::WireFormat::GetTagFieldNumber(tag)) {
      // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
      case 999: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_uninterpreted_option:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_uninterpreted_option()));
        if (input->ExpectTag(7994)) goto parse_uninterpreted_option;
        if (input->ExpectAtEnd()) return true;
        break;
      }
      
      default: {
      handle_uninterpreted:
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormat::WIRETYPE_END_GROUP) {
          return true;
        }
        if ((8000u <= tag)) {
          DO_(_extensions_.ParseField(tag, input, this));
          continue;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
  return true;
#undef DO_
}

bool ServiceOptions::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
  for (int i = 0; i < uninterpreted_option_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(999, this->uninterpreted_option(i), output));
  }
  
  // Extension range [1000, 536870912)
  DO_(_extensions_.SerializeWithCachedSizes(
      1000, 536870912, *this, output));
  
  if (!unknown_fields().empty()) {
    DO_(::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output));
  }
  return true;
#undef DO_
}

int ServiceOptions::ByteSize() const {
  int total_size = 0;
  
  // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
  total_size += 2 * uninterpreted_option_size();
  for (int i = 0; i < uninterpreted_option_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->uninterpreted_option(i));
  }
  
  total_size += _extensions_.ByteSize(*this);
  
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  _cached_size_ = total_size;
  return total_size;
}

void ServiceOptions::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const ServiceOptions* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const ServiceOptions*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void ServiceOptions::MergeFrom(const ServiceOptions& from) {
  GOOGLE_CHECK_NE(&from, this);
  uninterpreted_option_.MergeFrom(from.uninterpreted_option_);
  _extensions_.MergeFrom(from._extensions_);
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void ServiceOptions::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ServiceOptions::CopyFrom(const ServiceOptions& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ServiceOptions::IsInitialized() const {
  
  for (int i = 0; i < uninterpreted_option_size(); i++) {
    if (!this->uninterpreted_option(i).IsInitialized()) return false;
  }
  
  if (!_extensions_.IsInitialized()) return false;  return true;
}

const ::google::protobuf::Descriptor* ServiceOptions::GetDescriptor() const {
  return descriptor();
}

const ::google::protobuf::Reflection* ServiceOptions::GetReflection() const {
  if (ServiceOptions_reflection_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return ServiceOptions_reflection_;
}

// ===================================================================


const int MethodOptions::_offsets_[1] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MethodOptions, uninterpreted_option_),
};

MethodOptions::MethodOptions()
  : ::google::protobuf::Message(),
    _extensions_(&MethodOptions_descriptor_,
                 ::google::protobuf::DescriptorPool::generated_pool(),
                 ::google::protobuf::MessageFactory::generated_factory()),
    _cached_size_(0) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

void MethodOptions::InitAsDefaultInstance() {}

MethodOptions::MethodOptions(const MethodOptions& from)
  : ::google::protobuf::Message(),
    _extensions_(&MethodOptions_descriptor_,
                 ::google::protobuf::DescriptorPool::generated_pool(),
                 ::google::protobuf::MessageFactory::generated_factory()),
    _cached_size_(0) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  MergeFrom(from);
}

MethodOptions::~MethodOptions() {
  if (this != default_instance_) {
  }
}

const ::google::protobuf::Descriptor* MethodOptions::descriptor() {
  if (MethodOptions_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return MethodOptions_descriptor_;
}

const MethodOptions& MethodOptions::default_instance() {
  if (default_instance_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return *default_instance_;
}

MethodOptions* MethodOptions::default_instance_ = NULL;

MethodOptions* MethodOptions::New() const {
  return new MethodOptions;
}

void MethodOptions::Clear() {
  _extensions_.Clear();
  uninterpreted_option_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool MethodOptions::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  ::google::protobuf::uint32 tag;
  while ((tag = input->ReadTag()) != 0) {
    switch (::google::protobuf::internal::WireFormat::GetTagFieldNumber(tag)) {
      // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
      case 999: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_uninterpreted_option:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_uninterpreted_option()));
        if (input->ExpectTag(7994)) goto parse_uninterpreted_option;
        if (input->ExpectAtEnd()) return true;
        break;
      }
      
      default: {
      handle_uninterpreted:
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormat::WIRETYPE_END_GROUP) {
          return true;
        }
        if ((8000u <= tag)) {
          DO_(_extensions_.ParseField(tag, input, this));
          continue;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
  return true;
#undef DO_
}

bool MethodOptions::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
  for (int i = 0; i < uninterpreted_option_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(999, this->uninterpreted_option(i), output));
  }
  
  // Extension range [1000, 536870912)
  DO_(_extensions_.SerializeWithCachedSizes(
      1000, 536870912, *this, output));
  
  if (!unknown_fields().empty()) {
    DO_(::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output));
  }
  return true;
#undef DO_
}

int MethodOptions::ByteSize() const {
  int total_size = 0;
  
  // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
  total_size += 2 * uninterpreted_option_size();
  for (int i = 0; i < uninterpreted_option_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->uninterpreted_option(i));
  }
  
  total_size += _extensions_.ByteSize(*this);
  
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  _cached_size_ = total_size;
  return total_size;
}

void MethodOptions::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const MethodOptions* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const MethodOptions*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void MethodOptions::MergeFrom(const MethodOptions& from) {
  GOOGLE_CHECK_NE(&from, this);
  uninterpreted_option_.MergeFrom(from.uninterpreted_option_);
  _extensions_.MergeFrom(from._extensions_);
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void MethodOptions::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void MethodOptions::CopyFrom(const MethodOptions& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MethodOptions::IsInitialized() const {
  
  for (int i = 0; i < uninterpreted_option_size(); i++) {
    if (!this->uninterpreted_option(i).IsInitialized()) return false;
  }
  
  if (!_extensions_.IsInitialized()) return false;  return true;
}

const ::google::protobuf::Descriptor* MethodOptions::GetDescriptor() const {
  return descriptor();
}

const ::google::protobuf::Reflection* MethodOptions::GetReflection() const {
  if (MethodOptions_reflection_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return MethodOptions_reflection_;
}

// ===================================================================

const ::std::string UninterpretedOption_NamePart::_default_name_part_;

const int UninterpretedOption_NamePart::_offsets_[2] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UninterpretedOption_NamePart, name_part_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UninterpretedOption_NamePart, is_extension_),
};

UninterpretedOption_NamePart::UninterpretedOption_NamePart()
  : ::google::protobuf::Message(),
    _cached_size_(0),
    name_part_(const_cast< ::std::string*>(&_default_name_part_)),
    is_extension_(false) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

void UninterpretedOption_NamePart::InitAsDefaultInstance() {}

UninterpretedOption_NamePart::UninterpretedOption_NamePart(const UninterpretedOption_NamePart& from)
  : ::google::protobuf::Message(),
    _cached_size_(0),
    name_part_(const_cast< ::std::string*>(&_default_name_part_)),
    is_extension_(false) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  MergeFrom(from);
}

UninterpretedOption_NamePart::~UninterpretedOption_NamePart() {
  if (name_part_ != &_default_name_part_) {
    delete name_part_;
  }
  if (this != default_instance_) {
  }
}

const ::google::protobuf::Descriptor* UninterpretedOption_NamePart::descriptor() {
  if (UninterpretedOption_NamePart_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return UninterpretedOption_NamePart_descriptor_;
}

const UninterpretedOption_NamePart& UninterpretedOption_NamePart::default_instance() {
  if (default_instance_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return *default_instance_;
}

UninterpretedOption_NamePart* UninterpretedOption_NamePart::default_instance_ = NULL;

UninterpretedOption_NamePart* UninterpretedOption_NamePart::New() const {
  return new UninterpretedOption_NamePart;
}

void UninterpretedOption_NamePart::Clear() {
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (_has_bit(0)) {
      if (name_part_ != &_default_name_part_) {
        name_part_->clear();
      }
    }
    is_extension_ = false;
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool UninterpretedOption_NamePart::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  ::google::protobuf::uint32 tag;
  while ((tag = input->ReadTag()) != 0) {
    switch (::google::protobuf::internal::WireFormat::GetTagFieldNumber(tag)) {
      // required string name_part = 1;
      case 1: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
        DO_(::google::protobuf::internal::WireFormat::ReadString(input, mutable_name_part()));
        if (input->ExpectTag(16)) goto parse_is_extension;
        break;
      }
      
      // required bool is_extension = 2;
      case 2: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_VARINT) {
          goto handle_uninterpreted;
        }
       parse_is_extension:
        DO_(::google::protobuf::internal::WireFormat::ReadBool(
              input, &is_extension_));
        _set_bit(1);
        if (input->ExpectAtEnd()) return true;
        break;
      }
      
      default: {
      handle_uninterpreted:
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormat::WIRETYPE_END_GROUP) {
          return true;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
  return true;
#undef DO_
}

bool UninterpretedOption_NamePart::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  // required string name_part = 1;
  if (_has_bit(0)) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(1, this->name_part(), output));
  }
  
  // required bool is_extension = 2;
  if (_has_bit(1)) {
    DO_(::google::protobuf::internal::WireFormat::WriteBool(2, this->is_extension(), output));
  }
  
  if (!unknown_fields().empty()) {
    DO_(::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output));
  }
  return true;
#undef DO_
}

int UninterpretedOption_NamePart::ByteSize() const {
  int total_size = 0;
  
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required string name_part = 1;
    if (has_name_part()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::StringSize(this->name_part());
    }
    
    // required bool is_extension = 2;
    if (has_is_extension()) {
      total_size += 1 + 1;
    }
    
  }
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  _cached_size_ = total_size;
  return total_size;
}

void UninterpretedOption_NamePart::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const UninterpretedOption_NamePart* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const UninterpretedOption_NamePart*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void UninterpretedOption_NamePart::MergeFrom(const UninterpretedOption_NamePart& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from._has_bit(0)) {
      set_name_part(from.name_part());
    }
    if (from._has_bit(1)) {
      set_is_extension(from.is_extension());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void UninterpretedOption_NamePart::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void UninterpretedOption_NamePart::CopyFrom(const UninterpretedOption_NamePart& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UninterpretedOption_NamePart::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
  
  return true;
}

const ::google::protobuf::Descriptor* UninterpretedOption_NamePart::GetDescriptor() const {
  return descriptor();
}

const ::google::protobuf::Reflection* UninterpretedOption_NamePart::GetReflection() const {
  if (UninterpretedOption_NamePart_reflection_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return UninterpretedOption_NamePart_reflection_;
}

// -------------------------------------------------------------------


const ::std::string UninterpretedOption::_default_identifier_value_;



const ::std::string UninterpretedOption::_default_string_value_;
const int UninterpretedOption::_offsets_[6] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UninterpretedOption, name_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UninterpretedOption, identifier_value_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UninterpretedOption, positive_int_value_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UninterpretedOption, negative_int_value_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UninterpretedOption, double_value_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UninterpretedOption, string_value_),
};

UninterpretedOption::UninterpretedOption()
  : ::google::protobuf::Message(),
    _cached_size_(0),
    identifier_value_(const_cast< ::std::string*>(&_default_identifier_value_)),
    positive_int_value_(GOOGLE_ULONGLONG(0)),
    negative_int_value_(GOOGLE_LONGLONG(0)),
    double_value_(0),
    string_value_(const_cast< ::std::string*>(&_default_string_value_)) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

void UninterpretedOption::InitAsDefaultInstance() {}

UninterpretedOption::UninterpretedOption(const UninterpretedOption& from)
  : ::google::protobuf::Message(),
    _cached_size_(0),
    identifier_value_(const_cast< ::std::string*>(&_default_identifier_value_)),
    positive_int_value_(GOOGLE_ULONGLONG(0)),
    negative_int_value_(GOOGLE_LONGLONG(0)),
    double_value_(0),
    string_value_(const_cast< ::std::string*>(&_default_string_value_)) {
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  MergeFrom(from);
}

UninterpretedOption::~UninterpretedOption() {
  if (identifier_value_ != &_default_identifier_value_) {
    delete identifier_value_;
  }
  if (string_value_ != &_default_string_value_) {
    delete string_value_;
  }
  if (this != default_instance_) {
  }
}

const ::google::protobuf::Descriptor* UninterpretedOption::descriptor() {
  if (UninterpretedOption_descriptor_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return UninterpretedOption_descriptor_;
}

const UninterpretedOption& UninterpretedOption::default_instance() {
  if (default_instance_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return *default_instance_;
}

UninterpretedOption* UninterpretedOption::default_instance_ = NULL;

UninterpretedOption* UninterpretedOption::New() const {
  return new UninterpretedOption;
}

void UninterpretedOption::Clear() {
  if (_has_bits_[1 / 32] & (0xffu << (1 % 32))) {
    if (_has_bit(1)) {
      if (identifier_value_ != &_default_identifier_value_) {
        identifier_value_->clear();
      }
    }
    positive_int_value_ = GOOGLE_ULONGLONG(0);
    negative_int_value_ = GOOGLE_LONGLONG(0);
    double_value_ = 0;
    if (_has_bit(5)) {
      if (string_value_ != &_default_string_value_) {
        string_value_->clear();
      }
    }
  }
  name_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool UninterpretedOption::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  ::google::protobuf::uint32 tag;
  while ((tag = input->ReadTag()) != 0) {
    switch (::google::protobuf::internal::WireFormat::GetTagFieldNumber(tag)) {
      // repeated .google.protobuf.UninterpretedOption.NamePart name = 2;
      case 2: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_name:
        DO_(::google::protobuf::internal::WireFormat::ReadMessageNoVirtual(
             input, add_name()));
        if (input->ExpectTag(18)) goto parse_name;
        if (input->ExpectTag(26)) goto parse_identifier_value;
        break;
      }
      
      // optional string identifier_value = 3;
      case 3: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_identifier_value:
        DO_(::google::protobuf::internal::WireFormat::ReadString(input, mutable_identifier_value()));
        if (input->ExpectTag(32)) goto parse_positive_int_value;
        break;
      }
      
      // optional uint64 positive_int_value = 4;
      case 4: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_VARINT) {
          goto handle_uninterpreted;
        }
       parse_positive_int_value:
        DO_(::google::protobuf::internal::WireFormat::ReadUInt64(
              input, &positive_int_value_));
        _set_bit(2);
        if (input->ExpectTag(40)) goto parse_negative_int_value;
        break;
      }
      
      // optional int64 negative_int_value = 5;
      case 5: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_VARINT) {
          goto handle_uninterpreted;
        }
       parse_negative_int_value:
        DO_(::google::protobuf::internal::WireFormat::ReadInt64(
              input, &negative_int_value_));
        _set_bit(3);
        if (input->ExpectTag(49)) goto parse_double_value;
        break;
      }
      
      // optional double double_value = 6;
      case 6: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_FIXED64) {
          goto handle_uninterpreted;
        }
       parse_double_value:
        DO_(::google::protobuf::internal::WireFormat::ReadDouble(
              input, &double_value_));
        _set_bit(4);
        if (input->ExpectTag(58)) goto parse_string_value;
        break;
      }
      
      // optional bytes string_value = 7;
      case 7: {
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
            ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED) {
          goto handle_uninterpreted;
        }
       parse_string_value:
        DO_(::google::protobuf::internal::WireFormat::ReadBytes(input, mutable_string_value()));
        if (input->ExpectAtEnd()) return true;
        break;
      }
      
      default: {
      handle_uninterpreted:
        if (::google::protobuf::internal::WireFormat::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormat::WIRETYPE_END_GROUP) {
          return true;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
  return true;
#undef DO_
}

bool UninterpretedOption::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
  // repeated .google.protobuf.UninterpretedOption.NamePart name = 2;
  for (int i = 0; i < name_.size(); i++) {
    DO_(::google::protobuf::internal::WireFormat::WriteMessageNoVirtual(2, this->name(i), output));
  }
  
  // optional string identifier_value = 3;
  if (_has_bit(1)) {
    DO_(::google::protobuf::internal::WireFormat::WriteString(3, this->identifier_value(), output));
  }
  
  // optional uint64 positive_int_value = 4;
  if (_has_bit(2)) {
    DO_(::google::protobuf::internal::WireFormat::WriteUInt64(4, this->positive_int_value(), output));
  }
  
  // optional int64 negative_int_value = 5;
  if (_has_bit(3)) {
    DO_(::google::protobuf::internal::WireFormat::WriteInt64(5, this->negative_int_value(), output));
  }
  
  // optional double double_value = 6;
  if (_has_bit(4)) {
    DO_(::google::protobuf::internal::WireFormat::WriteDouble(6, this->double_value(), output));
  }
  
  // optional bytes string_value = 7;
  if (_has_bit(5)) {
    DO_(::google::protobuf::internal::WireFormat::WriteBytes(7, this->string_value(), output));
  }
  
  if (!unknown_fields().empty()) {
    DO_(::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output));
  }
  return true;
#undef DO_
}

int UninterpretedOption::ByteSize() const {
  int total_size = 0;
  
  if (_has_bits_[1 / 32] & (0xffu << (1 % 32))) {
    // optional string identifier_value = 3;
    if (has_identifier_value()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::StringSize(this->identifier_value());
    }
    
    // optional uint64 positive_int_value = 4;
    if (has_positive_int_value()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::UInt64Size(
          this->positive_int_value());
    }
    
    // optional int64 negative_int_value = 5;
    if (has_negative_int_value()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::Int64Size(
          this->negative_int_value());
    }
    
    // optional double double_value = 6;
    if (has_double_value()) {
      total_size += 1 + 8;
    }
    
    // optional bytes string_value = 7;
    if (has_string_value()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormat::BytesSize(this->string_value());
    }
    
  }
  // repeated .google.protobuf.UninterpretedOption.NamePart name = 2;
  total_size += 1 * name_size();
  for (int i = 0; i < name_size(); i++) {
    total_size +=
      ::google::protobuf::internal::WireFormat::MessageSizeNoVirtual(
        this->name(i));
  }
  
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  _cached_size_ = total_size;
  return total_size;
}

void UninterpretedOption::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const UninterpretedOption* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const UninterpretedOption*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void UninterpretedOption::MergeFrom(const UninterpretedOption& from) {
  GOOGLE_CHECK_NE(&from, this);
  name_.MergeFrom(from.name_);
  if (from._has_bits_[1 / 32] & (0xffu << (1 % 32))) {
    if (from._has_bit(1)) {
      set_identifier_value(from.identifier_value());
    }
    if (from._has_bit(2)) {
      set_positive_int_value(from.positive_int_value());
    }
    if (from._has_bit(3)) {
      set_negative_int_value(from.negative_int_value());
    }
    if (from._has_bit(4)) {
      set_double_value(from.double_value());
    }
    if (from._has_bit(5)) {
      set_string_value(from.string_value());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void UninterpretedOption::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void UninterpretedOption::CopyFrom(const UninterpretedOption& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UninterpretedOption::IsInitialized() const {
  
  for (int i = 0; i < name_size(); i++) {
    if (!this->name(i).IsInitialized()) return false;
  }
  return true;
}

const ::google::protobuf::Descriptor* UninterpretedOption::GetDescriptor() const {
  return descriptor();
}

const ::google::protobuf::Reflection* UninterpretedOption::GetReflection() const {
  if (UninterpretedOption_reflection_ == NULL) protobuf_BuildDesc_google_2fprotobuf_2fdescriptor_2eproto();
  return UninterpretedOption_reflection_;
}

}  // namespace protobuf
}  // namespace google