source: misc/tools/ExternalEvaluation/CSharp/ExternalEvaluation.Service/ExternalEvaluationMessages.cs @ 16871

Last change on this file since 16871 was 16871, checked in by abeham, 2 years ago

updated csharp library to reflect changes in proto file made some time ago

File size: 226.6 KB
Line 
1// Generated by ProtoGen, Version=2.4.1.473, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
2#pragma warning disable 1591, 0612
3#region Designer generated code
4
5using pb = global::Google.ProtocolBuffers;
6using pbc = global::Google.ProtocolBuffers.Collections;
7using pbd = global::Google.ProtocolBuffers.Descriptors;
8using scg = global::System.Collections.Generic;
9namespace HeuristicLab.Problems.ExternalEvaluation {
10 
11  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
12  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
13  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
14  public static partial class ExternalEvaluationMessages {
15 
16    #region Extension registration
17    public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
18      registry.Add(global::HeuristicLab.Problems.ExternalEvaluation.SingleObjectiveQualityMessage.QualityMessage_);
19      registry.Add(global::HeuristicLab.Problems.ExternalEvaluation.MultiObjectiveQualityMessage.QualityMessage_);
20    }
21    #endregion
22    #region Static variables
23    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor;
24    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__FieldAccessorTable;
25    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerVariable__Descriptor;
26    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerVariable__FieldAccessorTable;
27    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerArrayVariable__Descriptor;
28    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerArrayVariable__FieldAccessorTable;
29    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleVariable__Descriptor;
30    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleVariable__FieldAccessorTable;
31    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleArrayVariable__Descriptor;
32    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleArrayVariable__FieldAccessorTable;
33    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolVariable__Descriptor;
34    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolVariable__FieldAccessorTable;
35    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolArrayVariable__Descriptor;
36    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolArrayVariable__FieldAccessorTable;
37    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringVariable__Descriptor;
38    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringVariable__FieldAccessorTable;
39    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringArrayVariable__Descriptor;
40    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringArrayVariable__FieldAccessorTable;
41    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_RawVariable__Descriptor;
42    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_RawVariable__FieldAccessorTable;
43    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_QualityMessage__Descriptor;
44    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage, global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_QualityMessage__FieldAccessorTable;
45    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_SingleObjectiveQualityMessage__Descriptor;
46    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SingleObjectiveQualityMessage, global::HeuristicLab.Problems.ExternalEvaluation.SingleObjectiveQualityMessage.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_SingleObjectiveQualityMessage__FieldAccessorTable;
47    internal static pbd::MessageDescriptor internal__static_HeuristicLab_Problems_ExternalEvaluation_MultiObjectiveQualityMessage__Descriptor;
48    internal static pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.MultiObjectiveQualityMessage, global::HeuristicLab.Problems.ExternalEvaluation.MultiObjectiveQualityMessage.Builder> internal__static_HeuristicLab_Problems_ExternalEvaluation_MultiObjectiveQualityMessage__FieldAccessorTable;
49    #endregion
50    #region Descriptor
51    public static pbd::FileDescriptor Descriptor {
52      get { return descriptor; }
53    }
54    private static pbd::FileDescriptor descriptor;
55   
56    static ExternalEvaluationMessages() {
57      byte[] descriptorData = global::System.Convert.FromBase64String(
58          "CjtFeHRlcm5hbEV2YWx1YXRpb24uU2VydmljZS9FeHRlcm5hbEV2YWx1YXRp" +
59          "b25NZXNzYWdlcy5wcm90bxIoSGV1cmlzdGljTGFiLlByb2JsZW1zLkV4dGVy" +
60          "bmFsRXZhbHVhdGlvbiL+CgoPU29sdXRpb25NZXNzYWdlEhIKCnNvbHV0aW9u" +
61          "SWQYASACKAUSXgoLaW50ZWdlclZhcnMYAiADKAsySS5IZXVyaXN0aWNMYWIu" +
62          "UHJvYmxlbXMuRXh0ZXJuYWxFdmFsdWF0aW9uLlNvbHV0aW9uTWVzc2FnZS5J" +
63          "bnRlZ2VyVmFyaWFibGUSaAoQaW50ZWdlckFycmF5VmFycxgDIAMoCzJOLkhl" +
64          "dXJpc3RpY0xhYi5Qcm9ibGVtcy5FeHRlcm5hbEV2YWx1YXRpb24uU29sdXRp" +
65          "b25NZXNzYWdlLkludGVnZXJBcnJheVZhcmlhYmxlElwKCmRvdWJsZVZhcnMY" +
66          "BCADKAsySC5IZXVyaXN0aWNMYWIuUHJvYmxlbXMuRXh0ZXJuYWxFdmFsdWF0" +
67          "aW9uLlNvbHV0aW9uTWVzc2FnZS5Eb3VibGVWYXJpYWJsZRJmCg9kb3VibGVB" +
68          "cnJheVZhcnMYBSADKAsyTS5IZXVyaXN0aWNMYWIuUHJvYmxlbXMuRXh0ZXJu" +
69          "YWxFdmFsdWF0aW9uLlNvbHV0aW9uTWVzc2FnZS5Eb3VibGVBcnJheVZhcmlh" +
70          "YmxlElgKCGJvb2xWYXJzGAYgAygLMkYuSGV1cmlzdGljTGFiLlByb2JsZW1z" +
71          "LkV4dGVybmFsRXZhbHVhdGlvbi5Tb2x1dGlvbk1lc3NhZ2UuQm9vbFZhcmlh" +
72          "YmxlEmIKDWJvb2xBcnJheVZhcnMYByADKAsySy5IZXVyaXN0aWNMYWIuUHJv" +
73          "YmxlbXMuRXh0ZXJuYWxFdmFsdWF0aW9uLlNvbHV0aW9uTWVzc2FnZS5Cb29s" +
74          "QXJyYXlWYXJpYWJsZRJcCgpzdHJpbmdWYXJzGAggAygLMkguSGV1cmlzdGlj" +
75          "TGFiLlByb2JsZW1zLkV4dGVybmFsRXZhbHVhdGlvbi5Tb2x1dGlvbk1lc3Nh" +
76          "Z2UuU3RyaW5nVmFyaWFibGUSZgoPc3RyaW5nQXJyYXlWYXJzGAkgAygLMk0u" +
77          "SGV1cmlzdGljTGFiLlByb2JsZW1zLkV4dGVybmFsRXZhbHVhdGlvbi5Tb2x1" +
78          "dGlvbk1lc3NhZ2UuU3RyaW5nQXJyYXlWYXJpYWJsZRJWCgdyYXdWYXJzGAog" +
79          "AygLMkUuSGV1cmlzdGljTGFiLlByb2JsZW1zLkV4dGVybmFsRXZhbHVhdGlv" +
80          "bi5Tb2x1dGlvbk1lc3NhZ2UuUmF3VmFyaWFibGUaLQoPSW50ZWdlclZhcmlh" +
81          "YmxlEgwKBG5hbWUYASACKAkSDAoEZGF0YRgCIAEoBRpCChRJbnRlZ2VyQXJy" +
82          "YXlWYXJpYWJsZRIMCgRuYW1lGAEgAigJEgwKBGRhdGEYAiADKAUSDgoGbGVu" +
83          "Z3RoGAMgASgFGiwKDkRvdWJsZVZhcmlhYmxlEgwKBG5hbWUYASACKAkSDAoE" +
84          "ZGF0YRgCIAEoARpBChNEb3VibGVBcnJheVZhcmlhYmxlEgwKBG5hbWUYASAC" +
85          "KAkSDAoEZGF0YRgCIAMoARIOCgZsZW5ndGgYAyABKAUaKgoMQm9vbFZhcmlh" +
86          "YmxlEgwKBG5hbWUYASACKAkSDAoEZGF0YRgCIAEoCBo/ChFCb29sQXJyYXlW" +
87          "YXJpYWJsZRIMCgRuYW1lGAEgAigJEgwKBGRhdGEYAiADKAgSDgoGbGVuZ3Ro" +
88          "GAMgASgFGiwKDlN0cmluZ1ZhcmlhYmxlEgwKBG5hbWUYASACKAkSDAoEZGF0" +
89          "YRgCIAEoCRpBChNTdHJpbmdBcnJheVZhcmlhYmxlEgwKBG5hbWUYASACKAkS" +
90          "DAoEZGF0YRgCIAMoCRIOCgZsZW5ndGgYAyABKAUaKQoLUmF3VmFyaWFibGUS" +
91          "DAoEbmFtZRgBIAIoCRIMCgRkYXRhGAIgASgMIskBCg5RdWFsaXR5TWVzc2Fn" +
92          "ZRISCgpzb2x1dGlvbklkGAEgAigFEksKBHR5cGUYAiACKA4yPS5IZXVyaXN0" +
93          "aWNMYWIuUHJvYmxlbXMuRXh0ZXJuYWxFdmFsdWF0aW9uLlF1YWxpdHlNZXNz" +
94          "YWdlLlR5cGUiSwoEVHlwZRIhCh1TaW5nbGVPYmplY3RpdmVRdWFsaXR5TWVz" +
95          "c2FnZRABEiAKHE11bHRpT2JqZWN0aXZlUXVhbGl0eU1lc3NhZ2UQAioJCOgH" +
96          "EICAgIACIs0BCh1TaW5nbGVPYmplY3RpdmVRdWFsaXR5TWVzc2FnZRIPCgdx" +
97          "dWFsaXR5GAEgAigBMpoBCg5xdWFsaXR5TWVzc2FnZRI4LkhldXJpc3RpY0xh" +
98          "Yi5Qcm9ibGVtcy5FeHRlcm5hbEV2YWx1YXRpb24uUXVhbGl0eU1lc3NhZ2UY" +
99          "6AcgAigLMkcuSGV1cmlzdGljTGFiLlByb2JsZW1zLkV4dGVybmFsRXZhbHVh" +
100          "dGlvbi5TaW5nbGVPYmplY3RpdmVRdWFsaXR5TWVzc2FnZSLNAQocTXVsdGlP" +
101          "YmplY3RpdmVRdWFsaXR5TWVzc2FnZRIRCglxdWFsaXRpZXMYASADKAEymQEK" +
102          "DnF1YWxpdHlNZXNzYWdlEjguSGV1cmlzdGljTGFiLlByb2JsZW1zLkV4dGVy" +
103          "bmFsRXZhbHVhdGlvbi5RdWFsaXR5TWVzc2FnZRjpByACKAsyRi5IZXVyaXN0" +
104          "aWNMYWIuUHJvYmxlbXMuRXh0ZXJuYWxFdmFsdWF0aW9uLk11bHRpT2JqZWN0" +
105          "aXZlUXVhbGl0eU1lc3NhZ2Uy0gIKEUV2YWx1YXRpb25TZXJ2aWNlEp0BChdF" +
106          "dmFsdWF0ZVNpbmdsZU9iamVjdGl2ZRI5LkhldXJpc3RpY0xhYi5Qcm9ibGVt" +
107          "cy5FeHRlcm5hbEV2YWx1YXRpb24uU29sdXRpb25NZXNzYWdlGkcuSGV1cmlz" +
108          "dGljTGFiLlByb2JsZW1zLkV4dGVybmFsRXZhbHVhdGlvbi5TaW5nbGVPYmpl" +
109          "Y3RpdmVRdWFsaXR5TWVzc2FnZRKcAQoXRXZhbHVhdGVNdWx0aU9iamVjdGl2" +
110          "ZXMSOS5IZXVyaXN0aWNMYWIuUHJvYmxlbXMuRXh0ZXJuYWxFdmFsdWF0aW9u" +
111          "LlNvbHV0aW9uTWVzc2FnZRpGLkhldXJpc3RpY0xhYi5Qcm9ibGVtcy5FeHRl" +
112          "cm5hbEV2YWx1YXRpb24uTXVsdGlPYmplY3RpdmVRdWFsaXR5TWVzc2FnZUIu" +
113          "Cixjb20uaGV1cmlzdGljbGFiLnByb2JsZW1zLmV4dGVybmFsZXZhbHVhdGlv" +
114          "bg==");
115      pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
116        descriptor = root;
117        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor = Descriptor.MessageTypes[0];
118        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__FieldAccessorTable =
119            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor,
120                new string[] { "SolutionId", "IntegerVars", "IntegerArrayVars", "DoubleVars", "DoubleArrayVars", "BoolVars", "BoolArrayVars", "StringVars", "StringArrayVars", "RawVars", });
121        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerVariable__Descriptor = internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor.NestedTypes[0];
122        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerVariable__FieldAccessorTable =
123            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerVariable__Descriptor,
124                new string[] { "Name", "Data", });
125        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerArrayVariable__Descriptor = internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor.NestedTypes[1];
126        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerArrayVariable__FieldAccessorTable =
127            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerArrayVariable__Descriptor,
128                new string[] { "Name", "Data", "Length", });
129        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleVariable__Descriptor = internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor.NestedTypes[2];
130        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleVariable__FieldAccessorTable =
131            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleVariable__Descriptor,
132                new string[] { "Name", "Data", });
133        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleArrayVariable__Descriptor = internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor.NestedTypes[3];
134        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleArrayVariable__FieldAccessorTable =
135            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleArrayVariable__Descriptor,
136                new string[] { "Name", "Data", "Length", });
137        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolVariable__Descriptor = internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor.NestedTypes[4];
138        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolVariable__FieldAccessorTable =
139            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolVariable__Descriptor,
140                new string[] { "Name", "Data", });
141        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolArrayVariable__Descriptor = internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor.NestedTypes[5];
142        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolArrayVariable__FieldAccessorTable =
143            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolArrayVariable__Descriptor,
144                new string[] { "Name", "Data", "Length", });
145        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringVariable__Descriptor = internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor.NestedTypes[6];
146        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringVariable__FieldAccessorTable =
147            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringVariable__Descriptor,
148                new string[] { "Name", "Data", });
149        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringArrayVariable__Descriptor = internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor.NestedTypes[7];
150        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringArrayVariable__FieldAccessorTable =
151            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringArrayVariable__Descriptor,
152                new string[] { "Name", "Data", "Length", });
153        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_RawVariable__Descriptor = internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor.NestedTypes[8];
154        internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_RawVariable__FieldAccessorTable =
155            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_RawVariable__Descriptor,
156                new string[] { "Name", "Data", });
157        internal__static_HeuristicLab_Problems_ExternalEvaluation_QualityMessage__Descriptor = Descriptor.MessageTypes[1];
158        internal__static_HeuristicLab_Problems_ExternalEvaluation_QualityMessage__FieldAccessorTable =
159            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage, global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_QualityMessage__Descriptor,
160                new string[] { "SolutionId", "Type", });
161        internal__static_HeuristicLab_Problems_ExternalEvaluation_SingleObjectiveQualityMessage__Descriptor = Descriptor.MessageTypes[2];
162        internal__static_HeuristicLab_Problems_ExternalEvaluation_SingleObjectiveQualityMessage__FieldAccessorTable =
163            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.SingleObjectiveQualityMessage, global::HeuristicLab.Problems.ExternalEvaluation.SingleObjectiveQualityMessage.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_SingleObjectiveQualityMessage__Descriptor,
164                new string[] { "Quality", });
165        global::HeuristicLab.Problems.ExternalEvaluation.SingleObjectiveQualityMessage.QualityMessage_ = pb::GeneratedSingleExtension<global::HeuristicLab.Problems.ExternalEvaluation.SingleObjectiveQualityMessage>.CreateInstance(global::HeuristicLab.Problems.ExternalEvaluation.SingleObjectiveQualityMessage.Descriptor.Extensions[0]);
166        internal__static_HeuristicLab_Problems_ExternalEvaluation_MultiObjectiveQualityMessage__Descriptor = Descriptor.MessageTypes[3];
167        internal__static_HeuristicLab_Problems_ExternalEvaluation_MultiObjectiveQualityMessage__FieldAccessorTable =
168            new pb::FieldAccess.FieldAccessorTable<global::HeuristicLab.Problems.ExternalEvaluation.MultiObjectiveQualityMessage, global::HeuristicLab.Problems.ExternalEvaluation.MultiObjectiveQualityMessage.Builder>(internal__static_HeuristicLab_Problems_ExternalEvaluation_MultiObjectiveQualityMessage__Descriptor,
169                new string[] { "Qualities", });
170        global::HeuristicLab.Problems.ExternalEvaluation.MultiObjectiveQualityMessage.QualityMessage_ = pb::GeneratedSingleExtension<global::HeuristicLab.Problems.ExternalEvaluation.MultiObjectiveQualityMessage>.CreateInstance(global::HeuristicLab.Problems.ExternalEvaluation.MultiObjectiveQualityMessage.Descriptor.Extensions[0]);
171        return null;
172      };
173      pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
174          new pbd::FileDescriptor[] {
175          }, assigner);
176    }
177    #endregion
178   
179  }
180  #region Messages
181  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
182  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
183  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
184  public sealed partial class SolutionMessage : pb::GeneratedMessage<SolutionMessage, SolutionMessage.Builder> {
185    private SolutionMessage() { }
186    private static readonly SolutionMessage defaultInstance = new SolutionMessage().MakeReadOnly();
187    private static readonly string[] _solutionMessageFieldNames = new string[] { "boolArrayVars", "boolVars", "doubleArrayVars", "doubleVars", "integerArrayVars", "integerVars", "rawVars", "solutionId", "stringArrayVars", "stringVars" };
188    private static readonly uint[] _solutionMessageFieldTags = new uint[] { 58, 50, 42, 34, 26, 18, 82, 8, 74, 66 };
189    public static SolutionMessage DefaultInstance {
190      get { return defaultInstance; }
191    }
192   
193    public override SolutionMessage DefaultInstanceForType {
194      get { return DefaultInstance; }
195    }
196   
197    protected override SolutionMessage ThisMessage {
198      get { return this; }
199    }
200   
201    public static pbd::MessageDescriptor Descriptor {
202      get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__Descriptor; }
203    }
204   
205    protected override pb::FieldAccess.FieldAccessorTable<SolutionMessage, SolutionMessage.Builder> InternalFieldAccessors {
206      get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage__FieldAccessorTable; }
207    }
208   
209    #region Nested types
210    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
211    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
212    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
213    public static class Types {
214      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
215      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
216      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
217      public sealed partial class IntegerVariable : pb::GeneratedMessage<IntegerVariable, IntegerVariable.Builder> {
218        private IntegerVariable() { }
219        private static readonly IntegerVariable defaultInstance = new IntegerVariable().MakeReadOnly();
220        private static readonly string[] _integerVariableFieldNames = new string[] { "data", "name" };
221        private static readonly uint[] _integerVariableFieldTags = new uint[] { 16, 10 };
222        public static IntegerVariable DefaultInstance {
223          get { return defaultInstance; }
224        }
225       
226        public override IntegerVariable DefaultInstanceForType {
227          get { return DefaultInstance; }
228        }
229       
230        protected override IntegerVariable ThisMessage {
231          get { return this; }
232        }
233       
234        public static pbd::MessageDescriptor Descriptor {
235          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerVariable__Descriptor; }
236        }
237       
238        protected override pb::FieldAccess.FieldAccessorTable<IntegerVariable, IntegerVariable.Builder> InternalFieldAccessors {
239          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerVariable__FieldAccessorTable; }
240        }
241       
242        public const int NameFieldNumber = 1;
243        private bool hasName;
244        private string name_ = "";
245        public bool HasName {
246          get { return hasName; }
247        }
248        public string Name {
249          get { return name_; }
250        }
251       
252        public const int DataFieldNumber = 2;
253        private bool hasData;
254        private int data_;
255        public bool HasData {
256          get { return hasData; }
257        }
258        public int Data {
259          get { return data_; }
260        }
261       
262        public override bool IsInitialized {
263          get {
264            if (!hasName) return false;
265            return true;
266          }
267        }
268       
269        public override void WriteTo(pb::ICodedOutputStream output) {
270          int size = SerializedSize;
271          string[] field_names = _integerVariableFieldNames;
272          if (hasName) {
273            output.WriteString(1, field_names[1], Name);
274          }
275          if (hasData) {
276            output.WriteInt32(2, field_names[0], Data);
277          }
278          UnknownFields.WriteTo(output);
279        }
280       
281        private int memoizedSerializedSize = -1;
282        public override int SerializedSize {
283          get {
284            int size = memoizedSerializedSize;
285            if (size != -1) return size;
286           
287            size = 0;
288            if (hasName) {
289              size += pb::CodedOutputStream.ComputeStringSize(1, Name);
290            }
291            if (hasData) {
292              size += pb::CodedOutputStream.ComputeInt32Size(2, Data);
293            }
294            size += UnknownFields.SerializedSize;
295            memoizedSerializedSize = size;
296            return size;
297          }
298        }
299       
300        public static IntegerVariable ParseFrom(pb::ByteString data) {
301          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
302        }
303        public static IntegerVariable ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
304          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
305        }
306        public static IntegerVariable ParseFrom(byte[] data) {
307          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
308        }
309        public static IntegerVariable ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
310          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
311        }
312        public static IntegerVariable ParseFrom(global::System.IO.Stream input) {
313          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
314        }
315        public static IntegerVariable ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
316          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
317        }
318        public static IntegerVariable ParseDelimitedFrom(global::System.IO.Stream input) {
319          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
320        }
321        public static IntegerVariable ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
322          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
323        }
324        public static IntegerVariable ParseFrom(pb::ICodedInputStream input) {
325          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
326        }
327        public static IntegerVariable ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
328          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
329        }
330        private IntegerVariable MakeReadOnly() {
331          return this;
332        }
333       
334        public static Builder CreateBuilder() { return new Builder(); }
335        public override Builder ToBuilder() { return CreateBuilder(this); }
336        public override Builder CreateBuilderForType() { return new Builder(); }
337        public static Builder CreateBuilder(IntegerVariable prototype) {
338          return new Builder(prototype);
339        }
340       
341        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
342        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
343        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
344        public sealed partial class Builder : pb::GeneratedBuilder<IntegerVariable, Builder> {
345          protected override Builder ThisBuilder {
346            get { return this; }
347          }
348          public Builder() {
349            result = DefaultInstance;
350            resultIsReadOnly = true;
351          }
352          internal Builder(IntegerVariable cloneFrom) {
353            result = cloneFrom;
354            resultIsReadOnly = true;
355          }
356         
357          private bool resultIsReadOnly;
358          private IntegerVariable result;
359         
360          private IntegerVariable PrepareBuilder() {
361            if (resultIsReadOnly) {
362              IntegerVariable original = result;
363              result = new IntegerVariable();
364              resultIsReadOnly = false;
365              MergeFrom(original);
366            }
367            return result;
368          }
369         
370          public override bool IsInitialized {
371            get { return result.IsInitialized; }
372          }
373         
374          protected override IntegerVariable MessageBeingBuilt {
375            get { return PrepareBuilder(); }
376          }
377         
378          public override Builder Clear() {
379            result = DefaultInstance;
380            resultIsReadOnly = true;
381            return this;
382          }
383         
384          public override Builder Clone() {
385            if (resultIsReadOnly) {
386              return new Builder(result);
387            } else {
388              return new Builder().MergeFrom(result);
389            }
390          }
391         
392          public override pbd::MessageDescriptor DescriptorForType {
393            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable.Descriptor; }
394          }
395         
396          public override IntegerVariable DefaultInstanceForType {
397            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable.DefaultInstance; }
398          }
399         
400          public override IntegerVariable BuildPartial() {
401            if (resultIsReadOnly) {
402              return result;
403            }
404            resultIsReadOnly = true;
405            return result.MakeReadOnly();
406          }
407         
408          public override Builder MergeFrom(pb::IMessage other) {
409            if (other is IntegerVariable) {
410              return MergeFrom((IntegerVariable) other);
411            } else {
412              base.MergeFrom(other);
413              return this;
414            }
415          }
416         
417          public override Builder MergeFrom(IntegerVariable other) {
418            if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable.DefaultInstance) return this;
419            PrepareBuilder();
420            if (other.HasName) {
421              Name = other.Name;
422            }
423            if (other.HasData) {
424              Data = other.Data;
425            }
426            this.MergeUnknownFields(other.UnknownFields);
427            return this;
428          }
429         
430          public override Builder MergeFrom(pb::ICodedInputStream input) {
431            return MergeFrom(input, pb::ExtensionRegistry.Empty);
432          }
433         
434          public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
435            PrepareBuilder();
436            pb::UnknownFieldSet.Builder unknownFields = null;
437            uint tag;
438            string field_name;
439            while (input.ReadTag(out tag, out field_name)) {
440              if(tag == 0 && field_name != null) {
441                int field_ordinal = global::System.Array.BinarySearch(_integerVariableFieldNames, field_name, global::System.StringComparer.Ordinal);
442                if(field_ordinal >= 0)
443                  tag = _integerVariableFieldTags[field_ordinal];
444                else {
445                  if (unknownFields == null) {
446                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
447                  }
448                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
449                  continue;
450                }
451              }
452              switch (tag) {
453                case 0: {
454                  throw pb::InvalidProtocolBufferException.InvalidTag();
455                }
456                default: {
457                  if (pb::WireFormat.IsEndGroupTag(tag)) {
458                    if (unknownFields != null) {
459                      this.UnknownFields = unknownFields.Build();
460                    }
461                    return this;
462                  }
463                  if (unknownFields == null) {
464                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
465                  }
466                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
467                  break;
468                }
469                case 10: {
470                  result.hasName = input.ReadString(ref result.name_);
471                  break;
472                }
473                case 16: {
474                  result.hasData = input.ReadInt32(ref result.data_);
475                  break;
476                }
477              }
478            }
479           
480            if (unknownFields != null) {
481              this.UnknownFields = unknownFields.Build();
482            }
483            return this;
484          }
485         
486         
487          public bool HasName {
488            get { return result.hasName; }
489          }
490          public string Name {
491            get { return result.Name; }
492            set { SetName(value); }
493          }
494          public Builder SetName(string value) {
495            pb::ThrowHelper.ThrowIfNull(value, "value");
496            PrepareBuilder();
497            result.hasName = true;
498            result.name_ = value;
499            return this;
500          }
501          public Builder ClearName() {
502            PrepareBuilder();
503            result.hasName = false;
504            result.name_ = "";
505            return this;
506          }
507         
508          public bool HasData {
509            get { return result.hasData; }
510          }
511          public int Data {
512            get { return result.Data; }
513            set { SetData(value); }
514          }
515          public Builder SetData(int value) {
516            PrepareBuilder();
517            result.hasData = true;
518            result.data_ = value;
519            return this;
520          }
521          public Builder ClearData() {
522            PrepareBuilder();
523            result.hasData = false;
524            result.data_ = 0;
525            return this;
526          }
527        }
528        static IntegerVariable() {
529          object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
530        }
531      }
532     
533      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
534      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
535      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
536      public sealed partial class IntegerArrayVariable : pb::GeneratedMessage<IntegerArrayVariable, IntegerArrayVariable.Builder> {
537        private IntegerArrayVariable() { }
538        private static readonly IntegerArrayVariable defaultInstance = new IntegerArrayVariable().MakeReadOnly();
539        private static readonly string[] _integerArrayVariableFieldNames = new string[] { "data", "length", "name" };
540        private static readonly uint[] _integerArrayVariableFieldTags = new uint[] { 16, 24, 10 };
541        public static IntegerArrayVariable DefaultInstance {
542          get { return defaultInstance; }
543        }
544       
545        public override IntegerArrayVariable DefaultInstanceForType {
546          get { return DefaultInstance; }
547        }
548       
549        protected override IntegerArrayVariable ThisMessage {
550          get { return this; }
551        }
552       
553        public static pbd::MessageDescriptor Descriptor {
554          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerArrayVariable__Descriptor; }
555        }
556       
557        protected override pb::FieldAccess.FieldAccessorTable<IntegerArrayVariable, IntegerArrayVariable.Builder> InternalFieldAccessors {
558          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_IntegerArrayVariable__FieldAccessorTable; }
559        }
560       
561        public const int NameFieldNumber = 1;
562        private bool hasName;
563        private string name_ = "";
564        public bool HasName {
565          get { return hasName; }
566        }
567        public string Name {
568          get { return name_; }
569        }
570       
571        public const int DataFieldNumber = 2;
572        private pbc::PopsicleList<int> data_ = new pbc::PopsicleList<int>();
573        public scg::IList<int> DataList {
574          get { return pbc::Lists.AsReadOnly(data_); }
575        }
576        public int DataCount {
577          get { return data_.Count; }
578        }
579        public int GetData(int index) {
580          return data_[index];
581        }
582       
583        public const int LengthFieldNumber = 3;
584        private bool hasLength;
585        private int length_;
586        public bool HasLength {
587          get { return hasLength; }
588        }
589        public int Length {
590          get { return length_; }
591        }
592       
593        public override bool IsInitialized {
594          get {
595            if (!hasName) return false;
596            return true;
597          }
598        }
599       
600        public override void WriteTo(pb::ICodedOutputStream output) {
601          int size = SerializedSize;
602          string[] field_names = _integerArrayVariableFieldNames;
603          if (hasName) {
604            output.WriteString(1, field_names[2], Name);
605          }
606          if (data_.Count > 0) {
607            output.WriteInt32Array(2, field_names[0], data_);
608          }
609          if (hasLength) {
610            output.WriteInt32(3, field_names[1], Length);
611          }
612          UnknownFields.WriteTo(output);
613        }
614       
615        private int memoizedSerializedSize = -1;
616        public override int SerializedSize {
617          get {
618            int size = memoizedSerializedSize;
619            if (size != -1) return size;
620           
621            size = 0;
622            if (hasName) {
623              size += pb::CodedOutputStream.ComputeStringSize(1, Name);
624            }
625            {
626              int dataSize = 0;
627              foreach (int element in DataList) {
628                dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
629              }
630              size += dataSize;
631              size += 1 * data_.Count;
632            }
633            if (hasLength) {
634              size += pb::CodedOutputStream.ComputeInt32Size(3, Length);
635            }
636            size += UnknownFields.SerializedSize;
637            memoizedSerializedSize = size;
638            return size;
639          }
640        }
641       
642        public static IntegerArrayVariable ParseFrom(pb::ByteString data) {
643          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
644        }
645        public static IntegerArrayVariable ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
646          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
647        }
648        public static IntegerArrayVariable ParseFrom(byte[] data) {
649          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
650        }
651        public static IntegerArrayVariable ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
652          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
653        }
654        public static IntegerArrayVariable ParseFrom(global::System.IO.Stream input) {
655          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
656        }
657        public static IntegerArrayVariable ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
658          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
659        }
660        public static IntegerArrayVariable ParseDelimitedFrom(global::System.IO.Stream input) {
661          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
662        }
663        public static IntegerArrayVariable ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
664          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
665        }
666        public static IntegerArrayVariable ParseFrom(pb::ICodedInputStream input) {
667          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
668        }
669        public static IntegerArrayVariable ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
670          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
671        }
672        private IntegerArrayVariable MakeReadOnly() {
673          data_.MakeReadOnly();
674          return this;
675        }
676       
677        public static Builder CreateBuilder() { return new Builder(); }
678        public override Builder ToBuilder() { return CreateBuilder(this); }
679        public override Builder CreateBuilderForType() { return new Builder(); }
680        public static Builder CreateBuilder(IntegerArrayVariable prototype) {
681          return new Builder(prototype);
682        }
683       
684        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
685        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
686        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
687        public sealed partial class Builder : pb::GeneratedBuilder<IntegerArrayVariable, Builder> {
688          protected override Builder ThisBuilder {
689            get { return this; }
690          }
691          public Builder() {
692            result = DefaultInstance;
693            resultIsReadOnly = true;
694          }
695          internal Builder(IntegerArrayVariable cloneFrom) {
696            result = cloneFrom;
697            resultIsReadOnly = true;
698          }
699         
700          private bool resultIsReadOnly;
701          private IntegerArrayVariable result;
702         
703          private IntegerArrayVariable PrepareBuilder() {
704            if (resultIsReadOnly) {
705              IntegerArrayVariable original = result;
706              result = new IntegerArrayVariable();
707              resultIsReadOnly = false;
708              MergeFrom(original);
709            }
710            return result;
711          }
712         
713          public override bool IsInitialized {
714            get { return result.IsInitialized; }
715          }
716         
717          protected override IntegerArrayVariable MessageBeingBuilt {
718            get { return PrepareBuilder(); }
719          }
720         
721          public override Builder Clear() {
722            result = DefaultInstance;
723            resultIsReadOnly = true;
724            return this;
725          }
726         
727          public override Builder Clone() {
728            if (resultIsReadOnly) {
729              return new Builder(result);
730            } else {
731              return new Builder().MergeFrom(result);
732            }
733          }
734         
735          public override pbd::MessageDescriptor DescriptorForType {
736            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable.Descriptor; }
737          }
738         
739          public override IntegerArrayVariable DefaultInstanceForType {
740            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable.DefaultInstance; }
741          }
742         
743          public override IntegerArrayVariable BuildPartial() {
744            if (resultIsReadOnly) {
745              return result;
746            }
747            resultIsReadOnly = true;
748            return result.MakeReadOnly();
749          }
750         
751          public override Builder MergeFrom(pb::IMessage other) {
752            if (other is IntegerArrayVariable) {
753              return MergeFrom((IntegerArrayVariable) other);
754            } else {
755              base.MergeFrom(other);
756              return this;
757            }
758          }
759         
760          public override Builder MergeFrom(IntegerArrayVariable other) {
761            if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable.DefaultInstance) return this;
762            PrepareBuilder();
763            if (other.HasName) {
764              Name = other.Name;
765            }
766            if (other.data_.Count != 0) {
767              result.data_.Add(other.data_);
768            }
769            if (other.HasLength) {
770              Length = other.Length;
771            }
772            this.MergeUnknownFields(other.UnknownFields);
773            return this;
774          }
775         
776          public override Builder MergeFrom(pb::ICodedInputStream input) {
777            return MergeFrom(input, pb::ExtensionRegistry.Empty);
778          }
779         
780          public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
781            PrepareBuilder();
782            pb::UnknownFieldSet.Builder unknownFields = null;
783            uint tag;
784            string field_name;
785            while (input.ReadTag(out tag, out field_name)) {
786              if(tag == 0 && field_name != null) {
787                int field_ordinal = global::System.Array.BinarySearch(_integerArrayVariableFieldNames, field_name, global::System.StringComparer.Ordinal);
788                if(field_ordinal >= 0)
789                  tag = _integerArrayVariableFieldTags[field_ordinal];
790                else {
791                  if (unknownFields == null) {
792                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
793                  }
794                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
795                  continue;
796                }
797              }
798              switch (tag) {
799                case 0: {
800                  throw pb::InvalidProtocolBufferException.InvalidTag();
801                }
802                default: {
803                  if (pb::WireFormat.IsEndGroupTag(tag)) {
804                    if (unknownFields != null) {
805                      this.UnknownFields = unknownFields.Build();
806                    }
807                    return this;
808                  }
809                  if (unknownFields == null) {
810                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
811                  }
812                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
813                  break;
814                }
815                case 10: {
816                  result.hasName = input.ReadString(ref result.name_);
817                  break;
818                }
819                case 18:
820                case 16: {
821                  input.ReadInt32Array(tag, field_name, result.data_);
822                  break;
823                }
824                case 24: {
825                  result.hasLength = input.ReadInt32(ref result.length_);
826                  break;
827                }
828              }
829            }
830           
831            if (unknownFields != null) {
832              this.UnknownFields = unknownFields.Build();
833            }
834            return this;
835          }
836         
837         
838          public bool HasName {
839            get { return result.hasName; }
840          }
841          public string Name {
842            get { return result.Name; }
843            set { SetName(value); }
844          }
845          public Builder SetName(string value) {
846            pb::ThrowHelper.ThrowIfNull(value, "value");
847            PrepareBuilder();
848            result.hasName = true;
849            result.name_ = value;
850            return this;
851          }
852          public Builder ClearName() {
853            PrepareBuilder();
854            result.hasName = false;
855            result.name_ = "";
856            return this;
857          }
858         
859          public pbc::IPopsicleList<int> DataList {
860            get { return PrepareBuilder().data_; }
861          }
862          public int DataCount {
863            get { return result.DataCount; }
864          }
865          public int GetData(int index) {
866            return result.GetData(index);
867          }
868          public Builder SetData(int index, int value) {
869            PrepareBuilder();
870            result.data_[index] = value;
871            return this;
872          }
873          public Builder AddData(int value) {
874            PrepareBuilder();
875            result.data_.Add(value);
876            return this;
877          }
878          public Builder AddRangeData(scg::IEnumerable<int> values) {
879            PrepareBuilder();
880            result.data_.Add(values);
881            return this;
882          }
883          public Builder ClearData() {
884            PrepareBuilder();
885            result.data_.Clear();
886            return this;
887          }
888         
889          public bool HasLength {
890            get { return result.hasLength; }
891          }
892          public int Length {
893            get { return result.Length; }
894            set { SetLength(value); }
895          }
896          public Builder SetLength(int value) {
897            PrepareBuilder();
898            result.hasLength = true;
899            result.length_ = value;
900            return this;
901          }
902          public Builder ClearLength() {
903            PrepareBuilder();
904            result.hasLength = false;
905            result.length_ = 0;
906            return this;
907          }
908        }
909        static IntegerArrayVariable() {
910          object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
911        }
912      }
913     
914      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
915      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
916      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
917      public sealed partial class DoubleVariable : pb::GeneratedMessage<DoubleVariable, DoubleVariable.Builder> {
918        private DoubleVariable() { }
919        private static readonly DoubleVariable defaultInstance = new DoubleVariable().MakeReadOnly();
920        private static readonly string[] _doubleVariableFieldNames = new string[] { "data", "name" };
921        private static readonly uint[] _doubleVariableFieldTags = new uint[] { 17, 10 };
922        public static DoubleVariable DefaultInstance {
923          get { return defaultInstance; }
924        }
925       
926        public override DoubleVariable DefaultInstanceForType {
927          get { return DefaultInstance; }
928        }
929       
930        protected override DoubleVariable ThisMessage {
931          get { return this; }
932        }
933       
934        public static pbd::MessageDescriptor Descriptor {
935          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleVariable__Descriptor; }
936        }
937       
938        protected override pb::FieldAccess.FieldAccessorTable<DoubleVariable, DoubleVariable.Builder> InternalFieldAccessors {
939          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleVariable__FieldAccessorTable; }
940        }
941       
942        public const int NameFieldNumber = 1;
943        private bool hasName;
944        private string name_ = "";
945        public bool HasName {
946          get { return hasName; }
947        }
948        public string Name {
949          get { return name_; }
950        }
951       
952        public const int DataFieldNumber = 2;
953        private bool hasData;
954        private double data_;
955        public bool HasData {
956          get { return hasData; }
957        }
958        public double Data {
959          get { return data_; }
960        }
961       
962        public override bool IsInitialized {
963          get {
964            if (!hasName) return false;
965            return true;
966          }
967        }
968       
969        public override void WriteTo(pb::ICodedOutputStream output) {
970          int size = SerializedSize;
971          string[] field_names = _doubleVariableFieldNames;
972          if (hasName) {
973            output.WriteString(1, field_names[1], Name);
974          }
975          if (hasData) {
976            output.WriteDouble(2, field_names[0], Data);
977          }
978          UnknownFields.WriteTo(output);
979        }
980       
981        private int memoizedSerializedSize = -1;
982        public override int SerializedSize {
983          get {
984            int size = memoizedSerializedSize;
985            if (size != -1) return size;
986           
987            size = 0;
988            if (hasName) {
989              size += pb::CodedOutputStream.ComputeStringSize(1, Name);
990            }
991            if (hasData) {
992              size += pb::CodedOutputStream.ComputeDoubleSize(2, Data);
993            }
994            size += UnknownFields.SerializedSize;
995            memoizedSerializedSize = size;
996            return size;
997          }
998        }
999       
1000        public static DoubleVariable ParseFrom(pb::ByteString data) {
1001          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
1002        }
1003        public static DoubleVariable ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
1004          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
1005        }
1006        public static DoubleVariable ParseFrom(byte[] data) {
1007          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
1008        }
1009        public static DoubleVariable ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
1010          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
1011        }
1012        public static DoubleVariable ParseFrom(global::System.IO.Stream input) {
1013          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
1014        }
1015        public static DoubleVariable ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
1016          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
1017        }
1018        public static DoubleVariable ParseDelimitedFrom(global::System.IO.Stream input) {
1019          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
1020        }
1021        public static DoubleVariable ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
1022          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
1023        }
1024        public static DoubleVariable ParseFrom(pb::ICodedInputStream input) {
1025          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
1026        }
1027        public static DoubleVariable ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
1028          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
1029        }
1030        private DoubleVariable MakeReadOnly() {
1031          return this;
1032        }
1033       
1034        public static Builder CreateBuilder() { return new Builder(); }
1035        public override Builder ToBuilder() { return CreateBuilder(this); }
1036        public override Builder CreateBuilderForType() { return new Builder(); }
1037        public static Builder CreateBuilder(DoubleVariable prototype) {
1038          return new Builder(prototype);
1039        }
1040       
1041        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
1042        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
1043        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
1044        public sealed partial class Builder : pb::GeneratedBuilder<DoubleVariable, Builder> {
1045          protected override Builder ThisBuilder {
1046            get { return this; }
1047          }
1048          public Builder() {
1049            result = DefaultInstance;
1050            resultIsReadOnly = true;
1051          }
1052          internal Builder(DoubleVariable cloneFrom) {
1053            result = cloneFrom;
1054            resultIsReadOnly = true;
1055          }
1056         
1057          private bool resultIsReadOnly;
1058          private DoubleVariable result;
1059         
1060          private DoubleVariable PrepareBuilder() {
1061            if (resultIsReadOnly) {
1062              DoubleVariable original = result;
1063              result = new DoubleVariable();
1064              resultIsReadOnly = false;
1065              MergeFrom(original);
1066            }
1067            return result;
1068          }
1069         
1070          public override bool IsInitialized {
1071            get { return result.IsInitialized; }
1072          }
1073         
1074          protected override DoubleVariable MessageBeingBuilt {
1075            get { return PrepareBuilder(); }
1076          }
1077         
1078          public override Builder Clear() {
1079            result = DefaultInstance;
1080            resultIsReadOnly = true;
1081            return this;
1082          }
1083         
1084          public override Builder Clone() {
1085            if (resultIsReadOnly) {
1086              return new Builder(result);
1087            } else {
1088              return new Builder().MergeFrom(result);
1089            }
1090          }
1091         
1092          public override pbd::MessageDescriptor DescriptorForType {
1093            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable.Descriptor; }
1094          }
1095         
1096          public override DoubleVariable DefaultInstanceForType {
1097            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable.DefaultInstance; }
1098          }
1099         
1100          public override DoubleVariable BuildPartial() {
1101            if (resultIsReadOnly) {
1102              return result;
1103            }
1104            resultIsReadOnly = true;
1105            return result.MakeReadOnly();
1106          }
1107         
1108          public override Builder MergeFrom(pb::IMessage other) {
1109            if (other is DoubleVariable) {
1110              return MergeFrom((DoubleVariable) other);
1111            } else {
1112              base.MergeFrom(other);
1113              return this;
1114            }
1115          }
1116         
1117          public override Builder MergeFrom(DoubleVariable other) {
1118            if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable.DefaultInstance) return this;
1119            PrepareBuilder();
1120            if (other.HasName) {
1121              Name = other.Name;
1122            }
1123            if (other.HasData) {
1124              Data = other.Data;
1125            }
1126            this.MergeUnknownFields(other.UnknownFields);
1127            return this;
1128          }
1129         
1130          public override Builder MergeFrom(pb::ICodedInputStream input) {
1131            return MergeFrom(input, pb::ExtensionRegistry.Empty);
1132          }
1133         
1134          public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
1135            PrepareBuilder();
1136            pb::UnknownFieldSet.Builder unknownFields = null;
1137            uint tag;
1138            string field_name;
1139            while (input.ReadTag(out tag, out field_name)) {
1140              if(tag == 0 && field_name != null) {
1141                int field_ordinal = global::System.Array.BinarySearch(_doubleVariableFieldNames, field_name, global::System.StringComparer.Ordinal);
1142                if(field_ordinal >= 0)
1143                  tag = _doubleVariableFieldTags[field_ordinal];
1144                else {
1145                  if (unknownFields == null) {
1146                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
1147                  }
1148                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
1149                  continue;
1150                }
1151              }
1152              switch (tag) {
1153                case 0: {
1154                  throw pb::InvalidProtocolBufferException.InvalidTag();
1155                }
1156                default: {
1157                  if (pb::WireFormat.IsEndGroupTag(tag)) {
1158                    if (unknownFields != null) {
1159                      this.UnknownFields = unknownFields.Build();
1160                    }
1161                    return this;
1162                  }
1163                  if (unknownFields == null) {
1164                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
1165                  }
1166                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
1167                  break;
1168                }
1169                case 10: {
1170                  result.hasName = input.ReadString(ref result.name_);
1171                  break;
1172                }
1173                case 17: {
1174                  result.hasData = input.ReadDouble(ref result.data_);
1175                  break;
1176                }
1177              }
1178            }
1179           
1180            if (unknownFields != null) {
1181              this.UnknownFields = unknownFields.Build();
1182            }
1183            return this;
1184          }
1185         
1186         
1187          public bool HasName {
1188            get { return result.hasName; }
1189          }
1190          public string Name {
1191            get { return result.Name; }
1192            set { SetName(value); }
1193          }
1194          public Builder SetName(string value) {
1195            pb::ThrowHelper.ThrowIfNull(value, "value");
1196            PrepareBuilder();
1197            result.hasName = true;
1198            result.name_ = value;
1199            return this;
1200          }
1201          public Builder ClearName() {
1202            PrepareBuilder();
1203            result.hasName = false;
1204            result.name_ = "";
1205            return this;
1206          }
1207         
1208          public bool HasData {
1209            get { return result.hasData; }
1210          }
1211          public double Data {
1212            get { return result.Data; }
1213            set { SetData(value); }
1214          }
1215          public Builder SetData(double value) {
1216            PrepareBuilder();
1217            result.hasData = true;
1218            result.data_ = value;
1219            return this;
1220          }
1221          public Builder ClearData() {
1222            PrepareBuilder();
1223            result.hasData = false;
1224            result.data_ = 0D;
1225            return this;
1226          }
1227        }
1228        static DoubleVariable() {
1229          object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
1230        }
1231      }
1232     
1233      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
1234      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
1235      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
1236      public sealed partial class DoubleArrayVariable : pb::GeneratedMessage<DoubleArrayVariable, DoubleArrayVariable.Builder> {
1237        private DoubleArrayVariable() { }
1238        private static readonly DoubleArrayVariable defaultInstance = new DoubleArrayVariable().MakeReadOnly();
1239        private static readonly string[] _doubleArrayVariableFieldNames = new string[] { "data", "length", "name" };
1240        private static readonly uint[] _doubleArrayVariableFieldTags = new uint[] { 17, 24, 10 };
1241        public static DoubleArrayVariable DefaultInstance {
1242          get { return defaultInstance; }
1243        }
1244       
1245        public override DoubleArrayVariable DefaultInstanceForType {
1246          get { return DefaultInstance; }
1247        }
1248       
1249        protected override DoubleArrayVariable ThisMessage {
1250          get { return this; }
1251        }
1252       
1253        public static pbd::MessageDescriptor Descriptor {
1254          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleArrayVariable__Descriptor; }
1255        }
1256       
1257        protected override pb::FieldAccess.FieldAccessorTable<DoubleArrayVariable, DoubleArrayVariable.Builder> InternalFieldAccessors {
1258          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_DoubleArrayVariable__FieldAccessorTable; }
1259        }
1260       
1261        public const int NameFieldNumber = 1;
1262        private bool hasName;
1263        private string name_ = "";
1264        public bool HasName {
1265          get { return hasName; }
1266        }
1267        public string Name {
1268          get { return name_; }
1269        }
1270       
1271        public const int DataFieldNumber = 2;
1272        private pbc::PopsicleList<double> data_ = new pbc::PopsicleList<double>();
1273        public scg::IList<double> DataList {
1274          get { return pbc::Lists.AsReadOnly(data_); }
1275        }
1276        public int DataCount {
1277          get { return data_.Count; }
1278        }
1279        public double GetData(int index) {
1280          return data_[index];
1281        }
1282       
1283        public const int LengthFieldNumber = 3;
1284        private bool hasLength;
1285        private int length_;
1286        public bool HasLength {
1287          get { return hasLength; }
1288        }
1289        public int Length {
1290          get { return length_; }
1291        }
1292       
1293        public override bool IsInitialized {
1294          get {
1295            if (!hasName) return false;
1296            return true;
1297          }
1298        }
1299       
1300        public override void WriteTo(pb::ICodedOutputStream output) {
1301          int size = SerializedSize;
1302          string[] field_names = _doubleArrayVariableFieldNames;
1303          if (hasName) {
1304            output.WriteString(1, field_names[2], Name);
1305          }
1306          if (data_.Count > 0) {
1307            output.WriteDoubleArray(2, field_names[0], data_);
1308          }
1309          if (hasLength) {
1310            output.WriteInt32(3, field_names[1], Length);
1311          }
1312          UnknownFields.WriteTo(output);
1313        }
1314       
1315        private int memoizedSerializedSize = -1;
1316        public override int SerializedSize {
1317          get {
1318            int size = memoizedSerializedSize;
1319            if (size != -1) return size;
1320           
1321            size = 0;
1322            if (hasName) {
1323              size += pb::CodedOutputStream.ComputeStringSize(1, Name);
1324            }
1325            {
1326              int dataSize = 0;
1327              dataSize = 8 * data_.Count;
1328              size += dataSize;
1329              size += 1 * data_.Count;
1330            }
1331            if (hasLength) {
1332              size += pb::CodedOutputStream.ComputeInt32Size(3, Length);
1333            }
1334            size += UnknownFields.SerializedSize;
1335            memoizedSerializedSize = size;
1336            return size;
1337          }
1338        }
1339       
1340        public static DoubleArrayVariable ParseFrom(pb::ByteString data) {
1341          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
1342        }
1343        public static DoubleArrayVariable ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
1344          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
1345        }
1346        public static DoubleArrayVariable ParseFrom(byte[] data) {
1347          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
1348        }
1349        public static DoubleArrayVariable ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
1350          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
1351        }
1352        public static DoubleArrayVariable ParseFrom(global::System.IO.Stream input) {
1353          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
1354        }
1355        public static DoubleArrayVariable ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
1356          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
1357        }
1358        public static DoubleArrayVariable ParseDelimitedFrom(global::System.IO.Stream input) {
1359          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
1360        }
1361        public static DoubleArrayVariable ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
1362          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
1363        }
1364        public static DoubleArrayVariable ParseFrom(pb::ICodedInputStream input) {
1365          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
1366        }
1367        public static DoubleArrayVariable ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
1368          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
1369        }
1370        private DoubleArrayVariable MakeReadOnly() {
1371          data_.MakeReadOnly();
1372          return this;
1373        }
1374       
1375        public static Builder CreateBuilder() { return new Builder(); }
1376        public override Builder ToBuilder() { return CreateBuilder(this); }
1377        public override Builder CreateBuilderForType() { return new Builder(); }
1378        public static Builder CreateBuilder(DoubleArrayVariable prototype) {
1379          return new Builder(prototype);
1380        }
1381       
1382        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
1383        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
1384        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
1385        public sealed partial class Builder : pb::GeneratedBuilder<DoubleArrayVariable, Builder> {
1386          protected override Builder ThisBuilder {
1387            get { return this; }
1388          }
1389          public Builder() {
1390            result = DefaultInstance;
1391            resultIsReadOnly = true;
1392          }
1393          internal Builder(DoubleArrayVariable cloneFrom) {
1394            result = cloneFrom;
1395            resultIsReadOnly = true;
1396          }
1397         
1398          private bool resultIsReadOnly;
1399          private DoubleArrayVariable result;
1400         
1401          private DoubleArrayVariable PrepareBuilder() {
1402            if (resultIsReadOnly) {
1403              DoubleArrayVariable original = result;
1404              result = new DoubleArrayVariable();
1405              resultIsReadOnly = false;
1406              MergeFrom(original);
1407            }
1408            return result;
1409          }
1410         
1411          public override bool IsInitialized {
1412            get { return result.IsInitialized; }
1413          }
1414         
1415          protected override DoubleArrayVariable MessageBeingBuilt {
1416            get { return PrepareBuilder(); }
1417          }
1418         
1419          public override Builder Clear() {
1420            result = DefaultInstance;
1421            resultIsReadOnly = true;
1422            return this;
1423          }
1424         
1425          public override Builder Clone() {
1426            if (resultIsReadOnly) {
1427              return new Builder(result);
1428            } else {
1429              return new Builder().MergeFrom(result);
1430            }
1431          }
1432         
1433          public override pbd::MessageDescriptor DescriptorForType {
1434            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable.Descriptor; }
1435          }
1436         
1437          public override DoubleArrayVariable DefaultInstanceForType {
1438            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable.DefaultInstance; }
1439          }
1440         
1441          public override DoubleArrayVariable BuildPartial() {
1442            if (resultIsReadOnly) {
1443              return result;
1444            }
1445            resultIsReadOnly = true;
1446            return result.MakeReadOnly();
1447          }
1448         
1449          public override Builder MergeFrom(pb::IMessage other) {
1450            if (other is DoubleArrayVariable) {
1451              return MergeFrom((DoubleArrayVariable) other);
1452            } else {
1453              base.MergeFrom(other);
1454              return this;
1455            }
1456          }
1457         
1458          public override Builder MergeFrom(DoubleArrayVariable other) {
1459            if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable.DefaultInstance) return this;
1460            PrepareBuilder();
1461            if (other.HasName) {
1462              Name = other.Name;
1463            }
1464            if (other.data_.Count != 0) {
1465              result.data_.Add(other.data_);
1466            }
1467            if (other.HasLength) {
1468              Length = other.Length;
1469            }
1470            this.MergeUnknownFields(other.UnknownFields);
1471            return this;
1472          }
1473         
1474          public override Builder MergeFrom(pb::ICodedInputStream input) {
1475            return MergeFrom(input, pb::ExtensionRegistry.Empty);
1476          }
1477         
1478          public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
1479            PrepareBuilder();
1480            pb::UnknownFieldSet.Builder unknownFields = null;
1481            uint tag;
1482            string field_name;
1483            while (input.ReadTag(out tag, out field_name)) {
1484              if(tag == 0 && field_name != null) {
1485                int field_ordinal = global::System.Array.BinarySearch(_doubleArrayVariableFieldNames, field_name, global::System.StringComparer.Ordinal);
1486                if(field_ordinal >= 0)
1487                  tag = _doubleArrayVariableFieldTags[field_ordinal];
1488                else {
1489                  if (unknownFields == null) {
1490                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
1491                  }
1492                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
1493                  continue;
1494                }
1495              }
1496              switch (tag) {
1497                case 0: {
1498                  throw pb::InvalidProtocolBufferException.InvalidTag();
1499                }
1500                default: {
1501                  if (pb::WireFormat.IsEndGroupTag(tag)) {
1502                    if (unknownFields != null) {
1503                      this.UnknownFields = unknownFields.Build();
1504                    }
1505                    return this;
1506                  }
1507                  if (unknownFields == null) {
1508                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
1509                  }
1510                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
1511                  break;
1512                }
1513                case 10: {
1514                  result.hasName = input.ReadString(ref result.name_);
1515                  break;
1516                }
1517                case 18:
1518                case 17: {
1519                  input.ReadDoubleArray(tag, field_name, result.data_);
1520                  break;
1521                }
1522                case 24: {
1523                  result.hasLength = input.ReadInt32(ref result.length_);
1524                  break;
1525                }
1526              }
1527            }
1528           
1529            if (unknownFields != null) {
1530              this.UnknownFields = unknownFields.Build();
1531            }
1532            return this;
1533          }
1534         
1535         
1536          public bool HasName {
1537            get { return result.hasName; }
1538          }
1539          public string Name {
1540            get { return result.Name; }
1541            set { SetName(value); }
1542          }
1543          public Builder SetName(string value) {
1544            pb::ThrowHelper.ThrowIfNull(value, "value");
1545            PrepareBuilder();
1546            result.hasName = true;
1547            result.name_ = value;
1548            return this;
1549          }
1550          public Builder ClearName() {
1551            PrepareBuilder();
1552            result.hasName = false;
1553            result.name_ = "";
1554            return this;
1555          }
1556         
1557          public pbc::IPopsicleList<double> DataList {
1558            get { return PrepareBuilder().data_; }
1559          }
1560          public int DataCount {
1561            get { return result.DataCount; }
1562          }
1563          public double GetData(int index) {
1564            return result.GetData(index);
1565          }
1566          public Builder SetData(int index, double value) {
1567            PrepareBuilder();
1568            result.data_[index] = value;
1569            return this;
1570          }
1571          public Builder AddData(double value) {
1572            PrepareBuilder();
1573            result.data_.Add(value);
1574            return this;
1575          }
1576          public Builder AddRangeData(scg::IEnumerable<double> values) {
1577            PrepareBuilder();
1578            result.data_.Add(values);
1579            return this;
1580          }
1581          public Builder ClearData() {
1582            PrepareBuilder();
1583            result.data_.Clear();
1584            return this;
1585          }
1586         
1587          public bool HasLength {
1588            get { return result.hasLength; }
1589          }
1590          public int Length {
1591            get { return result.Length; }
1592            set { SetLength(value); }
1593          }
1594          public Builder SetLength(int value) {
1595            PrepareBuilder();
1596            result.hasLength = true;
1597            result.length_ = value;
1598            return this;
1599          }
1600          public Builder ClearLength() {
1601            PrepareBuilder();
1602            result.hasLength = false;
1603            result.length_ = 0;
1604            return this;
1605          }
1606        }
1607        static DoubleArrayVariable() {
1608          object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
1609        }
1610      }
1611     
1612      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
1613      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
1614      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
1615      public sealed partial class BoolVariable : pb::GeneratedMessage<BoolVariable, BoolVariable.Builder> {
1616        private BoolVariable() { }
1617        private static readonly BoolVariable defaultInstance = new BoolVariable().MakeReadOnly();
1618        private static readonly string[] _boolVariableFieldNames = new string[] { "data", "name" };
1619        private static readonly uint[] _boolVariableFieldTags = new uint[] { 16, 10 };
1620        public static BoolVariable DefaultInstance {
1621          get { return defaultInstance; }
1622        }
1623       
1624        public override BoolVariable DefaultInstanceForType {
1625          get { return DefaultInstance; }
1626        }
1627       
1628        protected override BoolVariable ThisMessage {
1629          get { return this; }
1630        }
1631       
1632        public static pbd::MessageDescriptor Descriptor {
1633          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolVariable__Descriptor; }
1634        }
1635       
1636        protected override pb::FieldAccess.FieldAccessorTable<BoolVariable, BoolVariable.Builder> InternalFieldAccessors {
1637          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolVariable__FieldAccessorTable; }
1638        }
1639       
1640        public const int NameFieldNumber = 1;
1641        private bool hasName;
1642        private string name_ = "";
1643        public bool HasName {
1644          get { return hasName; }
1645        }
1646        public string Name {
1647          get { return name_; }
1648        }
1649       
1650        public const int DataFieldNumber = 2;
1651        private bool hasData;
1652        private bool data_;
1653        public bool HasData {
1654          get { return hasData; }
1655        }
1656        public bool Data {
1657          get { return data_; }
1658        }
1659       
1660        public override bool IsInitialized {
1661          get {
1662            if (!hasName) return false;
1663            return true;
1664          }
1665        }
1666       
1667        public override void WriteTo(pb::ICodedOutputStream output) {
1668          int size = SerializedSize;
1669          string[] field_names = _boolVariableFieldNames;
1670          if (hasName) {
1671            output.WriteString(1, field_names[1], Name);
1672          }
1673          if (hasData) {
1674            output.WriteBool(2, field_names[0], Data);
1675          }
1676          UnknownFields.WriteTo(output);
1677        }
1678       
1679        private int memoizedSerializedSize = -1;
1680        public override int SerializedSize {
1681          get {
1682            int size = memoizedSerializedSize;
1683            if (size != -1) return size;
1684           
1685            size = 0;
1686            if (hasName) {
1687              size += pb::CodedOutputStream.ComputeStringSize(1, Name);
1688            }
1689            if (hasData) {
1690              size += pb::CodedOutputStream.ComputeBoolSize(2, Data);
1691            }
1692            size += UnknownFields.SerializedSize;
1693            memoizedSerializedSize = size;
1694            return size;
1695          }
1696        }
1697       
1698        public static BoolVariable ParseFrom(pb::ByteString data) {
1699          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
1700        }
1701        public static BoolVariable ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
1702          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
1703        }
1704        public static BoolVariable ParseFrom(byte[] data) {
1705          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
1706        }
1707        public static BoolVariable ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
1708          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
1709        }
1710        public static BoolVariable ParseFrom(global::System.IO.Stream input) {
1711          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
1712        }
1713        public static BoolVariable ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
1714          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
1715        }
1716        public static BoolVariable ParseDelimitedFrom(global::System.IO.Stream input) {
1717          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
1718        }
1719        public static BoolVariable ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
1720          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
1721        }
1722        public static BoolVariable ParseFrom(pb::ICodedInputStream input) {
1723          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
1724        }
1725        public static BoolVariable ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
1726          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
1727        }
1728        private BoolVariable MakeReadOnly() {
1729          return this;
1730        }
1731       
1732        public static Builder CreateBuilder() { return new Builder(); }
1733        public override Builder ToBuilder() { return CreateBuilder(this); }
1734        public override Builder CreateBuilderForType() { return new Builder(); }
1735        public static Builder CreateBuilder(BoolVariable prototype) {
1736          return new Builder(prototype);
1737        }
1738       
1739        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
1740        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
1741        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
1742        public sealed partial class Builder : pb::GeneratedBuilder<BoolVariable, Builder> {
1743          protected override Builder ThisBuilder {
1744            get { return this; }
1745          }
1746          public Builder() {
1747            result = DefaultInstance;
1748            resultIsReadOnly = true;
1749          }
1750          internal Builder(BoolVariable cloneFrom) {
1751            result = cloneFrom;
1752            resultIsReadOnly = true;
1753          }
1754         
1755          private bool resultIsReadOnly;
1756          private BoolVariable result;
1757         
1758          private BoolVariable PrepareBuilder() {
1759            if (resultIsReadOnly) {
1760              BoolVariable original = result;
1761              result = new BoolVariable();
1762              resultIsReadOnly = false;
1763              MergeFrom(original);
1764            }
1765            return result;
1766          }
1767         
1768          public override bool IsInitialized {
1769            get { return result.IsInitialized; }
1770          }
1771         
1772          protected override BoolVariable MessageBeingBuilt {
1773            get { return PrepareBuilder(); }
1774          }
1775         
1776          public override Builder Clear() {
1777            result = DefaultInstance;
1778            resultIsReadOnly = true;
1779            return this;
1780          }
1781         
1782          public override Builder Clone() {
1783            if (resultIsReadOnly) {
1784              return new Builder(result);
1785            } else {
1786              return new Builder().MergeFrom(result);
1787            }
1788          }
1789         
1790          public override pbd::MessageDescriptor DescriptorForType {
1791            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable.Descriptor; }
1792          }
1793         
1794          public override BoolVariable DefaultInstanceForType {
1795            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable.DefaultInstance; }
1796          }
1797         
1798          public override BoolVariable BuildPartial() {
1799            if (resultIsReadOnly) {
1800              return result;
1801            }
1802            resultIsReadOnly = true;
1803            return result.MakeReadOnly();
1804          }
1805         
1806          public override Builder MergeFrom(pb::IMessage other) {
1807            if (other is BoolVariable) {
1808              return MergeFrom((BoolVariable) other);
1809            } else {
1810              base.MergeFrom(other);
1811              return this;
1812            }
1813          }
1814         
1815          public override Builder MergeFrom(BoolVariable other) {
1816            if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable.DefaultInstance) return this;
1817            PrepareBuilder();
1818            if (other.HasName) {
1819              Name = other.Name;
1820            }
1821            if (other.HasData) {
1822              Data = other.Data;
1823            }
1824            this.MergeUnknownFields(other.UnknownFields);
1825            return this;
1826          }
1827         
1828          public override Builder MergeFrom(pb::ICodedInputStream input) {
1829            return MergeFrom(input, pb::ExtensionRegistry.Empty);
1830          }
1831         
1832          public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
1833            PrepareBuilder();
1834            pb::UnknownFieldSet.Builder unknownFields = null;
1835            uint tag;
1836            string field_name;
1837            while (input.ReadTag(out tag, out field_name)) {
1838              if(tag == 0 && field_name != null) {
1839                int field_ordinal = global::System.Array.BinarySearch(_boolVariableFieldNames, field_name, global::System.StringComparer.Ordinal);
1840                if(field_ordinal >= 0)
1841                  tag = _boolVariableFieldTags[field_ordinal];
1842                else {
1843                  if (unknownFields == null) {
1844                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
1845                  }
1846                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
1847                  continue;
1848                }
1849              }
1850              switch (tag) {
1851                case 0: {
1852                  throw pb::InvalidProtocolBufferException.InvalidTag();
1853                }
1854                default: {
1855                  if (pb::WireFormat.IsEndGroupTag(tag)) {
1856                    if (unknownFields != null) {
1857                      this.UnknownFields = unknownFields.Build();
1858                    }
1859                    return this;
1860                  }
1861                  if (unknownFields == null) {
1862                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
1863                  }
1864                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
1865                  break;
1866                }
1867                case 10: {
1868                  result.hasName = input.ReadString(ref result.name_);
1869                  break;
1870                }
1871                case 16: {
1872                  result.hasData = input.ReadBool(ref result.data_);
1873                  break;
1874                }
1875              }
1876            }
1877           
1878            if (unknownFields != null) {
1879              this.UnknownFields = unknownFields.Build();
1880            }
1881            return this;
1882          }
1883         
1884         
1885          public bool HasName {
1886            get { return result.hasName; }
1887          }
1888          public string Name {
1889            get { return result.Name; }
1890            set { SetName(value); }
1891          }
1892          public Builder SetName(string value) {
1893            pb::ThrowHelper.ThrowIfNull(value, "value");
1894            PrepareBuilder();
1895            result.hasName = true;
1896            result.name_ = value;
1897            return this;
1898          }
1899          public Builder ClearName() {
1900            PrepareBuilder();
1901            result.hasName = false;
1902            result.name_ = "";
1903            return this;
1904          }
1905         
1906          public bool HasData {
1907            get { return result.hasData; }
1908          }
1909          public bool Data {
1910            get { return result.Data; }
1911            set { SetData(value); }
1912          }
1913          public Builder SetData(bool value) {
1914            PrepareBuilder();
1915            result.hasData = true;
1916            result.data_ = value;
1917            return this;
1918          }
1919          public Builder ClearData() {
1920            PrepareBuilder();
1921            result.hasData = false;
1922            result.data_ = false;
1923            return this;
1924          }
1925        }
1926        static BoolVariable() {
1927          object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
1928        }
1929      }
1930     
1931      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
1932      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
1933      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
1934      public sealed partial class BoolArrayVariable : pb::GeneratedMessage<BoolArrayVariable, BoolArrayVariable.Builder> {
1935        private BoolArrayVariable() { }
1936        private static readonly BoolArrayVariable defaultInstance = new BoolArrayVariable().MakeReadOnly();
1937        private static readonly string[] _boolArrayVariableFieldNames = new string[] { "data", "length", "name" };
1938        private static readonly uint[] _boolArrayVariableFieldTags = new uint[] { 16, 24, 10 };
1939        public static BoolArrayVariable DefaultInstance {
1940          get { return defaultInstance; }
1941        }
1942       
1943        public override BoolArrayVariable DefaultInstanceForType {
1944          get { return DefaultInstance; }
1945        }
1946       
1947        protected override BoolArrayVariable ThisMessage {
1948          get { return this; }
1949        }
1950       
1951        public static pbd::MessageDescriptor Descriptor {
1952          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolArrayVariable__Descriptor; }
1953        }
1954       
1955        protected override pb::FieldAccess.FieldAccessorTable<BoolArrayVariable, BoolArrayVariable.Builder> InternalFieldAccessors {
1956          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_BoolArrayVariable__FieldAccessorTable; }
1957        }
1958       
1959        public const int NameFieldNumber = 1;
1960        private bool hasName;
1961        private string name_ = "";
1962        public bool HasName {
1963          get { return hasName; }
1964        }
1965        public string Name {
1966          get { return name_; }
1967        }
1968       
1969        public const int DataFieldNumber = 2;
1970        private pbc::PopsicleList<bool> data_ = new pbc::PopsicleList<bool>();
1971        public scg::IList<bool> DataList {
1972          get { return pbc::Lists.AsReadOnly(data_); }
1973        }
1974        public int DataCount {
1975          get { return data_.Count; }
1976        }
1977        public bool GetData(int index) {
1978          return data_[index];
1979        }
1980       
1981        public const int LengthFieldNumber = 3;
1982        private bool hasLength;
1983        private int length_;
1984        public bool HasLength {
1985          get { return hasLength; }
1986        }
1987        public int Length {
1988          get { return length_; }
1989        }
1990       
1991        public override bool IsInitialized {
1992          get {
1993            if (!hasName) return false;
1994            return true;
1995          }
1996        }
1997       
1998        public override void WriteTo(pb::ICodedOutputStream output) {
1999          int size = SerializedSize;
2000          string[] field_names = _boolArrayVariableFieldNames;
2001          if (hasName) {
2002            output.WriteString(1, field_names[2], Name);
2003          }
2004          if (data_.Count > 0) {
2005            output.WriteBoolArray(2, field_names[0], data_);
2006          }
2007          if (hasLength) {
2008            output.WriteInt32(3, field_names[1], Length);
2009          }
2010          UnknownFields.WriteTo(output);
2011        }
2012       
2013        private int memoizedSerializedSize = -1;
2014        public override int SerializedSize {
2015          get {
2016            int size = memoizedSerializedSize;
2017            if (size != -1) return size;
2018           
2019            size = 0;
2020            if (hasName) {
2021              size += pb::CodedOutputStream.ComputeStringSize(1, Name);
2022            }
2023            {
2024              int dataSize = 0;
2025              dataSize = 1 * data_.Count;
2026              size += dataSize;
2027              size += 1 * data_.Count;
2028            }
2029            if (hasLength) {
2030              size += pb::CodedOutputStream.ComputeInt32Size(3, Length);
2031            }
2032            size += UnknownFields.SerializedSize;
2033            memoizedSerializedSize = size;
2034            return size;
2035          }
2036        }
2037       
2038        public static BoolArrayVariable ParseFrom(pb::ByteString data) {
2039          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
2040        }
2041        public static BoolArrayVariable ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
2042          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
2043        }
2044        public static BoolArrayVariable ParseFrom(byte[] data) {
2045          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
2046        }
2047        public static BoolArrayVariable ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
2048          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
2049        }
2050        public static BoolArrayVariable ParseFrom(global::System.IO.Stream input) {
2051          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
2052        }
2053        public static BoolArrayVariable ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
2054          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
2055        }
2056        public static BoolArrayVariable ParseDelimitedFrom(global::System.IO.Stream input) {
2057          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
2058        }
2059        public static BoolArrayVariable ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
2060          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
2061        }
2062        public static BoolArrayVariable ParseFrom(pb::ICodedInputStream input) {
2063          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
2064        }
2065        public static BoolArrayVariable ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
2066          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
2067        }
2068        private BoolArrayVariable MakeReadOnly() {
2069          data_.MakeReadOnly();
2070          return this;
2071        }
2072       
2073        public static Builder CreateBuilder() { return new Builder(); }
2074        public override Builder ToBuilder() { return CreateBuilder(this); }
2075        public override Builder CreateBuilderForType() { return new Builder(); }
2076        public static Builder CreateBuilder(BoolArrayVariable prototype) {
2077          return new Builder(prototype);
2078        }
2079       
2080        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
2081        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
2082        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
2083        public sealed partial class Builder : pb::GeneratedBuilder<BoolArrayVariable, Builder> {
2084          protected override Builder ThisBuilder {
2085            get { return this; }
2086          }
2087          public Builder() {
2088            result = DefaultInstance;
2089            resultIsReadOnly = true;
2090          }
2091          internal Builder(BoolArrayVariable cloneFrom) {
2092            result = cloneFrom;
2093            resultIsReadOnly = true;
2094          }
2095         
2096          private bool resultIsReadOnly;
2097          private BoolArrayVariable result;
2098         
2099          private BoolArrayVariable PrepareBuilder() {
2100            if (resultIsReadOnly) {
2101              BoolArrayVariable original = result;
2102              result = new BoolArrayVariable();
2103              resultIsReadOnly = false;
2104              MergeFrom(original);
2105            }
2106            return result;
2107          }
2108         
2109          public override bool IsInitialized {
2110            get { return result.IsInitialized; }
2111          }
2112         
2113          protected override BoolArrayVariable MessageBeingBuilt {
2114            get { return PrepareBuilder(); }
2115          }
2116         
2117          public override Builder Clear() {
2118            result = DefaultInstance;
2119            resultIsReadOnly = true;
2120            return this;
2121          }
2122         
2123          public override Builder Clone() {
2124            if (resultIsReadOnly) {
2125              return new Builder(result);
2126            } else {
2127              return new Builder().MergeFrom(result);
2128            }
2129          }
2130         
2131          public override pbd::MessageDescriptor DescriptorForType {
2132            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable.Descriptor; }
2133          }
2134         
2135          public override BoolArrayVariable DefaultInstanceForType {
2136            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable.DefaultInstance; }
2137          }
2138         
2139          public override BoolArrayVariable BuildPartial() {
2140            if (resultIsReadOnly) {
2141              return result;
2142            }
2143            resultIsReadOnly = true;
2144            return result.MakeReadOnly();
2145          }
2146         
2147          public override Builder MergeFrom(pb::IMessage other) {
2148            if (other is BoolArrayVariable) {
2149              return MergeFrom((BoolArrayVariable) other);
2150            } else {
2151              base.MergeFrom(other);
2152              return this;
2153            }
2154          }
2155         
2156          public override Builder MergeFrom(BoolArrayVariable other) {
2157            if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable.DefaultInstance) return this;
2158            PrepareBuilder();
2159            if (other.HasName) {
2160              Name = other.Name;
2161            }
2162            if (other.data_.Count != 0) {
2163              result.data_.Add(other.data_);
2164            }
2165            if (other.HasLength) {
2166              Length = other.Length;
2167            }
2168            this.MergeUnknownFields(other.UnknownFields);
2169            return this;
2170          }
2171         
2172          public override Builder MergeFrom(pb::ICodedInputStream input) {
2173            return MergeFrom(input, pb::ExtensionRegistry.Empty);
2174          }
2175         
2176          public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
2177            PrepareBuilder();
2178            pb::UnknownFieldSet.Builder unknownFields = null;
2179            uint tag;
2180            string field_name;
2181            while (input.ReadTag(out tag, out field_name)) {
2182              if(tag == 0 && field_name != null) {
2183                int field_ordinal = global::System.Array.BinarySearch(_boolArrayVariableFieldNames, field_name, global::System.StringComparer.Ordinal);
2184                if(field_ordinal >= 0)
2185                  tag = _boolArrayVariableFieldTags[field_ordinal];
2186                else {
2187                  if (unknownFields == null) {
2188                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
2189                  }
2190                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
2191                  continue;
2192                }
2193              }
2194              switch (tag) {
2195                case 0: {
2196                  throw pb::InvalidProtocolBufferException.InvalidTag();
2197                }
2198                default: {
2199                  if (pb::WireFormat.IsEndGroupTag(tag)) {
2200                    if (unknownFields != null) {
2201                      this.UnknownFields = unknownFields.Build();
2202                    }
2203                    return this;
2204                  }
2205                  if (unknownFields == null) {
2206                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
2207                  }
2208                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
2209                  break;
2210                }
2211                case 10: {
2212                  result.hasName = input.ReadString(ref result.name_);
2213                  break;
2214                }
2215                case 18:
2216                case 16: {
2217                  input.ReadBoolArray(tag, field_name, result.data_);
2218                  break;
2219                }
2220                case 24: {
2221                  result.hasLength = input.ReadInt32(ref result.length_);
2222                  break;
2223                }
2224              }
2225            }
2226           
2227            if (unknownFields != null) {
2228              this.UnknownFields = unknownFields.Build();
2229            }
2230            return this;
2231          }
2232         
2233         
2234          public bool HasName {
2235            get { return result.hasName; }
2236          }
2237          public string Name {
2238            get { return result.Name; }
2239            set { SetName(value); }
2240          }
2241          public Builder SetName(string value) {
2242            pb::ThrowHelper.ThrowIfNull(value, "value");
2243            PrepareBuilder();
2244            result.hasName = true;
2245            result.name_ = value;
2246            return this;
2247          }
2248          public Builder ClearName() {
2249            PrepareBuilder();
2250            result.hasName = false;
2251            result.name_ = "";
2252            return this;
2253          }
2254         
2255          public pbc::IPopsicleList<bool> DataList {
2256            get { return PrepareBuilder().data_; }
2257          }
2258          public int DataCount {
2259            get { return result.DataCount; }
2260          }
2261          public bool GetData(int index) {
2262            return result.GetData(index);
2263          }
2264          public Builder SetData(int index, bool value) {
2265            PrepareBuilder();
2266            result.data_[index] = value;
2267            return this;
2268          }
2269          public Builder AddData(bool value) {
2270            PrepareBuilder();
2271            result.data_.Add(value);
2272            return this;
2273          }
2274          public Builder AddRangeData(scg::IEnumerable<bool> values) {
2275            PrepareBuilder();
2276            result.data_.Add(values);
2277            return this;
2278          }
2279          public Builder ClearData() {
2280            PrepareBuilder();
2281            result.data_.Clear();
2282            return this;
2283          }
2284         
2285          public bool HasLength {
2286            get { return result.hasLength; }
2287          }
2288          public int Length {
2289            get { return result.Length; }
2290            set { SetLength(value); }
2291          }
2292          public Builder SetLength(int value) {
2293            PrepareBuilder();
2294            result.hasLength = true;
2295            result.length_ = value;
2296            return this;
2297          }
2298          public Builder ClearLength() {
2299            PrepareBuilder();
2300            result.hasLength = false;
2301            result.length_ = 0;
2302            return this;
2303          }
2304        }
2305        static BoolArrayVariable() {
2306          object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
2307        }
2308      }
2309     
2310      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
2311      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
2312      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
2313      public sealed partial class StringVariable : pb::GeneratedMessage<StringVariable, StringVariable.Builder> {
2314        private StringVariable() { }
2315        private static readonly StringVariable defaultInstance = new StringVariable().MakeReadOnly();
2316        private static readonly string[] _stringVariableFieldNames = new string[] { "data", "name" };
2317        private static readonly uint[] _stringVariableFieldTags = new uint[] { 18, 10 };
2318        public static StringVariable DefaultInstance {
2319          get { return defaultInstance; }
2320        }
2321       
2322        public override StringVariable DefaultInstanceForType {
2323          get { return DefaultInstance; }
2324        }
2325       
2326        protected override StringVariable ThisMessage {
2327          get { return this; }
2328        }
2329       
2330        public static pbd::MessageDescriptor Descriptor {
2331          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringVariable__Descriptor; }
2332        }
2333       
2334        protected override pb::FieldAccess.FieldAccessorTable<StringVariable, StringVariable.Builder> InternalFieldAccessors {
2335          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringVariable__FieldAccessorTable; }
2336        }
2337       
2338        public const int NameFieldNumber = 1;
2339        private bool hasName;
2340        private string name_ = "";
2341        public bool HasName {
2342          get { return hasName; }
2343        }
2344        public string Name {
2345          get { return name_; }
2346        }
2347       
2348        public const int DataFieldNumber = 2;
2349        private bool hasData;
2350        private string data_ = "";
2351        public bool HasData {
2352          get { return hasData; }
2353        }
2354        public string Data {
2355          get { return data_; }
2356        }
2357       
2358        public override bool IsInitialized {
2359          get {
2360            if (!hasName) return false;
2361            return true;
2362          }
2363        }
2364       
2365        public override void WriteTo(pb::ICodedOutputStream output) {
2366          int size = SerializedSize;
2367          string[] field_names = _stringVariableFieldNames;
2368          if (hasName) {
2369            output.WriteString(1, field_names[1], Name);
2370          }
2371          if (hasData) {
2372            output.WriteString(2, field_names[0], Data);
2373          }
2374          UnknownFields.WriteTo(output);
2375        }
2376       
2377        private int memoizedSerializedSize = -1;
2378        public override int SerializedSize {
2379          get {
2380            int size = memoizedSerializedSize;
2381            if (size != -1) return size;
2382           
2383            size = 0;
2384            if (hasName) {
2385              size += pb::CodedOutputStream.ComputeStringSize(1, Name);
2386            }
2387            if (hasData) {
2388              size += pb::CodedOutputStream.ComputeStringSize(2, Data);
2389            }
2390            size += UnknownFields.SerializedSize;
2391            memoizedSerializedSize = size;
2392            return size;
2393          }
2394        }
2395       
2396        public static StringVariable ParseFrom(pb::ByteString data) {
2397          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
2398        }
2399        public static StringVariable ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
2400          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
2401        }
2402        public static StringVariable ParseFrom(byte[] data) {
2403          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
2404        }
2405        public static StringVariable ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
2406          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
2407        }
2408        public static StringVariable ParseFrom(global::System.IO.Stream input) {
2409          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
2410        }
2411        public static StringVariable ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
2412          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
2413        }
2414        public static StringVariable ParseDelimitedFrom(global::System.IO.Stream input) {
2415          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
2416        }
2417        public static StringVariable ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
2418          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
2419        }
2420        public static StringVariable ParseFrom(pb::ICodedInputStream input) {
2421          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
2422        }
2423        public static StringVariable ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
2424          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
2425        }
2426        private StringVariable MakeReadOnly() {
2427          return this;
2428        }
2429       
2430        public static Builder CreateBuilder() { return new Builder(); }
2431        public override Builder ToBuilder() { return CreateBuilder(this); }
2432        public override Builder CreateBuilderForType() { return new Builder(); }
2433        public static Builder CreateBuilder(StringVariable prototype) {
2434          return new Builder(prototype);
2435        }
2436       
2437        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
2438        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
2439        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
2440        public sealed partial class Builder : pb::GeneratedBuilder<StringVariable, Builder> {
2441          protected override Builder ThisBuilder {
2442            get { return this; }
2443          }
2444          public Builder() {
2445            result = DefaultInstance;
2446            resultIsReadOnly = true;
2447          }
2448          internal Builder(StringVariable cloneFrom) {
2449            result = cloneFrom;
2450            resultIsReadOnly = true;
2451          }
2452         
2453          private bool resultIsReadOnly;
2454          private StringVariable result;
2455         
2456          private StringVariable PrepareBuilder() {
2457            if (resultIsReadOnly) {
2458              StringVariable original = result;
2459              result = new StringVariable();
2460              resultIsReadOnly = false;
2461              MergeFrom(original);
2462            }
2463            return result;
2464          }
2465         
2466          public override bool IsInitialized {
2467            get { return result.IsInitialized; }
2468          }
2469         
2470          protected override StringVariable MessageBeingBuilt {
2471            get { return PrepareBuilder(); }
2472          }
2473         
2474          public override Builder Clear() {
2475            result = DefaultInstance;
2476            resultIsReadOnly = true;
2477            return this;
2478          }
2479         
2480          public override Builder Clone() {
2481            if (resultIsReadOnly) {
2482              return new Builder(result);
2483            } else {
2484              return new Builder().MergeFrom(result);
2485            }
2486          }
2487         
2488          public override pbd::MessageDescriptor DescriptorForType {
2489            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable.Descriptor; }
2490          }
2491         
2492          public override StringVariable DefaultInstanceForType {
2493            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable.DefaultInstance; }
2494          }
2495         
2496          public override StringVariable BuildPartial() {
2497            if (resultIsReadOnly) {
2498              return result;
2499            }
2500            resultIsReadOnly = true;
2501            return result.MakeReadOnly();
2502          }
2503         
2504          public override Builder MergeFrom(pb::IMessage other) {
2505            if (other is StringVariable) {
2506              return MergeFrom((StringVariable) other);
2507            } else {
2508              base.MergeFrom(other);
2509              return this;
2510            }
2511          }
2512         
2513          public override Builder MergeFrom(StringVariable other) {
2514            if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable.DefaultInstance) return this;
2515            PrepareBuilder();
2516            if (other.HasName) {
2517              Name = other.Name;
2518            }
2519            if (other.HasData) {
2520              Data = other.Data;
2521            }
2522            this.MergeUnknownFields(other.UnknownFields);
2523            return this;
2524          }
2525         
2526          public override Builder MergeFrom(pb::ICodedInputStream input) {
2527            return MergeFrom(input, pb::ExtensionRegistry.Empty);
2528          }
2529         
2530          public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
2531            PrepareBuilder();
2532            pb::UnknownFieldSet.Builder unknownFields = null;
2533            uint tag;
2534            string field_name;
2535            while (input.ReadTag(out tag, out field_name)) {
2536              if(tag == 0 && field_name != null) {
2537                int field_ordinal = global::System.Array.BinarySearch(_stringVariableFieldNames, field_name, global::System.StringComparer.Ordinal);
2538                if(field_ordinal >= 0)
2539                  tag = _stringVariableFieldTags[field_ordinal];
2540                else {
2541                  if (unknownFields == null) {
2542                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
2543                  }
2544                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
2545                  continue;
2546                }
2547              }
2548              switch (tag) {
2549                case 0: {
2550                  throw pb::InvalidProtocolBufferException.InvalidTag();
2551                }
2552                default: {
2553                  if (pb::WireFormat.IsEndGroupTag(tag)) {
2554                    if (unknownFields != null) {
2555                      this.UnknownFields = unknownFields.Build();
2556                    }
2557                    return this;
2558                  }
2559                  if (unknownFields == null) {
2560                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
2561                  }
2562                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
2563                  break;
2564                }
2565                case 10: {
2566                  result.hasName = input.ReadString(ref result.name_);
2567                  break;
2568                }
2569                case 18: {
2570                  result.hasData = input.ReadString(ref result.data_);
2571                  break;
2572                }
2573              }
2574            }
2575           
2576            if (unknownFields != null) {
2577              this.UnknownFields = unknownFields.Build();
2578            }
2579            return this;
2580          }
2581         
2582         
2583          public bool HasName {
2584            get { return result.hasName; }
2585          }
2586          public string Name {
2587            get { return result.Name; }
2588            set { SetName(value); }
2589          }
2590          public Builder SetName(string value) {
2591            pb::ThrowHelper.ThrowIfNull(value, "value");
2592            PrepareBuilder();
2593            result.hasName = true;
2594            result.name_ = value;
2595            return this;
2596          }
2597          public Builder ClearName() {
2598            PrepareBuilder();
2599            result.hasName = false;
2600            result.name_ = "";
2601            return this;
2602          }
2603         
2604          public bool HasData {
2605            get { return result.hasData; }
2606          }
2607          public string Data {
2608            get { return result.Data; }
2609            set { SetData(value); }
2610          }
2611          public Builder SetData(string value) {
2612            pb::ThrowHelper.ThrowIfNull(value, "value");
2613            PrepareBuilder();
2614            result.hasData = true;
2615            result.data_ = value;
2616            return this;
2617          }
2618          public Builder ClearData() {
2619            PrepareBuilder();
2620            result.hasData = false;
2621            result.data_ = "";
2622            return this;
2623          }
2624        }
2625        static StringVariable() {
2626          object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
2627        }
2628      }
2629     
2630      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
2631      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
2632      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
2633      public sealed partial class StringArrayVariable : pb::GeneratedMessage<StringArrayVariable, StringArrayVariable.Builder> {
2634        private StringArrayVariable() { }
2635        private static readonly StringArrayVariable defaultInstance = new StringArrayVariable().MakeReadOnly();
2636        private static readonly string[] _stringArrayVariableFieldNames = new string[] { "data", "length", "name" };
2637        private static readonly uint[] _stringArrayVariableFieldTags = new uint[] { 18, 24, 10 };
2638        public static StringArrayVariable DefaultInstance {
2639          get { return defaultInstance; }
2640        }
2641       
2642        public override StringArrayVariable DefaultInstanceForType {
2643          get { return DefaultInstance; }
2644        }
2645       
2646        protected override StringArrayVariable ThisMessage {
2647          get { return this; }
2648        }
2649       
2650        public static pbd::MessageDescriptor Descriptor {
2651          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringArrayVariable__Descriptor; }
2652        }
2653       
2654        protected override pb::FieldAccess.FieldAccessorTable<StringArrayVariable, StringArrayVariable.Builder> InternalFieldAccessors {
2655          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_StringArrayVariable__FieldAccessorTable; }
2656        }
2657       
2658        public const int NameFieldNumber = 1;
2659        private bool hasName;
2660        private string name_ = "";
2661        public bool HasName {
2662          get { return hasName; }
2663        }
2664        public string Name {
2665          get { return name_; }
2666        }
2667       
2668        public const int DataFieldNumber = 2;
2669        private pbc::PopsicleList<string> data_ = new pbc::PopsicleList<string>();
2670        public scg::IList<string> DataList {
2671          get { return pbc::Lists.AsReadOnly(data_); }
2672        }
2673        public int DataCount {
2674          get { return data_.Count; }
2675        }
2676        public string GetData(int index) {
2677          return data_[index];
2678        }
2679       
2680        public const int LengthFieldNumber = 3;
2681        private bool hasLength;
2682        private int length_;
2683        public bool HasLength {
2684          get { return hasLength; }
2685        }
2686        public int Length {
2687          get { return length_; }
2688        }
2689       
2690        public override bool IsInitialized {
2691          get {
2692            if (!hasName) return false;
2693            return true;
2694          }
2695        }
2696       
2697        public override void WriteTo(pb::ICodedOutputStream output) {
2698          int size = SerializedSize;
2699          string[] field_names = _stringArrayVariableFieldNames;
2700          if (hasName) {
2701            output.WriteString(1, field_names[2], Name);
2702          }
2703          if (data_.Count > 0) {
2704            output.WriteStringArray(2, field_names[0], data_);
2705          }
2706          if (hasLength) {
2707            output.WriteInt32(3, field_names[1], Length);
2708          }
2709          UnknownFields.WriteTo(output);
2710        }
2711       
2712        private int memoizedSerializedSize = -1;
2713        public override int SerializedSize {
2714          get {
2715            int size = memoizedSerializedSize;
2716            if (size != -1) return size;
2717           
2718            size = 0;
2719            if (hasName) {
2720              size += pb::CodedOutputStream.ComputeStringSize(1, Name);
2721            }
2722            {
2723              int dataSize = 0;
2724              foreach (string element in DataList) {
2725                dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
2726              }
2727              size += dataSize;
2728              size += 1 * data_.Count;
2729            }
2730            if (hasLength) {
2731              size += pb::CodedOutputStream.ComputeInt32Size(3, Length);
2732            }
2733            size += UnknownFields.SerializedSize;
2734            memoizedSerializedSize = size;
2735            return size;
2736          }
2737        }
2738       
2739        public static StringArrayVariable ParseFrom(pb::ByteString data) {
2740          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
2741        }
2742        public static StringArrayVariable ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
2743          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
2744        }
2745        public static StringArrayVariable ParseFrom(byte[] data) {
2746          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
2747        }
2748        public static StringArrayVariable ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
2749          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
2750        }
2751        public static StringArrayVariable ParseFrom(global::System.IO.Stream input) {
2752          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
2753        }
2754        public static StringArrayVariable ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
2755          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
2756        }
2757        public static StringArrayVariable ParseDelimitedFrom(global::System.IO.Stream input) {
2758          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
2759        }
2760        public static StringArrayVariable ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
2761          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
2762        }
2763        public static StringArrayVariable ParseFrom(pb::ICodedInputStream input) {
2764          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
2765        }
2766        public static StringArrayVariable ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
2767          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
2768        }
2769        private StringArrayVariable MakeReadOnly() {
2770          data_.MakeReadOnly();
2771          return this;
2772        }
2773       
2774        public static Builder CreateBuilder() { return new Builder(); }
2775        public override Builder ToBuilder() { return CreateBuilder(this); }
2776        public override Builder CreateBuilderForType() { return new Builder(); }
2777        public static Builder CreateBuilder(StringArrayVariable prototype) {
2778          return new Builder(prototype);
2779        }
2780       
2781        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
2782        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
2783        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
2784        public sealed partial class Builder : pb::GeneratedBuilder<StringArrayVariable, Builder> {
2785          protected override Builder ThisBuilder {
2786            get { return this; }
2787          }
2788          public Builder() {
2789            result = DefaultInstance;
2790            resultIsReadOnly = true;
2791          }
2792          internal Builder(StringArrayVariable cloneFrom) {
2793            result = cloneFrom;
2794            resultIsReadOnly = true;
2795          }
2796         
2797          private bool resultIsReadOnly;
2798          private StringArrayVariable result;
2799         
2800          private StringArrayVariable PrepareBuilder() {
2801            if (resultIsReadOnly) {
2802              StringArrayVariable original = result;
2803              result = new StringArrayVariable();
2804              resultIsReadOnly = false;
2805              MergeFrom(original);
2806            }
2807            return result;
2808          }
2809         
2810          public override bool IsInitialized {
2811            get { return result.IsInitialized; }
2812          }
2813         
2814          protected override StringArrayVariable MessageBeingBuilt {
2815            get { return PrepareBuilder(); }
2816          }
2817         
2818          public override Builder Clear() {
2819            result = DefaultInstance;
2820            resultIsReadOnly = true;
2821            return this;
2822          }
2823         
2824          public override Builder Clone() {
2825            if (resultIsReadOnly) {
2826              return new Builder(result);
2827            } else {
2828              return new Builder().MergeFrom(result);
2829            }
2830          }
2831         
2832          public override pbd::MessageDescriptor DescriptorForType {
2833            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable.Descriptor; }
2834          }
2835         
2836          public override StringArrayVariable DefaultInstanceForType {
2837            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable.DefaultInstance; }
2838          }
2839         
2840          public override StringArrayVariable BuildPartial() {
2841            if (resultIsReadOnly) {
2842              return result;
2843            }
2844            resultIsReadOnly = true;
2845            return result.MakeReadOnly();
2846          }
2847         
2848          public override Builder MergeFrom(pb::IMessage other) {
2849            if (other is StringArrayVariable) {
2850              return MergeFrom((StringArrayVariable) other);
2851            } else {
2852              base.MergeFrom(other);
2853              return this;
2854            }
2855          }
2856         
2857          public override Builder MergeFrom(StringArrayVariable other) {
2858            if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable.DefaultInstance) return this;
2859            PrepareBuilder();
2860            if (other.HasName) {
2861              Name = other.Name;
2862            }
2863            if (other.data_.Count != 0) {
2864              result.data_.Add(other.data_);
2865            }
2866            if (other.HasLength) {
2867              Length = other.Length;
2868            }
2869            this.MergeUnknownFields(other.UnknownFields);
2870            return this;
2871          }
2872         
2873          public override Builder MergeFrom(pb::ICodedInputStream input) {
2874            return MergeFrom(input, pb::ExtensionRegistry.Empty);
2875          }
2876         
2877          public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
2878            PrepareBuilder();
2879            pb::UnknownFieldSet.Builder unknownFields = null;
2880            uint tag;
2881            string field_name;
2882            while (input.ReadTag(out tag, out field_name)) {
2883              if(tag == 0 && field_name != null) {
2884                int field_ordinal = global::System.Array.BinarySearch(_stringArrayVariableFieldNames, field_name, global::System.StringComparer.Ordinal);
2885                if(field_ordinal >= 0)
2886                  tag = _stringArrayVariableFieldTags[field_ordinal];
2887                else {
2888                  if (unknownFields == null) {
2889                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
2890                  }
2891                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
2892                  continue;
2893                }
2894              }
2895              switch (tag) {
2896                case 0: {
2897                  throw pb::InvalidProtocolBufferException.InvalidTag();
2898                }
2899                default: {
2900                  if (pb::WireFormat.IsEndGroupTag(tag)) {
2901                    if (unknownFields != null) {
2902                      this.UnknownFields = unknownFields.Build();
2903                    }
2904                    return this;
2905                  }
2906                  if (unknownFields == null) {
2907                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
2908                  }
2909                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
2910                  break;
2911                }
2912                case 10: {
2913                  result.hasName = input.ReadString(ref result.name_);
2914                  break;
2915                }
2916                case 18: {
2917                  input.ReadStringArray(tag, field_name, result.data_);
2918                  break;
2919                }
2920                case 24: {
2921                  result.hasLength = input.ReadInt32(ref result.length_);
2922                  break;
2923                }
2924              }
2925            }
2926           
2927            if (unknownFields != null) {
2928              this.UnknownFields = unknownFields.Build();
2929            }
2930            return this;
2931          }
2932         
2933         
2934          public bool HasName {
2935            get { return result.hasName; }
2936          }
2937          public string Name {
2938            get { return result.Name; }
2939            set { SetName(value); }
2940          }
2941          public Builder SetName(string value) {
2942            pb::ThrowHelper.ThrowIfNull(value, "value");
2943            PrepareBuilder();
2944            result.hasName = true;
2945            result.name_ = value;
2946            return this;
2947          }
2948          public Builder ClearName() {
2949            PrepareBuilder();
2950            result.hasName = false;
2951            result.name_ = "";
2952            return this;
2953          }
2954         
2955          public pbc::IPopsicleList<string> DataList {
2956            get { return PrepareBuilder().data_; }
2957          }
2958          public int DataCount {
2959            get { return result.DataCount; }
2960          }
2961          public string GetData(int index) {
2962            return result.GetData(index);
2963          }
2964          public Builder SetData(int index, string value) {
2965            pb::ThrowHelper.ThrowIfNull(value, "value");
2966            PrepareBuilder();
2967            result.data_[index] = value;
2968            return this;
2969          }
2970          public Builder AddData(string value) {
2971            pb::ThrowHelper.ThrowIfNull(value, "value");
2972            PrepareBuilder();
2973            result.data_.Add(value);
2974            return this;
2975          }
2976          public Builder AddRangeData(scg::IEnumerable<string> values) {
2977            PrepareBuilder();
2978            result.data_.Add(values);
2979            return this;
2980          }
2981          public Builder ClearData() {
2982            PrepareBuilder();
2983            result.data_.Clear();
2984            return this;
2985          }
2986         
2987          public bool HasLength {
2988            get { return result.hasLength; }
2989          }
2990          public int Length {
2991            get { return result.Length; }
2992            set { SetLength(value); }
2993          }
2994          public Builder SetLength(int value) {
2995            PrepareBuilder();
2996            result.hasLength = true;
2997            result.length_ = value;
2998            return this;
2999          }
3000          public Builder ClearLength() {
3001            PrepareBuilder();
3002            result.hasLength = false;
3003            result.length_ = 0;
3004            return this;
3005          }
3006        }
3007        static StringArrayVariable() {
3008          object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
3009        }
3010      }
3011     
3012      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
3013      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
3014      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
3015      public sealed partial class RawVariable : pb::GeneratedMessage<RawVariable, RawVariable.Builder> {
3016        private RawVariable() { }
3017        private static readonly RawVariable defaultInstance = new RawVariable().MakeReadOnly();
3018        private static readonly string[] _rawVariableFieldNames = new string[] { "data", "name" };
3019        private static readonly uint[] _rawVariableFieldTags = new uint[] { 18, 10 };
3020        public static RawVariable DefaultInstance {
3021          get { return defaultInstance; }
3022        }
3023       
3024        public override RawVariable DefaultInstanceForType {
3025          get { return DefaultInstance; }
3026        }
3027       
3028        protected override RawVariable ThisMessage {
3029          get { return this; }
3030        }
3031       
3032        public static pbd::MessageDescriptor Descriptor {
3033          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_RawVariable__Descriptor; }
3034        }
3035       
3036        protected override pb::FieldAccess.FieldAccessorTable<RawVariable, RawVariable.Builder> InternalFieldAccessors {
3037          get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SolutionMessage_RawVariable__FieldAccessorTable; }
3038        }
3039       
3040        public const int NameFieldNumber = 1;
3041        private bool hasName;
3042        private string name_ = "";
3043        public bool HasName {
3044          get { return hasName; }
3045        }
3046        public string Name {
3047          get { return name_; }
3048        }
3049       
3050        public const int DataFieldNumber = 2;
3051        private bool hasData;
3052        private pb::ByteString data_ = pb::ByteString.Empty;
3053        public bool HasData {
3054          get { return hasData; }
3055        }
3056        public pb::ByteString Data {
3057          get { return data_; }
3058        }
3059       
3060        public override bool IsInitialized {
3061          get {
3062            if (!hasName) return false;
3063            return true;
3064          }
3065        }
3066       
3067        public override void WriteTo(pb::ICodedOutputStream output) {
3068          int size = SerializedSize;
3069          string[] field_names = _rawVariableFieldNames;
3070          if (hasName) {
3071            output.WriteString(1, field_names[1], Name);
3072          }
3073          if (hasData) {
3074            output.WriteBytes(2, field_names[0], Data);
3075          }
3076          UnknownFields.WriteTo(output);
3077        }
3078       
3079        private int memoizedSerializedSize = -1;
3080        public override int SerializedSize {
3081          get {
3082            int size = memoizedSerializedSize;
3083            if (size != -1) return size;
3084           
3085            size = 0;
3086            if (hasName) {
3087              size += pb::CodedOutputStream.ComputeStringSize(1, Name);
3088            }
3089            if (hasData) {
3090              size += pb::CodedOutputStream.ComputeBytesSize(2, Data);
3091            }
3092            size += UnknownFields.SerializedSize;
3093            memoizedSerializedSize = size;
3094            return size;
3095          }
3096        }
3097       
3098        public static RawVariable ParseFrom(pb::ByteString data) {
3099          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
3100        }
3101        public static RawVariable ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
3102          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
3103        }
3104        public static RawVariable ParseFrom(byte[] data) {
3105          return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
3106        }
3107        public static RawVariable ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
3108          return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
3109        }
3110        public static RawVariable ParseFrom(global::System.IO.Stream input) {
3111          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
3112        }
3113        public static RawVariable ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
3114          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
3115        }
3116        public static RawVariable ParseDelimitedFrom(global::System.IO.Stream input) {
3117          return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
3118        }
3119        public static RawVariable ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
3120          return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
3121        }
3122        public static RawVariable ParseFrom(pb::ICodedInputStream input) {
3123          return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
3124        }
3125        public static RawVariable ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
3126          return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
3127        }
3128        private RawVariable MakeReadOnly() {
3129          return this;
3130        }
3131       
3132        public static Builder CreateBuilder() { return new Builder(); }
3133        public override Builder ToBuilder() { return CreateBuilder(this); }
3134        public override Builder CreateBuilderForType() { return new Builder(); }
3135        public static Builder CreateBuilder(RawVariable prototype) {
3136          return new Builder(prototype);
3137        }
3138       
3139        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
3140        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
3141        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
3142        public sealed partial class Builder : pb::GeneratedBuilder<RawVariable, Builder> {
3143          protected override Builder ThisBuilder {
3144            get { return this; }
3145          }
3146          public Builder() {
3147            result = DefaultInstance;
3148            resultIsReadOnly = true;
3149          }
3150          internal Builder(RawVariable cloneFrom) {
3151            result = cloneFrom;
3152            resultIsReadOnly = true;
3153          }
3154         
3155          private bool resultIsReadOnly;
3156          private RawVariable result;
3157         
3158          private RawVariable PrepareBuilder() {
3159            if (resultIsReadOnly) {
3160              RawVariable original = result;
3161              result = new RawVariable();
3162              resultIsReadOnly = false;
3163              MergeFrom(original);
3164            }
3165            return result;
3166          }
3167         
3168          public override bool IsInitialized {
3169            get { return result.IsInitialized; }
3170          }
3171         
3172          protected override RawVariable MessageBeingBuilt {
3173            get { return PrepareBuilder(); }
3174          }
3175         
3176          public override Builder Clear() {
3177            result = DefaultInstance;
3178            resultIsReadOnly = true;
3179            return this;
3180          }
3181         
3182          public override Builder Clone() {
3183            if (resultIsReadOnly) {
3184              return new Builder(result);
3185            } else {
3186              return new Builder().MergeFrom(result);
3187            }
3188          }
3189         
3190          public override pbd::MessageDescriptor DescriptorForType {
3191            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable.Descriptor; }
3192          }
3193         
3194          public override RawVariable DefaultInstanceForType {
3195            get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable.DefaultInstance; }
3196          }
3197         
3198          public override RawVariable BuildPartial() {
3199            if (resultIsReadOnly) {
3200              return result;
3201            }
3202            resultIsReadOnly = true;
3203            return result.MakeReadOnly();
3204          }
3205         
3206          public override Builder MergeFrom(pb::IMessage other) {
3207            if (other is RawVariable) {
3208              return MergeFrom((RawVariable) other);
3209            } else {
3210              base.MergeFrom(other);
3211              return this;
3212            }
3213          }
3214         
3215          public override Builder MergeFrom(RawVariable other) {
3216            if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable.DefaultInstance) return this;
3217            PrepareBuilder();
3218            if (other.HasName) {
3219              Name = other.Name;
3220            }
3221            if (other.HasData) {
3222              Data = other.Data;
3223            }
3224            this.MergeUnknownFields(other.UnknownFields);
3225            return this;
3226          }
3227         
3228          public override Builder MergeFrom(pb::ICodedInputStream input) {
3229            return MergeFrom(input, pb::ExtensionRegistry.Empty);
3230          }
3231         
3232          public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
3233            PrepareBuilder();
3234            pb::UnknownFieldSet.Builder unknownFields = null;
3235            uint tag;
3236            string field_name;
3237            while (input.ReadTag(out tag, out field_name)) {
3238              if(tag == 0 && field_name != null) {
3239                int field_ordinal = global::System.Array.BinarySearch(_rawVariableFieldNames, field_name, global::System.StringComparer.Ordinal);
3240                if(field_ordinal >= 0)
3241                  tag = _rawVariableFieldTags[field_ordinal];
3242                else {
3243                  if (unknownFields == null) {
3244                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
3245                  }
3246                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
3247                  continue;
3248                }
3249              }
3250              switch (tag) {
3251                case 0: {
3252                  throw pb::InvalidProtocolBufferException.InvalidTag();
3253                }
3254                default: {
3255                  if (pb::WireFormat.IsEndGroupTag(tag)) {
3256                    if (unknownFields != null) {
3257                      this.UnknownFields = unknownFields.Build();
3258                    }
3259                    return this;
3260                  }
3261                  if (unknownFields == null) {
3262                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
3263                  }
3264                  ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
3265                  break;
3266                }
3267                case 10: {
3268                  result.hasName = input.ReadString(ref result.name_);
3269                  break;
3270                }
3271                case 18: {
3272                  result.hasData = input.ReadBytes(ref result.data_);
3273                  break;
3274                }
3275              }
3276            }
3277           
3278            if (unknownFields != null) {
3279              this.UnknownFields = unknownFields.Build();
3280            }
3281            return this;
3282          }
3283         
3284         
3285          public bool HasName {
3286            get { return result.hasName; }
3287          }
3288          public string Name {
3289            get { return result.Name; }
3290            set { SetName(value); }
3291          }
3292          public Builder SetName(string value) {
3293            pb::ThrowHelper.ThrowIfNull(value, "value");
3294            PrepareBuilder();
3295            result.hasName = true;
3296            result.name_ = value;
3297            return this;
3298          }
3299          public Builder ClearName() {
3300            PrepareBuilder();
3301            result.hasName = false;
3302            result.name_ = "";
3303            return this;
3304          }
3305         
3306          public bool HasData {
3307            get { return result.hasData; }
3308          }
3309          public pb::ByteString Data {
3310            get { return result.Data; }
3311            set { SetData(value); }
3312          }
3313          public Builder SetData(pb::ByteString value) {
3314            pb::ThrowHelper.ThrowIfNull(value, "value");
3315            PrepareBuilder();
3316            result.hasData = true;
3317            result.data_ = value;
3318            return this;
3319          }
3320          public Builder ClearData() {
3321            PrepareBuilder();
3322            result.hasData = false;
3323            result.data_ = pb::ByteString.Empty;
3324            return this;
3325          }
3326        }
3327        static RawVariable() {
3328          object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
3329        }
3330      }
3331     
3332    }
3333    #endregion
3334   
3335    public const int SolutionIdFieldNumber = 1;
3336    private bool hasSolutionId;
3337    private int solutionId_;
3338    public bool HasSolutionId {
3339      get { return hasSolutionId; }
3340    }
3341    public int SolutionId {
3342      get { return solutionId_; }
3343    }
3344   
3345    public const int IntegerVarsFieldNumber = 2;
3346    private pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable> integerVars_ = new pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable>();
3347    public scg::IList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable> IntegerVarsList {
3348      get { return integerVars_; }
3349    }
3350    public int IntegerVarsCount {
3351      get { return integerVars_.Count; }
3352    }
3353    public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable GetIntegerVars(int index) {
3354      return integerVars_[index];
3355    }
3356   
3357    public const int IntegerArrayVarsFieldNumber = 3;
3358    private pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable> integerArrayVars_ = new pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable>();
3359    public scg::IList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable> IntegerArrayVarsList {
3360      get { return integerArrayVars_; }
3361    }
3362    public int IntegerArrayVarsCount {
3363      get { return integerArrayVars_.Count; }
3364    }
3365    public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable GetIntegerArrayVars(int index) {
3366      return integerArrayVars_[index];
3367    }
3368   
3369    public const int DoubleVarsFieldNumber = 4;
3370    private pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable> doubleVars_ = new pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable>();
3371    public scg::IList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable> DoubleVarsList {
3372      get { return doubleVars_; }
3373    }
3374    public int DoubleVarsCount {
3375      get { return doubleVars_.Count; }
3376    }
3377    public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable GetDoubleVars(int index) {
3378      return doubleVars_[index];
3379    }
3380   
3381    public const int DoubleArrayVarsFieldNumber = 5;
3382    private pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable> doubleArrayVars_ = new pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable>();
3383    public scg::IList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable> DoubleArrayVarsList {
3384      get { return doubleArrayVars_; }
3385    }
3386    public int DoubleArrayVarsCount {
3387      get { return doubleArrayVars_.Count; }
3388    }
3389    public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable GetDoubleArrayVars(int index) {
3390      return doubleArrayVars_[index];
3391    }
3392   
3393    public const int BoolVarsFieldNumber = 6;
3394    private pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable> boolVars_ = new pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable>();
3395    public scg::IList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable> BoolVarsList {
3396      get { return boolVars_; }
3397    }
3398    public int BoolVarsCount {
3399      get { return boolVars_.Count; }
3400    }
3401    public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable GetBoolVars(int index) {
3402      return boolVars_[index];
3403    }
3404   
3405    public const int BoolArrayVarsFieldNumber = 7;
3406    private pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable> boolArrayVars_ = new pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable>();
3407    public scg::IList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable> BoolArrayVarsList {
3408      get { return boolArrayVars_; }
3409    }
3410    public int BoolArrayVarsCount {
3411      get { return boolArrayVars_.Count; }
3412    }
3413    public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable GetBoolArrayVars(int index) {
3414      return boolArrayVars_[index];
3415    }
3416   
3417    public const int StringVarsFieldNumber = 8;
3418    private pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable> stringVars_ = new pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable>();
3419    public scg::IList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable> StringVarsList {
3420      get { return stringVars_; }
3421    }
3422    public int StringVarsCount {
3423      get { return stringVars_.Count; }
3424    }
3425    public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable GetStringVars(int index) {
3426      return stringVars_[index];
3427    }
3428   
3429    public const int StringArrayVarsFieldNumber = 9;
3430    private pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable> stringArrayVars_ = new pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable>();
3431    public scg::IList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable> StringArrayVarsList {
3432      get { return stringArrayVars_; }
3433    }
3434    public int StringArrayVarsCount {
3435      get { return stringArrayVars_.Count; }
3436    }
3437    public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable GetStringArrayVars(int index) {
3438      return stringArrayVars_[index];
3439    }
3440   
3441    public const int RawVarsFieldNumber = 10;
3442    private pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable> rawVars_ = new pbc::PopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable>();
3443    public scg::IList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable> RawVarsList {
3444      get { return rawVars_; }
3445    }
3446    public int RawVarsCount {
3447      get { return rawVars_.Count; }
3448    }
3449    public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable GetRawVars(int index) {
3450      return rawVars_[index];
3451    }
3452   
3453    public override bool IsInitialized {
3454      get {
3455        if (!hasSolutionId) return false;
3456        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable element in IntegerVarsList) {
3457          if (!element.IsInitialized) return false;
3458        }
3459        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable element in IntegerArrayVarsList) {
3460          if (!element.IsInitialized) return false;
3461        }
3462        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable element in DoubleVarsList) {
3463          if (!element.IsInitialized) return false;
3464        }
3465        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable element in DoubleArrayVarsList) {
3466          if (!element.IsInitialized) return false;
3467        }
3468        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable element in BoolVarsList) {
3469          if (!element.IsInitialized) return false;
3470        }
3471        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable element in BoolArrayVarsList) {
3472          if (!element.IsInitialized) return false;
3473        }
3474        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable element in StringVarsList) {
3475          if (!element.IsInitialized) return false;
3476        }
3477        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable element in StringArrayVarsList) {
3478          if (!element.IsInitialized) return false;
3479        }
3480        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable element in RawVarsList) {
3481          if (!element.IsInitialized) return false;
3482        }
3483        return true;
3484      }
3485    }
3486   
3487    public override void WriteTo(pb::ICodedOutputStream output) {
3488      int size = SerializedSize;
3489      string[] field_names = _solutionMessageFieldNames;
3490      if (hasSolutionId) {
3491        output.WriteInt32(1, field_names[7], SolutionId);
3492      }
3493      if (integerVars_.Count > 0) {
3494        output.WriteMessageArray(2, field_names[5], integerVars_);
3495      }
3496      if (integerArrayVars_.Count > 0) {
3497        output.WriteMessageArray(3, field_names[4], integerArrayVars_);
3498      }
3499      if (doubleVars_.Count > 0) {
3500        output.WriteMessageArray(4, field_names[3], doubleVars_);
3501      }
3502      if (doubleArrayVars_.Count > 0) {
3503        output.WriteMessageArray(5, field_names[2], doubleArrayVars_);
3504      }
3505      if (boolVars_.Count > 0) {
3506        output.WriteMessageArray(6, field_names[1], boolVars_);
3507      }
3508      if (boolArrayVars_.Count > 0) {
3509        output.WriteMessageArray(7, field_names[0], boolArrayVars_);
3510      }
3511      if (stringVars_.Count > 0) {
3512        output.WriteMessageArray(8, field_names[9], stringVars_);
3513      }
3514      if (stringArrayVars_.Count > 0) {
3515        output.WriteMessageArray(9, field_names[8], stringArrayVars_);
3516      }
3517      if (rawVars_.Count > 0) {
3518        output.WriteMessageArray(10, field_names[6], rawVars_);
3519      }
3520      UnknownFields.WriteTo(output);
3521    }
3522   
3523    private int memoizedSerializedSize = -1;
3524    public override int SerializedSize {
3525      get {
3526        int size = memoizedSerializedSize;
3527        if (size != -1) return size;
3528       
3529        size = 0;
3530        if (hasSolutionId) {
3531          size += pb::CodedOutputStream.ComputeInt32Size(1, SolutionId);
3532        }
3533        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable element in IntegerVarsList) {
3534          size += pb::CodedOutputStream.ComputeMessageSize(2, element);
3535        }
3536        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable element in IntegerArrayVarsList) {
3537          size += pb::CodedOutputStream.ComputeMessageSize(3, element);
3538        }
3539        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable element in DoubleVarsList) {
3540          size += pb::CodedOutputStream.ComputeMessageSize(4, element);
3541        }
3542        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable element in DoubleArrayVarsList) {
3543          size += pb::CodedOutputStream.ComputeMessageSize(5, element);
3544        }
3545        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable element in BoolVarsList) {
3546          size += pb::CodedOutputStream.ComputeMessageSize(6, element);
3547        }
3548        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable element in BoolArrayVarsList) {
3549          size += pb::CodedOutputStream.ComputeMessageSize(7, element);
3550        }
3551        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable element in StringVarsList) {
3552          size += pb::CodedOutputStream.ComputeMessageSize(8, element);
3553        }
3554        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable element in StringArrayVarsList) {
3555          size += pb::CodedOutputStream.ComputeMessageSize(9, element);
3556        }
3557        foreach (global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable element in RawVarsList) {
3558          size += pb::CodedOutputStream.ComputeMessageSize(10, element);
3559        }
3560        size += UnknownFields.SerializedSize;
3561        memoizedSerializedSize = size;
3562        return size;
3563      }
3564    }
3565   
3566    public static SolutionMessage ParseFrom(pb::ByteString data) {
3567      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
3568    }
3569    public static SolutionMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
3570      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
3571    }
3572    public static SolutionMessage ParseFrom(byte[] data) {
3573      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
3574    }
3575    public static SolutionMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
3576      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
3577    }
3578    public static SolutionMessage ParseFrom(global::System.IO.Stream input) {
3579      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
3580    }
3581    public static SolutionMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
3582      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
3583    }
3584    public static SolutionMessage ParseDelimitedFrom(global::System.IO.Stream input) {
3585      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
3586    }
3587    public static SolutionMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
3588      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
3589    }
3590    public static SolutionMessage ParseFrom(pb::ICodedInputStream input) {
3591      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
3592    }
3593    public static SolutionMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
3594      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
3595    }
3596    private SolutionMessage MakeReadOnly() {
3597      integerVars_.MakeReadOnly();
3598      integerArrayVars_.MakeReadOnly();
3599      doubleVars_.MakeReadOnly();
3600      doubleArrayVars_.MakeReadOnly();
3601      boolVars_.MakeReadOnly();
3602      boolArrayVars_.MakeReadOnly();
3603      stringVars_.MakeReadOnly();
3604      stringArrayVars_.MakeReadOnly();
3605      rawVars_.MakeReadOnly();
3606      return this;
3607    }
3608   
3609    public static Builder CreateBuilder() { return new Builder(); }
3610    public override Builder ToBuilder() { return CreateBuilder(this); }
3611    public override Builder CreateBuilderForType() { return new Builder(); }
3612    public static Builder CreateBuilder(SolutionMessage prototype) {
3613      return new Builder(prototype);
3614    }
3615   
3616    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
3617    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
3618    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
3619    public sealed partial class Builder : pb::GeneratedBuilder<SolutionMessage, Builder> {
3620      protected override Builder ThisBuilder {
3621        get { return this; }
3622      }
3623      public Builder() {
3624        result = DefaultInstance;
3625        resultIsReadOnly = true;
3626      }
3627      internal Builder(SolutionMessage cloneFrom) {
3628        result = cloneFrom;
3629        resultIsReadOnly = true;
3630      }
3631     
3632      private bool resultIsReadOnly;
3633      private SolutionMessage result;
3634     
3635      private SolutionMessage PrepareBuilder() {
3636        if (resultIsReadOnly) {
3637          SolutionMessage original = result;
3638          result = new SolutionMessage();
3639          resultIsReadOnly = false;
3640          MergeFrom(original);
3641        }
3642        return result;
3643      }
3644     
3645      public override bool IsInitialized {
3646        get { return result.IsInitialized; }
3647      }
3648     
3649      protected override SolutionMessage MessageBeingBuilt {
3650        get { return PrepareBuilder(); }
3651      }
3652     
3653      public override Builder Clear() {
3654        result = DefaultInstance;
3655        resultIsReadOnly = true;
3656        return this;
3657      }
3658     
3659      public override Builder Clone() {
3660        if (resultIsReadOnly) {
3661          return new Builder(result);
3662        } else {
3663          return new Builder().MergeFrom(result);
3664        }
3665      }
3666     
3667      public override pbd::MessageDescriptor DescriptorForType {
3668        get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Descriptor; }
3669      }
3670     
3671      public override SolutionMessage DefaultInstanceForType {
3672        get { return global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.DefaultInstance; }
3673      }
3674     
3675      public override SolutionMessage BuildPartial() {
3676        if (resultIsReadOnly) {
3677          return result;
3678        }
3679        resultIsReadOnly = true;
3680        return result.MakeReadOnly();
3681      }
3682     
3683      public override Builder MergeFrom(pb::IMessage other) {
3684        if (other is SolutionMessage) {
3685          return MergeFrom((SolutionMessage) other);
3686        } else {
3687          base.MergeFrom(other);
3688          return this;
3689        }
3690      }
3691     
3692      public override Builder MergeFrom(SolutionMessage other) {
3693        if (other == global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.DefaultInstance) return this;
3694        PrepareBuilder();
3695        if (other.HasSolutionId) {
3696          SolutionId = other.SolutionId;
3697        }
3698        if (other.integerVars_.Count != 0) {
3699          result.integerVars_.Add(other.integerVars_);
3700        }
3701        if (other.integerArrayVars_.Count != 0) {
3702          result.integerArrayVars_.Add(other.integerArrayVars_);
3703        }
3704        if (other.doubleVars_.Count != 0) {
3705          result.doubleVars_.Add(other.doubleVars_);
3706        }
3707        if (other.doubleArrayVars_.Count != 0) {
3708          result.doubleArrayVars_.Add(other.doubleArrayVars_);
3709        }
3710        if (other.boolVars_.Count != 0) {
3711          result.boolVars_.Add(other.boolVars_);
3712        }
3713        if (other.boolArrayVars_.Count != 0) {
3714          result.boolArrayVars_.Add(other.boolArrayVars_);
3715        }
3716        if (other.stringVars_.Count != 0) {
3717          result.stringVars_.Add(other.stringVars_);
3718        }
3719        if (other.stringArrayVars_.Count != 0) {
3720          result.stringArrayVars_.Add(other.stringArrayVars_);
3721        }
3722        if (other.rawVars_.Count != 0) {
3723          result.rawVars_.Add(other.rawVars_);
3724        }
3725        this.MergeUnknownFields(other.UnknownFields);
3726        return this;
3727      }
3728     
3729      public override Builder MergeFrom(pb::ICodedInputStream input) {
3730        return MergeFrom(input, pb::ExtensionRegistry.Empty);
3731      }
3732     
3733      public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
3734        PrepareBuilder();
3735        pb::UnknownFieldSet.Builder unknownFields = null;
3736        uint tag;
3737        string field_name;
3738        while (input.ReadTag(out tag, out field_name)) {
3739          if(tag == 0 && field_name != null) {
3740            int field_ordinal = global::System.Array.BinarySearch(_solutionMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
3741            if(field_ordinal >= 0)
3742              tag = _solutionMessageFieldTags[field_ordinal];
3743            else {
3744              if (unknownFields == null) {
3745                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
3746              }
3747              ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
3748              continue;
3749            }
3750          }
3751          switch (tag) {
3752            case 0: {
3753              throw pb::InvalidProtocolBufferException.InvalidTag();
3754            }
3755            default: {
3756              if (pb::WireFormat.IsEndGroupTag(tag)) {
3757                if (unknownFields != null) {
3758                  this.UnknownFields = unknownFields.Build();
3759                }
3760                return this;
3761              }
3762              if (unknownFields == null) {
3763                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
3764              }
3765              ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
3766              break;
3767            }
3768            case 8: {
3769              result.hasSolutionId = input.ReadInt32(ref result.solutionId_);
3770              break;
3771            }
3772            case 18: {
3773              input.ReadMessageArray(tag, field_name, result.integerVars_, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable.DefaultInstance, extensionRegistry);
3774              break;
3775            }
3776            case 26: {
3777              input.ReadMessageArray(tag, field_name, result.integerArrayVars_, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable.DefaultInstance, extensionRegistry);
3778              break;
3779            }
3780            case 34: {
3781              input.ReadMessageArray(tag, field_name, result.doubleVars_, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable.DefaultInstance, extensionRegistry);
3782              break;
3783            }
3784            case 42: {
3785              input.ReadMessageArray(tag, field_name, result.doubleArrayVars_, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable.DefaultInstance, extensionRegistry);
3786              break;
3787            }
3788            case 50: {
3789              input.ReadMessageArray(tag, field_name, result.boolVars_, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable.DefaultInstance, extensionRegistry);
3790              break;
3791            }
3792            case 58: {
3793              input.ReadMessageArray(tag, field_name, result.boolArrayVars_, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable.DefaultInstance, extensionRegistry);
3794              break;
3795            }
3796            case 66: {
3797              input.ReadMessageArray(tag, field_name, result.stringVars_, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable.DefaultInstance, extensionRegistry);
3798              break;
3799            }
3800            case 74: {
3801              input.ReadMessageArray(tag, field_name, result.stringArrayVars_, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable.DefaultInstance, extensionRegistry);
3802              break;
3803            }
3804            case 82: {
3805              input.ReadMessageArray(tag, field_name, result.rawVars_, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable.DefaultInstance, extensionRegistry);
3806              break;
3807            }
3808          }
3809        }
3810       
3811        if (unknownFields != null) {
3812          this.UnknownFields = unknownFields.Build();
3813        }
3814        return this;
3815      }
3816     
3817     
3818      public bool HasSolutionId {
3819        get { return result.hasSolutionId; }
3820      }
3821      public int SolutionId {
3822        get { return result.SolutionId; }
3823        set { SetSolutionId(value); }
3824      }
3825      public Builder SetSolutionId(int value) {
3826        PrepareBuilder();
3827        result.hasSolutionId = true;
3828        result.solutionId_ = value;
3829        return this;
3830      }
3831      public Builder ClearSolutionId() {
3832        PrepareBuilder();
3833        result.hasSolutionId = false;
3834        result.solutionId_ = 0;
3835        return this;
3836      }
3837     
3838      public pbc::IPopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable> IntegerVarsList {
3839        get { return PrepareBuilder().integerVars_; }
3840      }
3841      public int IntegerVarsCount {
3842        get { return result.IntegerVarsCount; }
3843      }
3844      public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable GetIntegerVars(int index) {
3845        return result.GetIntegerVars(index);
3846      }
3847      public Builder SetIntegerVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable value) {
3848        pb::ThrowHelper.ThrowIfNull(value, "value");
3849        PrepareBuilder();
3850        result.integerVars_[index] = value;
3851        return this;
3852      }
3853      public Builder SetIntegerVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable.Builder builderForValue) {
3854        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
3855        PrepareBuilder();
3856        result.integerVars_[index] = builderForValue.Build();
3857        return this;
3858      }
3859      public Builder AddIntegerVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable value) {
3860        pb::ThrowHelper.ThrowIfNull(value, "value");
3861        PrepareBuilder();
3862        result.integerVars_.Add(value);
3863        return this;
3864      }
3865      public Builder AddIntegerVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable.Builder builderForValue) {
3866        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
3867        PrepareBuilder();
3868        result.integerVars_.Add(builderForValue.Build());
3869        return this;
3870      }
3871      public Builder AddRangeIntegerVars(scg::IEnumerable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerVariable> values) {
3872        PrepareBuilder();
3873        result.integerVars_.Add(values);
3874        return this;
3875      }
3876      public Builder ClearIntegerVars() {
3877        PrepareBuilder();
3878        result.integerVars_.Clear();
3879        return this;
3880      }
3881     
3882      public pbc::IPopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable> IntegerArrayVarsList {
3883        get { return PrepareBuilder().integerArrayVars_; }
3884      }
3885      public int IntegerArrayVarsCount {
3886        get { return result.IntegerArrayVarsCount; }
3887      }
3888      public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable GetIntegerArrayVars(int index) {
3889        return result.GetIntegerArrayVars(index);
3890      }
3891      public Builder SetIntegerArrayVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable value) {
3892        pb::ThrowHelper.ThrowIfNull(value, "value");
3893        PrepareBuilder();
3894        result.integerArrayVars_[index] = value;
3895        return this;
3896      }
3897      public Builder SetIntegerArrayVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable.Builder builderForValue) {
3898        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
3899        PrepareBuilder();
3900        result.integerArrayVars_[index] = builderForValue.Build();
3901        return this;
3902      }
3903      public Builder AddIntegerArrayVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable value) {
3904        pb::ThrowHelper.ThrowIfNull(value, "value");
3905        PrepareBuilder();
3906        result.integerArrayVars_.Add(value);
3907        return this;
3908      }
3909      public Builder AddIntegerArrayVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable.Builder builderForValue) {
3910        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
3911        PrepareBuilder();
3912        result.integerArrayVars_.Add(builderForValue.Build());
3913        return this;
3914      }
3915      public Builder AddRangeIntegerArrayVars(scg::IEnumerable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.IntegerArrayVariable> values) {
3916        PrepareBuilder();
3917        result.integerArrayVars_.Add(values);
3918        return this;
3919      }
3920      public Builder ClearIntegerArrayVars() {
3921        PrepareBuilder();
3922        result.integerArrayVars_.Clear();
3923        return this;
3924      }
3925     
3926      public pbc::IPopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable> DoubleVarsList {
3927        get { return PrepareBuilder().doubleVars_; }
3928      }
3929      public int DoubleVarsCount {
3930        get { return result.DoubleVarsCount; }
3931      }
3932      public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable GetDoubleVars(int index) {
3933        return result.GetDoubleVars(index);
3934      }
3935      public Builder SetDoubleVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable value) {
3936        pb::ThrowHelper.ThrowIfNull(value, "value");
3937        PrepareBuilder();
3938        result.doubleVars_[index] = value;
3939        return this;
3940      }
3941      public Builder SetDoubleVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable.Builder builderForValue) {
3942        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
3943        PrepareBuilder();
3944        result.doubleVars_[index] = builderForValue.Build();
3945        return this;
3946      }
3947      public Builder AddDoubleVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable value) {
3948        pb::ThrowHelper.ThrowIfNull(value, "value");
3949        PrepareBuilder();
3950        result.doubleVars_.Add(value);
3951        return this;
3952      }
3953      public Builder AddDoubleVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable.Builder builderForValue) {
3954        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
3955        PrepareBuilder();
3956        result.doubleVars_.Add(builderForValue.Build());
3957        return this;
3958      }
3959      public Builder AddRangeDoubleVars(scg::IEnumerable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleVariable> values) {
3960        PrepareBuilder();
3961        result.doubleVars_.Add(values);
3962        return this;
3963      }
3964      public Builder ClearDoubleVars() {
3965        PrepareBuilder();
3966        result.doubleVars_.Clear();
3967        return this;
3968      }
3969     
3970      public pbc::IPopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable> DoubleArrayVarsList {
3971        get { return PrepareBuilder().doubleArrayVars_; }
3972      }
3973      public int DoubleArrayVarsCount {
3974        get { return result.DoubleArrayVarsCount; }
3975      }
3976      public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable GetDoubleArrayVars(int index) {
3977        return result.GetDoubleArrayVars(index);
3978      }
3979      public Builder SetDoubleArrayVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable value) {
3980        pb::ThrowHelper.ThrowIfNull(value, "value");
3981        PrepareBuilder();
3982        result.doubleArrayVars_[index] = value;
3983        return this;
3984      }
3985      public Builder SetDoubleArrayVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable.Builder builderForValue) {
3986        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
3987        PrepareBuilder();
3988        result.doubleArrayVars_[index] = builderForValue.Build();
3989        return this;
3990      }
3991      public Builder AddDoubleArrayVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable value) {
3992        pb::ThrowHelper.ThrowIfNull(value, "value");
3993        PrepareBuilder();
3994        result.doubleArrayVars_.Add(value);
3995        return this;
3996      }
3997      public Builder AddDoubleArrayVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable.Builder builderForValue) {
3998        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
3999        PrepareBuilder();
4000        result.doubleArrayVars_.Add(builderForValue.Build());
4001        return this;
4002      }
4003      public Builder AddRangeDoubleArrayVars(scg::IEnumerable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.DoubleArrayVariable> values) {
4004        PrepareBuilder();
4005        result.doubleArrayVars_.Add(values);
4006        return this;
4007      }
4008      public Builder ClearDoubleArrayVars() {
4009        PrepareBuilder();
4010        result.doubleArrayVars_.Clear();
4011        return this;
4012      }
4013     
4014      public pbc::IPopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable> BoolVarsList {
4015        get { return PrepareBuilder().boolVars_; }
4016      }
4017      public int BoolVarsCount {
4018        get { return result.BoolVarsCount; }
4019      }
4020      public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable GetBoolVars(int index) {
4021        return result.GetBoolVars(index);
4022      }
4023      public Builder SetBoolVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable value) {
4024        pb::ThrowHelper.ThrowIfNull(value, "value");
4025        PrepareBuilder();
4026        result.boolVars_[index] = value;
4027        return this;
4028      }
4029      public Builder SetBoolVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable.Builder builderForValue) {
4030        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4031        PrepareBuilder();
4032        result.boolVars_[index] = builderForValue.Build();
4033        return this;
4034      }
4035      public Builder AddBoolVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable value) {
4036        pb::ThrowHelper.ThrowIfNull(value, "value");
4037        PrepareBuilder();
4038        result.boolVars_.Add(value);
4039        return this;
4040      }
4041      public Builder AddBoolVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable.Builder builderForValue) {
4042        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4043        PrepareBuilder();
4044        result.boolVars_.Add(builderForValue.Build());
4045        return this;
4046      }
4047      public Builder AddRangeBoolVars(scg::IEnumerable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolVariable> values) {
4048        PrepareBuilder();
4049        result.boolVars_.Add(values);
4050        return this;
4051      }
4052      public Builder ClearBoolVars() {
4053        PrepareBuilder();
4054        result.boolVars_.Clear();
4055        return this;
4056      }
4057     
4058      public pbc::IPopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable> BoolArrayVarsList {
4059        get { return PrepareBuilder().boolArrayVars_; }
4060      }
4061      public int BoolArrayVarsCount {
4062        get { return result.BoolArrayVarsCount; }
4063      }
4064      public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable GetBoolArrayVars(int index) {
4065        return result.GetBoolArrayVars(index);
4066      }
4067      public Builder SetBoolArrayVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable value) {
4068        pb::ThrowHelper.ThrowIfNull(value, "value");
4069        PrepareBuilder();
4070        result.boolArrayVars_[index] = value;
4071        return this;
4072      }
4073      public Builder SetBoolArrayVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable.Builder builderForValue) {
4074        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4075        PrepareBuilder();
4076        result.boolArrayVars_[index] = builderForValue.Build();
4077        return this;
4078      }
4079      public Builder AddBoolArrayVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable value) {
4080        pb::ThrowHelper.ThrowIfNull(value, "value");
4081        PrepareBuilder();
4082        result.boolArrayVars_.Add(value);
4083        return this;
4084      }
4085      public Builder AddBoolArrayVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable.Builder builderForValue) {
4086        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4087        PrepareBuilder();
4088        result.boolArrayVars_.Add(builderForValue.Build());
4089        return this;
4090      }
4091      public Builder AddRangeBoolArrayVars(scg::IEnumerable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.BoolArrayVariable> values) {
4092        PrepareBuilder();
4093        result.boolArrayVars_.Add(values);
4094        return this;
4095      }
4096      public Builder ClearBoolArrayVars() {
4097        PrepareBuilder();
4098        result.boolArrayVars_.Clear();
4099        return this;
4100      }
4101     
4102      public pbc::IPopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable> StringVarsList {
4103        get { return PrepareBuilder().stringVars_; }
4104      }
4105      public int StringVarsCount {
4106        get { return result.StringVarsCount; }
4107      }
4108      public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable GetStringVars(int index) {
4109        return result.GetStringVars(index);
4110      }
4111      public Builder SetStringVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable value) {
4112        pb::ThrowHelper.ThrowIfNull(value, "value");
4113        PrepareBuilder();
4114        result.stringVars_[index] = value;
4115        return this;
4116      }
4117      public Builder SetStringVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable.Builder builderForValue) {
4118        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4119        PrepareBuilder();
4120        result.stringVars_[index] = builderForValue.Build();
4121        return this;
4122      }
4123      public Builder AddStringVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable value) {
4124        pb::ThrowHelper.ThrowIfNull(value, "value");
4125        PrepareBuilder();
4126        result.stringVars_.Add(value);
4127        return this;
4128      }
4129      public Builder AddStringVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable.Builder builderForValue) {
4130        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4131        PrepareBuilder();
4132        result.stringVars_.Add(builderForValue.Build());
4133        return this;
4134      }
4135      public Builder AddRangeStringVars(scg::IEnumerable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringVariable> values) {
4136        PrepareBuilder();
4137        result.stringVars_.Add(values);
4138        return this;
4139      }
4140      public Builder ClearStringVars() {
4141        PrepareBuilder();
4142        result.stringVars_.Clear();
4143        return this;
4144      }
4145     
4146      public pbc::IPopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable> StringArrayVarsList {
4147        get { return PrepareBuilder().stringArrayVars_; }
4148      }
4149      public int StringArrayVarsCount {
4150        get { return result.StringArrayVarsCount; }
4151      }
4152      public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable GetStringArrayVars(int index) {
4153        return result.GetStringArrayVars(index);
4154      }
4155      public Builder SetStringArrayVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable value) {
4156        pb::ThrowHelper.ThrowIfNull(value, "value");
4157        PrepareBuilder();
4158        result.stringArrayVars_[index] = value;
4159        return this;
4160      }
4161      public Builder SetStringArrayVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable.Builder builderForValue) {
4162        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4163        PrepareBuilder();
4164        result.stringArrayVars_[index] = builderForValue.Build();
4165        return this;
4166      }
4167      public Builder AddStringArrayVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable value) {
4168        pb::ThrowHelper.ThrowIfNull(value, "value");
4169        PrepareBuilder();
4170        result.stringArrayVars_.Add(value);
4171        return this;
4172      }
4173      public Builder AddStringArrayVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable.Builder builderForValue) {
4174        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4175        PrepareBuilder();
4176        result.stringArrayVars_.Add(builderForValue.Build());
4177        return this;
4178      }
4179      public Builder AddRangeStringArrayVars(scg::IEnumerable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.StringArrayVariable> values) {
4180        PrepareBuilder();
4181        result.stringArrayVars_.Add(values);
4182        return this;
4183      }
4184      public Builder ClearStringArrayVars() {
4185        PrepareBuilder();
4186        result.stringArrayVars_.Clear();
4187        return this;
4188      }
4189     
4190      public pbc::IPopsicleList<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable> RawVarsList {
4191        get { return PrepareBuilder().rawVars_; }
4192      }
4193      public int RawVarsCount {
4194        get { return result.RawVarsCount; }
4195      }
4196      public global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable GetRawVars(int index) {
4197        return result.GetRawVars(index);
4198      }
4199      public Builder SetRawVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable value) {
4200        pb::ThrowHelper.ThrowIfNull(value, "value");
4201        PrepareBuilder();
4202        result.rawVars_[index] = value;
4203        return this;
4204      }
4205      public Builder SetRawVars(int index, global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable.Builder builderForValue) {
4206        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4207        PrepareBuilder();
4208        result.rawVars_[index] = builderForValue.Build();
4209        return this;
4210      }
4211      public Builder AddRawVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable value) {
4212        pb::ThrowHelper.ThrowIfNull(value, "value");
4213        PrepareBuilder();
4214        result.rawVars_.Add(value);
4215        return this;
4216      }
4217      public Builder AddRawVars(global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable.Builder builderForValue) {
4218        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
4219        PrepareBuilder();
4220        result.rawVars_.Add(builderForValue.Build());
4221        return this;
4222      }
4223      public Builder AddRangeRawVars(scg::IEnumerable<global::HeuristicLab.Problems.ExternalEvaluation.SolutionMessage.Types.RawVariable> values) {
4224        PrepareBuilder();
4225        result.rawVars_.Add(values);
4226        return this;
4227      }
4228      public Builder ClearRawVars() {
4229        PrepareBuilder();
4230        result.rawVars_.Clear();
4231        return this;
4232      }
4233    }
4234    static SolutionMessage() {
4235      object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
4236    }
4237  }
4238 
4239  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4240  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
4241  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
4242  public sealed partial class QualityMessage : pb::ExtendableMessage<QualityMessage, QualityMessage.Builder> {
4243    private QualityMessage() { }
4244    private static readonly QualityMessage defaultInstance = new QualityMessage().MakeReadOnly();
4245    private static readonly string[] _qualityMessageFieldNames = new string[] { "solutionId", "type" };
4246    private static readonly uint[] _qualityMessageFieldTags = new uint[] { 8, 16 };
4247    public static QualityMessage DefaultInstance {
4248      get { return defaultInstance; }
4249    }
4250   
4251    public override QualityMessage DefaultInstanceForType {
4252      get { return DefaultInstance; }
4253    }
4254   
4255    protected override QualityMessage ThisMessage {
4256      get { return this; }
4257    }
4258   
4259    public static pbd::MessageDescriptor Descriptor {
4260      get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_QualityMessage__Descriptor; }
4261    }
4262   
4263    protected override pb::FieldAccess.FieldAccessorTable<QualityMessage, QualityMessage.Builder> InternalFieldAccessors {
4264      get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_QualityMessage__FieldAccessorTable; }
4265    }
4266   
4267    #region Nested types
4268    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4269    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
4270    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
4271    public static class Types {
4272      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
4273      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
4274      public enum Type {
4275        SingleObjectiveQualityMessage = 1,
4276        MultiObjectiveQualityMessage = 2,
4277      }
4278     
4279    }
4280    #endregion
4281   
4282    public const int SolutionIdFieldNumber = 1;
4283    private bool hasSolutionId;
4284    private int solutionId_;
4285    public bool HasSolutionId {
4286      get { return hasSolutionId; }
4287    }
4288    public int SolutionId {
4289      get { return solutionId_; }
4290    }
4291   
4292    public const int TypeFieldNumber = 2;
4293    private bool hasType;
4294    private global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage.Types.Type type_ = global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage.Types.Type.SingleObjectiveQualityMessage;
4295    public bool HasType {
4296      get { return hasType; }
4297    }
4298    public global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage.Types.Type Type {
4299      get { return type_; }
4300    }
4301   
4302    public override bool IsInitialized {
4303      get {
4304        if (!hasSolutionId) return false;
4305        if (!hasType) return false;
4306        if (!ExtensionsAreInitialized) return false;
4307        return true;
4308      }
4309    }
4310   
4311    public override void WriteTo(pb::ICodedOutputStream output) {
4312      int size = SerializedSize;
4313      string[] field_names = _qualityMessageFieldNames;
4314      pb::ExtendableMessage<QualityMessage, QualityMessage.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
4315      if (hasSolutionId) {
4316        output.WriteInt32(1, field_names[0], SolutionId);
4317      }
4318      if (hasType) {
4319        output.WriteEnum(2, field_names[1], (int) Type, Type);
4320      }
4321      extensionWriter.WriteUntil(536870912, output);
4322      UnknownFields.WriteTo(output);
4323    }
4324   
4325    private int memoizedSerializedSize = -1;
4326    public override int SerializedSize {
4327      get {
4328        int size = memoizedSerializedSize;
4329        if (size != -1) return size;
4330       
4331        size = 0;
4332        if (hasSolutionId) {
4333          size += pb::CodedOutputStream.ComputeInt32Size(1, SolutionId);
4334        }
4335        if (hasType) {
4336          size += pb::CodedOutputStream.ComputeEnumSize(2, (int) Type);
4337        }
4338        size += ExtensionsSerializedSize;
4339        size += UnknownFields.SerializedSize;
4340        memoizedSerializedSize = size;
4341        return size;
4342      }
4343    }
4344   
4345    public static QualityMessage ParseFrom(pb::ByteString data) {
4346      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
4347    }
4348    public static QualityMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
4349      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
4350    }
4351    public static QualityMessage ParseFrom(byte[] data) {
4352      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
4353    }
4354    public static QualityMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
4355      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
4356    }
4357    public static QualityMessage ParseFrom(global::System.IO.Stream input) {
4358      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
4359    }
4360    public static QualityMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
4361      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
4362    }
4363    public static QualityMessage ParseDelimitedFrom(global::System.IO.Stream input) {
4364      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
4365    }
4366    public static QualityMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
4367      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
4368    }
4369    public static QualityMessage ParseFrom(pb::ICodedInputStream input) {
4370      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
4371    }
4372    public static QualityMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
4373      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
4374    }
4375    private QualityMessage MakeReadOnly() {
4376      return this;
4377    }
4378   
4379    public static Builder CreateBuilder() { return new Builder(); }
4380    public override Builder ToBuilder() { return CreateBuilder(this); }
4381    public override Builder CreateBuilderForType() { return new Builder(); }
4382    public static Builder CreateBuilder(QualityMessage prototype) {
4383      return new Builder(prototype);
4384    }
4385   
4386    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4387    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
4388    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
4389    public sealed partial class Builder : pb::ExtendableBuilder<QualityMessage, Builder> {
4390      protected override Builder ThisBuilder {
4391        get { return this; }
4392      }
4393      public Builder() {
4394        result = DefaultInstance;
4395        resultIsReadOnly = true;
4396      }
4397      internal Builder(QualityMessage cloneFrom) {
4398        result = cloneFrom;
4399        resultIsReadOnly = true;
4400      }
4401     
4402      private bool resultIsReadOnly;
4403      private QualityMessage result;
4404     
4405      private QualityMessage PrepareBuilder() {
4406        if (resultIsReadOnly) {
4407          QualityMessage original = result;
4408          result = new QualityMessage();
4409          resultIsReadOnly = false;
4410          MergeFrom(original);
4411        }
4412        return result;
4413      }
4414     
4415      public override bool IsInitialized {
4416        get { return result.IsInitialized; }
4417      }
4418     
4419      protected override QualityMessage MessageBeingBuilt {
4420        get { return PrepareBuilder(); }
4421      }
4422     
4423      public override Builder Clear() {
4424        result = DefaultInstance;
4425        resultIsReadOnly = true;
4426        return this;
4427      }
4428     
4429      public override Builder Clone() {
4430        if (resultIsReadOnly) {
4431          return new Builder(result);
4432        } else {
4433          return new Builder().MergeFrom(result);
4434        }
4435      }
4436     
4437      public override pbd::MessageDescriptor DescriptorForType {
4438        get { return global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage.Descriptor; }
4439      }
4440     
4441      public override QualityMessage DefaultInstanceForType {
4442        get { return global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage.DefaultInstance; }
4443      }
4444     
4445      public override QualityMessage BuildPartial() {
4446        if (resultIsReadOnly) {
4447          return result;
4448        }
4449        resultIsReadOnly = true;
4450        return result.MakeReadOnly();
4451      }
4452     
4453      public override Builder MergeFrom(pb::IMessage other) {
4454        if (other is QualityMessage) {
4455          return MergeFrom((QualityMessage) other);
4456        } else {
4457          base.MergeFrom(other);
4458          return this;
4459        }
4460      }
4461     
4462      public override Builder MergeFrom(QualityMessage other) {
4463        if (other == global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage.DefaultInstance) return this;
4464        PrepareBuilder();
4465        if (other.HasSolutionId) {
4466          SolutionId = other.SolutionId;
4467        }
4468        if (other.HasType) {
4469          Type = other.Type;
4470        }
4471          this.MergeExtensionFields(other);
4472        this.MergeUnknownFields(other.UnknownFields);
4473        return this;
4474      }
4475     
4476      public override Builder MergeFrom(pb::ICodedInputStream input) {
4477        return MergeFrom(input, pb::ExtensionRegistry.Empty);
4478      }
4479     
4480      public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
4481        PrepareBuilder();
4482        pb::UnknownFieldSet.Builder unknownFields = null;
4483        uint tag;
4484        string field_name;
4485        while (input.ReadTag(out tag, out field_name)) {
4486          if(tag == 0 && field_name != null) {
4487            int field_ordinal = global::System.Array.BinarySearch(_qualityMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
4488            if(field_ordinal >= 0)
4489              tag = _qualityMessageFieldTags[field_ordinal];
4490            else {
4491              if (unknownFields == null) {
4492                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
4493              }
4494              ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
4495              continue;
4496            }
4497          }
4498          switch (tag) {
4499            case 0: {
4500              throw pb::InvalidProtocolBufferException.InvalidTag();
4501            }
4502            default: {
4503              if (pb::WireFormat.IsEndGroupTag(tag)) {
4504                if (unknownFields != null) {
4505                  this.UnknownFields = unknownFields.Build();
4506                }
4507                return this;
4508              }
4509              if (unknownFields == null) {
4510                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
4511              }
4512              ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
4513              break;
4514            }
4515            case 8: {
4516              result.hasSolutionId = input.ReadInt32(ref result.solutionId_);
4517              break;
4518            }
4519            case 16: {
4520              object unknown;
4521              if(input.ReadEnum(ref result.type_, out unknown)) {
4522                result.hasType = true;
4523              } else if(unknown is int) {
4524                if (unknownFields == null) {
4525                  unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
4526                }
4527                unknownFields.MergeVarintField(2, (ulong)(int)unknown);
4528              }
4529              break;
4530            }
4531          }
4532        }
4533       
4534        if (unknownFields != null) {
4535          this.UnknownFields = unknownFields.Build();
4536        }
4537        return this;
4538      }
4539     
4540     
4541      public bool HasSolutionId {
4542        get { return result.hasSolutionId; }
4543      }
4544      public int SolutionId {
4545        get { return result.SolutionId; }
4546        set { SetSolutionId(value); }
4547      }
4548      public Builder SetSolutionId(int value) {
4549        PrepareBuilder();
4550        result.hasSolutionId = true;
4551        result.solutionId_ = value;
4552        return this;
4553      }
4554      public Builder ClearSolutionId() {
4555        PrepareBuilder();
4556        result.hasSolutionId = false;
4557        result.solutionId_ = 0;
4558        return this;
4559      }
4560     
4561      public bool HasType {
4562       get { return result.hasType; }
4563      }
4564      public global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage.Types.Type Type {
4565        get { return result.Type; }
4566        set { SetType(value); }
4567      }
4568      public Builder SetType(global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage.Types.Type value) {
4569        PrepareBuilder();
4570        result.hasType = true;
4571        result.type_ = value;
4572        return this;
4573      }
4574      public Builder ClearType() {
4575        PrepareBuilder();
4576        result.hasType = false;
4577        result.type_ = global::HeuristicLab.Problems.ExternalEvaluation.QualityMessage.Types.Type.SingleObjectiveQualityMessage;
4578        return this;
4579      }
4580    }
4581    static QualityMessage() {
4582      object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
4583    }
4584  }
4585 
4586  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4587  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
4588  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
4589  public sealed partial class SingleObjectiveQualityMessage : pb::GeneratedMessage<SingleObjectiveQualityMessage, SingleObjectiveQualityMessage.Builder> {
4590    private SingleObjectiveQualityMessage() { }
4591    private static readonly SingleObjectiveQualityMessage defaultInstance = new SingleObjectiveQualityMessage().MakeReadOnly();
4592    private static readonly string[] _singleObjectiveQualityMessageFieldNames = new string[] { "quality" };
4593    private static readonly uint[] _singleObjectiveQualityMessageFieldTags = new uint[] { 9 };
4594    public static SingleObjectiveQualityMessage DefaultInstance {
4595      get { return defaultInstance; }
4596    }
4597   
4598    public override SingleObjectiveQualityMessage DefaultInstanceForType {
4599      get { return DefaultInstance; }
4600    }
4601   
4602    protected override SingleObjectiveQualityMessage ThisMessage {
4603      get { return this; }
4604    }
4605   
4606    public static pbd::MessageDescriptor Descriptor {
4607      get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SingleObjectiveQualityMessage__Descriptor; }
4608    }
4609   
4610    protected override pb::FieldAccess.FieldAccessorTable<SingleObjectiveQualityMessage, SingleObjectiveQualityMessage.Builder> InternalFieldAccessors {
4611      get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_SingleObjectiveQualityMessage__FieldAccessorTable; }
4612    }
4613   
4614    public const int QualityMessage_FieldNumber = 1000;
4615    public static pb::GeneratedExtensionBase<global::HeuristicLab.Problems.ExternalEvaluation.SingleObjectiveQualityMessage> QualityMessage_;
4616    public const int QualityFieldNumber = 1;
4617    private bool hasQuality;
4618    private double quality_;
4619    public bool HasQuality {
4620      get { return hasQuality; }
4621    }
4622    public double Quality {
4623      get { return quality_; }
4624    }
4625   
4626    public override bool IsInitialized {
4627      get {
4628        if (!hasQuality) return false;
4629        return true;
4630      }
4631    }
4632   
4633    public override void WriteTo(pb::ICodedOutputStream output) {
4634      int size = SerializedSize;
4635      string[] field_names = _singleObjectiveQualityMessageFieldNames;
4636      if (hasQuality) {
4637        output.WriteDouble(1, field_names[0], Quality);
4638      }
4639      UnknownFields.WriteTo(output);
4640    }
4641   
4642    private int memoizedSerializedSize = -1;
4643    public override int SerializedSize {
4644      get {
4645        int size = memoizedSerializedSize;
4646        if (size != -1) return size;
4647       
4648        size = 0;
4649        if (hasQuality) {
4650          size += pb::CodedOutputStream.ComputeDoubleSize(1, Quality);
4651        }
4652        size += UnknownFields.SerializedSize;
4653        memoizedSerializedSize = size;
4654        return size;
4655      }
4656    }
4657   
4658    public static SingleObjectiveQualityMessage ParseFrom(pb::ByteString data) {
4659      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
4660    }
4661    public static SingleObjectiveQualityMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
4662      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
4663    }
4664    public static SingleObjectiveQualityMessage ParseFrom(byte[] data) {
4665      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
4666    }
4667    public static SingleObjectiveQualityMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
4668      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
4669    }
4670    public static SingleObjectiveQualityMessage ParseFrom(global::System.IO.Stream input) {
4671      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
4672    }
4673    public static SingleObjectiveQualityMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
4674      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
4675    }
4676    public static SingleObjectiveQualityMessage ParseDelimitedFrom(global::System.IO.Stream input) {
4677      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
4678    }
4679    public static SingleObjectiveQualityMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
4680      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
4681    }
4682    public static SingleObjectiveQualityMessage ParseFrom(pb::ICodedInputStream input) {
4683      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
4684    }
4685    public static SingleObjectiveQualityMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
4686      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
4687    }
4688    private SingleObjectiveQualityMessage MakeReadOnly() {
4689      return this;
4690    }
4691   
4692    public static Builder CreateBuilder() { return new Builder(); }
4693    public override Builder ToBuilder() { return CreateBuilder(this); }
4694    public override Builder CreateBuilderForType() { return new Builder(); }
4695    public static Builder CreateBuilder(SingleObjectiveQualityMessage prototype) {
4696      return new Builder(prototype);
4697    }
4698   
4699    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4700    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
4701    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
4702    public sealed partial class Builder : pb::GeneratedBuilder<SingleObjectiveQualityMessage, Builder> {
4703      protected override Builder ThisBuilder {
4704        get { return this; }
4705      }
4706      public Builder() {
4707        result = DefaultInstance;
4708        resultIsReadOnly = true;
4709      }
4710      internal Builder(SingleObjectiveQualityMessage cloneFrom) {
4711        result = cloneFrom;
4712        resultIsReadOnly = true;
4713      }
4714     
4715      private bool resultIsReadOnly;
4716      private SingleObjectiveQualityMessage result;
4717     
4718      private SingleObjectiveQualityMessage PrepareBuilder() {
4719        if (resultIsReadOnly) {
4720          SingleObjectiveQualityMessage original = result;
4721          result = new SingleObjectiveQualityMessage();
4722          resultIsReadOnly = false;
4723          MergeFrom(original);
4724        }
4725        return result;
4726      }
4727     
4728      public override bool IsInitialized {
4729        get { return result.IsInitialized; }
4730      }
4731     
4732      protected override SingleObjectiveQualityMessage MessageBeingBuilt {
4733        get { return PrepareBuilder(); }
4734      }
4735     
4736      public override Builder Clear() {
4737        result = DefaultInstance;
4738        resultIsReadOnly = true;
4739        return this;
4740      }
4741     
4742      public override Builder Clone() {
4743        if (resultIsReadOnly) {
4744          return new Builder(result);
4745        } else {
4746          return new Builder().MergeFrom(result);
4747        }
4748      }
4749     
4750      public override pbd::MessageDescriptor DescriptorForType {
4751        get { return global::HeuristicLab.Problems.ExternalEvaluation.SingleObjectiveQualityMessage.Descriptor; }
4752      }
4753     
4754      public override SingleObjectiveQualityMessage DefaultInstanceForType {
4755        get { return global::HeuristicLab.Problems.ExternalEvaluation.SingleObjectiveQualityMessage.DefaultInstance; }
4756      }
4757     
4758      public override SingleObjectiveQualityMessage BuildPartial() {
4759        if (resultIsReadOnly) {
4760          return result;
4761        }
4762        resultIsReadOnly = true;
4763        return result.MakeReadOnly();
4764      }
4765     
4766      public override Builder MergeFrom(pb::IMessage other) {
4767        if (other is SingleObjectiveQualityMessage) {
4768          return MergeFrom((SingleObjectiveQualityMessage) other);
4769        } else {
4770          base.MergeFrom(other);
4771          return this;
4772        }
4773      }
4774     
4775      public override Builder MergeFrom(SingleObjectiveQualityMessage other) {
4776        if (other == global::HeuristicLab.Problems.ExternalEvaluation.SingleObjectiveQualityMessage.DefaultInstance) return this;
4777        PrepareBuilder();
4778        if (other.HasQuality) {
4779          Quality = other.Quality;
4780        }
4781        this.MergeUnknownFields(other.UnknownFields);
4782        return this;
4783      }
4784     
4785      public override Builder MergeFrom(pb::ICodedInputStream input) {
4786        return MergeFrom(input, pb::ExtensionRegistry.Empty);
4787      }
4788     
4789      public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
4790        PrepareBuilder();
4791        pb::UnknownFieldSet.Builder unknownFields = null;
4792        uint tag;
4793        string field_name;
4794        while (input.ReadTag(out tag, out field_name)) {
4795          if(tag == 0 && field_name != null) {
4796            int field_ordinal = global::System.Array.BinarySearch(_singleObjectiveQualityMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
4797            if(field_ordinal >= 0)
4798              tag = _singleObjectiveQualityMessageFieldTags[field_ordinal];
4799            else {
4800              if (unknownFields == null) {
4801                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
4802              }
4803              ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
4804              continue;
4805            }
4806          }
4807          switch (tag) {
4808            case 0: {
4809              throw pb::InvalidProtocolBufferException.InvalidTag();
4810            }
4811            default: {
4812              if (pb::WireFormat.IsEndGroupTag(tag)) {
4813                if (unknownFields != null) {
4814                  this.UnknownFields = unknownFields.Build();
4815                }
4816                return this;
4817              }
4818              if (unknownFields == null) {
4819                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
4820              }
4821              ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
4822              break;
4823            }
4824            case 9: {
4825              result.hasQuality = input.ReadDouble(ref result.quality_);
4826              break;
4827            }
4828          }
4829        }
4830       
4831        if (unknownFields != null) {
4832          this.UnknownFields = unknownFields.Build();
4833        }
4834        return this;
4835      }
4836     
4837     
4838      public bool HasQuality {
4839        get { return result.hasQuality; }
4840      }
4841      public double Quality {
4842        get { return result.Quality; }
4843        set { SetQuality(value); }
4844      }
4845      public Builder SetQuality(double value) {
4846        PrepareBuilder();
4847        result.hasQuality = true;
4848        result.quality_ = value;
4849        return this;
4850      }
4851      public Builder ClearQuality() {
4852        PrepareBuilder();
4853        result.hasQuality = false;
4854        result.quality_ = 0D;
4855        return this;
4856      }
4857    }
4858    static SingleObjectiveQualityMessage() {
4859      object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
4860    }
4861  }
4862 
4863  [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4864  [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
4865  [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
4866  public sealed partial class MultiObjectiveQualityMessage : pb::GeneratedMessage<MultiObjectiveQualityMessage, MultiObjectiveQualityMessage.Builder> {
4867    private MultiObjectiveQualityMessage() { }
4868    private static readonly MultiObjectiveQualityMessage defaultInstance = new MultiObjectiveQualityMessage().MakeReadOnly();
4869    private static readonly string[] _multiObjectiveQualityMessageFieldNames = new string[] { "qualities" };
4870    private static readonly uint[] _multiObjectiveQualityMessageFieldTags = new uint[] { 9 };
4871    public static MultiObjectiveQualityMessage DefaultInstance {
4872      get { return defaultInstance; }
4873    }
4874   
4875    public override MultiObjectiveQualityMessage DefaultInstanceForType {
4876      get { return DefaultInstance; }
4877    }
4878   
4879    protected override MultiObjectiveQualityMessage ThisMessage {
4880      get { return this; }
4881    }
4882   
4883    public static pbd::MessageDescriptor Descriptor {
4884      get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_MultiObjectiveQualityMessage__Descriptor; }
4885    }
4886   
4887    protected override pb::FieldAccess.FieldAccessorTable<MultiObjectiveQualityMessage, MultiObjectiveQualityMessage.Builder> InternalFieldAccessors {
4888      get { return global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.internal__static_HeuristicLab_Problems_ExternalEvaluation_MultiObjectiveQualityMessage__FieldAccessorTable; }
4889    }
4890   
4891    public const int QualityMessage_FieldNumber = 1001;
4892    public static pb::GeneratedExtensionBase<global::HeuristicLab.Problems.ExternalEvaluation.MultiObjectiveQualityMessage> QualityMessage_;
4893    public const int QualitiesFieldNumber = 1;
4894    private pbc::PopsicleList<double> qualities_ = new pbc::PopsicleList<double>();
4895    public scg::IList<double> QualitiesList {
4896      get { return pbc::Lists.AsReadOnly(qualities_); }
4897    }
4898    public int QualitiesCount {
4899      get { return qualities_.Count; }
4900    }
4901    public double GetQualities(int index) {
4902      return qualities_[index];
4903    }
4904   
4905    public override bool IsInitialized {
4906      get {
4907        return true;
4908      }
4909    }
4910   
4911    public override void WriteTo(pb::ICodedOutputStream output) {
4912      int size = SerializedSize;
4913      string[] field_names = _multiObjectiveQualityMessageFieldNames;
4914      if (qualities_.Count > 0) {
4915        output.WriteDoubleArray(1, field_names[0], qualities_);
4916      }
4917      UnknownFields.WriteTo(output);
4918    }
4919   
4920    private int memoizedSerializedSize = -1;
4921    public override int SerializedSize {
4922      get {
4923        int size = memoizedSerializedSize;
4924        if (size != -1) return size;
4925       
4926        size = 0;
4927        {
4928          int dataSize = 0;
4929          dataSize = 8 * qualities_.Count;
4930          size += dataSize;
4931          size += 1 * qualities_.Count;
4932        }
4933        size += UnknownFields.SerializedSize;
4934        memoizedSerializedSize = size;
4935        return size;
4936      }
4937    }
4938   
4939    public static MultiObjectiveQualityMessage ParseFrom(pb::ByteString data) {
4940      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
4941    }
4942    public static MultiObjectiveQualityMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
4943      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
4944    }
4945    public static MultiObjectiveQualityMessage ParseFrom(byte[] data) {
4946      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
4947    }
4948    public static MultiObjectiveQualityMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
4949      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
4950    }
4951    public static MultiObjectiveQualityMessage ParseFrom(global::System.IO.Stream input) {
4952      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
4953    }
4954    public static MultiObjectiveQualityMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
4955      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
4956    }
4957    public static MultiObjectiveQualityMessage ParseDelimitedFrom(global::System.IO.Stream input) {
4958      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
4959    }
4960    public static MultiObjectiveQualityMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
4961      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
4962    }
4963    public static MultiObjectiveQualityMessage ParseFrom(pb::ICodedInputStream input) {
4964      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
4965    }
4966    public static MultiObjectiveQualityMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
4967      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
4968    }
4969    private MultiObjectiveQualityMessage MakeReadOnly() {
4970      qualities_.MakeReadOnly();
4971      return this;
4972    }
4973   
4974    public static Builder CreateBuilder() { return new Builder(); }
4975    public override Builder ToBuilder() { return CreateBuilder(this); }
4976    public override Builder CreateBuilderForType() { return new Builder(); }
4977    public static Builder CreateBuilder(MultiObjectiveQualityMessage prototype) {
4978      return new Builder(prototype);
4979    }
4980   
4981    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4982    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
4983    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.4.1.473")]
4984    public sealed partial class Builder : pb::GeneratedBuilder<MultiObjectiveQualityMessage, Builder> {
4985      protected override Builder ThisBuilder {
4986        get { return this; }
4987      }
4988      public Builder() {
4989        result = DefaultInstance;
4990        resultIsReadOnly = true;
4991      }
4992      internal Builder(MultiObjectiveQualityMessage cloneFrom) {
4993        result = cloneFrom;
4994        resultIsReadOnly = true;
4995      }
4996     
4997      private bool resultIsReadOnly;
4998      private MultiObjectiveQualityMessage result;
4999     
5000      private MultiObjectiveQualityMessage PrepareBuilder() {
5001        if (resultIsReadOnly) {
5002          MultiObjectiveQualityMessage original = result;
5003          result = new MultiObjectiveQualityMessage();
5004          resultIsReadOnly = false;
5005          MergeFrom(original);
5006        }
5007        return result;
5008      }
5009     
5010      public override bool IsInitialized {
5011        get { return result.IsInitialized; }
5012      }
5013     
5014      protected override MultiObjectiveQualityMessage MessageBeingBuilt {
5015        get { return PrepareBuilder(); }
5016      }
5017     
5018      public override Builder Clear() {
5019        result = DefaultInstance;
5020        resultIsReadOnly = true;
5021        return this;
5022      }
5023     
5024      public override Builder Clone() {
5025        if (resultIsReadOnly) {
5026          return new Builder(result);
5027        } else {
5028          return new Builder().MergeFrom(result);
5029        }
5030      }
5031     
5032      public override pbd::MessageDescriptor DescriptorForType {
5033        get { return global::HeuristicLab.Problems.ExternalEvaluation.MultiObjectiveQualityMessage.Descriptor; }
5034      }
5035     
5036      public override MultiObjectiveQualityMessage DefaultInstanceForType {
5037        get { return global::HeuristicLab.Problems.ExternalEvaluation.MultiObjectiveQualityMessage.DefaultInstance; }
5038      }
5039     
5040      public override MultiObjectiveQualityMessage BuildPartial() {
5041        if (resultIsReadOnly) {
5042          return result;
5043        }
5044        resultIsReadOnly = true;
5045        return result.MakeReadOnly();
5046      }
5047     
5048      public override Builder MergeFrom(pb::IMessage other) {
5049        if (other is MultiObjectiveQualityMessage) {
5050          return MergeFrom((MultiObjectiveQualityMessage) other);
5051        } else {
5052          base.MergeFrom(other);
5053          return this;
5054        }
5055      }
5056     
5057      public override Builder MergeFrom(MultiObjectiveQualityMessage other) {
5058        if (other == global::HeuristicLab.Problems.ExternalEvaluation.MultiObjectiveQualityMessage.DefaultInstance) return this;
5059        PrepareBuilder();
5060        if (other.qualities_.Count != 0) {
5061          result.qualities_.Add(other.qualities_);
5062        }
5063        this.MergeUnknownFields(other.UnknownFields);
5064        return this;
5065      }
5066     
5067      public override Builder MergeFrom(pb::ICodedInputStream input) {
5068        return MergeFrom(input, pb::ExtensionRegistry.Empty);
5069      }
5070     
5071      public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
5072        PrepareBuilder();
5073        pb::UnknownFieldSet.Builder unknownFields = null;
5074        uint tag;
5075        string field_name;
5076        while (input.ReadTag(out tag, out field_name)) {
5077          if(tag == 0 && field_name != null) {
5078            int field_ordinal = global::System.Array.BinarySearch(_multiObjectiveQualityMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
5079            if(field_ordinal >= 0)
5080              tag = _multiObjectiveQualityMessageFieldTags[field_ordinal];
5081            else {
5082              if (unknownFields == null) {
5083                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
5084              }
5085              ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
5086              continue;
5087            }
5088          }
5089          switch (tag) {
5090            case 0: {
5091              throw pb::InvalidProtocolBufferException.InvalidTag();
5092            }
5093            default: {
5094              if (pb::WireFormat.IsEndGroupTag(tag)) {
5095                if (unknownFields != null) {
5096                  this.UnknownFields = unknownFields.Build();
5097                }
5098                return this;
5099              }
5100              if (unknownFields == null) {
5101                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
5102              }
5103              ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
5104              break;
5105            }
5106            case 10:
5107            case 9: {
5108              input.ReadDoubleArray(tag, field_name, result.qualities_);
5109              break;
5110            }
5111          }
5112        }
5113       
5114        if (unknownFields != null) {
5115          this.UnknownFields = unknownFields.Build();
5116        }
5117        return this;
5118      }
5119     
5120     
5121      public pbc::IPopsicleList<double> QualitiesList {
5122        get { return PrepareBuilder().qualities_; }
5123      }
5124      public int QualitiesCount {
5125        get { return result.QualitiesCount; }
5126      }
5127      public double GetQualities(int index) {
5128        return result.GetQualities(index);
5129      }
5130      public Builder SetQualities(int index, double value) {
5131        PrepareBuilder();
5132        result.qualities_[index] = value;
5133        return this;
5134      }
5135      public Builder AddQualities(double value) {
5136        PrepareBuilder();
5137        result.qualities_.Add(value);
5138        return this;
5139      }
5140      public Builder AddRangeQualities(scg::IEnumerable<double> values) {
5141        PrepareBuilder();
5142        result.qualities_.Add(values);
5143        return this;
5144      }
5145      public Builder ClearQualities() {
5146        PrepareBuilder();
5147        result.qualities_.Clear();
5148        return this;
5149      }
5150    }
5151    static MultiObjectiveQualityMessage() {
5152      object.ReferenceEquals(global::HeuristicLab.Problems.ExternalEvaluation.ExternalEvaluationMessages.Descriptor, null);
5153    }
5154  }
5155 
5156  #endregion
5157 
5158  #region Services
5159  /*
5160  * Service generation is now disabled by default, use the following option to enable:
5161  * option (google.protobuf.csharp_file_options).service_generator_type = GENERIC;
5162  */
5163  #endregion
5164 
5165}
5166
5167#endregion Designer generated code
Note: See TracBrowser for help on using the repository browser.