001// Generated by the protocol buffer compiler.  DO NOT EDIT!
002// source: hybridsim.proto
003
004package org.matsim.contrib.hybridsim.proto;
005
006public final class HybridSimProto {
007  private HybridSimProto() {}
008  public static void registerAllExtensions(
009      com.google.protobuf.ExtensionRegistryLite registry) {
010  }
011
012  public static void registerAllExtensions(
013      com.google.protobuf.ExtensionRegistry registry) {
014    registerAllExtensions(
015        (com.google.protobuf.ExtensionRegistryLite) registry);
016  }
017  public interface ScenarioOrBuilder extends
018      // @@protoc_insertion_point(interface_extends:hybridsim.Scenario)
019      com.google.protobuf.MessageOrBuilder {
020
021    /**
022     * <code>uint32 seed = 1;</code>
023     * @return The seed.
024     */
025    int getSeed();
026
027    /**
028     * <code>.hybridsim.Environment environment = 2;</code>
029     * @return Whether the environment field is set.
030     */
031    boolean hasEnvironment();
032    /**
033     * <code>.hybridsim.Environment environment = 2;</code>
034     * @return The environment.
035     */
036    org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment getEnvironment();
037    /**
038     * <code>.hybridsim.Environment environment = 2;</code>
039     */
040    org.matsim.contrib.hybridsim.proto.HybridSimProto.EnvironmentOrBuilder getEnvironmentOrBuilder();
041
042    /**
043     * <code>repeated .hybridsim.Goal goal = 3;</code>
044     */
045    java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal> 
046        getGoalList();
047    /**
048     * <code>repeated .hybridsim.Goal goal = 3;</code>
049     */
050    org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal getGoal(int index);
051    /**
052     * <code>repeated .hybridsim.Goal goal = 3;</code>
053     */
054    int getGoalCount();
055    /**
056     * <code>repeated .hybridsim.Goal goal = 3;</code>
057     */
058    java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.GoalOrBuilder> 
059        getGoalOrBuilderList();
060    /**
061     * <code>repeated .hybridsim.Goal goal = 3;</code>
062     */
063    org.matsim.contrib.hybridsim.proto.HybridSimProto.GoalOrBuilder getGoalOrBuilder(
064        int index);
065
066    /**
067     * <code>repeated .hybridsim.Group group = 4;</code>
068     */
069    java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Group> 
070        getGroupList();
071    /**
072     * <code>repeated .hybridsim.Group group = 4;</code>
073     */
074    org.matsim.contrib.hybridsim.proto.HybridSimProto.Group getGroup(int index);
075    /**
076     * <code>repeated .hybridsim.Group group = 4;</code>
077     */
078    int getGroupCount();
079    /**
080     * <code>repeated .hybridsim.Group group = 4;</code>
081     */
082    java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.GroupOrBuilder> 
083        getGroupOrBuilderList();
084    /**
085     * <code>repeated .hybridsim.Group group = 4;</code>
086     */
087    org.matsim.contrib.hybridsim.proto.HybridSimProto.GroupOrBuilder getGroupOrBuilder(
088        int index);
089
090    /**
091     * <code>repeated .hybridsim.Source source = 5;</code>
092     */
093    java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Source> 
094        getSourceList();
095    /**
096     * <code>repeated .hybridsim.Source source = 5;</code>
097     */
098    org.matsim.contrib.hybridsim.proto.HybridSimProto.Source getSource(int index);
099    /**
100     * <code>repeated .hybridsim.Source source = 5;</code>
101     */
102    int getSourceCount();
103    /**
104     * <code>repeated .hybridsim.Source source = 5;</code>
105     */
106    java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.SourceOrBuilder> 
107        getSourceOrBuilderList();
108    /**
109     * <code>repeated .hybridsim.Source source = 5;</code>
110     */
111    org.matsim.contrib.hybridsim.proto.HybridSimProto.SourceOrBuilder getSourceOrBuilder(
112        int index);
113
114    /**
115     * <code>.hybridsim.Model model = 6;</code>
116     * @return Whether the model field is set.
117     */
118    boolean hasModel();
119    /**
120     * <code>.hybridsim.Model model = 6;</code>
121     * @return The model.
122     */
123    org.matsim.contrib.hybridsim.proto.HybridSimProto.Model getModel();
124    /**
125     * <code>.hybridsim.Model model = 6;</code>
126     */
127    org.matsim.contrib.hybridsim.proto.HybridSimProto.ModelOrBuilder getModelOrBuilder();
128
129    /**
130     * <code>repeated .hybridsim.Router router = 7;</code>
131     */
132    java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Router> 
133        getRouterList();
134    /**
135     * <code>repeated .hybridsim.Router router = 7;</code>
136     */
137    org.matsim.contrib.hybridsim.proto.HybridSimProto.Router getRouter(int index);
138    /**
139     * <code>repeated .hybridsim.Router router = 7;</code>
140     */
141    int getRouterCount();
142    /**
143     * <code>repeated .hybridsim.Router router = 7;</code>
144     */
145    java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.RouterOrBuilder> 
146        getRouterOrBuilderList();
147    /**
148     * <code>repeated .hybridsim.Router router = 7;</code>
149     */
150    org.matsim.contrib.hybridsim.proto.HybridSimProto.RouterOrBuilder getRouterOrBuilder(
151        int index);
152  }
153  /**
154   * Protobuf type {@code hybridsim.Scenario}
155   */
156  public  static final class Scenario extends
157      com.google.protobuf.GeneratedMessageV3 implements
158      // @@protoc_insertion_point(message_implements:hybridsim.Scenario)
159      ScenarioOrBuilder {
160  private static final long serialVersionUID = 0L;
161    // Use Scenario.newBuilder() to construct.
162    private Scenario(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
163      super(builder);
164    }
165    private Scenario() {
166      goal_ = java.util.Collections.emptyList();
167      group_ = java.util.Collections.emptyList();
168      source_ = java.util.Collections.emptyList();
169      router_ = java.util.Collections.emptyList();
170    }
171
172    @java.lang.Override
173    @SuppressWarnings({"unused"})
174    protected java.lang.Object newInstance(
175        UnusedPrivateParameter unused) {
176      return new Scenario();
177    }
178
179    @java.lang.Override
180    public final com.google.protobuf.UnknownFieldSet
181    getUnknownFields() {
182      return this.unknownFields;
183    }
184    private Scenario(
185        com.google.protobuf.CodedInputStream input,
186        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
187        throws com.google.protobuf.InvalidProtocolBufferException {
188      this();
189      if (extensionRegistry == null) {
190        throw new java.lang.NullPointerException();
191      }
192      int mutable_bitField0_ = 0;
193      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
194          com.google.protobuf.UnknownFieldSet.newBuilder();
195      try {
196        boolean done = false;
197        while (!done) {
198          int tag = input.readTag();
199          switch (tag) {
200            case 0:
201              done = true;
202              break;
203            case 8: {
204
205              seed_ = input.readUInt32();
206              break;
207            }
208            case 18: {
209              org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment.Builder subBuilder = null;
210              if (environment_ != null) {
211                subBuilder = environment_.toBuilder();
212              }
213              environment_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment.parser(), extensionRegistry);
214              if (subBuilder != null) {
215                subBuilder.mergeFrom(environment_);
216                environment_ = subBuilder.buildPartial();
217              }
218
219              break;
220            }
221            case 26: {
222              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
223                goal_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal>();
224                mutable_bitField0_ |= 0x00000001;
225              }
226              goal_.add(
227                  input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.parser(), extensionRegistry));
228              break;
229            }
230            case 34: {
231              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
232                group_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Group>();
233                mutable_bitField0_ |= 0x00000002;
234              }
235              group_.add(
236                  input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.parser(), extensionRegistry));
237              break;
238            }
239            case 42: {
240              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
241                source_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Source>();
242                mutable_bitField0_ |= 0x00000004;
243              }
244              source_.add(
245                  input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.parser(), extensionRegistry));
246              break;
247            }
248            case 50: {
249              org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Builder subBuilder = null;
250              if (model_ != null) {
251                subBuilder = model_.toBuilder();
252              }
253              model_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.parser(), extensionRegistry);
254              if (subBuilder != null) {
255                subBuilder.mergeFrom(model_);
256                model_ = subBuilder.buildPartial();
257              }
258
259              break;
260            }
261            case 58: {
262              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
263                router_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Router>();
264                mutable_bitField0_ |= 0x00000008;
265              }
266              router_.add(
267                  input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.parser(), extensionRegistry));
268              break;
269            }
270            default: {
271              if (!parseUnknownField(
272                  input, unknownFields, extensionRegistry, tag)) {
273                done = true;
274              }
275              break;
276            }
277          }
278        }
279      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
280        throw e.setUnfinishedMessage(this);
281      } catch (java.io.IOException e) {
282        throw new com.google.protobuf.InvalidProtocolBufferException(
283            e).setUnfinishedMessage(this);
284      } finally {
285        if (((mutable_bitField0_ & 0x00000001) != 0)) {
286          goal_ = java.util.Collections.unmodifiableList(goal_);
287        }
288        if (((mutable_bitField0_ & 0x00000002) != 0)) {
289          group_ = java.util.Collections.unmodifiableList(group_);
290        }
291        if (((mutable_bitField0_ & 0x00000004) != 0)) {
292          source_ = java.util.Collections.unmodifiableList(source_);
293        }
294        if (((mutable_bitField0_ & 0x00000008) != 0)) {
295          router_ = java.util.Collections.unmodifiableList(router_);
296        }
297        this.unknownFields = unknownFields.build();
298        makeExtensionsImmutable();
299      }
300    }
301    public static final com.google.protobuf.Descriptors.Descriptor
302        getDescriptor() {
303      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Scenario_descriptor;
304    }
305
306    @java.lang.Override
307    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
308        internalGetFieldAccessorTable() {
309      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Scenario_fieldAccessorTable
310          .ensureFieldAccessorsInitialized(
311              org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario.Builder.class);
312    }
313
314    public static final int SEED_FIELD_NUMBER = 1;
315    private int seed_;
316    /**
317     * <code>uint32 seed = 1;</code>
318     * @return The seed.
319     */
320    public int getSeed() {
321      return seed_;
322    }
323
324    public static final int ENVIRONMENT_FIELD_NUMBER = 2;
325    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment environment_;
326    /**
327     * <code>.hybridsim.Environment environment = 2;</code>
328     * @return Whether the environment field is set.
329     */
330    public boolean hasEnvironment() {
331      return environment_ != null;
332    }
333    /**
334     * <code>.hybridsim.Environment environment = 2;</code>
335     * @return The environment.
336     */
337    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment getEnvironment() {
338      return environment_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment.getDefaultInstance() : environment_;
339    }
340    /**
341     * <code>.hybridsim.Environment environment = 2;</code>
342     */
343    public org.matsim.contrib.hybridsim.proto.HybridSimProto.EnvironmentOrBuilder getEnvironmentOrBuilder() {
344      return getEnvironment();
345    }
346
347    public static final int GOAL_FIELD_NUMBER = 3;
348    private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal> goal_;
349    /**
350     * <code>repeated .hybridsim.Goal goal = 3;</code>
351     */
352    public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal> getGoalList() {
353      return goal_;
354    }
355    /**
356     * <code>repeated .hybridsim.Goal goal = 3;</code>
357     */
358    public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.GoalOrBuilder> 
359        getGoalOrBuilderList() {
360      return goal_;
361    }
362    /**
363     * <code>repeated .hybridsim.Goal goal = 3;</code>
364     */
365    public int getGoalCount() {
366      return goal_.size();
367    }
368    /**
369     * <code>repeated .hybridsim.Goal goal = 3;</code>
370     */
371    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal getGoal(int index) {
372      return goal_.get(index);
373    }
374    /**
375     * <code>repeated .hybridsim.Goal goal = 3;</code>
376     */
377    public org.matsim.contrib.hybridsim.proto.HybridSimProto.GoalOrBuilder getGoalOrBuilder(
378        int index) {
379      return goal_.get(index);
380    }
381
382    public static final int GROUP_FIELD_NUMBER = 4;
383    private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Group> group_;
384    /**
385     * <code>repeated .hybridsim.Group group = 4;</code>
386     */
387    public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Group> getGroupList() {
388      return group_;
389    }
390    /**
391     * <code>repeated .hybridsim.Group group = 4;</code>
392     */
393    public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.GroupOrBuilder> 
394        getGroupOrBuilderList() {
395      return group_;
396    }
397    /**
398     * <code>repeated .hybridsim.Group group = 4;</code>
399     */
400    public int getGroupCount() {
401      return group_.size();
402    }
403    /**
404     * <code>repeated .hybridsim.Group group = 4;</code>
405     */
406    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Group getGroup(int index) {
407      return group_.get(index);
408    }
409    /**
410     * <code>repeated .hybridsim.Group group = 4;</code>
411     */
412    public org.matsim.contrib.hybridsim.proto.HybridSimProto.GroupOrBuilder getGroupOrBuilder(
413        int index) {
414      return group_.get(index);
415    }
416
417    public static final int SOURCE_FIELD_NUMBER = 5;
418    private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Source> source_;
419    /**
420     * <code>repeated .hybridsim.Source source = 5;</code>
421     */
422    public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Source> getSourceList() {
423      return source_;
424    }
425    /**
426     * <code>repeated .hybridsim.Source source = 5;</code>
427     */
428    public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.SourceOrBuilder> 
429        getSourceOrBuilderList() {
430      return source_;
431    }
432    /**
433     * <code>repeated .hybridsim.Source source = 5;</code>
434     */
435    public int getSourceCount() {
436      return source_.size();
437    }
438    /**
439     * <code>repeated .hybridsim.Source source = 5;</code>
440     */
441    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Source getSource(int index) {
442      return source_.get(index);
443    }
444    /**
445     * <code>repeated .hybridsim.Source source = 5;</code>
446     */
447    public org.matsim.contrib.hybridsim.proto.HybridSimProto.SourceOrBuilder getSourceOrBuilder(
448        int index) {
449      return source_.get(index);
450    }
451
452    public static final int MODEL_FIELD_NUMBER = 6;
453    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Model model_;
454    /**
455     * <code>.hybridsim.Model model = 6;</code>
456     * @return Whether the model field is set.
457     */
458    public boolean hasModel() {
459      return model_ != null;
460    }
461    /**
462     * <code>.hybridsim.Model model = 6;</code>
463     * @return The model.
464     */
465    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Model getModel() {
466      return model_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.getDefaultInstance() : model_;
467    }
468    /**
469     * <code>.hybridsim.Model model = 6;</code>
470     */
471    public org.matsim.contrib.hybridsim.proto.HybridSimProto.ModelOrBuilder getModelOrBuilder() {
472      return getModel();
473    }
474
475    public static final int ROUTER_FIELD_NUMBER = 7;
476    private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Router> router_;
477    /**
478     * <code>repeated .hybridsim.Router router = 7;</code>
479     */
480    public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Router> getRouterList() {
481      return router_;
482    }
483    /**
484     * <code>repeated .hybridsim.Router router = 7;</code>
485     */
486    public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.RouterOrBuilder> 
487        getRouterOrBuilderList() {
488      return router_;
489    }
490    /**
491     * <code>repeated .hybridsim.Router router = 7;</code>
492     */
493    public int getRouterCount() {
494      return router_.size();
495    }
496    /**
497     * <code>repeated .hybridsim.Router router = 7;</code>
498     */
499    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Router getRouter(int index) {
500      return router_.get(index);
501    }
502    /**
503     * <code>repeated .hybridsim.Router router = 7;</code>
504     */
505    public org.matsim.contrib.hybridsim.proto.HybridSimProto.RouterOrBuilder getRouterOrBuilder(
506        int index) {
507      return router_.get(index);
508    }
509
510    private byte memoizedIsInitialized = -1;
511    @java.lang.Override
512    public final boolean isInitialized() {
513      byte isInitialized = memoizedIsInitialized;
514      if (isInitialized == 1) return true;
515      if (isInitialized == 0) return false;
516
517      memoizedIsInitialized = 1;
518      return true;
519    }
520
521    @java.lang.Override
522    public void writeTo(com.google.protobuf.CodedOutputStream output)
523                        throws java.io.IOException {
524      if (seed_ != 0) {
525        output.writeUInt32(1, seed_);
526      }
527      if (environment_ != null) {
528        output.writeMessage(2, getEnvironment());
529      }
530      for (int i = 0; i < goal_.size(); i++) {
531        output.writeMessage(3, goal_.get(i));
532      }
533      for (int i = 0; i < group_.size(); i++) {
534        output.writeMessage(4, group_.get(i));
535      }
536      for (int i = 0; i < source_.size(); i++) {
537        output.writeMessage(5, source_.get(i));
538      }
539      if (model_ != null) {
540        output.writeMessage(6, getModel());
541      }
542      for (int i = 0; i < router_.size(); i++) {
543        output.writeMessage(7, router_.get(i));
544      }
545      unknownFields.writeTo(output);
546    }
547
548    @java.lang.Override
549    public int getSerializedSize() {
550      int size = memoizedSize;
551      if (size != -1) return size;
552
553      size = 0;
554      if (seed_ != 0) {
555        size += com.google.protobuf.CodedOutputStream
556          .computeUInt32Size(1, seed_);
557      }
558      if (environment_ != null) {
559        size += com.google.protobuf.CodedOutputStream
560          .computeMessageSize(2, getEnvironment());
561      }
562      for (int i = 0; i < goal_.size(); i++) {
563        size += com.google.protobuf.CodedOutputStream
564          .computeMessageSize(3, goal_.get(i));
565      }
566      for (int i = 0; i < group_.size(); i++) {
567        size += com.google.protobuf.CodedOutputStream
568          .computeMessageSize(4, group_.get(i));
569      }
570      for (int i = 0; i < source_.size(); i++) {
571        size += com.google.protobuf.CodedOutputStream
572          .computeMessageSize(5, source_.get(i));
573      }
574      if (model_ != null) {
575        size += com.google.protobuf.CodedOutputStream
576          .computeMessageSize(6, getModel());
577      }
578      for (int i = 0; i < router_.size(); i++) {
579        size += com.google.protobuf.CodedOutputStream
580          .computeMessageSize(7, router_.get(i));
581      }
582      size += unknownFields.getSerializedSize();
583      memoizedSize = size;
584      return size;
585    }
586
587    @java.lang.Override
588    public boolean equals(final java.lang.Object obj) {
589      if (obj == this) {
590       return true;
591      }
592      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario)) {
593        return super.equals(obj);
594      }
595      org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario) obj;
596
597      if (getSeed()
598          != other.getSeed()) return false;
599      if (hasEnvironment() != other.hasEnvironment()) return false;
600      if (hasEnvironment()) {
601        if (!getEnvironment()
602            .equals(other.getEnvironment())) return false;
603      }
604      if (!getGoalList()
605          .equals(other.getGoalList())) return false;
606      if (!getGroupList()
607          .equals(other.getGroupList())) return false;
608      if (!getSourceList()
609          .equals(other.getSourceList())) return false;
610      if (hasModel() != other.hasModel()) return false;
611      if (hasModel()) {
612        if (!getModel()
613            .equals(other.getModel())) return false;
614      }
615      if (!getRouterList()
616          .equals(other.getRouterList())) return false;
617      if (!unknownFields.equals(other.unknownFields)) return false;
618      return true;
619    }
620
621    @java.lang.Override
622    public int hashCode() {
623      if (memoizedHashCode != 0) {
624        return memoizedHashCode;
625      }
626      int hash = 41;
627      hash = (19 * hash) + getDescriptor().hashCode();
628      hash = (37 * hash) + SEED_FIELD_NUMBER;
629      hash = (53 * hash) + getSeed();
630      if (hasEnvironment()) {
631        hash = (37 * hash) + ENVIRONMENT_FIELD_NUMBER;
632        hash = (53 * hash) + getEnvironment().hashCode();
633      }
634      if (getGoalCount() > 0) {
635        hash = (37 * hash) + GOAL_FIELD_NUMBER;
636        hash = (53 * hash) + getGoalList().hashCode();
637      }
638      if (getGroupCount() > 0) {
639        hash = (37 * hash) + GROUP_FIELD_NUMBER;
640        hash = (53 * hash) + getGroupList().hashCode();
641      }
642      if (getSourceCount() > 0) {
643        hash = (37 * hash) + SOURCE_FIELD_NUMBER;
644        hash = (53 * hash) + getSourceList().hashCode();
645      }
646      if (hasModel()) {
647        hash = (37 * hash) + MODEL_FIELD_NUMBER;
648        hash = (53 * hash) + getModel().hashCode();
649      }
650      if (getRouterCount() > 0) {
651        hash = (37 * hash) + ROUTER_FIELD_NUMBER;
652        hash = (53 * hash) + getRouterList().hashCode();
653      }
654      hash = (29 * hash) + unknownFields.hashCode();
655      memoizedHashCode = hash;
656      return hash;
657    }
658
659    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario parseFrom(
660        java.nio.ByteBuffer data)
661        throws com.google.protobuf.InvalidProtocolBufferException {
662      return PARSER.parseFrom(data);
663    }
664    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario parseFrom(
665        java.nio.ByteBuffer data,
666        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
667        throws com.google.protobuf.InvalidProtocolBufferException {
668      return PARSER.parseFrom(data, extensionRegistry);
669    }
670    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario parseFrom(
671        com.google.protobuf.ByteString data)
672        throws com.google.protobuf.InvalidProtocolBufferException {
673      return PARSER.parseFrom(data);
674    }
675    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario parseFrom(
676        com.google.protobuf.ByteString data,
677        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
678        throws com.google.protobuf.InvalidProtocolBufferException {
679      return PARSER.parseFrom(data, extensionRegistry);
680    }
681    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario parseFrom(byte[] data)
682        throws com.google.protobuf.InvalidProtocolBufferException {
683      return PARSER.parseFrom(data);
684    }
685    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario parseFrom(
686        byte[] data,
687        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
688        throws com.google.protobuf.InvalidProtocolBufferException {
689      return PARSER.parseFrom(data, extensionRegistry);
690    }
691    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario parseFrom(java.io.InputStream input)
692        throws java.io.IOException {
693      return com.google.protobuf.GeneratedMessageV3
694          .parseWithIOException(PARSER, input);
695    }
696    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario parseFrom(
697        java.io.InputStream input,
698        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
699        throws java.io.IOException {
700      return com.google.protobuf.GeneratedMessageV3
701          .parseWithIOException(PARSER, input, extensionRegistry);
702    }
703    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario parseDelimitedFrom(java.io.InputStream input)
704        throws java.io.IOException {
705      return com.google.protobuf.GeneratedMessageV3
706          .parseDelimitedWithIOException(PARSER, input);
707    }
708    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario parseDelimitedFrom(
709        java.io.InputStream input,
710        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
711        throws java.io.IOException {
712      return com.google.protobuf.GeneratedMessageV3
713          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
714    }
715    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario parseFrom(
716        com.google.protobuf.CodedInputStream input)
717        throws java.io.IOException {
718      return com.google.protobuf.GeneratedMessageV3
719          .parseWithIOException(PARSER, input);
720    }
721    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario parseFrom(
722        com.google.protobuf.CodedInputStream input,
723        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
724        throws java.io.IOException {
725      return com.google.protobuf.GeneratedMessageV3
726          .parseWithIOException(PARSER, input, extensionRegistry);
727    }
728
729    @java.lang.Override
730    public Builder newBuilderForType() { return newBuilder(); }
731    public static Builder newBuilder() {
732      return DEFAULT_INSTANCE.toBuilder();
733    }
734    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario prototype) {
735      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
736    }
737    @java.lang.Override
738    public Builder toBuilder() {
739      return this == DEFAULT_INSTANCE
740          ? new Builder() : new Builder().mergeFrom(this);
741    }
742
743    @java.lang.Override
744    protected Builder newBuilderForType(
745        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
746      Builder builder = new Builder(parent);
747      return builder;
748    }
749    /**
750     * Protobuf type {@code hybridsim.Scenario}
751     */
752    public static final class Builder extends
753        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
754        // @@protoc_insertion_point(builder_implements:hybridsim.Scenario)
755        org.matsim.contrib.hybridsim.proto.HybridSimProto.ScenarioOrBuilder {
756      public static final com.google.protobuf.Descriptors.Descriptor
757          getDescriptor() {
758        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Scenario_descriptor;
759      }
760
761      @java.lang.Override
762      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
763          internalGetFieldAccessorTable() {
764        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Scenario_fieldAccessorTable
765            .ensureFieldAccessorsInitialized(
766                org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario.Builder.class);
767      }
768
769      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario.newBuilder()
770      private Builder() {
771        maybeForceBuilderInitialization();
772      }
773
774      private Builder(
775          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
776        super(parent);
777        maybeForceBuilderInitialization();
778      }
779      private void maybeForceBuilderInitialization() {
780        if (com.google.protobuf.GeneratedMessageV3
781                .alwaysUseFieldBuilders) {
782          getGoalFieldBuilder();
783          getGroupFieldBuilder();
784          getSourceFieldBuilder();
785          getRouterFieldBuilder();
786        }
787      }
788      @java.lang.Override
789      public Builder clear() {
790        super.clear();
791        seed_ = 0;
792
793        if (environmentBuilder_ == null) {
794          environment_ = null;
795        } else {
796          environment_ = null;
797          environmentBuilder_ = null;
798        }
799        if (goalBuilder_ == null) {
800          goal_ = java.util.Collections.emptyList();
801          bitField0_ = (bitField0_ & ~0x00000001);
802        } else {
803          goalBuilder_.clear();
804        }
805        if (groupBuilder_ == null) {
806          group_ = java.util.Collections.emptyList();
807          bitField0_ = (bitField0_ & ~0x00000002);
808        } else {
809          groupBuilder_.clear();
810        }
811        if (sourceBuilder_ == null) {
812          source_ = java.util.Collections.emptyList();
813          bitField0_ = (bitField0_ & ~0x00000004);
814        } else {
815          sourceBuilder_.clear();
816        }
817        if (modelBuilder_ == null) {
818          model_ = null;
819        } else {
820          model_ = null;
821          modelBuilder_ = null;
822        }
823        if (routerBuilder_ == null) {
824          router_ = java.util.Collections.emptyList();
825          bitField0_ = (bitField0_ & ~0x00000008);
826        } else {
827          routerBuilder_.clear();
828        }
829        return this;
830      }
831
832      @java.lang.Override
833      public com.google.protobuf.Descriptors.Descriptor
834          getDescriptorForType() {
835        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Scenario_descriptor;
836      }
837
838      @java.lang.Override
839      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario getDefaultInstanceForType() {
840        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario.getDefaultInstance();
841      }
842
843      @java.lang.Override
844      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario build() {
845        org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario result = buildPartial();
846        if (!result.isInitialized()) {
847          throw newUninitializedMessageException(result);
848        }
849        return result;
850      }
851
852      @java.lang.Override
853      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario buildPartial() {
854        org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario(this);
855        int from_bitField0_ = bitField0_;
856        result.seed_ = seed_;
857        if (environmentBuilder_ == null) {
858          result.environment_ = environment_;
859        } else {
860          result.environment_ = environmentBuilder_.build();
861        }
862        if (goalBuilder_ == null) {
863          if (((bitField0_ & 0x00000001) != 0)) {
864            goal_ = java.util.Collections.unmodifiableList(goal_);
865            bitField0_ = (bitField0_ & ~0x00000001);
866          }
867          result.goal_ = goal_;
868        } else {
869          result.goal_ = goalBuilder_.build();
870        }
871        if (groupBuilder_ == null) {
872          if (((bitField0_ & 0x00000002) != 0)) {
873            group_ = java.util.Collections.unmodifiableList(group_);
874            bitField0_ = (bitField0_ & ~0x00000002);
875          }
876          result.group_ = group_;
877        } else {
878          result.group_ = groupBuilder_.build();
879        }
880        if (sourceBuilder_ == null) {
881          if (((bitField0_ & 0x00000004) != 0)) {
882            source_ = java.util.Collections.unmodifiableList(source_);
883            bitField0_ = (bitField0_ & ~0x00000004);
884          }
885          result.source_ = source_;
886        } else {
887          result.source_ = sourceBuilder_.build();
888        }
889        if (modelBuilder_ == null) {
890          result.model_ = model_;
891        } else {
892          result.model_ = modelBuilder_.build();
893        }
894        if (routerBuilder_ == null) {
895          if (((bitField0_ & 0x00000008) != 0)) {
896            router_ = java.util.Collections.unmodifiableList(router_);
897            bitField0_ = (bitField0_ & ~0x00000008);
898          }
899          result.router_ = router_;
900        } else {
901          result.router_ = routerBuilder_.build();
902        }
903        onBuilt();
904        return result;
905      }
906
907      @java.lang.Override
908      public Builder clone() {
909        return super.clone();
910      }
911      @java.lang.Override
912      public Builder setField(
913          com.google.protobuf.Descriptors.FieldDescriptor field,
914          java.lang.Object value) {
915        return super.setField(field, value);
916      }
917      @java.lang.Override
918      public Builder clearField(
919          com.google.protobuf.Descriptors.FieldDescriptor field) {
920        return super.clearField(field);
921      }
922      @java.lang.Override
923      public Builder clearOneof(
924          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
925        return super.clearOneof(oneof);
926      }
927      @java.lang.Override
928      public Builder setRepeatedField(
929          com.google.protobuf.Descriptors.FieldDescriptor field,
930          int index, java.lang.Object value) {
931        return super.setRepeatedField(field, index, value);
932      }
933      @java.lang.Override
934      public Builder addRepeatedField(
935          com.google.protobuf.Descriptors.FieldDescriptor field,
936          java.lang.Object value) {
937        return super.addRepeatedField(field, value);
938      }
939      @java.lang.Override
940      public Builder mergeFrom(com.google.protobuf.Message other) {
941        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario) {
942          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario)other);
943        } else {
944          super.mergeFrom(other);
945          return this;
946        }
947      }
948
949      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario other) {
950        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario.getDefaultInstance()) return this;
951        if (other.getSeed() != 0) {
952          setSeed(other.getSeed());
953        }
954        if (other.hasEnvironment()) {
955          mergeEnvironment(other.getEnvironment());
956        }
957        if (goalBuilder_ == null) {
958          if (!other.goal_.isEmpty()) {
959            if (goal_.isEmpty()) {
960              goal_ = other.goal_;
961              bitField0_ = (bitField0_ & ~0x00000001);
962            } else {
963              ensureGoalIsMutable();
964              goal_.addAll(other.goal_);
965            }
966            onChanged();
967          }
968        } else {
969          if (!other.goal_.isEmpty()) {
970            if (goalBuilder_.isEmpty()) {
971              goalBuilder_.dispose();
972              goalBuilder_ = null;
973              goal_ = other.goal_;
974              bitField0_ = (bitField0_ & ~0x00000001);
975              goalBuilder_ = 
976                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
977                   getGoalFieldBuilder() : null;
978            } else {
979              goalBuilder_.addAllMessages(other.goal_);
980            }
981          }
982        }
983        if (groupBuilder_ == null) {
984          if (!other.group_.isEmpty()) {
985            if (group_.isEmpty()) {
986              group_ = other.group_;
987              bitField0_ = (bitField0_ & ~0x00000002);
988            } else {
989              ensureGroupIsMutable();
990              group_.addAll(other.group_);
991            }
992            onChanged();
993          }
994        } else {
995          if (!other.group_.isEmpty()) {
996            if (groupBuilder_.isEmpty()) {
997              groupBuilder_.dispose();
998              groupBuilder_ = null;
999              group_ = other.group_;
1000              bitField0_ = (bitField0_ & ~0x00000002);
1001              groupBuilder_ = 
1002                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
1003                   getGroupFieldBuilder() : null;
1004            } else {
1005              groupBuilder_.addAllMessages(other.group_);
1006            }
1007          }
1008        }
1009        if (sourceBuilder_ == null) {
1010          if (!other.source_.isEmpty()) {
1011            if (source_.isEmpty()) {
1012              source_ = other.source_;
1013              bitField0_ = (bitField0_ & ~0x00000004);
1014            } else {
1015              ensureSourceIsMutable();
1016              source_.addAll(other.source_);
1017            }
1018            onChanged();
1019          }
1020        } else {
1021          if (!other.source_.isEmpty()) {
1022            if (sourceBuilder_.isEmpty()) {
1023              sourceBuilder_.dispose();
1024              sourceBuilder_ = null;
1025              source_ = other.source_;
1026              bitField0_ = (bitField0_ & ~0x00000004);
1027              sourceBuilder_ = 
1028                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
1029                   getSourceFieldBuilder() : null;
1030            } else {
1031              sourceBuilder_.addAllMessages(other.source_);
1032            }
1033          }
1034        }
1035        if (other.hasModel()) {
1036          mergeModel(other.getModel());
1037        }
1038        if (routerBuilder_ == null) {
1039          if (!other.router_.isEmpty()) {
1040            if (router_.isEmpty()) {
1041              router_ = other.router_;
1042              bitField0_ = (bitField0_ & ~0x00000008);
1043            } else {
1044              ensureRouterIsMutable();
1045              router_.addAll(other.router_);
1046            }
1047            onChanged();
1048          }
1049        } else {
1050          if (!other.router_.isEmpty()) {
1051            if (routerBuilder_.isEmpty()) {
1052              routerBuilder_.dispose();
1053              routerBuilder_ = null;
1054              router_ = other.router_;
1055              bitField0_ = (bitField0_ & ~0x00000008);
1056              routerBuilder_ = 
1057                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
1058                   getRouterFieldBuilder() : null;
1059            } else {
1060              routerBuilder_.addAllMessages(other.router_);
1061            }
1062          }
1063        }
1064        this.mergeUnknownFields(other.unknownFields);
1065        onChanged();
1066        return this;
1067      }
1068
1069      @java.lang.Override
1070      public final boolean isInitialized() {
1071        return true;
1072      }
1073
1074      @java.lang.Override
1075      public Builder mergeFrom(
1076          com.google.protobuf.CodedInputStream input,
1077          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1078          throws java.io.IOException {
1079        org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario parsedMessage = null;
1080        try {
1081          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
1082        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
1083          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario) e.getUnfinishedMessage();
1084          throw e.unwrapIOException();
1085        } finally {
1086          if (parsedMessage != null) {
1087            mergeFrom(parsedMessage);
1088          }
1089        }
1090        return this;
1091      }
1092      private int bitField0_;
1093
1094      private int seed_ ;
1095      /**
1096       * <code>uint32 seed = 1;</code>
1097       * @return The seed.
1098       */
1099      public int getSeed() {
1100        return seed_;
1101      }
1102      /**
1103       * <code>uint32 seed = 1;</code>
1104       * @param value The seed to set.
1105       * @return This builder for chaining.
1106       */
1107      public Builder setSeed(int value) {
1108        
1109        seed_ = value;
1110        onChanged();
1111        return this;
1112      }
1113      /**
1114       * <code>uint32 seed = 1;</code>
1115       * @return This builder for chaining.
1116       */
1117      public Builder clearSeed() {
1118        
1119        seed_ = 0;
1120        onChanged();
1121        return this;
1122      }
1123
1124      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment environment_;
1125      private com.google.protobuf.SingleFieldBuilderV3<
1126          org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment, org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.EnvironmentOrBuilder> environmentBuilder_;
1127      /**
1128       * <code>.hybridsim.Environment environment = 2;</code>
1129       * @return Whether the environment field is set.
1130       */
1131      public boolean hasEnvironment() {
1132        return environmentBuilder_ != null || environment_ != null;
1133      }
1134      /**
1135       * <code>.hybridsim.Environment environment = 2;</code>
1136       * @return The environment.
1137       */
1138      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment getEnvironment() {
1139        if (environmentBuilder_ == null) {
1140          return environment_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment.getDefaultInstance() : environment_;
1141        } else {
1142          return environmentBuilder_.getMessage();
1143        }
1144      }
1145      /**
1146       * <code>.hybridsim.Environment environment = 2;</code>
1147       */
1148      public Builder setEnvironment(org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment value) {
1149        if (environmentBuilder_ == null) {
1150          if (value == null) {
1151            throw new NullPointerException();
1152          }
1153          environment_ = value;
1154          onChanged();
1155        } else {
1156          environmentBuilder_.setMessage(value);
1157        }
1158
1159        return this;
1160      }
1161      /**
1162       * <code>.hybridsim.Environment environment = 2;</code>
1163       */
1164      public Builder setEnvironment(
1165          org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment.Builder builderForValue) {
1166        if (environmentBuilder_ == null) {
1167          environment_ = builderForValue.build();
1168          onChanged();
1169        } else {
1170          environmentBuilder_.setMessage(builderForValue.build());
1171        }
1172
1173        return this;
1174      }
1175      /**
1176       * <code>.hybridsim.Environment environment = 2;</code>
1177       */
1178      public Builder mergeEnvironment(org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment value) {
1179        if (environmentBuilder_ == null) {
1180          if (environment_ != null) {
1181            environment_ =
1182              org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment.newBuilder(environment_).mergeFrom(value).buildPartial();
1183          } else {
1184            environment_ = value;
1185          }
1186          onChanged();
1187        } else {
1188          environmentBuilder_.mergeFrom(value);
1189        }
1190
1191        return this;
1192      }
1193      /**
1194       * <code>.hybridsim.Environment environment = 2;</code>
1195       */
1196      public Builder clearEnvironment() {
1197        if (environmentBuilder_ == null) {
1198          environment_ = null;
1199          onChanged();
1200        } else {
1201          environment_ = null;
1202          environmentBuilder_ = null;
1203        }
1204
1205        return this;
1206      }
1207      /**
1208       * <code>.hybridsim.Environment environment = 2;</code>
1209       */
1210      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment.Builder getEnvironmentBuilder() {
1211        
1212        onChanged();
1213        return getEnvironmentFieldBuilder().getBuilder();
1214      }
1215      /**
1216       * <code>.hybridsim.Environment environment = 2;</code>
1217       */
1218      public org.matsim.contrib.hybridsim.proto.HybridSimProto.EnvironmentOrBuilder getEnvironmentOrBuilder() {
1219        if (environmentBuilder_ != null) {
1220          return environmentBuilder_.getMessageOrBuilder();
1221        } else {
1222          return environment_ == null ?
1223              org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment.getDefaultInstance() : environment_;
1224        }
1225      }
1226      /**
1227       * <code>.hybridsim.Environment environment = 2;</code>
1228       */
1229      private com.google.protobuf.SingleFieldBuilderV3<
1230          org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment, org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.EnvironmentOrBuilder> 
1231          getEnvironmentFieldBuilder() {
1232        if (environmentBuilder_ == null) {
1233          environmentBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
1234              org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment, org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.EnvironmentOrBuilder>(
1235                  getEnvironment(),
1236                  getParentForChildren(),
1237                  isClean());
1238          environment_ = null;
1239        }
1240        return environmentBuilder_;
1241      }
1242
1243      private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal> goal_ =
1244        java.util.Collections.emptyList();
1245      private void ensureGoalIsMutable() {
1246        if (!((bitField0_ & 0x00000001) != 0)) {
1247          goal_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal>(goal_);
1248          bitField0_ |= 0x00000001;
1249         }
1250      }
1251
1252      private com.google.protobuf.RepeatedFieldBuilderV3<
1253          org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal, org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.GoalOrBuilder> goalBuilder_;
1254
1255      /**
1256       * <code>repeated .hybridsim.Goal goal = 3;</code>
1257       */
1258      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal> getGoalList() {
1259        if (goalBuilder_ == null) {
1260          return java.util.Collections.unmodifiableList(goal_);
1261        } else {
1262          return goalBuilder_.getMessageList();
1263        }
1264      }
1265      /**
1266       * <code>repeated .hybridsim.Goal goal = 3;</code>
1267       */
1268      public int getGoalCount() {
1269        if (goalBuilder_ == null) {
1270          return goal_.size();
1271        } else {
1272          return goalBuilder_.getCount();
1273        }
1274      }
1275      /**
1276       * <code>repeated .hybridsim.Goal goal = 3;</code>
1277       */
1278      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal getGoal(int index) {
1279        if (goalBuilder_ == null) {
1280          return goal_.get(index);
1281        } else {
1282          return goalBuilder_.getMessage(index);
1283        }
1284      }
1285      /**
1286       * <code>repeated .hybridsim.Goal goal = 3;</code>
1287       */
1288      public Builder setGoal(
1289          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal value) {
1290        if (goalBuilder_ == null) {
1291          if (value == null) {
1292            throw new NullPointerException();
1293          }
1294          ensureGoalIsMutable();
1295          goal_.set(index, value);
1296          onChanged();
1297        } else {
1298          goalBuilder_.setMessage(index, value);
1299        }
1300        return this;
1301      }
1302      /**
1303       * <code>repeated .hybridsim.Goal goal = 3;</code>
1304       */
1305      public Builder setGoal(
1306          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.Builder builderForValue) {
1307        if (goalBuilder_ == null) {
1308          ensureGoalIsMutable();
1309          goal_.set(index, builderForValue.build());
1310          onChanged();
1311        } else {
1312          goalBuilder_.setMessage(index, builderForValue.build());
1313        }
1314        return this;
1315      }
1316      /**
1317       * <code>repeated .hybridsim.Goal goal = 3;</code>
1318       */
1319      public Builder addGoal(org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal value) {
1320        if (goalBuilder_ == null) {
1321          if (value == null) {
1322            throw new NullPointerException();
1323          }
1324          ensureGoalIsMutable();
1325          goal_.add(value);
1326          onChanged();
1327        } else {
1328          goalBuilder_.addMessage(value);
1329        }
1330        return this;
1331      }
1332      /**
1333       * <code>repeated .hybridsim.Goal goal = 3;</code>
1334       */
1335      public Builder addGoal(
1336          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal value) {
1337        if (goalBuilder_ == null) {
1338          if (value == null) {
1339            throw new NullPointerException();
1340          }
1341          ensureGoalIsMutable();
1342          goal_.add(index, value);
1343          onChanged();
1344        } else {
1345          goalBuilder_.addMessage(index, value);
1346        }
1347        return this;
1348      }
1349      /**
1350       * <code>repeated .hybridsim.Goal goal = 3;</code>
1351       */
1352      public Builder addGoal(
1353          org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.Builder builderForValue) {
1354        if (goalBuilder_ == null) {
1355          ensureGoalIsMutable();
1356          goal_.add(builderForValue.build());
1357          onChanged();
1358        } else {
1359          goalBuilder_.addMessage(builderForValue.build());
1360        }
1361        return this;
1362      }
1363      /**
1364       * <code>repeated .hybridsim.Goal goal = 3;</code>
1365       */
1366      public Builder addGoal(
1367          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.Builder builderForValue) {
1368        if (goalBuilder_ == null) {
1369          ensureGoalIsMutable();
1370          goal_.add(index, builderForValue.build());
1371          onChanged();
1372        } else {
1373          goalBuilder_.addMessage(index, builderForValue.build());
1374        }
1375        return this;
1376      }
1377      /**
1378       * <code>repeated .hybridsim.Goal goal = 3;</code>
1379       */
1380      public Builder addAllGoal(
1381          java.lang.Iterable<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal> values) {
1382        if (goalBuilder_ == null) {
1383          ensureGoalIsMutable();
1384          com.google.protobuf.AbstractMessageLite.Builder.addAll(
1385              values, goal_);
1386          onChanged();
1387        } else {
1388          goalBuilder_.addAllMessages(values);
1389        }
1390        return this;
1391      }
1392      /**
1393       * <code>repeated .hybridsim.Goal goal = 3;</code>
1394       */
1395      public Builder clearGoal() {
1396        if (goalBuilder_ == null) {
1397          goal_ = java.util.Collections.emptyList();
1398          bitField0_ = (bitField0_ & ~0x00000001);
1399          onChanged();
1400        } else {
1401          goalBuilder_.clear();
1402        }
1403        return this;
1404      }
1405      /**
1406       * <code>repeated .hybridsim.Goal goal = 3;</code>
1407       */
1408      public Builder removeGoal(int index) {
1409        if (goalBuilder_ == null) {
1410          ensureGoalIsMutable();
1411          goal_.remove(index);
1412          onChanged();
1413        } else {
1414          goalBuilder_.remove(index);
1415        }
1416        return this;
1417      }
1418      /**
1419       * <code>repeated .hybridsim.Goal goal = 3;</code>
1420       */
1421      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.Builder getGoalBuilder(
1422          int index) {
1423        return getGoalFieldBuilder().getBuilder(index);
1424      }
1425      /**
1426       * <code>repeated .hybridsim.Goal goal = 3;</code>
1427       */
1428      public org.matsim.contrib.hybridsim.proto.HybridSimProto.GoalOrBuilder getGoalOrBuilder(
1429          int index) {
1430        if (goalBuilder_ == null) {
1431          return goal_.get(index);  } else {
1432          return goalBuilder_.getMessageOrBuilder(index);
1433        }
1434      }
1435      /**
1436       * <code>repeated .hybridsim.Goal goal = 3;</code>
1437       */
1438      public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.GoalOrBuilder> 
1439           getGoalOrBuilderList() {
1440        if (goalBuilder_ != null) {
1441          return goalBuilder_.getMessageOrBuilderList();
1442        } else {
1443          return java.util.Collections.unmodifiableList(goal_);
1444        }
1445      }
1446      /**
1447       * <code>repeated .hybridsim.Goal goal = 3;</code>
1448       */
1449      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.Builder addGoalBuilder() {
1450        return getGoalFieldBuilder().addBuilder(
1451            org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.getDefaultInstance());
1452      }
1453      /**
1454       * <code>repeated .hybridsim.Goal goal = 3;</code>
1455       */
1456      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.Builder addGoalBuilder(
1457          int index) {
1458        return getGoalFieldBuilder().addBuilder(
1459            index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.getDefaultInstance());
1460      }
1461      /**
1462       * <code>repeated .hybridsim.Goal goal = 3;</code>
1463       */
1464      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.Builder> 
1465           getGoalBuilderList() {
1466        return getGoalFieldBuilder().getBuilderList();
1467      }
1468      private com.google.protobuf.RepeatedFieldBuilderV3<
1469          org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal, org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.GoalOrBuilder> 
1470          getGoalFieldBuilder() {
1471        if (goalBuilder_ == null) {
1472          goalBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
1473              org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal, org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.GoalOrBuilder>(
1474                  goal_,
1475                  ((bitField0_ & 0x00000001) != 0),
1476                  getParentForChildren(),
1477                  isClean());
1478          goal_ = null;
1479        }
1480        return goalBuilder_;
1481      }
1482
1483      private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Group> group_ =
1484        java.util.Collections.emptyList();
1485      private void ensureGroupIsMutable() {
1486        if (!((bitField0_ & 0x00000002) != 0)) {
1487          group_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Group>(group_);
1488          bitField0_ |= 0x00000002;
1489         }
1490      }
1491
1492      private com.google.protobuf.RepeatedFieldBuilderV3<
1493          org.matsim.contrib.hybridsim.proto.HybridSimProto.Group, org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.GroupOrBuilder> groupBuilder_;
1494
1495      /**
1496       * <code>repeated .hybridsim.Group group = 4;</code>
1497       */
1498      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Group> getGroupList() {
1499        if (groupBuilder_ == null) {
1500          return java.util.Collections.unmodifiableList(group_);
1501        } else {
1502          return groupBuilder_.getMessageList();
1503        }
1504      }
1505      /**
1506       * <code>repeated .hybridsim.Group group = 4;</code>
1507       */
1508      public int getGroupCount() {
1509        if (groupBuilder_ == null) {
1510          return group_.size();
1511        } else {
1512          return groupBuilder_.getCount();
1513        }
1514      }
1515      /**
1516       * <code>repeated .hybridsim.Group group = 4;</code>
1517       */
1518      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Group getGroup(int index) {
1519        if (groupBuilder_ == null) {
1520          return group_.get(index);
1521        } else {
1522          return groupBuilder_.getMessage(index);
1523        }
1524      }
1525      /**
1526       * <code>repeated .hybridsim.Group group = 4;</code>
1527       */
1528      public Builder setGroup(
1529          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Group value) {
1530        if (groupBuilder_ == null) {
1531          if (value == null) {
1532            throw new NullPointerException();
1533          }
1534          ensureGroupIsMutable();
1535          group_.set(index, value);
1536          onChanged();
1537        } else {
1538          groupBuilder_.setMessage(index, value);
1539        }
1540        return this;
1541      }
1542      /**
1543       * <code>repeated .hybridsim.Group group = 4;</code>
1544       */
1545      public Builder setGroup(
1546          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.Builder builderForValue) {
1547        if (groupBuilder_ == null) {
1548          ensureGroupIsMutable();
1549          group_.set(index, builderForValue.build());
1550          onChanged();
1551        } else {
1552          groupBuilder_.setMessage(index, builderForValue.build());
1553        }
1554        return this;
1555      }
1556      /**
1557       * <code>repeated .hybridsim.Group group = 4;</code>
1558       */
1559      public Builder addGroup(org.matsim.contrib.hybridsim.proto.HybridSimProto.Group value) {
1560        if (groupBuilder_ == null) {
1561          if (value == null) {
1562            throw new NullPointerException();
1563          }
1564          ensureGroupIsMutable();
1565          group_.add(value);
1566          onChanged();
1567        } else {
1568          groupBuilder_.addMessage(value);
1569        }
1570        return this;
1571      }
1572      /**
1573       * <code>repeated .hybridsim.Group group = 4;</code>
1574       */
1575      public Builder addGroup(
1576          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Group value) {
1577        if (groupBuilder_ == null) {
1578          if (value == null) {
1579            throw new NullPointerException();
1580          }
1581          ensureGroupIsMutable();
1582          group_.add(index, value);
1583          onChanged();
1584        } else {
1585          groupBuilder_.addMessage(index, value);
1586        }
1587        return this;
1588      }
1589      /**
1590       * <code>repeated .hybridsim.Group group = 4;</code>
1591       */
1592      public Builder addGroup(
1593          org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.Builder builderForValue) {
1594        if (groupBuilder_ == null) {
1595          ensureGroupIsMutable();
1596          group_.add(builderForValue.build());
1597          onChanged();
1598        } else {
1599          groupBuilder_.addMessage(builderForValue.build());
1600        }
1601        return this;
1602      }
1603      /**
1604       * <code>repeated .hybridsim.Group group = 4;</code>
1605       */
1606      public Builder addGroup(
1607          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.Builder builderForValue) {
1608        if (groupBuilder_ == null) {
1609          ensureGroupIsMutable();
1610          group_.add(index, builderForValue.build());
1611          onChanged();
1612        } else {
1613          groupBuilder_.addMessage(index, builderForValue.build());
1614        }
1615        return this;
1616      }
1617      /**
1618       * <code>repeated .hybridsim.Group group = 4;</code>
1619       */
1620      public Builder addAllGroup(
1621          java.lang.Iterable<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.Group> values) {
1622        if (groupBuilder_ == null) {
1623          ensureGroupIsMutable();
1624          com.google.protobuf.AbstractMessageLite.Builder.addAll(
1625              values, group_);
1626          onChanged();
1627        } else {
1628          groupBuilder_.addAllMessages(values);
1629        }
1630        return this;
1631      }
1632      /**
1633       * <code>repeated .hybridsim.Group group = 4;</code>
1634       */
1635      public Builder clearGroup() {
1636        if (groupBuilder_ == null) {
1637          group_ = java.util.Collections.emptyList();
1638          bitField0_ = (bitField0_ & ~0x00000002);
1639          onChanged();
1640        } else {
1641          groupBuilder_.clear();
1642        }
1643        return this;
1644      }
1645      /**
1646       * <code>repeated .hybridsim.Group group = 4;</code>
1647       */
1648      public Builder removeGroup(int index) {
1649        if (groupBuilder_ == null) {
1650          ensureGroupIsMutable();
1651          group_.remove(index);
1652          onChanged();
1653        } else {
1654          groupBuilder_.remove(index);
1655        }
1656        return this;
1657      }
1658      /**
1659       * <code>repeated .hybridsim.Group group = 4;</code>
1660       */
1661      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.Builder getGroupBuilder(
1662          int index) {
1663        return getGroupFieldBuilder().getBuilder(index);
1664      }
1665      /**
1666       * <code>repeated .hybridsim.Group group = 4;</code>
1667       */
1668      public org.matsim.contrib.hybridsim.proto.HybridSimProto.GroupOrBuilder getGroupOrBuilder(
1669          int index) {
1670        if (groupBuilder_ == null) {
1671          return group_.get(index);  } else {
1672          return groupBuilder_.getMessageOrBuilder(index);
1673        }
1674      }
1675      /**
1676       * <code>repeated .hybridsim.Group group = 4;</code>
1677       */
1678      public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.GroupOrBuilder> 
1679           getGroupOrBuilderList() {
1680        if (groupBuilder_ != null) {
1681          return groupBuilder_.getMessageOrBuilderList();
1682        } else {
1683          return java.util.Collections.unmodifiableList(group_);
1684        }
1685      }
1686      /**
1687       * <code>repeated .hybridsim.Group group = 4;</code>
1688       */
1689      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.Builder addGroupBuilder() {
1690        return getGroupFieldBuilder().addBuilder(
1691            org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.getDefaultInstance());
1692      }
1693      /**
1694       * <code>repeated .hybridsim.Group group = 4;</code>
1695       */
1696      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.Builder addGroupBuilder(
1697          int index) {
1698        return getGroupFieldBuilder().addBuilder(
1699            index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.getDefaultInstance());
1700      }
1701      /**
1702       * <code>repeated .hybridsim.Group group = 4;</code>
1703       */
1704      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.Builder> 
1705           getGroupBuilderList() {
1706        return getGroupFieldBuilder().getBuilderList();
1707      }
1708      private com.google.protobuf.RepeatedFieldBuilderV3<
1709          org.matsim.contrib.hybridsim.proto.HybridSimProto.Group, org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.GroupOrBuilder> 
1710          getGroupFieldBuilder() {
1711        if (groupBuilder_ == null) {
1712          groupBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
1713              org.matsim.contrib.hybridsim.proto.HybridSimProto.Group, org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.GroupOrBuilder>(
1714                  group_,
1715                  ((bitField0_ & 0x00000002) != 0),
1716                  getParentForChildren(),
1717                  isClean());
1718          group_ = null;
1719        }
1720        return groupBuilder_;
1721      }
1722
1723      private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Source> source_ =
1724        java.util.Collections.emptyList();
1725      private void ensureSourceIsMutable() {
1726        if (!((bitField0_ & 0x00000004) != 0)) {
1727          source_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Source>(source_);
1728          bitField0_ |= 0x00000004;
1729         }
1730      }
1731
1732      private com.google.protobuf.RepeatedFieldBuilderV3<
1733          org.matsim.contrib.hybridsim.proto.HybridSimProto.Source, org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.SourceOrBuilder> sourceBuilder_;
1734
1735      /**
1736       * <code>repeated .hybridsim.Source source = 5;</code>
1737       */
1738      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Source> getSourceList() {
1739        if (sourceBuilder_ == null) {
1740          return java.util.Collections.unmodifiableList(source_);
1741        } else {
1742          return sourceBuilder_.getMessageList();
1743        }
1744      }
1745      /**
1746       * <code>repeated .hybridsim.Source source = 5;</code>
1747       */
1748      public int getSourceCount() {
1749        if (sourceBuilder_ == null) {
1750          return source_.size();
1751        } else {
1752          return sourceBuilder_.getCount();
1753        }
1754      }
1755      /**
1756       * <code>repeated .hybridsim.Source source = 5;</code>
1757       */
1758      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Source getSource(int index) {
1759        if (sourceBuilder_ == null) {
1760          return source_.get(index);
1761        } else {
1762          return sourceBuilder_.getMessage(index);
1763        }
1764      }
1765      /**
1766       * <code>repeated .hybridsim.Source source = 5;</code>
1767       */
1768      public Builder setSource(
1769          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Source value) {
1770        if (sourceBuilder_ == null) {
1771          if (value == null) {
1772            throw new NullPointerException();
1773          }
1774          ensureSourceIsMutable();
1775          source_.set(index, value);
1776          onChanged();
1777        } else {
1778          sourceBuilder_.setMessage(index, value);
1779        }
1780        return this;
1781      }
1782      /**
1783       * <code>repeated .hybridsim.Source source = 5;</code>
1784       */
1785      public Builder setSource(
1786          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.Builder builderForValue) {
1787        if (sourceBuilder_ == null) {
1788          ensureSourceIsMutable();
1789          source_.set(index, builderForValue.build());
1790          onChanged();
1791        } else {
1792          sourceBuilder_.setMessage(index, builderForValue.build());
1793        }
1794        return this;
1795      }
1796      /**
1797       * <code>repeated .hybridsim.Source source = 5;</code>
1798       */
1799      public Builder addSource(org.matsim.contrib.hybridsim.proto.HybridSimProto.Source value) {
1800        if (sourceBuilder_ == null) {
1801          if (value == null) {
1802            throw new NullPointerException();
1803          }
1804          ensureSourceIsMutable();
1805          source_.add(value);
1806          onChanged();
1807        } else {
1808          sourceBuilder_.addMessage(value);
1809        }
1810        return this;
1811      }
1812      /**
1813       * <code>repeated .hybridsim.Source source = 5;</code>
1814       */
1815      public Builder addSource(
1816          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Source value) {
1817        if (sourceBuilder_ == null) {
1818          if (value == null) {
1819            throw new NullPointerException();
1820          }
1821          ensureSourceIsMutable();
1822          source_.add(index, value);
1823          onChanged();
1824        } else {
1825          sourceBuilder_.addMessage(index, value);
1826        }
1827        return this;
1828      }
1829      /**
1830       * <code>repeated .hybridsim.Source source = 5;</code>
1831       */
1832      public Builder addSource(
1833          org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.Builder builderForValue) {
1834        if (sourceBuilder_ == null) {
1835          ensureSourceIsMutable();
1836          source_.add(builderForValue.build());
1837          onChanged();
1838        } else {
1839          sourceBuilder_.addMessage(builderForValue.build());
1840        }
1841        return this;
1842      }
1843      /**
1844       * <code>repeated .hybridsim.Source source = 5;</code>
1845       */
1846      public Builder addSource(
1847          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.Builder builderForValue) {
1848        if (sourceBuilder_ == null) {
1849          ensureSourceIsMutable();
1850          source_.add(index, builderForValue.build());
1851          onChanged();
1852        } else {
1853          sourceBuilder_.addMessage(index, builderForValue.build());
1854        }
1855        return this;
1856      }
1857      /**
1858       * <code>repeated .hybridsim.Source source = 5;</code>
1859       */
1860      public Builder addAllSource(
1861          java.lang.Iterable<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.Source> values) {
1862        if (sourceBuilder_ == null) {
1863          ensureSourceIsMutable();
1864          com.google.protobuf.AbstractMessageLite.Builder.addAll(
1865              values, source_);
1866          onChanged();
1867        } else {
1868          sourceBuilder_.addAllMessages(values);
1869        }
1870        return this;
1871      }
1872      /**
1873       * <code>repeated .hybridsim.Source source = 5;</code>
1874       */
1875      public Builder clearSource() {
1876        if (sourceBuilder_ == null) {
1877          source_ = java.util.Collections.emptyList();
1878          bitField0_ = (bitField0_ & ~0x00000004);
1879          onChanged();
1880        } else {
1881          sourceBuilder_.clear();
1882        }
1883        return this;
1884      }
1885      /**
1886       * <code>repeated .hybridsim.Source source = 5;</code>
1887       */
1888      public Builder removeSource(int index) {
1889        if (sourceBuilder_ == null) {
1890          ensureSourceIsMutable();
1891          source_.remove(index);
1892          onChanged();
1893        } else {
1894          sourceBuilder_.remove(index);
1895        }
1896        return this;
1897      }
1898      /**
1899       * <code>repeated .hybridsim.Source source = 5;</code>
1900       */
1901      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.Builder getSourceBuilder(
1902          int index) {
1903        return getSourceFieldBuilder().getBuilder(index);
1904      }
1905      /**
1906       * <code>repeated .hybridsim.Source source = 5;</code>
1907       */
1908      public org.matsim.contrib.hybridsim.proto.HybridSimProto.SourceOrBuilder getSourceOrBuilder(
1909          int index) {
1910        if (sourceBuilder_ == null) {
1911          return source_.get(index);  } else {
1912          return sourceBuilder_.getMessageOrBuilder(index);
1913        }
1914      }
1915      /**
1916       * <code>repeated .hybridsim.Source source = 5;</code>
1917       */
1918      public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.SourceOrBuilder> 
1919           getSourceOrBuilderList() {
1920        if (sourceBuilder_ != null) {
1921          return sourceBuilder_.getMessageOrBuilderList();
1922        } else {
1923          return java.util.Collections.unmodifiableList(source_);
1924        }
1925      }
1926      /**
1927       * <code>repeated .hybridsim.Source source = 5;</code>
1928       */
1929      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.Builder addSourceBuilder() {
1930        return getSourceFieldBuilder().addBuilder(
1931            org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.getDefaultInstance());
1932      }
1933      /**
1934       * <code>repeated .hybridsim.Source source = 5;</code>
1935       */
1936      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.Builder addSourceBuilder(
1937          int index) {
1938        return getSourceFieldBuilder().addBuilder(
1939            index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.getDefaultInstance());
1940      }
1941      /**
1942       * <code>repeated .hybridsim.Source source = 5;</code>
1943       */
1944      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.Builder> 
1945           getSourceBuilderList() {
1946        return getSourceFieldBuilder().getBuilderList();
1947      }
1948      private com.google.protobuf.RepeatedFieldBuilderV3<
1949          org.matsim.contrib.hybridsim.proto.HybridSimProto.Source, org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.SourceOrBuilder> 
1950          getSourceFieldBuilder() {
1951        if (sourceBuilder_ == null) {
1952          sourceBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
1953              org.matsim.contrib.hybridsim.proto.HybridSimProto.Source, org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.SourceOrBuilder>(
1954                  source_,
1955                  ((bitField0_ & 0x00000004) != 0),
1956                  getParentForChildren(),
1957                  isClean());
1958          source_ = null;
1959        }
1960        return sourceBuilder_;
1961      }
1962
1963      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Model model_;
1964      private com.google.protobuf.SingleFieldBuilderV3<
1965          org.matsim.contrib.hybridsim.proto.HybridSimProto.Model, org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.ModelOrBuilder> modelBuilder_;
1966      /**
1967       * <code>.hybridsim.Model model = 6;</code>
1968       * @return Whether the model field is set.
1969       */
1970      public boolean hasModel() {
1971        return modelBuilder_ != null || model_ != null;
1972      }
1973      /**
1974       * <code>.hybridsim.Model model = 6;</code>
1975       * @return The model.
1976       */
1977      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Model getModel() {
1978        if (modelBuilder_ == null) {
1979          return model_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.getDefaultInstance() : model_;
1980        } else {
1981          return modelBuilder_.getMessage();
1982        }
1983      }
1984      /**
1985       * <code>.hybridsim.Model model = 6;</code>
1986       */
1987      public Builder setModel(org.matsim.contrib.hybridsim.proto.HybridSimProto.Model value) {
1988        if (modelBuilder_ == null) {
1989          if (value == null) {
1990            throw new NullPointerException();
1991          }
1992          model_ = value;
1993          onChanged();
1994        } else {
1995          modelBuilder_.setMessage(value);
1996        }
1997
1998        return this;
1999      }
2000      /**
2001       * <code>.hybridsim.Model model = 6;</code>
2002       */
2003      public Builder setModel(
2004          org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Builder builderForValue) {
2005        if (modelBuilder_ == null) {
2006          model_ = builderForValue.build();
2007          onChanged();
2008        } else {
2009          modelBuilder_.setMessage(builderForValue.build());
2010        }
2011
2012        return this;
2013      }
2014      /**
2015       * <code>.hybridsim.Model model = 6;</code>
2016       */
2017      public Builder mergeModel(org.matsim.contrib.hybridsim.proto.HybridSimProto.Model value) {
2018        if (modelBuilder_ == null) {
2019          if (model_ != null) {
2020            model_ =
2021              org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.newBuilder(model_).mergeFrom(value).buildPartial();
2022          } else {
2023            model_ = value;
2024          }
2025          onChanged();
2026        } else {
2027          modelBuilder_.mergeFrom(value);
2028        }
2029
2030        return this;
2031      }
2032      /**
2033       * <code>.hybridsim.Model model = 6;</code>
2034       */
2035      public Builder clearModel() {
2036        if (modelBuilder_ == null) {
2037          model_ = null;
2038          onChanged();
2039        } else {
2040          model_ = null;
2041          modelBuilder_ = null;
2042        }
2043
2044        return this;
2045      }
2046      /**
2047       * <code>.hybridsim.Model model = 6;</code>
2048       */
2049      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Builder getModelBuilder() {
2050        
2051        onChanged();
2052        return getModelFieldBuilder().getBuilder();
2053      }
2054      /**
2055       * <code>.hybridsim.Model model = 6;</code>
2056       */
2057      public org.matsim.contrib.hybridsim.proto.HybridSimProto.ModelOrBuilder getModelOrBuilder() {
2058        if (modelBuilder_ != null) {
2059          return modelBuilder_.getMessageOrBuilder();
2060        } else {
2061          return model_ == null ?
2062              org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.getDefaultInstance() : model_;
2063        }
2064      }
2065      /**
2066       * <code>.hybridsim.Model model = 6;</code>
2067       */
2068      private com.google.protobuf.SingleFieldBuilderV3<
2069          org.matsim.contrib.hybridsim.proto.HybridSimProto.Model, org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.ModelOrBuilder> 
2070          getModelFieldBuilder() {
2071        if (modelBuilder_ == null) {
2072          modelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
2073              org.matsim.contrib.hybridsim.proto.HybridSimProto.Model, org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.ModelOrBuilder>(
2074                  getModel(),
2075                  getParentForChildren(),
2076                  isClean());
2077          model_ = null;
2078        }
2079        return modelBuilder_;
2080      }
2081
2082      private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Router> router_ =
2083        java.util.Collections.emptyList();
2084      private void ensureRouterIsMutable() {
2085        if (!((bitField0_ & 0x00000008) != 0)) {
2086          router_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Router>(router_);
2087          bitField0_ |= 0x00000008;
2088         }
2089      }
2090
2091      private com.google.protobuf.RepeatedFieldBuilderV3<
2092          org.matsim.contrib.hybridsim.proto.HybridSimProto.Router, org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.RouterOrBuilder> routerBuilder_;
2093
2094      /**
2095       * <code>repeated .hybridsim.Router router = 7;</code>
2096       */
2097      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Router> getRouterList() {
2098        if (routerBuilder_ == null) {
2099          return java.util.Collections.unmodifiableList(router_);
2100        } else {
2101          return routerBuilder_.getMessageList();
2102        }
2103      }
2104      /**
2105       * <code>repeated .hybridsim.Router router = 7;</code>
2106       */
2107      public int getRouterCount() {
2108        if (routerBuilder_ == null) {
2109          return router_.size();
2110        } else {
2111          return routerBuilder_.getCount();
2112        }
2113      }
2114      /**
2115       * <code>repeated .hybridsim.Router router = 7;</code>
2116       */
2117      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Router getRouter(int index) {
2118        if (routerBuilder_ == null) {
2119          return router_.get(index);
2120        } else {
2121          return routerBuilder_.getMessage(index);
2122        }
2123      }
2124      /**
2125       * <code>repeated .hybridsim.Router router = 7;</code>
2126       */
2127      public Builder setRouter(
2128          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Router value) {
2129        if (routerBuilder_ == null) {
2130          if (value == null) {
2131            throw new NullPointerException();
2132          }
2133          ensureRouterIsMutable();
2134          router_.set(index, value);
2135          onChanged();
2136        } else {
2137          routerBuilder_.setMessage(index, value);
2138        }
2139        return this;
2140      }
2141      /**
2142       * <code>repeated .hybridsim.Router router = 7;</code>
2143       */
2144      public Builder setRouter(
2145          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.Builder builderForValue) {
2146        if (routerBuilder_ == null) {
2147          ensureRouterIsMutable();
2148          router_.set(index, builderForValue.build());
2149          onChanged();
2150        } else {
2151          routerBuilder_.setMessage(index, builderForValue.build());
2152        }
2153        return this;
2154      }
2155      /**
2156       * <code>repeated .hybridsim.Router router = 7;</code>
2157       */
2158      public Builder addRouter(org.matsim.contrib.hybridsim.proto.HybridSimProto.Router value) {
2159        if (routerBuilder_ == null) {
2160          if (value == null) {
2161            throw new NullPointerException();
2162          }
2163          ensureRouterIsMutable();
2164          router_.add(value);
2165          onChanged();
2166        } else {
2167          routerBuilder_.addMessage(value);
2168        }
2169        return this;
2170      }
2171      /**
2172       * <code>repeated .hybridsim.Router router = 7;</code>
2173       */
2174      public Builder addRouter(
2175          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Router value) {
2176        if (routerBuilder_ == null) {
2177          if (value == null) {
2178            throw new NullPointerException();
2179          }
2180          ensureRouterIsMutable();
2181          router_.add(index, value);
2182          onChanged();
2183        } else {
2184          routerBuilder_.addMessage(index, value);
2185        }
2186        return this;
2187      }
2188      /**
2189       * <code>repeated .hybridsim.Router router = 7;</code>
2190       */
2191      public Builder addRouter(
2192          org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.Builder builderForValue) {
2193        if (routerBuilder_ == null) {
2194          ensureRouterIsMutable();
2195          router_.add(builderForValue.build());
2196          onChanged();
2197        } else {
2198          routerBuilder_.addMessage(builderForValue.build());
2199        }
2200        return this;
2201      }
2202      /**
2203       * <code>repeated .hybridsim.Router router = 7;</code>
2204       */
2205      public Builder addRouter(
2206          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.Builder builderForValue) {
2207        if (routerBuilder_ == null) {
2208          ensureRouterIsMutable();
2209          router_.add(index, builderForValue.build());
2210          onChanged();
2211        } else {
2212          routerBuilder_.addMessage(index, builderForValue.build());
2213        }
2214        return this;
2215      }
2216      /**
2217       * <code>repeated .hybridsim.Router router = 7;</code>
2218       */
2219      public Builder addAllRouter(
2220          java.lang.Iterable<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.Router> values) {
2221        if (routerBuilder_ == null) {
2222          ensureRouterIsMutable();
2223          com.google.protobuf.AbstractMessageLite.Builder.addAll(
2224              values, router_);
2225          onChanged();
2226        } else {
2227          routerBuilder_.addAllMessages(values);
2228        }
2229        return this;
2230      }
2231      /**
2232       * <code>repeated .hybridsim.Router router = 7;</code>
2233       */
2234      public Builder clearRouter() {
2235        if (routerBuilder_ == null) {
2236          router_ = java.util.Collections.emptyList();
2237          bitField0_ = (bitField0_ & ~0x00000008);
2238          onChanged();
2239        } else {
2240          routerBuilder_.clear();
2241        }
2242        return this;
2243      }
2244      /**
2245       * <code>repeated .hybridsim.Router router = 7;</code>
2246       */
2247      public Builder removeRouter(int index) {
2248        if (routerBuilder_ == null) {
2249          ensureRouterIsMutable();
2250          router_.remove(index);
2251          onChanged();
2252        } else {
2253          routerBuilder_.remove(index);
2254        }
2255        return this;
2256      }
2257      /**
2258       * <code>repeated .hybridsim.Router router = 7;</code>
2259       */
2260      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.Builder getRouterBuilder(
2261          int index) {
2262        return getRouterFieldBuilder().getBuilder(index);
2263      }
2264      /**
2265       * <code>repeated .hybridsim.Router router = 7;</code>
2266       */
2267      public org.matsim.contrib.hybridsim.proto.HybridSimProto.RouterOrBuilder getRouterOrBuilder(
2268          int index) {
2269        if (routerBuilder_ == null) {
2270          return router_.get(index);  } else {
2271          return routerBuilder_.getMessageOrBuilder(index);
2272        }
2273      }
2274      /**
2275       * <code>repeated .hybridsim.Router router = 7;</code>
2276       */
2277      public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.RouterOrBuilder> 
2278           getRouterOrBuilderList() {
2279        if (routerBuilder_ != null) {
2280          return routerBuilder_.getMessageOrBuilderList();
2281        } else {
2282          return java.util.Collections.unmodifiableList(router_);
2283        }
2284      }
2285      /**
2286       * <code>repeated .hybridsim.Router router = 7;</code>
2287       */
2288      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.Builder addRouterBuilder() {
2289        return getRouterFieldBuilder().addBuilder(
2290            org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.getDefaultInstance());
2291      }
2292      /**
2293       * <code>repeated .hybridsim.Router router = 7;</code>
2294       */
2295      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.Builder addRouterBuilder(
2296          int index) {
2297        return getRouterFieldBuilder().addBuilder(
2298            index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.getDefaultInstance());
2299      }
2300      /**
2301       * <code>repeated .hybridsim.Router router = 7;</code>
2302       */
2303      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.Builder> 
2304           getRouterBuilderList() {
2305        return getRouterFieldBuilder().getBuilderList();
2306      }
2307      private com.google.protobuf.RepeatedFieldBuilderV3<
2308          org.matsim.contrib.hybridsim.proto.HybridSimProto.Router, org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.RouterOrBuilder> 
2309          getRouterFieldBuilder() {
2310        if (routerBuilder_ == null) {
2311          routerBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
2312              org.matsim.contrib.hybridsim.proto.HybridSimProto.Router, org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.RouterOrBuilder>(
2313                  router_,
2314                  ((bitField0_ & 0x00000008) != 0),
2315                  getParentForChildren(),
2316                  isClean());
2317          router_ = null;
2318        }
2319        return routerBuilder_;
2320      }
2321      @java.lang.Override
2322      public final Builder setUnknownFields(
2323          final com.google.protobuf.UnknownFieldSet unknownFields) {
2324        return super.setUnknownFields(unknownFields);
2325      }
2326
2327      @java.lang.Override
2328      public final Builder mergeUnknownFields(
2329          final com.google.protobuf.UnknownFieldSet unknownFields) {
2330        return super.mergeUnknownFields(unknownFields);
2331      }
2332
2333
2334      // @@protoc_insertion_point(builder_scope:hybridsim.Scenario)
2335    }
2336
2337    // @@protoc_insertion_point(class_scope:hybridsim.Scenario)
2338    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario DEFAULT_INSTANCE;
2339    static {
2340      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario();
2341    }
2342
2343    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario getDefaultInstance() {
2344      return DEFAULT_INSTANCE;
2345    }
2346
2347    private static final com.google.protobuf.Parser<Scenario>
2348        PARSER = new com.google.protobuf.AbstractParser<Scenario>() {
2349      @java.lang.Override
2350      public Scenario parsePartialFrom(
2351          com.google.protobuf.CodedInputStream input,
2352          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2353          throws com.google.protobuf.InvalidProtocolBufferException {
2354        return new Scenario(input, extensionRegistry);
2355      }
2356    };
2357
2358    public static com.google.protobuf.Parser<Scenario> parser() {
2359      return PARSER;
2360    }
2361
2362    @java.lang.Override
2363    public com.google.protobuf.Parser<Scenario> getParserForType() {
2364      return PARSER;
2365    }
2366
2367    @java.lang.Override
2368    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Scenario getDefaultInstanceForType() {
2369      return DEFAULT_INSTANCE;
2370    }
2371
2372  }
2373
2374  public interface HlineOrBuilder extends
2375      // @@protoc_insertion_point(interface_extends:hybridsim.Hline)
2376      com.google.protobuf.MessageOrBuilder {
2377
2378    /**
2379     * <code>int32 id = 1;</code>
2380     * @return The id.
2381     */
2382    int getId();
2383
2384    /**
2385     * <code>int32 room_id = 2;</code>
2386     * @return The roomId.
2387     */
2388    int getRoomId();
2389
2390    /**
2391     * <code>int32 subroom_id = 3;</code>
2392     * @return The subroomId.
2393     */
2394    int getSubroomId();
2395
2396    /**
2397     * <code>.hybridsim.Coordinate vert1 = 4;</code>
2398     * @return Whether the vert1 field is set.
2399     */
2400    boolean hasVert1();
2401    /**
2402     * <code>.hybridsim.Coordinate vert1 = 4;</code>
2403     * @return The vert1.
2404     */
2405    org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getVert1();
2406    /**
2407     * <code>.hybridsim.Coordinate vert1 = 4;</code>
2408     */
2409    org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getVert1OrBuilder();
2410
2411    /**
2412     * <code>.hybridsim.Coordinate vert2 = 5;</code>
2413     * @return Whether the vert2 field is set.
2414     */
2415    boolean hasVert2();
2416    /**
2417     * <code>.hybridsim.Coordinate vert2 = 5;</code>
2418     * @return The vert2.
2419     */
2420    org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getVert2();
2421    /**
2422     * <code>.hybridsim.Coordinate vert2 = 5;</code>
2423     */
2424    org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getVert2OrBuilder();
2425  }
2426  /**
2427   * Protobuf type {@code hybridsim.Hline}
2428   */
2429  public  static final class Hline extends
2430      com.google.protobuf.GeneratedMessageV3 implements
2431      // @@protoc_insertion_point(message_implements:hybridsim.Hline)
2432      HlineOrBuilder {
2433  private static final long serialVersionUID = 0L;
2434    // Use Hline.newBuilder() to construct.
2435    private Hline(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
2436      super(builder);
2437    }
2438    private Hline() {
2439    }
2440
2441    @java.lang.Override
2442    @SuppressWarnings({"unused"})
2443    protected java.lang.Object newInstance(
2444        UnusedPrivateParameter unused) {
2445      return new Hline();
2446    }
2447
2448    @java.lang.Override
2449    public final com.google.protobuf.UnknownFieldSet
2450    getUnknownFields() {
2451      return this.unknownFields;
2452    }
2453    private Hline(
2454        com.google.protobuf.CodedInputStream input,
2455        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2456        throws com.google.protobuf.InvalidProtocolBufferException {
2457      this();
2458      if (extensionRegistry == null) {
2459        throw new java.lang.NullPointerException();
2460      }
2461      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
2462          com.google.protobuf.UnknownFieldSet.newBuilder();
2463      try {
2464        boolean done = false;
2465        while (!done) {
2466          int tag = input.readTag();
2467          switch (tag) {
2468            case 0:
2469              done = true;
2470              break;
2471            case 8: {
2472
2473              id_ = input.readInt32();
2474              break;
2475            }
2476            case 16: {
2477
2478              roomId_ = input.readInt32();
2479              break;
2480            }
2481            case 24: {
2482
2483              subroomId_ = input.readInt32();
2484              break;
2485            }
2486            case 34: {
2487              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder subBuilder = null;
2488              if (vert1_ != null) {
2489                subBuilder = vert1_.toBuilder();
2490              }
2491              vert1_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.parser(), extensionRegistry);
2492              if (subBuilder != null) {
2493                subBuilder.mergeFrom(vert1_);
2494                vert1_ = subBuilder.buildPartial();
2495              }
2496
2497              break;
2498            }
2499            case 42: {
2500              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder subBuilder = null;
2501              if (vert2_ != null) {
2502                subBuilder = vert2_.toBuilder();
2503              }
2504              vert2_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.parser(), extensionRegistry);
2505              if (subBuilder != null) {
2506                subBuilder.mergeFrom(vert2_);
2507                vert2_ = subBuilder.buildPartial();
2508              }
2509
2510              break;
2511            }
2512            default: {
2513              if (!parseUnknownField(
2514                  input, unknownFields, extensionRegistry, tag)) {
2515                done = true;
2516              }
2517              break;
2518            }
2519          }
2520        }
2521      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2522        throw e.setUnfinishedMessage(this);
2523      } catch (java.io.IOException e) {
2524        throw new com.google.protobuf.InvalidProtocolBufferException(
2525            e).setUnfinishedMessage(this);
2526      } finally {
2527        this.unknownFields = unknownFields.build();
2528        makeExtensionsImmutable();
2529      }
2530    }
2531    public static final com.google.protobuf.Descriptors.Descriptor
2532        getDescriptor() {
2533      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Hline_descriptor;
2534    }
2535
2536    @java.lang.Override
2537    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
2538        internalGetFieldAccessorTable() {
2539      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Hline_fieldAccessorTable
2540          .ensureFieldAccessorsInitialized(
2541              org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.Builder.class);
2542    }
2543
2544    public static final int ID_FIELD_NUMBER = 1;
2545    private int id_;
2546    /**
2547     * <code>int32 id = 1;</code>
2548     * @return The id.
2549     */
2550    public int getId() {
2551      return id_;
2552    }
2553
2554    public static final int ROOM_ID_FIELD_NUMBER = 2;
2555    private int roomId_;
2556    /**
2557     * <code>int32 room_id = 2;</code>
2558     * @return The roomId.
2559     */
2560    public int getRoomId() {
2561      return roomId_;
2562    }
2563
2564    public static final int SUBROOM_ID_FIELD_NUMBER = 3;
2565    private int subroomId_;
2566    /**
2567     * <code>int32 subroom_id = 3;</code>
2568     * @return The subroomId.
2569     */
2570    public int getSubroomId() {
2571      return subroomId_;
2572    }
2573
2574    public static final int VERT1_FIELD_NUMBER = 4;
2575    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate vert1_;
2576    /**
2577     * <code>.hybridsim.Coordinate vert1 = 4;</code>
2578     * @return Whether the vert1 field is set.
2579     */
2580    public boolean hasVert1() {
2581      return vert1_ != null;
2582    }
2583    /**
2584     * <code>.hybridsim.Coordinate vert1 = 4;</code>
2585     * @return The vert1.
2586     */
2587    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getVert1() {
2588      return vert1_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : vert1_;
2589    }
2590    /**
2591     * <code>.hybridsim.Coordinate vert1 = 4;</code>
2592     */
2593    public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getVert1OrBuilder() {
2594      return getVert1();
2595    }
2596
2597    public static final int VERT2_FIELD_NUMBER = 5;
2598    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate vert2_;
2599    /**
2600     * <code>.hybridsim.Coordinate vert2 = 5;</code>
2601     * @return Whether the vert2 field is set.
2602     */
2603    public boolean hasVert2() {
2604      return vert2_ != null;
2605    }
2606    /**
2607     * <code>.hybridsim.Coordinate vert2 = 5;</code>
2608     * @return The vert2.
2609     */
2610    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getVert2() {
2611      return vert2_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : vert2_;
2612    }
2613    /**
2614     * <code>.hybridsim.Coordinate vert2 = 5;</code>
2615     */
2616    public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getVert2OrBuilder() {
2617      return getVert2();
2618    }
2619
2620    private byte memoizedIsInitialized = -1;
2621    @java.lang.Override
2622    public final boolean isInitialized() {
2623      byte isInitialized = memoizedIsInitialized;
2624      if (isInitialized == 1) return true;
2625      if (isInitialized == 0) return false;
2626
2627      memoizedIsInitialized = 1;
2628      return true;
2629    }
2630
2631    @java.lang.Override
2632    public void writeTo(com.google.protobuf.CodedOutputStream output)
2633                        throws java.io.IOException {
2634      if (id_ != 0) {
2635        output.writeInt32(1, id_);
2636      }
2637      if (roomId_ != 0) {
2638        output.writeInt32(2, roomId_);
2639      }
2640      if (subroomId_ != 0) {
2641        output.writeInt32(3, subroomId_);
2642      }
2643      if (vert1_ != null) {
2644        output.writeMessage(4, getVert1());
2645      }
2646      if (vert2_ != null) {
2647        output.writeMessage(5, getVert2());
2648      }
2649      unknownFields.writeTo(output);
2650    }
2651
2652    @java.lang.Override
2653    public int getSerializedSize() {
2654      int size = memoizedSize;
2655      if (size != -1) return size;
2656
2657      size = 0;
2658      if (id_ != 0) {
2659        size += com.google.protobuf.CodedOutputStream
2660          .computeInt32Size(1, id_);
2661      }
2662      if (roomId_ != 0) {
2663        size += com.google.protobuf.CodedOutputStream
2664          .computeInt32Size(2, roomId_);
2665      }
2666      if (subroomId_ != 0) {
2667        size += com.google.protobuf.CodedOutputStream
2668          .computeInt32Size(3, subroomId_);
2669      }
2670      if (vert1_ != null) {
2671        size += com.google.protobuf.CodedOutputStream
2672          .computeMessageSize(4, getVert1());
2673      }
2674      if (vert2_ != null) {
2675        size += com.google.protobuf.CodedOutputStream
2676          .computeMessageSize(5, getVert2());
2677      }
2678      size += unknownFields.getSerializedSize();
2679      memoizedSize = size;
2680      return size;
2681    }
2682
2683    @java.lang.Override
2684    public boolean equals(final java.lang.Object obj) {
2685      if (obj == this) {
2686       return true;
2687      }
2688      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline)) {
2689        return super.equals(obj);
2690      }
2691      org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline) obj;
2692
2693      if (getId()
2694          != other.getId()) return false;
2695      if (getRoomId()
2696          != other.getRoomId()) return false;
2697      if (getSubroomId()
2698          != other.getSubroomId()) return false;
2699      if (hasVert1() != other.hasVert1()) return false;
2700      if (hasVert1()) {
2701        if (!getVert1()
2702            .equals(other.getVert1())) return false;
2703      }
2704      if (hasVert2() != other.hasVert2()) return false;
2705      if (hasVert2()) {
2706        if (!getVert2()
2707            .equals(other.getVert2())) return false;
2708      }
2709      if (!unknownFields.equals(other.unknownFields)) return false;
2710      return true;
2711    }
2712
2713    @java.lang.Override
2714    public int hashCode() {
2715      if (memoizedHashCode != 0) {
2716        return memoizedHashCode;
2717      }
2718      int hash = 41;
2719      hash = (19 * hash) + getDescriptor().hashCode();
2720      hash = (37 * hash) + ID_FIELD_NUMBER;
2721      hash = (53 * hash) + getId();
2722      hash = (37 * hash) + ROOM_ID_FIELD_NUMBER;
2723      hash = (53 * hash) + getRoomId();
2724      hash = (37 * hash) + SUBROOM_ID_FIELD_NUMBER;
2725      hash = (53 * hash) + getSubroomId();
2726      if (hasVert1()) {
2727        hash = (37 * hash) + VERT1_FIELD_NUMBER;
2728        hash = (53 * hash) + getVert1().hashCode();
2729      }
2730      if (hasVert2()) {
2731        hash = (37 * hash) + VERT2_FIELD_NUMBER;
2732        hash = (53 * hash) + getVert2().hashCode();
2733      }
2734      hash = (29 * hash) + unknownFields.hashCode();
2735      memoizedHashCode = hash;
2736      return hash;
2737    }
2738
2739    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline parseFrom(
2740        java.nio.ByteBuffer data)
2741        throws com.google.protobuf.InvalidProtocolBufferException {
2742      return PARSER.parseFrom(data);
2743    }
2744    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline parseFrom(
2745        java.nio.ByteBuffer data,
2746        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2747        throws com.google.protobuf.InvalidProtocolBufferException {
2748      return PARSER.parseFrom(data, extensionRegistry);
2749    }
2750    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline parseFrom(
2751        com.google.protobuf.ByteString data)
2752        throws com.google.protobuf.InvalidProtocolBufferException {
2753      return PARSER.parseFrom(data);
2754    }
2755    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline parseFrom(
2756        com.google.protobuf.ByteString data,
2757        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2758        throws com.google.protobuf.InvalidProtocolBufferException {
2759      return PARSER.parseFrom(data, extensionRegistry);
2760    }
2761    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline parseFrom(byte[] data)
2762        throws com.google.protobuf.InvalidProtocolBufferException {
2763      return PARSER.parseFrom(data);
2764    }
2765    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline parseFrom(
2766        byte[] data,
2767        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2768        throws com.google.protobuf.InvalidProtocolBufferException {
2769      return PARSER.parseFrom(data, extensionRegistry);
2770    }
2771    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline parseFrom(java.io.InputStream input)
2772        throws java.io.IOException {
2773      return com.google.protobuf.GeneratedMessageV3
2774          .parseWithIOException(PARSER, input);
2775    }
2776    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline parseFrom(
2777        java.io.InputStream input,
2778        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2779        throws java.io.IOException {
2780      return com.google.protobuf.GeneratedMessageV3
2781          .parseWithIOException(PARSER, input, extensionRegistry);
2782    }
2783    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline parseDelimitedFrom(java.io.InputStream input)
2784        throws java.io.IOException {
2785      return com.google.protobuf.GeneratedMessageV3
2786          .parseDelimitedWithIOException(PARSER, input);
2787    }
2788    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline parseDelimitedFrom(
2789        java.io.InputStream input,
2790        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2791        throws java.io.IOException {
2792      return com.google.protobuf.GeneratedMessageV3
2793          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
2794    }
2795    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline parseFrom(
2796        com.google.protobuf.CodedInputStream input)
2797        throws java.io.IOException {
2798      return com.google.protobuf.GeneratedMessageV3
2799          .parseWithIOException(PARSER, input);
2800    }
2801    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline parseFrom(
2802        com.google.protobuf.CodedInputStream input,
2803        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2804        throws java.io.IOException {
2805      return com.google.protobuf.GeneratedMessageV3
2806          .parseWithIOException(PARSER, input, extensionRegistry);
2807    }
2808
2809    @java.lang.Override
2810    public Builder newBuilderForType() { return newBuilder(); }
2811    public static Builder newBuilder() {
2812      return DEFAULT_INSTANCE.toBuilder();
2813    }
2814    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline prototype) {
2815      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
2816    }
2817    @java.lang.Override
2818    public Builder toBuilder() {
2819      return this == DEFAULT_INSTANCE
2820          ? new Builder() : new Builder().mergeFrom(this);
2821    }
2822
2823    @java.lang.Override
2824    protected Builder newBuilderForType(
2825        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
2826      Builder builder = new Builder(parent);
2827      return builder;
2828    }
2829    /**
2830     * Protobuf type {@code hybridsim.Hline}
2831     */
2832    public static final class Builder extends
2833        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
2834        // @@protoc_insertion_point(builder_implements:hybridsim.Hline)
2835        org.matsim.contrib.hybridsim.proto.HybridSimProto.HlineOrBuilder {
2836      public static final com.google.protobuf.Descriptors.Descriptor
2837          getDescriptor() {
2838        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Hline_descriptor;
2839      }
2840
2841      @java.lang.Override
2842      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
2843          internalGetFieldAccessorTable() {
2844        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Hline_fieldAccessorTable
2845            .ensureFieldAccessorsInitialized(
2846                org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.Builder.class);
2847      }
2848
2849      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.newBuilder()
2850      private Builder() {
2851        maybeForceBuilderInitialization();
2852      }
2853
2854      private Builder(
2855          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
2856        super(parent);
2857        maybeForceBuilderInitialization();
2858      }
2859      private void maybeForceBuilderInitialization() {
2860        if (com.google.protobuf.GeneratedMessageV3
2861                .alwaysUseFieldBuilders) {
2862        }
2863      }
2864      @java.lang.Override
2865      public Builder clear() {
2866        super.clear();
2867        id_ = 0;
2868
2869        roomId_ = 0;
2870
2871        subroomId_ = 0;
2872
2873        if (vert1Builder_ == null) {
2874          vert1_ = null;
2875        } else {
2876          vert1_ = null;
2877          vert1Builder_ = null;
2878        }
2879        if (vert2Builder_ == null) {
2880          vert2_ = null;
2881        } else {
2882          vert2_ = null;
2883          vert2Builder_ = null;
2884        }
2885        return this;
2886      }
2887
2888      @java.lang.Override
2889      public com.google.protobuf.Descriptors.Descriptor
2890          getDescriptorForType() {
2891        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Hline_descriptor;
2892      }
2893
2894      @java.lang.Override
2895      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline getDefaultInstanceForType() {
2896        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.getDefaultInstance();
2897      }
2898
2899      @java.lang.Override
2900      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline build() {
2901        org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline result = buildPartial();
2902        if (!result.isInitialized()) {
2903          throw newUninitializedMessageException(result);
2904        }
2905        return result;
2906      }
2907
2908      @java.lang.Override
2909      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline buildPartial() {
2910        org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline(this);
2911        result.id_ = id_;
2912        result.roomId_ = roomId_;
2913        result.subroomId_ = subroomId_;
2914        if (vert1Builder_ == null) {
2915          result.vert1_ = vert1_;
2916        } else {
2917          result.vert1_ = vert1Builder_.build();
2918        }
2919        if (vert2Builder_ == null) {
2920          result.vert2_ = vert2_;
2921        } else {
2922          result.vert2_ = vert2Builder_.build();
2923        }
2924        onBuilt();
2925        return result;
2926      }
2927
2928      @java.lang.Override
2929      public Builder clone() {
2930        return super.clone();
2931      }
2932      @java.lang.Override
2933      public Builder setField(
2934          com.google.protobuf.Descriptors.FieldDescriptor field,
2935          java.lang.Object value) {
2936        return super.setField(field, value);
2937      }
2938      @java.lang.Override
2939      public Builder clearField(
2940          com.google.protobuf.Descriptors.FieldDescriptor field) {
2941        return super.clearField(field);
2942      }
2943      @java.lang.Override
2944      public Builder clearOneof(
2945          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
2946        return super.clearOneof(oneof);
2947      }
2948      @java.lang.Override
2949      public Builder setRepeatedField(
2950          com.google.protobuf.Descriptors.FieldDescriptor field,
2951          int index, java.lang.Object value) {
2952        return super.setRepeatedField(field, index, value);
2953      }
2954      @java.lang.Override
2955      public Builder addRepeatedField(
2956          com.google.protobuf.Descriptors.FieldDescriptor field,
2957          java.lang.Object value) {
2958        return super.addRepeatedField(field, value);
2959      }
2960      @java.lang.Override
2961      public Builder mergeFrom(com.google.protobuf.Message other) {
2962        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline) {
2963          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline)other);
2964        } else {
2965          super.mergeFrom(other);
2966          return this;
2967        }
2968      }
2969
2970      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline other) {
2971        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.getDefaultInstance()) return this;
2972        if (other.getId() != 0) {
2973          setId(other.getId());
2974        }
2975        if (other.getRoomId() != 0) {
2976          setRoomId(other.getRoomId());
2977        }
2978        if (other.getSubroomId() != 0) {
2979          setSubroomId(other.getSubroomId());
2980        }
2981        if (other.hasVert1()) {
2982          mergeVert1(other.getVert1());
2983        }
2984        if (other.hasVert2()) {
2985          mergeVert2(other.getVert2());
2986        }
2987        this.mergeUnknownFields(other.unknownFields);
2988        onChanged();
2989        return this;
2990      }
2991
2992      @java.lang.Override
2993      public final boolean isInitialized() {
2994        return true;
2995      }
2996
2997      @java.lang.Override
2998      public Builder mergeFrom(
2999          com.google.protobuf.CodedInputStream input,
3000          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3001          throws java.io.IOException {
3002        org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline parsedMessage = null;
3003        try {
3004          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
3005        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
3006          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline) e.getUnfinishedMessage();
3007          throw e.unwrapIOException();
3008        } finally {
3009          if (parsedMessage != null) {
3010            mergeFrom(parsedMessage);
3011          }
3012        }
3013        return this;
3014      }
3015
3016      private int id_ ;
3017      /**
3018       * <code>int32 id = 1;</code>
3019       * @return The id.
3020       */
3021      public int getId() {
3022        return id_;
3023      }
3024      /**
3025       * <code>int32 id = 1;</code>
3026       * @param value The id to set.
3027       * @return This builder for chaining.
3028       */
3029      public Builder setId(int value) {
3030        
3031        id_ = value;
3032        onChanged();
3033        return this;
3034      }
3035      /**
3036       * <code>int32 id = 1;</code>
3037       * @return This builder for chaining.
3038       */
3039      public Builder clearId() {
3040        
3041        id_ = 0;
3042        onChanged();
3043        return this;
3044      }
3045
3046      private int roomId_ ;
3047      /**
3048       * <code>int32 room_id = 2;</code>
3049       * @return The roomId.
3050       */
3051      public int getRoomId() {
3052        return roomId_;
3053      }
3054      /**
3055       * <code>int32 room_id = 2;</code>
3056       * @param value The roomId to set.
3057       * @return This builder for chaining.
3058       */
3059      public Builder setRoomId(int value) {
3060        
3061        roomId_ = value;
3062        onChanged();
3063        return this;
3064      }
3065      /**
3066       * <code>int32 room_id = 2;</code>
3067       * @return This builder for chaining.
3068       */
3069      public Builder clearRoomId() {
3070        
3071        roomId_ = 0;
3072        onChanged();
3073        return this;
3074      }
3075
3076      private int subroomId_ ;
3077      /**
3078       * <code>int32 subroom_id = 3;</code>
3079       * @return The subroomId.
3080       */
3081      public int getSubroomId() {
3082        return subroomId_;
3083      }
3084      /**
3085       * <code>int32 subroom_id = 3;</code>
3086       * @param value The subroomId to set.
3087       * @return This builder for chaining.
3088       */
3089      public Builder setSubroomId(int value) {
3090        
3091        subroomId_ = value;
3092        onChanged();
3093        return this;
3094      }
3095      /**
3096       * <code>int32 subroom_id = 3;</code>
3097       * @return This builder for chaining.
3098       */
3099      public Builder clearSubroomId() {
3100        
3101        subroomId_ = 0;
3102        onChanged();
3103        return this;
3104      }
3105
3106      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate vert1_;
3107      private com.google.protobuf.SingleFieldBuilderV3<
3108          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> vert1Builder_;
3109      /**
3110       * <code>.hybridsim.Coordinate vert1 = 4;</code>
3111       * @return Whether the vert1 field is set.
3112       */
3113      public boolean hasVert1() {
3114        return vert1Builder_ != null || vert1_ != null;
3115      }
3116      /**
3117       * <code>.hybridsim.Coordinate vert1 = 4;</code>
3118       * @return The vert1.
3119       */
3120      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getVert1() {
3121        if (vert1Builder_ == null) {
3122          return vert1_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : vert1_;
3123        } else {
3124          return vert1Builder_.getMessage();
3125        }
3126      }
3127      /**
3128       * <code>.hybridsim.Coordinate vert1 = 4;</code>
3129       */
3130      public Builder setVert1(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
3131        if (vert1Builder_ == null) {
3132          if (value == null) {
3133            throw new NullPointerException();
3134          }
3135          vert1_ = value;
3136          onChanged();
3137        } else {
3138          vert1Builder_.setMessage(value);
3139        }
3140
3141        return this;
3142      }
3143      /**
3144       * <code>.hybridsim.Coordinate vert1 = 4;</code>
3145       */
3146      public Builder setVert1(
3147          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder builderForValue) {
3148        if (vert1Builder_ == null) {
3149          vert1_ = builderForValue.build();
3150          onChanged();
3151        } else {
3152          vert1Builder_.setMessage(builderForValue.build());
3153        }
3154
3155        return this;
3156      }
3157      /**
3158       * <code>.hybridsim.Coordinate vert1 = 4;</code>
3159       */
3160      public Builder mergeVert1(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
3161        if (vert1Builder_ == null) {
3162          if (vert1_ != null) {
3163            vert1_ =
3164              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.newBuilder(vert1_).mergeFrom(value).buildPartial();
3165          } else {
3166            vert1_ = value;
3167          }
3168          onChanged();
3169        } else {
3170          vert1Builder_.mergeFrom(value);
3171        }
3172
3173        return this;
3174      }
3175      /**
3176       * <code>.hybridsim.Coordinate vert1 = 4;</code>
3177       */
3178      public Builder clearVert1() {
3179        if (vert1Builder_ == null) {
3180          vert1_ = null;
3181          onChanged();
3182        } else {
3183          vert1_ = null;
3184          vert1Builder_ = null;
3185        }
3186
3187        return this;
3188      }
3189      /**
3190       * <code>.hybridsim.Coordinate vert1 = 4;</code>
3191       */
3192      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder getVert1Builder() {
3193        
3194        onChanged();
3195        return getVert1FieldBuilder().getBuilder();
3196      }
3197      /**
3198       * <code>.hybridsim.Coordinate vert1 = 4;</code>
3199       */
3200      public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getVert1OrBuilder() {
3201        if (vert1Builder_ != null) {
3202          return vert1Builder_.getMessageOrBuilder();
3203        } else {
3204          return vert1_ == null ?
3205              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : vert1_;
3206        }
3207      }
3208      /**
3209       * <code>.hybridsim.Coordinate vert1 = 4;</code>
3210       */
3211      private com.google.protobuf.SingleFieldBuilderV3<
3212          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> 
3213          getVert1FieldBuilder() {
3214        if (vert1Builder_ == null) {
3215          vert1Builder_ = new com.google.protobuf.SingleFieldBuilderV3<
3216              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder>(
3217                  getVert1(),
3218                  getParentForChildren(),
3219                  isClean());
3220          vert1_ = null;
3221        }
3222        return vert1Builder_;
3223      }
3224
3225      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate vert2_;
3226      private com.google.protobuf.SingleFieldBuilderV3<
3227          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> vert2Builder_;
3228      /**
3229       * <code>.hybridsim.Coordinate vert2 = 5;</code>
3230       * @return Whether the vert2 field is set.
3231       */
3232      public boolean hasVert2() {
3233        return vert2Builder_ != null || vert2_ != null;
3234      }
3235      /**
3236       * <code>.hybridsim.Coordinate vert2 = 5;</code>
3237       * @return The vert2.
3238       */
3239      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getVert2() {
3240        if (vert2Builder_ == null) {
3241          return vert2_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : vert2_;
3242        } else {
3243          return vert2Builder_.getMessage();
3244        }
3245      }
3246      /**
3247       * <code>.hybridsim.Coordinate vert2 = 5;</code>
3248       */
3249      public Builder setVert2(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
3250        if (vert2Builder_ == null) {
3251          if (value == null) {
3252            throw new NullPointerException();
3253          }
3254          vert2_ = value;
3255          onChanged();
3256        } else {
3257          vert2Builder_.setMessage(value);
3258        }
3259
3260        return this;
3261      }
3262      /**
3263       * <code>.hybridsim.Coordinate vert2 = 5;</code>
3264       */
3265      public Builder setVert2(
3266          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder builderForValue) {
3267        if (vert2Builder_ == null) {
3268          vert2_ = builderForValue.build();
3269          onChanged();
3270        } else {
3271          vert2Builder_.setMessage(builderForValue.build());
3272        }
3273
3274        return this;
3275      }
3276      /**
3277       * <code>.hybridsim.Coordinate vert2 = 5;</code>
3278       */
3279      public Builder mergeVert2(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
3280        if (vert2Builder_ == null) {
3281          if (vert2_ != null) {
3282            vert2_ =
3283              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.newBuilder(vert2_).mergeFrom(value).buildPartial();
3284          } else {
3285            vert2_ = value;
3286          }
3287          onChanged();
3288        } else {
3289          vert2Builder_.mergeFrom(value);
3290        }
3291
3292        return this;
3293      }
3294      /**
3295       * <code>.hybridsim.Coordinate vert2 = 5;</code>
3296       */
3297      public Builder clearVert2() {
3298        if (vert2Builder_ == null) {
3299          vert2_ = null;
3300          onChanged();
3301        } else {
3302          vert2_ = null;
3303          vert2Builder_ = null;
3304        }
3305
3306        return this;
3307      }
3308      /**
3309       * <code>.hybridsim.Coordinate vert2 = 5;</code>
3310       */
3311      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder getVert2Builder() {
3312        
3313        onChanged();
3314        return getVert2FieldBuilder().getBuilder();
3315      }
3316      /**
3317       * <code>.hybridsim.Coordinate vert2 = 5;</code>
3318       */
3319      public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getVert2OrBuilder() {
3320        if (vert2Builder_ != null) {
3321          return vert2Builder_.getMessageOrBuilder();
3322        } else {
3323          return vert2_ == null ?
3324              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : vert2_;
3325        }
3326      }
3327      /**
3328       * <code>.hybridsim.Coordinate vert2 = 5;</code>
3329       */
3330      private com.google.protobuf.SingleFieldBuilderV3<
3331          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> 
3332          getVert2FieldBuilder() {
3333        if (vert2Builder_ == null) {
3334          vert2Builder_ = new com.google.protobuf.SingleFieldBuilderV3<
3335              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder>(
3336                  getVert2(),
3337                  getParentForChildren(),
3338                  isClean());
3339          vert2_ = null;
3340        }
3341        return vert2Builder_;
3342      }
3343      @java.lang.Override
3344      public final Builder setUnknownFields(
3345          final com.google.protobuf.UnknownFieldSet unknownFields) {
3346        return super.setUnknownFields(unknownFields);
3347      }
3348
3349      @java.lang.Override
3350      public final Builder mergeUnknownFields(
3351          final com.google.protobuf.UnknownFieldSet unknownFields) {
3352        return super.mergeUnknownFields(unknownFields);
3353      }
3354
3355
3356      // @@protoc_insertion_point(builder_scope:hybridsim.Hline)
3357    }
3358
3359    // @@protoc_insertion_point(class_scope:hybridsim.Hline)
3360    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline DEFAULT_INSTANCE;
3361    static {
3362      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline();
3363    }
3364
3365    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline getDefaultInstance() {
3366      return DEFAULT_INSTANCE;
3367    }
3368
3369    private static final com.google.protobuf.Parser<Hline>
3370        PARSER = new com.google.protobuf.AbstractParser<Hline>() {
3371      @java.lang.Override
3372      public Hline parsePartialFrom(
3373          com.google.protobuf.CodedInputStream input,
3374          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3375          throws com.google.protobuf.InvalidProtocolBufferException {
3376        return new Hline(input, extensionRegistry);
3377      }
3378    };
3379
3380    public static com.google.protobuf.Parser<Hline> parser() {
3381      return PARSER;
3382    }
3383
3384    @java.lang.Override
3385    public com.google.protobuf.Parser<Hline> getParserForType() {
3386      return PARSER;
3387    }
3388
3389    @java.lang.Override
3390    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline getDefaultInstanceForType() {
3391      return DEFAULT_INSTANCE;
3392    }
3393
3394  }
3395
3396  public interface RouterOrBuilder extends
3397      // @@protoc_insertion_point(interface_extends:hybridsim.Router)
3398      com.google.protobuf.MessageOrBuilder {
3399
3400    /**
3401     * <code>int32 router_id = 1;</code>
3402     * @return The routerId.
3403     */
3404    int getRouterId();
3405
3406    /**
3407     * <code>string description = 2;</code>
3408     * @return The description.
3409     */
3410    java.lang.String getDescription();
3411    /**
3412     * <code>string description = 2;</code>
3413     * @return The bytes for description.
3414     */
3415    com.google.protobuf.ByteString
3416        getDescriptionBytes();
3417  }
3418  /**
3419   * Protobuf type {@code hybridsim.Router}
3420   */
3421  public  static final class Router extends
3422      com.google.protobuf.GeneratedMessageV3 implements
3423      // @@protoc_insertion_point(message_implements:hybridsim.Router)
3424      RouterOrBuilder {
3425  private static final long serialVersionUID = 0L;
3426    // Use Router.newBuilder() to construct.
3427    private Router(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
3428      super(builder);
3429    }
3430    private Router() {
3431      description_ = "";
3432    }
3433
3434    @java.lang.Override
3435    @SuppressWarnings({"unused"})
3436    protected java.lang.Object newInstance(
3437        UnusedPrivateParameter unused) {
3438      return new Router();
3439    }
3440
3441    @java.lang.Override
3442    public final com.google.protobuf.UnknownFieldSet
3443    getUnknownFields() {
3444      return this.unknownFields;
3445    }
3446    private Router(
3447        com.google.protobuf.CodedInputStream input,
3448        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3449        throws com.google.protobuf.InvalidProtocolBufferException {
3450      this();
3451      if (extensionRegistry == null) {
3452        throw new java.lang.NullPointerException();
3453      }
3454      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
3455          com.google.protobuf.UnknownFieldSet.newBuilder();
3456      try {
3457        boolean done = false;
3458        while (!done) {
3459          int tag = input.readTag();
3460          switch (tag) {
3461            case 0:
3462              done = true;
3463              break;
3464            case 8: {
3465
3466              routerId_ = input.readInt32();
3467              break;
3468            }
3469            case 18: {
3470              java.lang.String s = input.readStringRequireUtf8();
3471
3472              description_ = s;
3473              break;
3474            }
3475            default: {
3476              if (!parseUnknownField(
3477                  input, unknownFields, extensionRegistry, tag)) {
3478                done = true;
3479              }
3480              break;
3481            }
3482          }
3483        }
3484      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
3485        throw e.setUnfinishedMessage(this);
3486      } catch (java.io.IOException e) {
3487        throw new com.google.protobuf.InvalidProtocolBufferException(
3488            e).setUnfinishedMessage(this);
3489      } finally {
3490        this.unknownFields = unknownFields.build();
3491        makeExtensionsImmutable();
3492      }
3493    }
3494    public static final com.google.protobuf.Descriptors.Descriptor
3495        getDescriptor() {
3496      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Router_descriptor;
3497    }
3498
3499    @java.lang.Override
3500    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
3501        internalGetFieldAccessorTable() {
3502      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Router_fieldAccessorTable
3503          .ensureFieldAccessorsInitialized(
3504              org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.Builder.class);
3505    }
3506
3507    public static final int ROUTER_ID_FIELD_NUMBER = 1;
3508    private int routerId_;
3509    /**
3510     * <code>int32 router_id = 1;</code>
3511     * @return The routerId.
3512     */
3513    public int getRouterId() {
3514      return routerId_;
3515    }
3516
3517    public static final int DESCRIPTION_FIELD_NUMBER = 2;
3518    private volatile java.lang.Object description_;
3519    /**
3520     * <code>string description = 2;</code>
3521     * @return The description.
3522     */
3523    public java.lang.String getDescription() {
3524      java.lang.Object ref = description_;
3525      if (ref instanceof java.lang.String) {
3526        return (java.lang.String) ref;
3527      } else {
3528        com.google.protobuf.ByteString bs = 
3529            (com.google.protobuf.ByteString) ref;
3530        java.lang.String s = bs.toStringUtf8();
3531        description_ = s;
3532        return s;
3533      }
3534    }
3535    /**
3536     * <code>string description = 2;</code>
3537     * @return The bytes for description.
3538     */
3539    public com.google.protobuf.ByteString
3540        getDescriptionBytes() {
3541      java.lang.Object ref = description_;
3542      if (ref instanceof java.lang.String) {
3543        com.google.protobuf.ByteString b = 
3544            com.google.protobuf.ByteString.copyFromUtf8(
3545                (java.lang.String) ref);
3546        description_ = b;
3547        return b;
3548      } else {
3549        return (com.google.protobuf.ByteString) ref;
3550      }
3551    }
3552
3553    private byte memoizedIsInitialized = -1;
3554    @java.lang.Override
3555    public final boolean isInitialized() {
3556      byte isInitialized = memoizedIsInitialized;
3557      if (isInitialized == 1) return true;
3558      if (isInitialized == 0) return false;
3559
3560      memoizedIsInitialized = 1;
3561      return true;
3562    }
3563
3564    @java.lang.Override
3565    public void writeTo(com.google.protobuf.CodedOutputStream output)
3566                        throws java.io.IOException {
3567      if (routerId_ != 0) {
3568        output.writeInt32(1, routerId_);
3569      }
3570      if (!getDescriptionBytes().isEmpty()) {
3571        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, description_);
3572      }
3573      unknownFields.writeTo(output);
3574    }
3575
3576    @java.lang.Override
3577    public int getSerializedSize() {
3578      int size = memoizedSize;
3579      if (size != -1) return size;
3580
3581      size = 0;
3582      if (routerId_ != 0) {
3583        size += com.google.protobuf.CodedOutputStream
3584          .computeInt32Size(1, routerId_);
3585      }
3586      if (!getDescriptionBytes().isEmpty()) {
3587        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, description_);
3588      }
3589      size += unknownFields.getSerializedSize();
3590      memoizedSize = size;
3591      return size;
3592    }
3593
3594    @java.lang.Override
3595    public boolean equals(final java.lang.Object obj) {
3596      if (obj == this) {
3597       return true;
3598      }
3599      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Router)) {
3600        return super.equals(obj);
3601      }
3602      org.matsim.contrib.hybridsim.proto.HybridSimProto.Router other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Router) obj;
3603
3604      if (getRouterId()
3605          != other.getRouterId()) return false;
3606      if (!getDescription()
3607          .equals(other.getDescription())) return false;
3608      if (!unknownFields.equals(other.unknownFields)) return false;
3609      return true;
3610    }
3611
3612    @java.lang.Override
3613    public int hashCode() {
3614      if (memoizedHashCode != 0) {
3615        return memoizedHashCode;
3616      }
3617      int hash = 41;
3618      hash = (19 * hash) + getDescriptor().hashCode();
3619      hash = (37 * hash) + ROUTER_ID_FIELD_NUMBER;
3620      hash = (53 * hash) + getRouterId();
3621      hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
3622      hash = (53 * hash) + getDescription().hashCode();
3623      hash = (29 * hash) + unknownFields.hashCode();
3624      memoizedHashCode = hash;
3625      return hash;
3626    }
3627
3628    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Router parseFrom(
3629        java.nio.ByteBuffer data)
3630        throws com.google.protobuf.InvalidProtocolBufferException {
3631      return PARSER.parseFrom(data);
3632    }
3633    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Router parseFrom(
3634        java.nio.ByteBuffer data,
3635        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3636        throws com.google.protobuf.InvalidProtocolBufferException {
3637      return PARSER.parseFrom(data, extensionRegistry);
3638    }
3639    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Router parseFrom(
3640        com.google.protobuf.ByteString data)
3641        throws com.google.protobuf.InvalidProtocolBufferException {
3642      return PARSER.parseFrom(data);
3643    }
3644    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Router parseFrom(
3645        com.google.protobuf.ByteString data,
3646        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3647        throws com.google.protobuf.InvalidProtocolBufferException {
3648      return PARSER.parseFrom(data, extensionRegistry);
3649    }
3650    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Router parseFrom(byte[] data)
3651        throws com.google.protobuf.InvalidProtocolBufferException {
3652      return PARSER.parseFrom(data);
3653    }
3654    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Router parseFrom(
3655        byte[] data,
3656        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3657        throws com.google.protobuf.InvalidProtocolBufferException {
3658      return PARSER.parseFrom(data, extensionRegistry);
3659    }
3660    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Router parseFrom(java.io.InputStream input)
3661        throws java.io.IOException {
3662      return com.google.protobuf.GeneratedMessageV3
3663          .parseWithIOException(PARSER, input);
3664    }
3665    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Router parseFrom(
3666        java.io.InputStream input,
3667        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3668        throws java.io.IOException {
3669      return com.google.protobuf.GeneratedMessageV3
3670          .parseWithIOException(PARSER, input, extensionRegistry);
3671    }
3672    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Router parseDelimitedFrom(java.io.InputStream input)
3673        throws java.io.IOException {
3674      return com.google.protobuf.GeneratedMessageV3
3675          .parseDelimitedWithIOException(PARSER, input);
3676    }
3677    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Router parseDelimitedFrom(
3678        java.io.InputStream input,
3679        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3680        throws java.io.IOException {
3681      return com.google.protobuf.GeneratedMessageV3
3682          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
3683    }
3684    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Router parseFrom(
3685        com.google.protobuf.CodedInputStream input)
3686        throws java.io.IOException {
3687      return com.google.protobuf.GeneratedMessageV3
3688          .parseWithIOException(PARSER, input);
3689    }
3690    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Router parseFrom(
3691        com.google.protobuf.CodedInputStream input,
3692        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3693        throws java.io.IOException {
3694      return com.google.protobuf.GeneratedMessageV3
3695          .parseWithIOException(PARSER, input, extensionRegistry);
3696    }
3697
3698    @java.lang.Override
3699    public Builder newBuilderForType() { return newBuilder(); }
3700    public static Builder newBuilder() {
3701      return DEFAULT_INSTANCE.toBuilder();
3702    }
3703    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Router prototype) {
3704      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
3705    }
3706    @java.lang.Override
3707    public Builder toBuilder() {
3708      return this == DEFAULT_INSTANCE
3709          ? new Builder() : new Builder().mergeFrom(this);
3710    }
3711
3712    @java.lang.Override
3713    protected Builder newBuilderForType(
3714        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
3715      Builder builder = new Builder(parent);
3716      return builder;
3717    }
3718    /**
3719     * Protobuf type {@code hybridsim.Router}
3720     */
3721    public static final class Builder extends
3722        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
3723        // @@protoc_insertion_point(builder_implements:hybridsim.Router)
3724        org.matsim.contrib.hybridsim.proto.HybridSimProto.RouterOrBuilder {
3725      public static final com.google.protobuf.Descriptors.Descriptor
3726          getDescriptor() {
3727        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Router_descriptor;
3728      }
3729
3730      @java.lang.Override
3731      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
3732          internalGetFieldAccessorTable() {
3733        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Router_fieldAccessorTable
3734            .ensureFieldAccessorsInitialized(
3735                org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.Builder.class);
3736      }
3737
3738      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.newBuilder()
3739      private Builder() {
3740        maybeForceBuilderInitialization();
3741      }
3742
3743      private Builder(
3744          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
3745        super(parent);
3746        maybeForceBuilderInitialization();
3747      }
3748      private void maybeForceBuilderInitialization() {
3749        if (com.google.protobuf.GeneratedMessageV3
3750                .alwaysUseFieldBuilders) {
3751        }
3752      }
3753      @java.lang.Override
3754      public Builder clear() {
3755        super.clear();
3756        routerId_ = 0;
3757
3758        description_ = "";
3759
3760        return this;
3761      }
3762
3763      @java.lang.Override
3764      public com.google.protobuf.Descriptors.Descriptor
3765          getDescriptorForType() {
3766        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Router_descriptor;
3767      }
3768
3769      @java.lang.Override
3770      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Router getDefaultInstanceForType() {
3771        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.getDefaultInstance();
3772      }
3773
3774      @java.lang.Override
3775      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Router build() {
3776        org.matsim.contrib.hybridsim.proto.HybridSimProto.Router result = buildPartial();
3777        if (!result.isInitialized()) {
3778          throw newUninitializedMessageException(result);
3779        }
3780        return result;
3781      }
3782
3783      @java.lang.Override
3784      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Router buildPartial() {
3785        org.matsim.contrib.hybridsim.proto.HybridSimProto.Router result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Router(this);
3786        result.routerId_ = routerId_;
3787        result.description_ = description_;
3788        onBuilt();
3789        return result;
3790      }
3791
3792      @java.lang.Override
3793      public Builder clone() {
3794        return super.clone();
3795      }
3796      @java.lang.Override
3797      public Builder setField(
3798          com.google.protobuf.Descriptors.FieldDescriptor field,
3799          java.lang.Object value) {
3800        return super.setField(field, value);
3801      }
3802      @java.lang.Override
3803      public Builder clearField(
3804          com.google.protobuf.Descriptors.FieldDescriptor field) {
3805        return super.clearField(field);
3806      }
3807      @java.lang.Override
3808      public Builder clearOneof(
3809          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
3810        return super.clearOneof(oneof);
3811      }
3812      @java.lang.Override
3813      public Builder setRepeatedField(
3814          com.google.protobuf.Descriptors.FieldDescriptor field,
3815          int index, java.lang.Object value) {
3816        return super.setRepeatedField(field, index, value);
3817      }
3818      @java.lang.Override
3819      public Builder addRepeatedField(
3820          com.google.protobuf.Descriptors.FieldDescriptor field,
3821          java.lang.Object value) {
3822        return super.addRepeatedField(field, value);
3823      }
3824      @java.lang.Override
3825      public Builder mergeFrom(com.google.protobuf.Message other) {
3826        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Router) {
3827          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Router)other);
3828        } else {
3829          super.mergeFrom(other);
3830          return this;
3831        }
3832      }
3833
3834      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Router other) {
3835        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Router.getDefaultInstance()) return this;
3836        if (other.getRouterId() != 0) {
3837          setRouterId(other.getRouterId());
3838        }
3839        if (!other.getDescription().isEmpty()) {
3840          description_ = other.description_;
3841          onChanged();
3842        }
3843        this.mergeUnknownFields(other.unknownFields);
3844        onChanged();
3845        return this;
3846      }
3847
3848      @java.lang.Override
3849      public final boolean isInitialized() {
3850        return true;
3851      }
3852
3853      @java.lang.Override
3854      public Builder mergeFrom(
3855          com.google.protobuf.CodedInputStream input,
3856          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3857          throws java.io.IOException {
3858        org.matsim.contrib.hybridsim.proto.HybridSimProto.Router parsedMessage = null;
3859        try {
3860          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
3861        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
3862          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Router) e.getUnfinishedMessage();
3863          throw e.unwrapIOException();
3864        } finally {
3865          if (parsedMessage != null) {
3866            mergeFrom(parsedMessage);
3867          }
3868        }
3869        return this;
3870      }
3871
3872      private int routerId_ ;
3873      /**
3874       * <code>int32 router_id = 1;</code>
3875       * @return The routerId.
3876       */
3877      public int getRouterId() {
3878        return routerId_;
3879      }
3880      /**
3881       * <code>int32 router_id = 1;</code>
3882       * @param value The routerId to set.
3883       * @return This builder for chaining.
3884       */
3885      public Builder setRouterId(int value) {
3886        
3887        routerId_ = value;
3888        onChanged();
3889        return this;
3890      }
3891      /**
3892       * <code>int32 router_id = 1;</code>
3893       * @return This builder for chaining.
3894       */
3895      public Builder clearRouterId() {
3896        
3897        routerId_ = 0;
3898        onChanged();
3899        return this;
3900      }
3901
3902      private java.lang.Object description_ = "";
3903      /**
3904       * <code>string description = 2;</code>
3905       * @return The description.
3906       */
3907      public java.lang.String getDescription() {
3908        java.lang.Object ref = description_;
3909        if (!(ref instanceof java.lang.String)) {
3910          com.google.protobuf.ByteString bs =
3911              (com.google.protobuf.ByteString) ref;
3912          java.lang.String s = bs.toStringUtf8();
3913          description_ = s;
3914          return s;
3915        } else {
3916          return (java.lang.String) ref;
3917        }
3918      }
3919      /**
3920       * <code>string description = 2;</code>
3921       * @return The bytes for description.
3922       */
3923      public com.google.protobuf.ByteString
3924          getDescriptionBytes() {
3925        java.lang.Object ref = description_;
3926        if (ref instanceof String) {
3927          com.google.protobuf.ByteString b = 
3928              com.google.protobuf.ByteString.copyFromUtf8(
3929                  (java.lang.String) ref);
3930          description_ = b;
3931          return b;
3932        } else {
3933          return (com.google.protobuf.ByteString) ref;
3934        }
3935      }
3936      /**
3937       * <code>string description = 2;</code>
3938       * @param value The description to set.
3939       * @return This builder for chaining.
3940       */
3941      public Builder setDescription(
3942          java.lang.String value) {
3943        if (value == null) {
3944    throw new NullPointerException();
3945  }
3946  
3947        description_ = value;
3948        onChanged();
3949        return this;
3950      }
3951      /**
3952       * <code>string description = 2;</code>
3953       * @return This builder for chaining.
3954       */
3955      public Builder clearDescription() {
3956        
3957        description_ = getDefaultInstance().getDescription();
3958        onChanged();
3959        return this;
3960      }
3961      /**
3962       * <code>string description = 2;</code>
3963       * @param value The bytes for description to set.
3964       * @return This builder for chaining.
3965       */
3966      public Builder setDescriptionBytes(
3967          com.google.protobuf.ByteString value) {
3968        if (value == null) {
3969    throw new NullPointerException();
3970  }
3971  checkByteStringIsUtf8(value);
3972        
3973        description_ = value;
3974        onChanged();
3975        return this;
3976      }
3977      @java.lang.Override
3978      public final Builder setUnknownFields(
3979          final com.google.protobuf.UnknownFieldSet unknownFields) {
3980        return super.setUnknownFields(unknownFields);
3981      }
3982
3983      @java.lang.Override
3984      public final Builder mergeUnknownFields(
3985          final com.google.protobuf.UnknownFieldSet unknownFields) {
3986        return super.mergeUnknownFields(unknownFields);
3987      }
3988
3989
3990      // @@protoc_insertion_point(builder_scope:hybridsim.Router)
3991    }
3992
3993    // @@protoc_insertion_point(class_scope:hybridsim.Router)
3994    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Router DEFAULT_INSTANCE;
3995    static {
3996      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Router();
3997    }
3998
3999    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Router getDefaultInstance() {
4000      return DEFAULT_INSTANCE;
4001    }
4002
4003    private static final com.google.protobuf.Parser<Router>
4004        PARSER = new com.google.protobuf.AbstractParser<Router>() {
4005      @java.lang.Override
4006      public Router parsePartialFrom(
4007          com.google.protobuf.CodedInputStream input,
4008          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4009          throws com.google.protobuf.InvalidProtocolBufferException {
4010        return new Router(input, extensionRegistry);
4011      }
4012    };
4013
4014    public static com.google.protobuf.Parser<Router> parser() {
4015      return PARSER;
4016    }
4017
4018    @java.lang.Override
4019    public com.google.protobuf.Parser<Router> getParserForType() {
4020      return PARSER;
4021    }
4022
4023    @java.lang.Override
4024    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Router getDefaultInstanceForType() {
4025      return DEFAULT_INSTANCE;
4026    }
4027
4028  }
4029
4030  public interface ModelOrBuilder extends
4031      // @@protoc_insertion_point(interface_extends:hybridsim.Model)
4032      com.google.protobuf.MessageOrBuilder {
4033
4034    /**
4035     * <code>.hybridsim.Model.Type type = 1;</code>
4036     * @return The enum numeric value on the wire for type.
4037     */
4038    int getTypeValue();
4039    /**
4040     * <code>.hybridsim.Model.Type type = 1;</code>
4041     * @return The type.
4042     */
4043    org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Type getType();
4044
4045    /**
4046     * <code>.hybridsim.Gompertz gompertz = 2;</code>
4047     * @return Whether the gompertz field is set.
4048     */
4049    boolean hasGompertz();
4050    /**
4051     * <code>.hybridsim.Gompertz gompertz = 2;</code>
4052     * @return The gompertz.
4053     */
4054    org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz getGompertz();
4055    /**
4056     * <code>.hybridsim.Gompertz gompertz = 2;</code>
4057     */
4058    org.matsim.contrib.hybridsim.proto.HybridSimProto.GompertzOrBuilder getGompertzOrBuilder();
4059
4060    /**
4061     * <code>.hybridsim.Tordeux2015 tordeux2015 = 3;</code>
4062     * @return Whether the tordeux2015 field is set.
4063     */
4064    boolean hasTordeux2015();
4065    /**
4066     * <code>.hybridsim.Tordeux2015 tordeux2015 = 3;</code>
4067     * @return The tordeux2015.
4068     */
4069    org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 getTordeux2015();
4070    /**
4071     * <code>.hybridsim.Tordeux2015 tordeux2015 = 3;</code>
4072     */
4073    org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015OrBuilder getTordeux2015OrBuilder();
4074  }
4075  /**
4076   * Protobuf type {@code hybridsim.Model}
4077   */
4078  public  static final class Model extends
4079      com.google.protobuf.GeneratedMessageV3 implements
4080      // @@protoc_insertion_point(message_implements:hybridsim.Model)
4081      ModelOrBuilder {
4082  private static final long serialVersionUID = 0L;
4083    // Use Model.newBuilder() to construct.
4084    private Model(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
4085      super(builder);
4086    }
4087    private Model() {
4088      type_ = 0;
4089    }
4090
4091    @java.lang.Override
4092    @SuppressWarnings({"unused"})
4093    protected java.lang.Object newInstance(
4094        UnusedPrivateParameter unused) {
4095      return new Model();
4096    }
4097
4098    @java.lang.Override
4099    public final com.google.protobuf.UnknownFieldSet
4100    getUnknownFields() {
4101      return this.unknownFields;
4102    }
4103    private Model(
4104        com.google.protobuf.CodedInputStream input,
4105        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4106        throws com.google.protobuf.InvalidProtocolBufferException {
4107      this();
4108      if (extensionRegistry == null) {
4109        throw new java.lang.NullPointerException();
4110      }
4111      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
4112          com.google.protobuf.UnknownFieldSet.newBuilder();
4113      try {
4114        boolean done = false;
4115        while (!done) {
4116          int tag = input.readTag();
4117          switch (tag) {
4118            case 0:
4119              done = true;
4120              break;
4121            case 8: {
4122              int rawValue = input.readEnum();
4123
4124              type_ = rawValue;
4125              break;
4126            }
4127            case 18: {
4128              org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz.Builder subBuilder = null;
4129              if (gompertz_ != null) {
4130                subBuilder = gompertz_.toBuilder();
4131              }
4132              gompertz_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz.parser(), extensionRegistry);
4133              if (subBuilder != null) {
4134                subBuilder.mergeFrom(gompertz_);
4135                gompertz_ = subBuilder.buildPartial();
4136              }
4137
4138              break;
4139            }
4140            case 26: {
4141              org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015.Builder subBuilder = null;
4142              if (tordeux2015_ != null) {
4143                subBuilder = tordeux2015_.toBuilder();
4144              }
4145              tordeux2015_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015.parser(), extensionRegistry);
4146              if (subBuilder != null) {
4147                subBuilder.mergeFrom(tordeux2015_);
4148                tordeux2015_ = subBuilder.buildPartial();
4149              }
4150
4151              break;
4152            }
4153            default: {
4154              if (!parseUnknownField(
4155                  input, unknownFields, extensionRegistry, tag)) {
4156                done = true;
4157              }
4158              break;
4159            }
4160          }
4161        }
4162      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
4163        throw e.setUnfinishedMessage(this);
4164      } catch (java.io.IOException e) {
4165        throw new com.google.protobuf.InvalidProtocolBufferException(
4166            e).setUnfinishedMessage(this);
4167      } finally {
4168        this.unknownFields = unknownFields.build();
4169        makeExtensionsImmutable();
4170      }
4171    }
4172    public static final com.google.protobuf.Descriptors.Descriptor
4173        getDescriptor() {
4174      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Model_descriptor;
4175    }
4176
4177    @java.lang.Override
4178    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
4179        internalGetFieldAccessorTable() {
4180      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Model_fieldAccessorTable
4181          .ensureFieldAccessorsInitialized(
4182              org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Builder.class);
4183    }
4184
4185    /**
4186     * Protobuf enum {@code hybridsim.Model.Type}
4187     */
4188    public enum Type
4189        implements com.google.protobuf.ProtocolMessageEnum {
4190      /**
4191       * <code>Gompertz = 0;</code>
4192       */
4193      Gompertz(0),
4194      /**
4195       * <code>Tordeux2015 = 1;</code>
4196       */
4197      Tordeux2015(1),
4198      UNRECOGNIZED(-1),
4199      ;
4200
4201      /**
4202       * <code>Gompertz = 0;</code>
4203       */
4204      public static final int Gompertz_VALUE = 0;
4205      /**
4206       * <code>Tordeux2015 = 1;</code>
4207       */
4208      public static final int Tordeux2015_VALUE = 1;
4209
4210
4211      public final int getNumber() {
4212        if (this == UNRECOGNIZED) {
4213          throw new java.lang.IllegalArgumentException(
4214              "Can't get the number of an unknown enum value.");
4215        }
4216        return value;
4217      }
4218
4219      /**
4220       * @param value The numeric wire value of the corresponding enum entry.
4221       * @return The enum associated with the given numeric wire value.
4222       * @deprecated Use {@link #forNumber(int)} instead.
4223       */
4224      @java.lang.Deprecated
4225      public static Type valueOf(int value) {
4226        return forNumber(value);
4227      }
4228
4229      /**
4230       * @param value The numeric wire value of the corresponding enum entry.
4231       * @return The enum associated with the given numeric wire value.
4232       */
4233      public static Type forNumber(int value) {
4234        switch (value) {
4235          case 0: return Gompertz;
4236          case 1: return Tordeux2015;
4237          default: return null;
4238        }
4239      }
4240
4241      public static com.google.protobuf.Internal.EnumLiteMap<Type>
4242          internalGetValueMap() {
4243        return internalValueMap;
4244      }
4245      private static final com.google.protobuf.Internal.EnumLiteMap<
4246          Type> internalValueMap =
4247            new com.google.protobuf.Internal.EnumLiteMap<Type>() {
4248              public Type findValueByNumber(int number) {
4249                return Type.forNumber(number);
4250              }
4251            };
4252
4253      public final com.google.protobuf.Descriptors.EnumValueDescriptor
4254          getValueDescriptor() {
4255        return getDescriptor().getValues().get(ordinal());
4256      }
4257      public final com.google.protobuf.Descriptors.EnumDescriptor
4258          getDescriptorForType() {
4259        return getDescriptor();
4260      }
4261      public static final com.google.protobuf.Descriptors.EnumDescriptor
4262          getDescriptor() {
4263        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.getDescriptor().getEnumTypes().get(0);
4264      }
4265
4266      private static final Type[] VALUES = values();
4267
4268      public static Type valueOf(
4269          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
4270        if (desc.getType() != getDescriptor()) {
4271          throw new java.lang.IllegalArgumentException(
4272            "EnumValueDescriptor is not for this type.");
4273        }
4274        if (desc.getIndex() == -1) {
4275          return UNRECOGNIZED;
4276        }
4277        return VALUES[desc.getIndex()];
4278      }
4279
4280      private final int value;
4281
4282      private Type(int value) {
4283        this.value = value;
4284      }
4285
4286      // @@protoc_insertion_point(enum_scope:hybridsim.Model.Type)
4287    }
4288
4289    public static final int TYPE_FIELD_NUMBER = 1;
4290    private int type_;
4291    /**
4292     * <code>.hybridsim.Model.Type type = 1;</code>
4293     * @return The enum numeric value on the wire for type.
4294     */
4295    public int getTypeValue() {
4296      return type_;
4297    }
4298    /**
4299     * <code>.hybridsim.Model.Type type = 1;</code>
4300     * @return The type.
4301     */
4302    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Type getType() {
4303      @SuppressWarnings("deprecation")
4304      org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Type result = org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Type.valueOf(type_);
4305      return result == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Type.UNRECOGNIZED : result;
4306    }
4307
4308    public static final int GOMPERTZ_FIELD_NUMBER = 2;
4309    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz gompertz_;
4310    /**
4311     * <code>.hybridsim.Gompertz gompertz = 2;</code>
4312     * @return Whether the gompertz field is set.
4313     */
4314    public boolean hasGompertz() {
4315      return gompertz_ != null;
4316    }
4317    /**
4318     * <code>.hybridsim.Gompertz gompertz = 2;</code>
4319     * @return The gompertz.
4320     */
4321    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz getGompertz() {
4322      return gompertz_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz.getDefaultInstance() : gompertz_;
4323    }
4324    /**
4325     * <code>.hybridsim.Gompertz gompertz = 2;</code>
4326     */
4327    public org.matsim.contrib.hybridsim.proto.HybridSimProto.GompertzOrBuilder getGompertzOrBuilder() {
4328      return getGompertz();
4329    }
4330
4331    public static final int TORDEUX2015_FIELD_NUMBER = 3;
4332    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 tordeux2015_;
4333    /**
4334     * <code>.hybridsim.Tordeux2015 tordeux2015 = 3;</code>
4335     * @return Whether the tordeux2015 field is set.
4336     */
4337    public boolean hasTordeux2015() {
4338      return tordeux2015_ != null;
4339    }
4340    /**
4341     * <code>.hybridsim.Tordeux2015 tordeux2015 = 3;</code>
4342     * @return The tordeux2015.
4343     */
4344    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 getTordeux2015() {
4345      return tordeux2015_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015.getDefaultInstance() : tordeux2015_;
4346    }
4347    /**
4348     * <code>.hybridsim.Tordeux2015 tordeux2015 = 3;</code>
4349     */
4350    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015OrBuilder getTordeux2015OrBuilder() {
4351      return getTordeux2015();
4352    }
4353
4354    private byte memoizedIsInitialized = -1;
4355    @java.lang.Override
4356    public final boolean isInitialized() {
4357      byte isInitialized = memoizedIsInitialized;
4358      if (isInitialized == 1) return true;
4359      if (isInitialized == 0) return false;
4360
4361      memoizedIsInitialized = 1;
4362      return true;
4363    }
4364
4365    @java.lang.Override
4366    public void writeTo(com.google.protobuf.CodedOutputStream output)
4367                        throws java.io.IOException {
4368      if (type_ != org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Type.Gompertz.getNumber()) {
4369        output.writeEnum(1, type_);
4370      }
4371      if (gompertz_ != null) {
4372        output.writeMessage(2, getGompertz());
4373      }
4374      if (tordeux2015_ != null) {
4375        output.writeMessage(3, getTordeux2015());
4376      }
4377      unknownFields.writeTo(output);
4378    }
4379
4380    @java.lang.Override
4381    public int getSerializedSize() {
4382      int size = memoizedSize;
4383      if (size != -1) return size;
4384
4385      size = 0;
4386      if (type_ != org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Type.Gompertz.getNumber()) {
4387        size += com.google.protobuf.CodedOutputStream
4388          .computeEnumSize(1, type_);
4389      }
4390      if (gompertz_ != null) {
4391        size += com.google.protobuf.CodedOutputStream
4392          .computeMessageSize(2, getGompertz());
4393      }
4394      if (tordeux2015_ != null) {
4395        size += com.google.protobuf.CodedOutputStream
4396          .computeMessageSize(3, getTordeux2015());
4397      }
4398      size += unknownFields.getSerializedSize();
4399      memoizedSize = size;
4400      return size;
4401    }
4402
4403    @java.lang.Override
4404    public boolean equals(final java.lang.Object obj) {
4405      if (obj == this) {
4406       return true;
4407      }
4408      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Model)) {
4409        return super.equals(obj);
4410      }
4411      org.matsim.contrib.hybridsim.proto.HybridSimProto.Model other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Model) obj;
4412
4413      if (type_ != other.type_) return false;
4414      if (hasGompertz() != other.hasGompertz()) return false;
4415      if (hasGompertz()) {
4416        if (!getGompertz()
4417            .equals(other.getGompertz())) return false;
4418      }
4419      if (hasTordeux2015() != other.hasTordeux2015()) return false;
4420      if (hasTordeux2015()) {
4421        if (!getTordeux2015()
4422            .equals(other.getTordeux2015())) return false;
4423      }
4424      if (!unknownFields.equals(other.unknownFields)) return false;
4425      return true;
4426    }
4427
4428    @java.lang.Override
4429    public int hashCode() {
4430      if (memoizedHashCode != 0) {
4431        return memoizedHashCode;
4432      }
4433      int hash = 41;
4434      hash = (19 * hash) + getDescriptor().hashCode();
4435      hash = (37 * hash) + TYPE_FIELD_NUMBER;
4436      hash = (53 * hash) + type_;
4437      if (hasGompertz()) {
4438        hash = (37 * hash) + GOMPERTZ_FIELD_NUMBER;
4439        hash = (53 * hash) + getGompertz().hashCode();
4440      }
4441      if (hasTordeux2015()) {
4442        hash = (37 * hash) + TORDEUX2015_FIELD_NUMBER;
4443        hash = (53 * hash) + getTordeux2015().hashCode();
4444      }
4445      hash = (29 * hash) + unknownFields.hashCode();
4446      memoizedHashCode = hash;
4447      return hash;
4448    }
4449
4450    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Model parseFrom(
4451        java.nio.ByteBuffer data)
4452        throws com.google.protobuf.InvalidProtocolBufferException {
4453      return PARSER.parseFrom(data);
4454    }
4455    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Model parseFrom(
4456        java.nio.ByteBuffer data,
4457        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4458        throws com.google.protobuf.InvalidProtocolBufferException {
4459      return PARSER.parseFrom(data, extensionRegistry);
4460    }
4461    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Model parseFrom(
4462        com.google.protobuf.ByteString data)
4463        throws com.google.protobuf.InvalidProtocolBufferException {
4464      return PARSER.parseFrom(data);
4465    }
4466    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Model parseFrom(
4467        com.google.protobuf.ByteString data,
4468        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4469        throws com.google.protobuf.InvalidProtocolBufferException {
4470      return PARSER.parseFrom(data, extensionRegistry);
4471    }
4472    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Model parseFrom(byte[] data)
4473        throws com.google.protobuf.InvalidProtocolBufferException {
4474      return PARSER.parseFrom(data);
4475    }
4476    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Model parseFrom(
4477        byte[] data,
4478        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4479        throws com.google.protobuf.InvalidProtocolBufferException {
4480      return PARSER.parseFrom(data, extensionRegistry);
4481    }
4482    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Model parseFrom(java.io.InputStream input)
4483        throws java.io.IOException {
4484      return com.google.protobuf.GeneratedMessageV3
4485          .parseWithIOException(PARSER, input);
4486    }
4487    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Model parseFrom(
4488        java.io.InputStream input,
4489        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4490        throws java.io.IOException {
4491      return com.google.protobuf.GeneratedMessageV3
4492          .parseWithIOException(PARSER, input, extensionRegistry);
4493    }
4494    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Model parseDelimitedFrom(java.io.InputStream input)
4495        throws java.io.IOException {
4496      return com.google.protobuf.GeneratedMessageV3
4497          .parseDelimitedWithIOException(PARSER, input);
4498    }
4499    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Model parseDelimitedFrom(
4500        java.io.InputStream input,
4501        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4502        throws java.io.IOException {
4503      return com.google.protobuf.GeneratedMessageV3
4504          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
4505    }
4506    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Model parseFrom(
4507        com.google.protobuf.CodedInputStream input)
4508        throws java.io.IOException {
4509      return com.google.protobuf.GeneratedMessageV3
4510          .parseWithIOException(PARSER, input);
4511    }
4512    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Model parseFrom(
4513        com.google.protobuf.CodedInputStream input,
4514        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4515        throws java.io.IOException {
4516      return com.google.protobuf.GeneratedMessageV3
4517          .parseWithIOException(PARSER, input, extensionRegistry);
4518    }
4519
4520    @java.lang.Override
4521    public Builder newBuilderForType() { return newBuilder(); }
4522    public static Builder newBuilder() {
4523      return DEFAULT_INSTANCE.toBuilder();
4524    }
4525    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Model prototype) {
4526      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
4527    }
4528    @java.lang.Override
4529    public Builder toBuilder() {
4530      return this == DEFAULT_INSTANCE
4531          ? new Builder() : new Builder().mergeFrom(this);
4532    }
4533
4534    @java.lang.Override
4535    protected Builder newBuilderForType(
4536        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
4537      Builder builder = new Builder(parent);
4538      return builder;
4539    }
4540    /**
4541     * Protobuf type {@code hybridsim.Model}
4542     */
4543    public static final class Builder extends
4544        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
4545        // @@protoc_insertion_point(builder_implements:hybridsim.Model)
4546        org.matsim.contrib.hybridsim.proto.HybridSimProto.ModelOrBuilder {
4547      public static final com.google.protobuf.Descriptors.Descriptor
4548          getDescriptor() {
4549        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Model_descriptor;
4550      }
4551
4552      @java.lang.Override
4553      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
4554          internalGetFieldAccessorTable() {
4555        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Model_fieldAccessorTable
4556            .ensureFieldAccessorsInitialized(
4557                org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Builder.class);
4558      }
4559
4560      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.newBuilder()
4561      private Builder() {
4562        maybeForceBuilderInitialization();
4563      }
4564
4565      private Builder(
4566          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
4567        super(parent);
4568        maybeForceBuilderInitialization();
4569      }
4570      private void maybeForceBuilderInitialization() {
4571        if (com.google.protobuf.GeneratedMessageV3
4572                .alwaysUseFieldBuilders) {
4573        }
4574      }
4575      @java.lang.Override
4576      public Builder clear() {
4577        super.clear();
4578        type_ = 0;
4579
4580        if (gompertzBuilder_ == null) {
4581          gompertz_ = null;
4582        } else {
4583          gompertz_ = null;
4584          gompertzBuilder_ = null;
4585        }
4586        if (tordeux2015Builder_ == null) {
4587          tordeux2015_ = null;
4588        } else {
4589          tordeux2015_ = null;
4590          tordeux2015Builder_ = null;
4591        }
4592        return this;
4593      }
4594
4595      @java.lang.Override
4596      public com.google.protobuf.Descriptors.Descriptor
4597          getDescriptorForType() {
4598        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Model_descriptor;
4599      }
4600
4601      @java.lang.Override
4602      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Model getDefaultInstanceForType() {
4603        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.getDefaultInstance();
4604      }
4605
4606      @java.lang.Override
4607      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Model build() {
4608        org.matsim.contrib.hybridsim.proto.HybridSimProto.Model result = buildPartial();
4609        if (!result.isInitialized()) {
4610          throw newUninitializedMessageException(result);
4611        }
4612        return result;
4613      }
4614
4615      @java.lang.Override
4616      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Model buildPartial() {
4617        org.matsim.contrib.hybridsim.proto.HybridSimProto.Model result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Model(this);
4618        result.type_ = type_;
4619        if (gompertzBuilder_ == null) {
4620          result.gompertz_ = gompertz_;
4621        } else {
4622          result.gompertz_ = gompertzBuilder_.build();
4623        }
4624        if (tordeux2015Builder_ == null) {
4625          result.tordeux2015_ = tordeux2015_;
4626        } else {
4627          result.tordeux2015_ = tordeux2015Builder_.build();
4628        }
4629        onBuilt();
4630        return result;
4631      }
4632
4633      @java.lang.Override
4634      public Builder clone() {
4635        return super.clone();
4636      }
4637      @java.lang.Override
4638      public Builder setField(
4639          com.google.protobuf.Descriptors.FieldDescriptor field,
4640          java.lang.Object value) {
4641        return super.setField(field, value);
4642      }
4643      @java.lang.Override
4644      public Builder clearField(
4645          com.google.protobuf.Descriptors.FieldDescriptor field) {
4646        return super.clearField(field);
4647      }
4648      @java.lang.Override
4649      public Builder clearOneof(
4650          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
4651        return super.clearOneof(oneof);
4652      }
4653      @java.lang.Override
4654      public Builder setRepeatedField(
4655          com.google.protobuf.Descriptors.FieldDescriptor field,
4656          int index, java.lang.Object value) {
4657        return super.setRepeatedField(field, index, value);
4658      }
4659      @java.lang.Override
4660      public Builder addRepeatedField(
4661          com.google.protobuf.Descriptors.FieldDescriptor field,
4662          java.lang.Object value) {
4663        return super.addRepeatedField(field, value);
4664      }
4665      @java.lang.Override
4666      public Builder mergeFrom(com.google.protobuf.Message other) {
4667        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Model) {
4668          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Model)other);
4669        } else {
4670          super.mergeFrom(other);
4671          return this;
4672        }
4673      }
4674
4675      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Model other) {
4676        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.getDefaultInstance()) return this;
4677        if (other.type_ != 0) {
4678          setTypeValue(other.getTypeValue());
4679        }
4680        if (other.hasGompertz()) {
4681          mergeGompertz(other.getGompertz());
4682        }
4683        if (other.hasTordeux2015()) {
4684          mergeTordeux2015(other.getTordeux2015());
4685        }
4686        this.mergeUnknownFields(other.unknownFields);
4687        onChanged();
4688        return this;
4689      }
4690
4691      @java.lang.Override
4692      public final boolean isInitialized() {
4693        return true;
4694      }
4695
4696      @java.lang.Override
4697      public Builder mergeFrom(
4698          com.google.protobuf.CodedInputStream input,
4699          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4700          throws java.io.IOException {
4701        org.matsim.contrib.hybridsim.proto.HybridSimProto.Model parsedMessage = null;
4702        try {
4703          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
4704        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
4705          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Model) e.getUnfinishedMessage();
4706          throw e.unwrapIOException();
4707        } finally {
4708          if (parsedMessage != null) {
4709            mergeFrom(parsedMessage);
4710          }
4711        }
4712        return this;
4713      }
4714
4715      private int type_ = 0;
4716      /**
4717       * <code>.hybridsim.Model.Type type = 1;</code>
4718       * @return The enum numeric value on the wire for type.
4719       */
4720      public int getTypeValue() {
4721        return type_;
4722      }
4723      /**
4724       * <code>.hybridsim.Model.Type type = 1;</code>
4725       * @param value The enum numeric value on the wire for type to set.
4726       * @return This builder for chaining.
4727       */
4728      public Builder setTypeValue(int value) {
4729        type_ = value;
4730        onChanged();
4731        return this;
4732      }
4733      /**
4734       * <code>.hybridsim.Model.Type type = 1;</code>
4735       * @return The type.
4736       */
4737      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Type getType() {
4738        @SuppressWarnings("deprecation")
4739        org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Type result = org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Type.valueOf(type_);
4740        return result == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Type.UNRECOGNIZED : result;
4741      }
4742      /**
4743       * <code>.hybridsim.Model.Type type = 1;</code>
4744       * @param value The type to set.
4745       * @return This builder for chaining.
4746       */
4747      public Builder setType(org.matsim.contrib.hybridsim.proto.HybridSimProto.Model.Type value) {
4748        if (value == null) {
4749          throw new NullPointerException();
4750        }
4751        
4752        type_ = value.getNumber();
4753        onChanged();
4754        return this;
4755      }
4756      /**
4757       * <code>.hybridsim.Model.Type type = 1;</code>
4758       * @return This builder for chaining.
4759       */
4760      public Builder clearType() {
4761        
4762        type_ = 0;
4763        onChanged();
4764        return this;
4765      }
4766
4767      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz gompertz_;
4768      private com.google.protobuf.SingleFieldBuilderV3<
4769          org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz, org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.GompertzOrBuilder> gompertzBuilder_;
4770      /**
4771       * <code>.hybridsim.Gompertz gompertz = 2;</code>
4772       * @return Whether the gompertz field is set.
4773       */
4774      public boolean hasGompertz() {
4775        return gompertzBuilder_ != null || gompertz_ != null;
4776      }
4777      /**
4778       * <code>.hybridsim.Gompertz gompertz = 2;</code>
4779       * @return The gompertz.
4780       */
4781      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz getGompertz() {
4782        if (gompertzBuilder_ == null) {
4783          return gompertz_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz.getDefaultInstance() : gompertz_;
4784        } else {
4785          return gompertzBuilder_.getMessage();
4786        }
4787      }
4788      /**
4789       * <code>.hybridsim.Gompertz gompertz = 2;</code>
4790       */
4791      public Builder setGompertz(org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz value) {
4792        if (gompertzBuilder_ == null) {
4793          if (value == null) {
4794            throw new NullPointerException();
4795          }
4796          gompertz_ = value;
4797          onChanged();
4798        } else {
4799          gompertzBuilder_.setMessage(value);
4800        }
4801
4802        return this;
4803      }
4804      /**
4805       * <code>.hybridsim.Gompertz gompertz = 2;</code>
4806       */
4807      public Builder setGompertz(
4808          org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz.Builder builderForValue) {
4809        if (gompertzBuilder_ == null) {
4810          gompertz_ = builderForValue.build();
4811          onChanged();
4812        } else {
4813          gompertzBuilder_.setMessage(builderForValue.build());
4814        }
4815
4816        return this;
4817      }
4818      /**
4819       * <code>.hybridsim.Gompertz gompertz = 2;</code>
4820       */
4821      public Builder mergeGompertz(org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz value) {
4822        if (gompertzBuilder_ == null) {
4823          if (gompertz_ != null) {
4824            gompertz_ =
4825              org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz.newBuilder(gompertz_).mergeFrom(value).buildPartial();
4826          } else {
4827            gompertz_ = value;
4828          }
4829          onChanged();
4830        } else {
4831          gompertzBuilder_.mergeFrom(value);
4832        }
4833
4834        return this;
4835      }
4836      /**
4837       * <code>.hybridsim.Gompertz gompertz = 2;</code>
4838       */
4839      public Builder clearGompertz() {
4840        if (gompertzBuilder_ == null) {
4841          gompertz_ = null;
4842          onChanged();
4843        } else {
4844          gompertz_ = null;
4845          gompertzBuilder_ = null;
4846        }
4847
4848        return this;
4849      }
4850      /**
4851       * <code>.hybridsim.Gompertz gompertz = 2;</code>
4852       */
4853      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz.Builder getGompertzBuilder() {
4854        
4855        onChanged();
4856        return getGompertzFieldBuilder().getBuilder();
4857      }
4858      /**
4859       * <code>.hybridsim.Gompertz gompertz = 2;</code>
4860       */
4861      public org.matsim.contrib.hybridsim.proto.HybridSimProto.GompertzOrBuilder getGompertzOrBuilder() {
4862        if (gompertzBuilder_ != null) {
4863          return gompertzBuilder_.getMessageOrBuilder();
4864        } else {
4865          return gompertz_ == null ?
4866              org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz.getDefaultInstance() : gompertz_;
4867        }
4868      }
4869      /**
4870       * <code>.hybridsim.Gompertz gompertz = 2;</code>
4871       */
4872      private com.google.protobuf.SingleFieldBuilderV3<
4873          org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz, org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.GompertzOrBuilder> 
4874          getGompertzFieldBuilder() {
4875        if (gompertzBuilder_ == null) {
4876          gompertzBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
4877              org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz, org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.GompertzOrBuilder>(
4878                  getGompertz(),
4879                  getParentForChildren(),
4880                  isClean());
4881          gompertz_ = null;
4882        }
4883        return gompertzBuilder_;
4884      }
4885
4886      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 tordeux2015_;
4887      private com.google.protobuf.SingleFieldBuilderV3<
4888          org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015OrBuilder> tordeux2015Builder_;
4889      /**
4890       * <code>.hybridsim.Tordeux2015 tordeux2015 = 3;</code>
4891       * @return Whether the tordeux2015 field is set.
4892       */
4893      public boolean hasTordeux2015() {
4894        return tordeux2015Builder_ != null || tordeux2015_ != null;
4895      }
4896      /**
4897       * <code>.hybridsim.Tordeux2015 tordeux2015 = 3;</code>
4898       * @return The tordeux2015.
4899       */
4900      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 getTordeux2015() {
4901        if (tordeux2015Builder_ == null) {
4902          return tordeux2015_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015.getDefaultInstance() : tordeux2015_;
4903        } else {
4904          return tordeux2015Builder_.getMessage();
4905        }
4906      }
4907      /**
4908       * <code>.hybridsim.Tordeux2015 tordeux2015 = 3;</code>
4909       */
4910      public Builder setTordeux2015(org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 value) {
4911        if (tordeux2015Builder_ == null) {
4912          if (value == null) {
4913            throw new NullPointerException();
4914          }
4915          tordeux2015_ = value;
4916          onChanged();
4917        } else {
4918          tordeux2015Builder_.setMessage(value);
4919        }
4920
4921        return this;
4922      }
4923      /**
4924       * <code>.hybridsim.Tordeux2015 tordeux2015 = 3;</code>
4925       */
4926      public Builder setTordeux2015(
4927          org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015.Builder builderForValue) {
4928        if (tordeux2015Builder_ == null) {
4929          tordeux2015_ = builderForValue.build();
4930          onChanged();
4931        } else {
4932          tordeux2015Builder_.setMessage(builderForValue.build());
4933        }
4934
4935        return this;
4936      }
4937      /**
4938       * <code>.hybridsim.Tordeux2015 tordeux2015 = 3;</code>
4939       */
4940      public Builder mergeTordeux2015(org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 value) {
4941        if (tordeux2015Builder_ == null) {
4942          if (tordeux2015_ != null) {
4943            tordeux2015_ =
4944              org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015.newBuilder(tordeux2015_).mergeFrom(value).buildPartial();
4945          } else {
4946            tordeux2015_ = value;
4947          }
4948          onChanged();
4949        } else {
4950          tordeux2015Builder_.mergeFrom(value);
4951        }
4952
4953        return this;
4954      }
4955      /**
4956       * <code>.hybridsim.Tordeux2015 tordeux2015 = 3;</code>
4957       */
4958      public Builder clearTordeux2015() {
4959        if (tordeux2015Builder_ == null) {
4960          tordeux2015_ = null;
4961          onChanged();
4962        } else {
4963          tordeux2015_ = null;
4964          tordeux2015Builder_ = null;
4965        }
4966
4967        return this;
4968      }
4969      /**
4970       * <code>.hybridsim.Tordeux2015 tordeux2015 = 3;</code>
4971       */
4972      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015.Builder getTordeux2015Builder() {
4973        
4974        onChanged();
4975        return getTordeux2015FieldBuilder().getBuilder();
4976      }
4977      /**
4978       * <code>.hybridsim.Tordeux2015 tordeux2015 = 3;</code>
4979       */
4980      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015OrBuilder getTordeux2015OrBuilder() {
4981        if (tordeux2015Builder_ != null) {
4982          return tordeux2015Builder_.getMessageOrBuilder();
4983        } else {
4984          return tordeux2015_ == null ?
4985              org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015.getDefaultInstance() : tordeux2015_;
4986        }
4987      }
4988      /**
4989       * <code>.hybridsim.Tordeux2015 tordeux2015 = 3;</code>
4990       */
4991      private com.google.protobuf.SingleFieldBuilderV3<
4992          org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015OrBuilder> 
4993          getTordeux2015FieldBuilder() {
4994        if (tordeux2015Builder_ == null) {
4995          tordeux2015Builder_ = new com.google.protobuf.SingleFieldBuilderV3<
4996              org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015OrBuilder>(
4997                  getTordeux2015(),
4998                  getParentForChildren(),
4999                  isClean());
5000          tordeux2015_ = null;
5001        }
5002        return tordeux2015Builder_;
5003      }
5004      @java.lang.Override
5005      public final Builder setUnknownFields(
5006          final com.google.protobuf.UnknownFieldSet unknownFields) {
5007        return super.setUnknownFields(unknownFields);
5008      }
5009
5010      @java.lang.Override
5011      public final Builder mergeUnknownFields(
5012          final com.google.protobuf.UnknownFieldSet unknownFields) {
5013        return super.mergeUnknownFields(unknownFields);
5014      }
5015
5016
5017      // @@protoc_insertion_point(builder_scope:hybridsim.Model)
5018    }
5019
5020    // @@protoc_insertion_point(class_scope:hybridsim.Model)
5021    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Model DEFAULT_INSTANCE;
5022    static {
5023      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Model();
5024    }
5025
5026    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Model getDefaultInstance() {
5027      return DEFAULT_INSTANCE;
5028    }
5029
5030    private static final com.google.protobuf.Parser<Model>
5031        PARSER = new com.google.protobuf.AbstractParser<Model>() {
5032      @java.lang.Override
5033      public Model parsePartialFrom(
5034          com.google.protobuf.CodedInputStream input,
5035          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5036          throws com.google.protobuf.InvalidProtocolBufferException {
5037        return new Model(input, extensionRegistry);
5038      }
5039    };
5040
5041    public static com.google.protobuf.Parser<Model> parser() {
5042      return PARSER;
5043    }
5044
5045    @java.lang.Override
5046    public com.google.protobuf.Parser<Model> getParserForType() {
5047      return PARSER;
5048    }
5049
5050    @java.lang.Override
5051    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Model getDefaultInstanceForType() {
5052      return DEFAULT_INSTANCE;
5053    }
5054
5055  }
5056
5057  public interface GompertzOrBuilder extends
5058      // @@protoc_insertion_point(interface_extends:hybridsim.Gompertz)
5059      com.google.protobuf.MessageOrBuilder {
5060
5061    /**
5062     * <code>string solver = 1;</code>
5063     * @return The solver.
5064     */
5065    java.lang.String getSolver();
5066    /**
5067     * <code>string solver = 1;</code>
5068     * @return The bytes for solver.
5069     */
5070    com.google.protobuf.ByteString
5071        getSolverBytes();
5072
5073    /**
5074     * <code>double stepsize = 2;</code>
5075     * @return The stepsize.
5076     */
5077    double getStepsize();
5078
5079    /**
5080     * <code>int32 exit_crossing_strategy = 3;</code>
5081     * @return The exitCrossingStrategy.
5082     */
5083    int getExitCrossingStrategy();
5084
5085    /**
5086     * <code>bool linked_cells_enabled = 4;</code>
5087     * @return The linkedCellsEnabled.
5088     */
5089    boolean getLinkedCellsEnabled();
5090
5091    /**
5092     * <code>double cell_size = 5;</code>
5093     * @return The cellSize.
5094     */
5095    double getCellSize();
5096
5097    /**
5098     * <code>.hybridsim.Force force_ped = 6;</code>
5099     * @return Whether the forcePed field is set.
5100     */
5101    boolean hasForcePed();
5102    /**
5103     * <code>.hybridsim.Force force_ped = 6;</code>
5104     * @return The forcePed.
5105     */
5106    org.matsim.contrib.hybridsim.proto.HybridSimProto.Force getForcePed();
5107    /**
5108     * <code>.hybridsim.Force force_ped = 6;</code>
5109     */
5110    org.matsim.contrib.hybridsim.proto.HybridSimProto.ForceOrBuilder getForcePedOrBuilder();
5111
5112    /**
5113     * <code>.hybridsim.Force force_wall = 7;</code>
5114     * @return Whether the forceWall field is set.
5115     */
5116    boolean hasForceWall();
5117    /**
5118     * <code>.hybridsim.Force force_wall = 7;</code>
5119     * @return The forceWall.
5120     */
5121    org.matsim.contrib.hybridsim.proto.HybridSimProto.Force getForceWall();
5122    /**
5123     * <code>.hybridsim.Force force_wall = 7;</code>
5124     */
5125    org.matsim.contrib.hybridsim.proto.HybridSimProto.ForceOrBuilder getForceWallOrBuilder();
5126
5127    /**
5128     * <code>.hybridsim.AgentParams agent_params = 8;</code>
5129     * @return Whether the agentParams field is set.
5130     */
5131    boolean hasAgentParams();
5132    /**
5133     * <code>.hybridsim.AgentParams agent_params = 8;</code>
5134     * @return The agentParams.
5135     */
5136    org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams getAgentParams();
5137    /**
5138     * <code>.hybridsim.AgentParams agent_params = 8;</code>
5139     */
5140    org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParamsOrBuilder getAgentParamsOrBuilder();
5141  }
5142  /**
5143   * Protobuf type {@code hybridsim.Gompertz}
5144   */
5145  public  static final class Gompertz extends
5146      com.google.protobuf.GeneratedMessageV3 implements
5147      // @@protoc_insertion_point(message_implements:hybridsim.Gompertz)
5148      GompertzOrBuilder {
5149  private static final long serialVersionUID = 0L;
5150    // Use Gompertz.newBuilder() to construct.
5151    private Gompertz(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
5152      super(builder);
5153    }
5154    private Gompertz() {
5155      solver_ = "";
5156    }
5157
5158    @java.lang.Override
5159    @SuppressWarnings({"unused"})
5160    protected java.lang.Object newInstance(
5161        UnusedPrivateParameter unused) {
5162      return new Gompertz();
5163    }
5164
5165    @java.lang.Override
5166    public final com.google.protobuf.UnknownFieldSet
5167    getUnknownFields() {
5168      return this.unknownFields;
5169    }
5170    private Gompertz(
5171        com.google.protobuf.CodedInputStream input,
5172        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5173        throws com.google.protobuf.InvalidProtocolBufferException {
5174      this();
5175      if (extensionRegistry == null) {
5176        throw new java.lang.NullPointerException();
5177      }
5178      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
5179          com.google.protobuf.UnknownFieldSet.newBuilder();
5180      try {
5181        boolean done = false;
5182        while (!done) {
5183          int tag = input.readTag();
5184          switch (tag) {
5185            case 0:
5186              done = true;
5187              break;
5188            case 10: {
5189              java.lang.String s = input.readStringRequireUtf8();
5190
5191              solver_ = s;
5192              break;
5193            }
5194            case 17: {
5195
5196              stepsize_ = input.readDouble();
5197              break;
5198            }
5199            case 24: {
5200
5201              exitCrossingStrategy_ = input.readInt32();
5202              break;
5203            }
5204            case 32: {
5205
5206              linkedCellsEnabled_ = input.readBool();
5207              break;
5208            }
5209            case 41: {
5210
5211              cellSize_ = input.readDouble();
5212              break;
5213            }
5214            case 50: {
5215              org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.Builder subBuilder = null;
5216              if (forcePed_ != null) {
5217                subBuilder = forcePed_.toBuilder();
5218              }
5219              forcePed_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.parser(), extensionRegistry);
5220              if (subBuilder != null) {
5221                subBuilder.mergeFrom(forcePed_);
5222                forcePed_ = subBuilder.buildPartial();
5223              }
5224
5225              break;
5226            }
5227            case 58: {
5228              org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.Builder subBuilder = null;
5229              if (forceWall_ != null) {
5230                subBuilder = forceWall_.toBuilder();
5231              }
5232              forceWall_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.parser(), extensionRegistry);
5233              if (subBuilder != null) {
5234                subBuilder.mergeFrom(forceWall_);
5235                forceWall_ = subBuilder.buildPartial();
5236              }
5237
5238              break;
5239            }
5240            case 66: {
5241              org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.Builder subBuilder = null;
5242              if (agentParams_ != null) {
5243                subBuilder = agentParams_.toBuilder();
5244              }
5245              agentParams_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.parser(), extensionRegistry);
5246              if (subBuilder != null) {
5247                subBuilder.mergeFrom(agentParams_);
5248                agentParams_ = subBuilder.buildPartial();
5249              }
5250
5251              break;
5252            }
5253            default: {
5254              if (!parseUnknownField(
5255                  input, unknownFields, extensionRegistry, tag)) {
5256                done = true;
5257              }
5258              break;
5259            }
5260          }
5261        }
5262      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
5263        throw e.setUnfinishedMessage(this);
5264      } catch (java.io.IOException e) {
5265        throw new com.google.protobuf.InvalidProtocolBufferException(
5266            e).setUnfinishedMessage(this);
5267      } finally {
5268        this.unknownFields = unknownFields.build();
5269        makeExtensionsImmutable();
5270      }
5271    }
5272    public static final com.google.protobuf.Descriptors.Descriptor
5273        getDescriptor() {
5274      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Gompertz_descriptor;
5275    }
5276
5277    @java.lang.Override
5278    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
5279        internalGetFieldAccessorTable() {
5280      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Gompertz_fieldAccessorTable
5281          .ensureFieldAccessorsInitialized(
5282              org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz.Builder.class);
5283    }
5284
5285    public static final int SOLVER_FIELD_NUMBER = 1;
5286    private volatile java.lang.Object solver_;
5287    /**
5288     * <code>string solver = 1;</code>
5289     * @return The solver.
5290     */
5291    public java.lang.String getSolver() {
5292      java.lang.Object ref = solver_;
5293      if (ref instanceof java.lang.String) {
5294        return (java.lang.String) ref;
5295      } else {
5296        com.google.protobuf.ByteString bs = 
5297            (com.google.protobuf.ByteString) ref;
5298        java.lang.String s = bs.toStringUtf8();
5299        solver_ = s;
5300        return s;
5301      }
5302    }
5303    /**
5304     * <code>string solver = 1;</code>
5305     * @return The bytes for solver.
5306     */
5307    public com.google.protobuf.ByteString
5308        getSolverBytes() {
5309      java.lang.Object ref = solver_;
5310      if (ref instanceof java.lang.String) {
5311        com.google.protobuf.ByteString b = 
5312            com.google.protobuf.ByteString.copyFromUtf8(
5313                (java.lang.String) ref);
5314        solver_ = b;
5315        return b;
5316      } else {
5317        return (com.google.protobuf.ByteString) ref;
5318      }
5319    }
5320
5321    public static final int STEPSIZE_FIELD_NUMBER = 2;
5322    private double stepsize_;
5323    /**
5324     * <code>double stepsize = 2;</code>
5325     * @return The stepsize.
5326     */
5327    public double getStepsize() {
5328      return stepsize_;
5329    }
5330
5331    public static final int EXIT_CROSSING_STRATEGY_FIELD_NUMBER = 3;
5332    private int exitCrossingStrategy_;
5333    /**
5334     * <code>int32 exit_crossing_strategy = 3;</code>
5335     * @return The exitCrossingStrategy.
5336     */
5337    public int getExitCrossingStrategy() {
5338      return exitCrossingStrategy_;
5339    }
5340
5341    public static final int LINKED_CELLS_ENABLED_FIELD_NUMBER = 4;
5342    private boolean linkedCellsEnabled_;
5343    /**
5344     * <code>bool linked_cells_enabled = 4;</code>
5345     * @return The linkedCellsEnabled.
5346     */
5347    public boolean getLinkedCellsEnabled() {
5348      return linkedCellsEnabled_;
5349    }
5350
5351    public static final int CELL_SIZE_FIELD_NUMBER = 5;
5352    private double cellSize_;
5353    /**
5354     * <code>double cell_size = 5;</code>
5355     * @return The cellSize.
5356     */
5357    public double getCellSize() {
5358      return cellSize_;
5359    }
5360
5361    public static final int FORCE_PED_FIELD_NUMBER = 6;
5362    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Force forcePed_;
5363    /**
5364     * <code>.hybridsim.Force force_ped = 6;</code>
5365     * @return Whether the forcePed field is set.
5366     */
5367    public boolean hasForcePed() {
5368      return forcePed_ != null;
5369    }
5370    /**
5371     * <code>.hybridsim.Force force_ped = 6;</code>
5372     * @return The forcePed.
5373     */
5374    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Force getForcePed() {
5375      return forcePed_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.getDefaultInstance() : forcePed_;
5376    }
5377    /**
5378     * <code>.hybridsim.Force force_ped = 6;</code>
5379     */
5380    public org.matsim.contrib.hybridsim.proto.HybridSimProto.ForceOrBuilder getForcePedOrBuilder() {
5381      return getForcePed();
5382    }
5383
5384    public static final int FORCE_WALL_FIELD_NUMBER = 7;
5385    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Force forceWall_;
5386    /**
5387     * <code>.hybridsim.Force force_wall = 7;</code>
5388     * @return Whether the forceWall field is set.
5389     */
5390    public boolean hasForceWall() {
5391      return forceWall_ != null;
5392    }
5393    /**
5394     * <code>.hybridsim.Force force_wall = 7;</code>
5395     * @return The forceWall.
5396     */
5397    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Force getForceWall() {
5398      return forceWall_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.getDefaultInstance() : forceWall_;
5399    }
5400    /**
5401     * <code>.hybridsim.Force force_wall = 7;</code>
5402     */
5403    public org.matsim.contrib.hybridsim.proto.HybridSimProto.ForceOrBuilder getForceWallOrBuilder() {
5404      return getForceWall();
5405    }
5406
5407    public static final int AGENT_PARAMS_FIELD_NUMBER = 8;
5408    private org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams agentParams_;
5409    /**
5410     * <code>.hybridsim.AgentParams agent_params = 8;</code>
5411     * @return Whether the agentParams field is set.
5412     */
5413    public boolean hasAgentParams() {
5414      return agentParams_ != null;
5415    }
5416    /**
5417     * <code>.hybridsim.AgentParams agent_params = 8;</code>
5418     * @return The agentParams.
5419     */
5420    public org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams getAgentParams() {
5421      return agentParams_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.getDefaultInstance() : agentParams_;
5422    }
5423    /**
5424     * <code>.hybridsim.AgentParams agent_params = 8;</code>
5425     */
5426    public org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParamsOrBuilder getAgentParamsOrBuilder() {
5427      return getAgentParams();
5428    }
5429
5430    private byte memoizedIsInitialized = -1;
5431    @java.lang.Override
5432    public final boolean isInitialized() {
5433      byte isInitialized = memoizedIsInitialized;
5434      if (isInitialized == 1) return true;
5435      if (isInitialized == 0) return false;
5436
5437      memoizedIsInitialized = 1;
5438      return true;
5439    }
5440
5441    @java.lang.Override
5442    public void writeTo(com.google.protobuf.CodedOutputStream output)
5443                        throws java.io.IOException {
5444      if (!getSolverBytes().isEmpty()) {
5445        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, solver_);
5446      }
5447      if (stepsize_ != 0D) {
5448        output.writeDouble(2, stepsize_);
5449      }
5450      if (exitCrossingStrategy_ != 0) {
5451        output.writeInt32(3, exitCrossingStrategy_);
5452      }
5453      if (linkedCellsEnabled_ != false) {
5454        output.writeBool(4, linkedCellsEnabled_);
5455      }
5456      if (cellSize_ != 0D) {
5457        output.writeDouble(5, cellSize_);
5458      }
5459      if (forcePed_ != null) {
5460        output.writeMessage(6, getForcePed());
5461      }
5462      if (forceWall_ != null) {
5463        output.writeMessage(7, getForceWall());
5464      }
5465      if (agentParams_ != null) {
5466        output.writeMessage(8, getAgentParams());
5467      }
5468      unknownFields.writeTo(output);
5469    }
5470
5471    @java.lang.Override
5472    public int getSerializedSize() {
5473      int size = memoizedSize;
5474      if (size != -1) return size;
5475
5476      size = 0;
5477      if (!getSolverBytes().isEmpty()) {
5478        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, solver_);
5479      }
5480      if (stepsize_ != 0D) {
5481        size += com.google.protobuf.CodedOutputStream
5482          .computeDoubleSize(2, stepsize_);
5483      }
5484      if (exitCrossingStrategy_ != 0) {
5485        size += com.google.protobuf.CodedOutputStream
5486          .computeInt32Size(3, exitCrossingStrategy_);
5487      }
5488      if (linkedCellsEnabled_ != false) {
5489        size += com.google.protobuf.CodedOutputStream
5490          .computeBoolSize(4, linkedCellsEnabled_);
5491      }
5492      if (cellSize_ != 0D) {
5493        size += com.google.protobuf.CodedOutputStream
5494          .computeDoubleSize(5, cellSize_);
5495      }
5496      if (forcePed_ != null) {
5497        size += com.google.protobuf.CodedOutputStream
5498          .computeMessageSize(6, getForcePed());
5499      }
5500      if (forceWall_ != null) {
5501        size += com.google.protobuf.CodedOutputStream
5502          .computeMessageSize(7, getForceWall());
5503      }
5504      if (agentParams_ != null) {
5505        size += com.google.protobuf.CodedOutputStream
5506          .computeMessageSize(8, getAgentParams());
5507      }
5508      size += unknownFields.getSerializedSize();
5509      memoizedSize = size;
5510      return size;
5511    }
5512
5513    @java.lang.Override
5514    public boolean equals(final java.lang.Object obj) {
5515      if (obj == this) {
5516       return true;
5517      }
5518      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz)) {
5519        return super.equals(obj);
5520      }
5521      org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz) obj;
5522
5523      if (!getSolver()
5524          .equals(other.getSolver())) return false;
5525      if (java.lang.Double.doubleToLongBits(getStepsize())
5526          != java.lang.Double.doubleToLongBits(
5527              other.getStepsize())) return false;
5528      if (getExitCrossingStrategy()
5529          != other.getExitCrossingStrategy()) return false;
5530      if (getLinkedCellsEnabled()
5531          != other.getLinkedCellsEnabled()) return false;
5532      if (java.lang.Double.doubleToLongBits(getCellSize())
5533          != java.lang.Double.doubleToLongBits(
5534              other.getCellSize())) return false;
5535      if (hasForcePed() != other.hasForcePed()) return false;
5536      if (hasForcePed()) {
5537        if (!getForcePed()
5538            .equals(other.getForcePed())) return false;
5539      }
5540      if (hasForceWall() != other.hasForceWall()) return false;
5541      if (hasForceWall()) {
5542        if (!getForceWall()
5543            .equals(other.getForceWall())) return false;
5544      }
5545      if (hasAgentParams() != other.hasAgentParams()) return false;
5546      if (hasAgentParams()) {
5547        if (!getAgentParams()
5548            .equals(other.getAgentParams())) return false;
5549      }
5550      if (!unknownFields.equals(other.unknownFields)) return false;
5551      return true;
5552    }
5553
5554    @java.lang.Override
5555    public int hashCode() {
5556      if (memoizedHashCode != 0) {
5557        return memoizedHashCode;
5558      }
5559      int hash = 41;
5560      hash = (19 * hash) + getDescriptor().hashCode();
5561      hash = (37 * hash) + SOLVER_FIELD_NUMBER;
5562      hash = (53 * hash) + getSolver().hashCode();
5563      hash = (37 * hash) + STEPSIZE_FIELD_NUMBER;
5564      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
5565          java.lang.Double.doubleToLongBits(getStepsize()));
5566      hash = (37 * hash) + EXIT_CROSSING_STRATEGY_FIELD_NUMBER;
5567      hash = (53 * hash) + getExitCrossingStrategy();
5568      hash = (37 * hash) + LINKED_CELLS_ENABLED_FIELD_NUMBER;
5569      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
5570          getLinkedCellsEnabled());
5571      hash = (37 * hash) + CELL_SIZE_FIELD_NUMBER;
5572      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
5573          java.lang.Double.doubleToLongBits(getCellSize()));
5574      if (hasForcePed()) {
5575        hash = (37 * hash) + FORCE_PED_FIELD_NUMBER;
5576        hash = (53 * hash) + getForcePed().hashCode();
5577      }
5578      if (hasForceWall()) {
5579        hash = (37 * hash) + FORCE_WALL_FIELD_NUMBER;
5580        hash = (53 * hash) + getForceWall().hashCode();
5581      }
5582      if (hasAgentParams()) {
5583        hash = (37 * hash) + AGENT_PARAMS_FIELD_NUMBER;
5584        hash = (53 * hash) + getAgentParams().hashCode();
5585      }
5586      hash = (29 * hash) + unknownFields.hashCode();
5587      memoizedHashCode = hash;
5588      return hash;
5589    }
5590
5591    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz parseFrom(
5592        java.nio.ByteBuffer data)
5593        throws com.google.protobuf.InvalidProtocolBufferException {
5594      return PARSER.parseFrom(data);
5595    }
5596    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz parseFrom(
5597        java.nio.ByteBuffer data,
5598        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5599        throws com.google.protobuf.InvalidProtocolBufferException {
5600      return PARSER.parseFrom(data, extensionRegistry);
5601    }
5602    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz parseFrom(
5603        com.google.protobuf.ByteString data)
5604        throws com.google.protobuf.InvalidProtocolBufferException {
5605      return PARSER.parseFrom(data);
5606    }
5607    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz parseFrom(
5608        com.google.protobuf.ByteString data,
5609        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5610        throws com.google.protobuf.InvalidProtocolBufferException {
5611      return PARSER.parseFrom(data, extensionRegistry);
5612    }
5613    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz parseFrom(byte[] data)
5614        throws com.google.protobuf.InvalidProtocolBufferException {
5615      return PARSER.parseFrom(data);
5616    }
5617    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz parseFrom(
5618        byte[] data,
5619        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5620        throws com.google.protobuf.InvalidProtocolBufferException {
5621      return PARSER.parseFrom(data, extensionRegistry);
5622    }
5623    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz parseFrom(java.io.InputStream input)
5624        throws java.io.IOException {
5625      return com.google.protobuf.GeneratedMessageV3
5626          .parseWithIOException(PARSER, input);
5627    }
5628    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz parseFrom(
5629        java.io.InputStream input,
5630        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5631        throws java.io.IOException {
5632      return com.google.protobuf.GeneratedMessageV3
5633          .parseWithIOException(PARSER, input, extensionRegistry);
5634    }
5635    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz parseDelimitedFrom(java.io.InputStream input)
5636        throws java.io.IOException {
5637      return com.google.protobuf.GeneratedMessageV3
5638          .parseDelimitedWithIOException(PARSER, input);
5639    }
5640    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz parseDelimitedFrom(
5641        java.io.InputStream input,
5642        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5643        throws java.io.IOException {
5644      return com.google.protobuf.GeneratedMessageV3
5645          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
5646    }
5647    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz parseFrom(
5648        com.google.protobuf.CodedInputStream input)
5649        throws java.io.IOException {
5650      return com.google.protobuf.GeneratedMessageV3
5651          .parseWithIOException(PARSER, input);
5652    }
5653    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz parseFrom(
5654        com.google.protobuf.CodedInputStream input,
5655        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5656        throws java.io.IOException {
5657      return com.google.protobuf.GeneratedMessageV3
5658          .parseWithIOException(PARSER, input, extensionRegistry);
5659    }
5660
5661    @java.lang.Override
5662    public Builder newBuilderForType() { return newBuilder(); }
5663    public static Builder newBuilder() {
5664      return DEFAULT_INSTANCE.toBuilder();
5665    }
5666    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz prototype) {
5667      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
5668    }
5669    @java.lang.Override
5670    public Builder toBuilder() {
5671      return this == DEFAULT_INSTANCE
5672          ? new Builder() : new Builder().mergeFrom(this);
5673    }
5674
5675    @java.lang.Override
5676    protected Builder newBuilderForType(
5677        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
5678      Builder builder = new Builder(parent);
5679      return builder;
5680    }
5681    /**
5682     * Protobuf type {@code hybridsim.Gompertz}
5683     */
5684    public static final class Builder extends
5685        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
5686        // @@protoc_insertion_point(builder_implements:hybridsim.Gompertz)
5687        org.matsim.contrib.hybridsim.proto.HybridSimProto.GompertzOrBuilder {
5688      public static final com.google.protobuf.Descriptors.Descriptor
5689          getDescriptor() {
5690        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Gompertz_descriptor;
5691      }
5692
5693      @java.lang.Override
5694      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
5695          internalGetFieldAccessorTable() {
5696        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Gompertz_fieldAccessorTable
5697            .ensureFieldAccessorsInitialized(
5698                org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz.Builder.class);
5699      }
5700
5701      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz.newBuilder()
5702      private Builder() {
5703        maybeForceBuilderInitialization();
5704      }
5705
5706      private Builder(
5707          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
5708        super(parent);
5709        maybeForceBuilderInitialization();
5710      }
5711      private void maybeForceBuilderInitialization() {
5712        if (com.google.protobuf.GeneratedMessageV3
5713                .alwaysUseFieldBuilders) {
5714        }
5715      }
5716      @java.lang.Override
5717      public Builder clear() {
5718        super.clear();
5719        solver_ = "";
5720
5721        stepsize_ = 0D;
5722
5723        exitCrossingStrategy_ = 0;
5724
5725        linkedCellsEnabled_ = false;
5726
5727        cellSize_ = 0D;
5728
5729        if (forcePedBuilder_ == null) {
5730          forcePed_ = null;
5731        } else {
5732          forcePed_ = null;
5733          forcePedBuilder_ = null;
5734        }
5735        if (forceWallBuilder_ == null) {
5736          forceWall_ = null;
5737        } else {
5738          forceWall_ = null;
5739          forceWallBuilder_ = null;
5740        }
5741        if (agentParamsBuilder_ == null) {
5742          agentParams_ = null;
5743        } else {
5744          agentParams_ = null;
5745          agentParamsBuilder_ = null;
5746        }
5747        return this;
5748      }
5749
5750      @java.lang.Override
5751      public com.google.protobuf.Descriptors.Descriptor
5752          getDescriptorForType() {
5753        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Gompertz_descriptor;
5754      }
5755
5756      @java.lang.Override
5757      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz getDefaultInstanceForType() {
5758        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz.getDefaultInstance();
5759      }
5760
5761      @java.lang.Override
5762      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz build() {
5763        org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz result = buildPartial();
5764        if (!result.isInitialized()) {
5765          throw newUninitializedMessageException(result);
5766        }
5767        return result;
5768      }
5769
5770      @java.lang.Override
5771      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz buildPartial() {
5772        org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz(this);
5773        result.solver_ = solver_;
5774        result.stepsize_ = stepsize_;
5775        result.exitCrossingStrategy_ = exitCrossingStrategy_;
5776        result.linkedCellsEnabled_ = linkedCellsEnabled_;
5777        result.cellSize_ = cellSize_;
5778        if (forcePedBuilder_ == null) {
5779          result.forcePed_ = forcePed_;
5780        } else {
5781          result.forcePed_ = forcePedBuilder_.build();
5782        }
5783        if (forceWallBuilder_ == null) {
5784          result.forceWall_ = forceWall_;
5785        } else {
5786          result.forceWall_ = forceWallBuilder_.build();
5787        }
5788        if (agentParamsBuilder_ == null) {
5789          result.agentParams_ = agentParams_;
5790        } else {
5791          result.agentParams_ = agentParamsBuilder_.build();
5792        }
5793        onBuilt();
5794        return result;
5795      }
5796
5797      @java.lang.Override
5798      public Builder clone() {
5799        return super.clone();
5800      }
5801      @java.lang.Override
5802      public Builder setField(
5803          com.google.protobuf.Descriptors.FieldDescriptor field,
5804          java.lang.Object value) {
5805        return super.setField(field, value);
5806      }
5807      @java.lang.Override
5808      public Builder clearField(
5809          com.google.protobuf.Descriptors.FieldDescriptor field) {
5810        return super.clearField(field);
5811      }
5812      @java.lang.Override
5813      public Builder clearOneof(
5814          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
5815        return super.clearOneof(oneof);
5816      }
5817      @java.lang.Override
5818      public Builder setRepeatedField(
5819          com.google.protobuf.Descriptors.FieldDescriptor field,
5820          int index, java.lang.Object value) {
5821        return super.setRepeatedField(field, index, value);
5822      }
5823      @java.lang.Override
5824      public Builder addRepeatedField(
5825          com.google.protobuf.Descriptors.FieldDescriptor field,
5826          java.lang.Object value) {
5827        return super.addRepeatedField(field, value);
5828      }
5829      @java.lang.Override
5830      public Builder mergeFrom(com.google.protobuf.Message other) {
5831        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz) {
5832          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz)other);
5833        } else {
5834          super.mergeFrom(other);
5835          return this;
5836        }
5837      }
5838
5839      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz other) {
5840        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz.getDefaultInstance()) return this;
5841        if (!other.getSolver().isEmpty()) {
5842          solver_ = other.solver_;
5843          onChanged();
5844        }
5845        if (other.getStepsize() != 0D) {
5846          setStepsize(other.getStepsize());
5847        }
5848        if (other.getExitCrossingStrategy() != 0) {
5849          setExitCrossingStrategy(other.getExitCrossingStrategy());
5850        }
5851        if (other.getLinkedCellsEnabled() != false) {
5852          setLinkedCellsEnabled(other.getLinkedCellsEnabled());
5853        }
5854        if (other.getCellSize() != 0D) {
5855          setCellSize(other.getCellSize());
5856        }
5857        if (other.hasForcePed()) {
5858          mergeForcePed(other.getForcePed());
5859        }
5860        if (other.hasForceWall()) {
5861          mergeForceWall(other.getForceWall());
5862        }
5863        if (other.hasAgentParams()) {
5864          mergeAgentParams(other.getAgentParams());
5865        }
5866        this.mergeUnknownFields(other.unknownFields);
5867        onChanged();
5868        return this;
5869      }
5870
5871      @java.lang.Override
5872      public final boolean isInitialized() {
5873        return true;
5874      }
5875
5876      @java.lang.Override
5877      public Builder mergeFrom(
5878          com.google.protobuf.CodedInputStream input,
5879          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5880          throws java.io.IOException {
5881        org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz parsedMessage = null;
5882        try {
5883          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
5884        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
5885          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz) e.getUnfinishedMessage();
5886          throw e.unwrapIOException();
5887        } finally {
5888          if (parsedMessage != null) {
5889            mergeFrom(parsedMessage);
5890          }
5891        }
5892        return this;
5893      }
5894
5895      private java.lang.Object solver_ = "";
5896      /**
5897       * <code>string solver = 1;</code>
5898       * @return The solver.
5899       */
5900      public java.lang.String getSolver() {
5901        java.lang.Object ref = solver_;
5902        if (!(ref instanceof java.lang.String)) {
5903          com.google.protobuf.ByteString bs =
5904              (com.google.protobuf.ByteString) ref;
5905          java.lang.String s = bs.toStringUtf8();
5906          solver_ = s;
5907          return s;
5908        } else {
5909          return (java.lang.String) ref;
5910        }
5911      }
5912      /**
5913       * <code>string solver = 1;</code>
5914       * @return The bytes for solver.
5915       */
5916      public com.google.protobuf.ByteString
5917          getSolverBytes() {
5918        java.lang.Object ref = solver_;
5919        if (ref instanceof String) {
5920          com.google.protobuf.ByteString b = 
5921              com.google.protobuf.ByteString.copyFromUtf8(
5922                  (java.lang.String) ref);
5923          solver_ = b;
5924          return b;
5925        } else {
5926          return (com.google.protobuf.ByteString) ref;
5927        }
5928      }
5929      /**
5930       * <code>string solver = 1;</code>
5931       * @param value The solver to set.
5932       * @return This builder for chaining.
5933       */
5934      public Builder setSolver(
5935          java.lang.String value) {
5936        if (value == null) {
5937    throw new NullPointerException();
5938  }
5939  
5940        solver_ = value;
5941        onChanged();
5942        return this;
5943      }
5944      /**
5945       * <code>string solver = 1;</code>
5946       * @return This builder for chaining.
5947       */
5948      public Builder clearSolver() {
5949        
5950        solver_ = getDefaultInstance().getSolver();
5951        onChanged();
5952        return this;
5953      }
5954      /**
5955       * <code>string solver = 1;</code>
5956       * @param value The bytes for solver to set.
5957       * @return This builder for chaining.
5958       */
5959      public Builder setSolverBytes(
5960          com.google.protobuf.ByteString value) {
5961        if (value == null) {
5962    throw new NullPointerException();
5963  }
5964  checkByteStringIsUtf8(value);
5965        
5966        solver_ = value;
5967        onChanged();
5968        return this;
5969      }
5970
5971      private double stepsize_ ;
5972      /**
5973       * <code>double stepsize = 2;</code>
5974       * @return The stepsize.
5975       */
5976      public double getStepsize() {
5977        return stepsize_;
5978      }
5979      /**
5980       * <code>double stepsize = 2;</code>
5981       * @param value The stepsize to set.
5982       * @return This builder for chaining.
5983       */
5984      public Builder setStepsize(double value) {
5985        
5986        stepsize_ = value;
5987        onChanged();
5988        return this;
5989      }
5990      /**
5991       * <code>double stepsize = 2;</code>
5992       * @return This builder for chaining.
5993       */
5994      public Builder clearStepsize() {
5995        
5996        stepsize_ = 0D;
5997        onChanged();
5998        return this;
5999      }
6000
6001      private int exitCrossingStrategy_ ;
6002      /**
6003       * <code>int32 exit_crossing_strategy = 3;</code>
6004       * @return The exitCrossingStrategy.
6005       */
6006      public int getExitCrossingStrategy() {
6007        return exitCrossingStrategy_;
6008      }
6009      /**
6010       * <code>int32 exit_crossing_strategy = 3;</code>
6011       * @param value The exitCrossingStrategy to set.
6012       * @return This builder for chaining.
6013       */
6014      public Builder setExitCrossingStrategy(int value) {
6015        
6016        exitCrossingStrategy_ = value;
6017        onChanged();
6018        return this;
6019      }
6020      /**
6021       * <code>int32 exit_crossing_strategy = 3;</code>
6022       * @return This builder for chaining.
6023       */
6024      public Builder clearExitCrossingStrategy() {
6025        
6026        exitCrossingStrategy_ = 0;
6027        onChanged();
6028        return this;
6029      }
6030
6031      private boolean linkedCellsEnabled_ ;
6032      /**
6033       * <code>bool linked_cells_enabled = 4;</code>
6034       * @return The linkedCellsEnabled.
6035       */
6036      public boolean getLinkedCellsEnabled() {
6037        return linkedCellsEnabled_;
6038      }
6039      /**
6040       * <code>bool linked_cells_enabled = 4;</code>
6041       * @param value The linkedCellsEnabled to set.
6042       * @return This builder for chaining.
6043       */
6044      public Builder setLinkedCellsEnabled(boolean value) {
6045        
6046        linkedCellsEnabled_ = value;
6047        onChanged();
6048        return this;
6049      }
6050      /**
6051       * <code>bool linked_cells_enabled = 4;</code>
6052       * @return This builder for chaining.
6053       */
6054      public Builder clearLinkedCellsEnabled() {
6055        
6056        linkedCellsEnabled_ = false;
6057        onChanged();
6058        return this;
6059      }
6060
6061      private double cellSize_ ;
6062      /**
6063       * <code>double cell_size = 5;</code>
6064       * @return The cellSize.
6065       */
6066      public double getCellSize() {
6067        return cellSize_;
6068      }
6069      /**
6070       * <code>double cell_size = 5;</code>
6071       * @param value The cellSize to set.
6072       * @return This builder for chaining.
6073       */
6074      public Builder setCellSize(double value) {
6075        
6076        cellSize_ = value;
6077        onChanged();
6078        return this;
6079      }
6080      /**
6081       * <code>double cell_size = 5;</code>
6082       * @return This builder for chaining.
6083       */
6084      public Builder clearCellSize() {
6085        
6086        cellSize_ = 0D;
6087        onChanged();
6088        return this;
6089      }
6090
6091      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Force forcePed_;
6092      private com.google.protobuf.SingleFieldBuilderV3<
6093          org.matsim.contrib.hybridsim.proto.HybridSimProto.Force, org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.ForceOrBuilder> forcePedBuilder_;
6094      /**
6095       * <code>.hybridsim.Force force_ped = 6;</code>
6096       * @return Whether the forcePed field is set.
6097       */
6098      public boolean hasForcePed() {
6099        return forcePedBuilder_ != null || forcePed_ != null;
6100      }
6101      /**
6102       * <code>.hybridsim.Force force_ped = 6;</code>
6103       * @return The forcePed.
6104       */
6105      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Force getForcePed() {
6106        if (forcePedBuilder_ == null) {
6107          return forcePed_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.getDefaultInstance() : forcePed_;
6108        } else {
6109          return forcePedBuilder_.getMessage();
6110        }
6111      }
6112      /**
6113       * <code>.hybridsim.Force force_ped = 6;</code>
6114       */
6115      public Builder setForcePed(org.matsim.contrib.hybridsim.proto.HybridSimProto.Force value) {
6116        if (forcePedBuilder_ == null) {
6117          if (value == null) {
6118            throw new NullPointerException();
6119          }
6120          forcePed_ = value;
6121          onChanged();
6122        } else {
6123          forcePedBuilder_.setMessage(value);
6124        }
6125
6126        return this;
6127      }
6128      /**
6129       * <code>.hybridsim.Force force_ped = 6;</code>
6130       */
6131      public Builder setForcePed(
6132          org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.Builder builderForValue) {
6133        if (forcePedBuilder_ == null) {
6134          forcePed_ = builderForValue.build();
6135          onChanged();
6136        } else {
6137          forcePedBuilder_.setMessage(builderForValue.build());
6138        }
6139
6140        return this;
6141      }
6142      /**
6143       * <code>.hybridsim.Force force_ped = 6;</code>
6144       */
6145      public Builder mergeForcePed(org.matsim.contrib.hybridsim.proto.HybridSimProto.Force value) {
6146        if (forcePedBuilder_ == null) {
6147          if (forcePed_ != null) {
6148            forcePed_ =
6149              org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.newBuilder(forcePed_).mergeFrom(value).buildPartial();
6150          } else {
6151            forcePed_ = value;
6152          }
6153          onChanged();
6154        } else {
6155          forcePedBuilder_.mergeFrom(value);
6156        }
6157
6158        return this;
6159      }
6160      /**
6161       * <code>.hybridsim.Force force_ped = 6;</code>
6162       */
6163      public Builder clearForcePed() {
6164        if (forcePedBuilder_ == null) {
6165          forcePed_ = null;
6166          onChanged();
6167        } else {
6168          forcePed_ = null;
6169          forcePedBuilder_ = null;
6170        }
6171
6172        return this;
6173      }
6174      /**
6175       * <code>.hybridsim.Force force_ped = 6;</code>
6176       */
6177      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.Builder getForcePedBuilder() {
6178        
6179        onChanged();
6180        return getForcePedFieldBuilder().getBuilder();
6181      }
6182      /**
6183       * <code>.hybridsim.Force force_ped = 6;</code>
6184       */
6185      public org.matsim.contrib.hybridsim.proto.HybridSimProto.ForceOrBuilder getForcePedOrBuilder() {
6186        if (forcePedBuilder_ != null) {
6187          return forcePedBuilder_.getMessageOrBuilder();
6188        } else {
6189          return forcePed_ == null ?
6190              org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.getDefaultInstance() : forcePed_;
6191        }
6192      }
6193      /**
6194       * <code>.hybridsim.Force force_ped = 6;</code>
6195       */
6196      private com.google.protobuf.SingleFieldBuilderV3<
6197          org.matsim.contrib.hybridsim.proto.HybridSimProto.Force, org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.ForceOrBuilder> 
6198          getForcePedFieldBuilder() {
6199        if (forcePedBuilder_ == null) {
6200          forcePedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
6201              org.matsim.contrib.hybridsim.proto.HybridSimProto.Force, org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.ForceOrBuilder>(
6202                  getForcePed(),
6203                  getParentForChildren(),
6204                  isClean());
6205          forcePed_ = null;
6206        }
6207        return forcePedBuilder_;
6208      }
6209
6210      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Force forceWall_;
6211      private com.google.protobuf.SingleFieldBuilderV3<
6212          org.matsim.contrib.hybridsim.proto.HybridSimProto.Force, org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.ForceOrBuilder> forceWallBuilder_;
6213      /**
6214       * <code>.hybridsim.Force force_wall = 7;</code>
6215       * @return Whether the forceWall field is set.
6216       */
6217      public boolean hasForceWall() {
6218        return forceWallBuilder_ != null || forceWall_ != null;
6219      }
6220      /**
6221       * <code>.hybridsim.Force force_wall = 7;</code>
6222       * @return The forceWall.
6223       */
6224      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Force getForceWall() {
6225        if (forceWallBuilder_ == null) {
6226          return forceWall_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.getDefaultInstance() : forceWall_;
6227        } else {
6228          return forceWallBuilder_.getMessage();
6229        }
6230      }
6231      /**
6232       * <code>.hybridsim.Force force_wall = 7;</code>
6233       */
6234      public Builder setForceWall(org.matsim.contrib.hybridsim.proto.HybridSimProto.Force value) {
6235        if (forceWallBuilder_ == null) {
6236          if (value == null) {
6237            throw new NullPointerException();
6238          }
6239          forceWall_ = value;
6240          onChanged();
6241        } else {
6242          forceWallBuilder_.setMessage(value);
6243        }
6244
6245        return this;
6246      }
6247      /**
6248       * <code>.hybridsim.Force force_wall = 7;</code>
6249       */
6250      public Builder setForceWall(
6251          org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.Builder builderForValue) {
6252        if (forceWallBuilder_ == null) {
6253          forceWall_ = builderForValue.build();
6254          onChanged();
6255        } else {
6256          forceWallBuilder_.setMessage(builderForValue.build());
6257        }
6258
6259        return this;
6260      }
6261      /**
6262       * <code>.hybridsim.Force force_wall = 7;</code>
6263       */
6264      public Builder mergeForceWall(org.matsim.contrib.hybridsim.proto.HybridSimProto.Force value) {
6265        if (forceWallBuilder_ == null) {
6266          if (forceWall_ != null) {
6267            forceWall_ =
6268              org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.newBuilder(forceWall_).mergeFrom(value).buildPartial();
6269          } else {
6270            forceWall_ = value;
6271          }
6272          onChanged();
6273        } else {
6274          forceWallBuilder_.mergeFrom(value);
6275        }
6276
6277        return this;
6278      }
6279      /**
6280       * <code>.hybridsim.Force force_wall = 7;</code>
6281       */
6282      public Builder clearForceWall() {
6283        if (forceWallBuilder_ == null) {
6284          forceWall_ = null;
6285          onChanged();
6286        } else {
6287          forceWall_ = null;
6288          forceWallBuilder_ = null;
6289        }
6290
6291        return this;
6292      }
6293      /**
6294       * <code>.hybridsim.Force force_wall = 7;</code>
6295       */
6296      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.Builder getForceWallBuilder() {
6297        
6298        onChanged();
6299        return getForceWallFieldBuilder().getBuilder();
6300      }
6301      /**
6302       * <code>.hybridsim.Force force_wall = 7;</code>
6303       */
6304      public org.matsim.contrib.hybridsim.proto.HybridSimProto.ForceOrBuilder getForceWallOrBuilder() {
6305        if (forceWallBuilder_ != null) {
6306          return forceWallBuilder_.getMessageOrBuilder();
6307        } else {
6308          return forceWall_ == null ?
6309              org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.getDefaultInstance() : forceWall_;
6310        }
6311      }
6312      /**
6313       * <code>.hybridsim.Force force_wall = 7;</code>
6314       */
6315      private com.google.protobuf.SingleFieldBuilderV3<
6316          org.matsim.contrib.hybridsim.proto.HybridSimProto.Force, org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.ForceOrBuilder> 
6317          getForceWallFieldBuilder() {
6318        if (forceWallBuilder_ == null) {
6319          forceWallBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
6320              org.matsim.contrib.hybridsim.proto.HybridSimProto.Force, org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.ForceOrBuilder>(
6321                  getForceWall(),
6322                  getParentForChildren(),
6323                  isClean());
6324          forceWall_ = null;
6325        }
6326        return forceWallBuilder_;
6327      }
6328
6329      private org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams agentParams_;
6330      private com.google.protobuf.SingleFieldBuilderV3<
6331          org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams, org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParamsOrBuilder> agentParamsBuilder_;
6332      /**
6333       * <code>.hybridsim.AgentParams agent_params = 8;</code>
6334       * @return Whether the agentParams field is set.
6335       */
6336      public boolean hasAgentParams() {
6337        return agentParamsBuilder_ != null || agentParams_ != null;
6338      }
6339      /**
6340       * <code>.hybridsim.AgentParams agent_params = 8;</code>
6341       * @return The agentParams.
6342       */
6343      public org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams getAgentParams() {
6344        if (agentParamsBuilder_ == null) {
6345          return agentParams_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.getDefaultInstance() : agentParams_;
6346        } else {
6347          return agentParamsBuilder_.getMessage();
6348        }
6349      }
6350      /**
6351       * <code>.hybridsim.AgentParams agent_params = 8;</code>
6352       */
6353      public Builder setAgentParams(org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams value) {
6354        if (agentParamsBuilder_ == null) {
6355          if (value == null) {
6356            throw new NullPointerException();
6357          }
6358          agentParams_ = value;
6359          onChanged();
6360        } else {
6361          agentParamsBuilder_.setMessage(value);
6362        }
6363
6364        return this;
6365      }
6366      /**
6367       * <code>.hybridsim.AgentParams agent_params = 8;</code>
6368       */
6369      public Builder setAgentParams(
6370          org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.Builder builderForValue) {
6371        if (agentParamsBuilder_ == null) {
6372          agentParams_ = builderForValue.build();
6373          onChanged();
6374        } else {
6375          agentParamsBuilder_.setMessage(builderForValue.build());
6376        }
6377
6378        return this;
6379      }
6380      /**
6381       * <code>.hybridsim.AgentParams agent_params = 8;</code>
6382       */
6383      public Builder mergeAgentParams(org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams value) {
6384        if (agentParamsBuilder_ == null) {
6385          if (agentParams_ != null) {
6386            agentParams_ =
6387              org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.newBuilder(agentParams_).mergeFrom(value).buildPartial();
6388          } else {
6389            agentParams_ = value;
6390          }
6391          onChanged();
6392        } else {
6393          agentParamsBuilder_.mergeFrom(value);
6394        }
6395
6396        return this;
6397      }
6398      /**
6399       * <code>.hybridsim.AgentParams agent_params = 8;</code>
6400       */
6401      public Builder clearAgentParams() {
6402        if (agentParamsBuilder_ == null) {
6403          agentParams_ = null;
6404          onChanged();
6405        } else {
6406          agentParams_ = null;
6407          agentParamsBuilder_ = null;
6408        }
6409
6410        return this;
6411      }
6412      /**
6413       * <code>.hybridsim.AgentParams agent_params = 8;</code>
6414       */
6415      public org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.Builder getAgentParamsBuilder() {
6416        
6417        onChanged();
6418        return getAgentParamsFieldBuilder().getBuilder();
6419      }
6420      /**
6421       * <code>.hybridsim.AgentParams agent_params = 8;</code>
6422       */
6423      public org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParamsOrBuilder getAgentParamsOrBuilder() {
6424        if (agentParamsBuilder_ != null) {
6425          return agentParamsBuilder_.getMessageOrBuilder();
6426        } else {
6427          return agentParams_ == null ?
6428              org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.getDefaultInstance() : agentParams_;
6429        }
6430      }
6431      /**
6432       * <code>.hybridsim.AgentParams agent_params = 8;</code>
6433       */
6434      private com.google.protobuf.SingleFieldBuilderV3<
6435          org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams, org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParamsOrBuilder> 
6436          getAgentParamsFieldBuilder() {
6437        if (agentParamsBuilder_ == null) {
6438          agentParamsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
6439              org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams, org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParamsOrBuilder>(
6440                  getAgentParams(),
6441                  getParentForChildren(),
6442                  isClean());
6443          agentParams_ = null;
6444        }
6445        return agentParamsBuilder_;
6446      }
6447      @java.lang.Override
6448      public final Builder setUnknownFields(
6449          final com.google.protobuf.UnknownFieldSet unknownFields) {
6450        return super.setUnknownFields(unknownFields);
6451      }
6452
6453      @java.lang.Override
6454      public final Builder mergeUnknownFields(
6455          final com.google.protobuf.UnknownFieldSet unknownFields) {
6456        return super.mergeUnknownFields(unknownFields);
6457      }
6458
6459
6460      // @@protoc_insertion_point(builder_scope:hybridsim.Gompertz)
6461    }
6462
6463    // @@protoc_insertion_point(class_scope:hybridsim.Gompertz)
6464    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz DEFAULT_INSTANCE;
6465    static {
6466      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz();
6467    }
6468
6469    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz getDefaultInstance() {
6470      return DEFAULT_INSTANCE;
6471    }
6472
6473    private static final com.google.protobuf.Parser<Gompertz>
6474        PARSER = new com.google.protobuf.AbstractParser<Gompertz>() {
6475      @java.lang.Override
6476      public Gompertz parsePartialFrom(
6477          com.google.protobuf.CodedInputStream input,
6478          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
6479          throws com.google.protobuf.InvalidProtocolBufferException {
6480        return new Gompertz(input, extensionRegistry);
6481      }
6482    };
6483
6484    public static com.google.protobuf.Parser<Gompertz> parser() {
6485      return PARSER;
6486    }
6487
6488    @java.lang.Override
6489    public com.google.protobuf.Parser<Gompertz> getParserForType() {
6490      return PARSER;
6491    }
6492
6493    @java.lang.Override
6494    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Gompertz getDefaultInstanceForType() {
6495      return DEFAULT_INSTANCE;
6496    }
6497
6498  }
6499
6500  public interface Tordeux2015OrBuilder extends
6501      // @@protoc_insertion_point(interface_extends:hybridsim.Tordeux2015)
6502      com.google.protobuf.MessageOrBuilder {
6503
6504    /**
6505     * <code>string solver = 1;</code>
6506     * @return The solver.
6507     */
6508    java.lang.String getSolver();
6509    /**
6510     * <code>string solver = 1;</code>
6511     * @return The bytes for solver.
6512     */
6513    com.google.protobuf.ByteString
6514        getSolverBytes();
6515
6516    /**
6517     * <code>double stepsize = 2;</code>
6518     * @return The stepsize.
6519     */
6520    double getStepsize();
6521
6522    /**
6523     * <code>int32 exit_crossing_strategy = 3;</code>
6524     * @return The exitCrossingStrategy.
6525     */
6526    int getExitCrossingStrategy();
6527
6528    /**
6529     * <code>bool linked_cells_enabled = 4;</code>
6530     * @return The linkedCellsEnabled.
6531     */
6532    boolean getLinkedCellsEnabled();
6533
6534    /**
6535     * <code>double cell_size = 5;</code>
6536     * @return The cellSize.
6537     */
6538    double getCellSize();
6539
6540    /**
6541     * <code>.hybridsim.Tordeux2015Force force_ped = 6;</code>
6542     * @return Whether the forcePed field is set.
6543     */
6544    boolean hasForcePed();
6545    /**
6546     * <code>.hybridsim.Tordeux2015Force force_ped = 6;</code>
6547     * @return The forcePed.
6548     */
6549    org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force getForcePed();
6550    /**
6551     * <code>.hybridsim.Tordeux2015Force force_ped = 6;</code>
6552     */
6553    org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015ForceOrBuilder getForcePedOrBuilder();
6554
6555    /**
6556     * <code>.hybridsim.Tordeux2015Force force_wall = 7;</code>
6557     * @return Whether the forceWall field is set.
6558     */
6559    boolean hasForceWall();
6560    /**
6561     * <code>.hybridsim.Tordeux2015Force force_wall = 7;</code>
6562     * @return The forceWall.
6563     */
6564    org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force getForceWall();
6565    /**
6566     * <code>.hybridsim.Tordeux2015Force force_wall = 7;</code>
6567     */
6568    org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015ForceOrBuilder getForceWallOrBuilder();
6569
6570    /**
6571     * <code>.hybridsim.AgentParams agent_params = 8;</code>
6572     * @return Whether the agentParams field is set.
6573     */
6574    boolean hasAgentParams();
6575    /**
6576     * <code>.hybridsim.AgentParams agent_params = 8;</code>
6577     * @return The agentParams.
6578     */
6579    org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams getAgentParams();
6580    /**
6581     * <code>.hybridsim.AgentParams agent_params = 8;</code>
6582     */
6583    org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParamsOrBuilder getAgentParamsOrBuilder();
6584
6585    /**
6586     * <code>int32 periodic = 9;</code>
6587     * @return The periodic.
6588     */
6589    int getPeriodic();
6590  }
6591  /**
6592   * Protobuf type {@code hybridsim.Tordeux2015}
6593   */
6594  public  static final class Tordeux2015 extends
6595      com.google.protobuf.GeneratedMessageV3 implements
6596      // @@protoc_insertion_point(message_implements:hybridsim.Tordeux2015)
6597      Tordeux2015OrBuilder {
6598  private static final long serialVersionUID = 0L;
6599    // Use Tordeux2015.newBuilder() to construct.
6600    private Tordeux2015(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
6601      super(builder);
6602    }
6603    private Tordeux2015() {
6604      solver_ = "";
6605    }
6606
6607    @java.lang.Override
6608    @SuppressWarnings({"unused"})
6609    protected java.lang.Object newInstance(
6610        UnusedPrivateParameter unused) {
6611      return new Tordeux2015();
6612    }
6613
6614    @java.lang.Override
6615    public final com.google.protobuf.UnknownFieldSet
6616    getUnknownFields() {
6617      return this.unknownFields;
6618    }
6619    private Tordeux2015(
6620        com.google.protobuf.CodedInputStream input,
6621        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
6622        throws com.google.protobuf.InvalidProtocolBufferException {
6623      this();
6624      if (extensionRegistry == null) {
6625        throw new java.lang.NullPointerException();
6626      }
6627      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
6628          com.google.protobuf.UnknownFieldSet.newBuilder();
6629      try {
6630        boolean done = false;
6631        while (!done) {
6632          int tag = input.readTag();
6633          switch (tag) {
6634            case 0:
6635              done = true;
6636              break;
6637            case 10: {
6638              java.lang.String s = input.readStringRequireUtf8();
6639
6640              solver_ = s;
6641              break;
6642            }
6643            case 17: {
6644
6645              stepsize_ = input.readDouble();
6646              break;
6647            }
6648            case 24: {
6649
6650              exitCrossingStrategy_ = input.readInt32();
6651              break;
6652            }
6653            case 32: {
6654
6655              linkedCellsEnabled_ = input.readBool();
6656              break;
6657            }
6658            case 41: {
6659
6660              cellSize_ = input.readDouble();
6661              break;
6662            }
6663            case 50: {
6664              org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.Builder subBuilder = null;
6665              if (forcePed_ != null) {
6666                subBuilder = forcePed_.toBuilder();
6667              }
6668              forcePed_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.parser(), extensionRegistry);
6669              if (subBuilder != null) {
6670                subBuilder.mergeFrom(forcePed_);
6671                forcePed_ = subBuilder.buildPartial();
6672              }
6673
6674              break;
6675            }
6676            case 58: {
6677              org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.Builder subBuilder = null;
6678              if (forceWall_ != null) {
6679                subBuilder = forceWall_.toBuilder();
6680              }
6681              forceWall_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.parser(), extensionRegistry);
6682              if (subBuilder != null) {
6683                subBuilder.mergeFrom(forceWall_);
6684                forceWall_ = subBuilder.buildPartial();
6685              }
6686
6687              break;
6688            }
6689            case 66: {
6690              org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.Builder subBuilder = null;
6691              if (agentParams_ != null) {
6692                subBuilder = agentParams_.toBuilder();
6693              }
6694              agentParams_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.parser(), extensionRegistry);
6695              if (subBuilder != null) {
6696                subBuilder.mergeFrom(agentParams_);
6697                agentParams_ = subBuilder.buildPartial();
6698              }
6699
6700              break;
6701            }
6702            case 72: {
6703
6704              periodic_ = input.readInt32();
6705              break;
6706            }
6707            default: {
6708              if (!parseUnknownField(
6709                  input, unknownFields, extensionRegistry, tag)) {
6710                done = true;
6711              }
6712              break;
6713            }
6714          }
6715        }
6716      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
6717        throw e.setUnfinishedMessage(this);
6718      } catch (java.io.IOException e) {
6719        throw new com.google.protobuf.InvalidProtocolBufferException(
6720            e).setUnfinishedMessage(this);
6721      } finally {
6722        this.unknownFields = unknownFields.build();
6723        makeExtensionsImmutable();
6724      }
6725    }
6726    public static final com.google.protobuf.Descriptors.Descriptor
6727        getDescriptor() {
6728      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Tordeux2015_descriptor;
6729    }
6730
6731    @java.lang.Override
6732    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
6733        internalGetFieldAccessorTable() {
6734      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Tordeux2015_fieldAccessorTable
6735          .ensureFieldAccessorsInitialized(
6736              org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015.Builder.class);
6737    }
6738
6739    public static final int SOLVER_FIELD_NUMBER = 1;
6740    private volatile java.lang.Object solver_;
6741    /**
6742     * <code>string solver = 1;</code>
6743     * @return The solver.
6744     */
6745    public java.lang.String getSolver() {
6746      java.lang.Object ref = solver_;
6747      if (ref instanceof java.lang.String) {
6748        return (java.lang.String) ref;
6749      } else {
6750        com.google.protobuf.ByteString bs = 
6751            (com.google.protobuf.ByteString) ref;
6752        java.lang.String s = bs.toStringUtf8();
6753        solver_ = s;
6754        return s;
6755      }
6756    }
6757    /**
6758     * <code>string solver = 1;</code>
6759     * @return The bytes for solver.
6760     */
6761    public com.google.protobuf.ByteString
6762        getSolverBytes() {
6763      java.lang.Object ref = solver_;
6764      if (ref instanceof java.lang.String) {
6765        com.google.protobuf.ByteString b = 
6766            com.google.protobuf.ByteString.copyFromUtf8(
6767                (java.lang.String) ref);
6768        solver_ = b;
6769        return b;
6770      } else {
6771        return (com.google.protobuf.ByteString) ref;
6772      }
6773    }
6774
6775    public static final int STEPSIZE_FIELD_NUMBER = 2;
6776    private double stepsize_;
6777    /**
6778     * <code>double stepsize = 2;</code>
6779     * @return The stepsize.
6780     */
6781    public double getStepsize() {
6782      return stepsize_;
6783    }
6784
6785    public static final int EXIT_CROSSING_STRATEGY_FIELD_NUMBER = 3;
6786    private int exitCrossingStrategy_;
6787    /**
6788     * <code>int32 exit_crossing_strategy = 3;</code>
6789     * @return The exitCrossingStrategy.
6790     */
6791    public int getExitCrossingStrategy() {
6792      return exitCrossingStrategy_;
6793    }
6794
6795    public static final int LINKED_CELLS_ENABLED_FIELD_NUMBER = 4;
6796    private boolean linkedCellsEnabled_;
6797    /**
6798     * <code>bool linked_cells_enabled = 4;</code>
6799     * @return The linkedCellsEnabled.
6800     */
6801    public boolean getLinkedCellsEnabled() {
6802      return linkedCellsEnabled_;
6803    }
6804
6805    public static final int CELL_SIZE_FIELD_NUMBER = 5;
6806    private double cellSize_;
6807    /**
6808     * <code>double cell_size = 5;</code>
6809     * @return The cellSize.
6810     */
6811    public double getCellSize() {
6812      return cellSize_;
6813    }
6814
6815    public static final int FORCE_PED_FIELD_NUMBER = 6;
6816    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force forcePed_;
6817    /**
6818     * <code>.hybridsim.Tordeux2015Force force_ped = 6;</code>
6819     * @return Whether the forcePed field is set.
6820     */
6821    public boolean hasForcePed() {
6822      return forcePed_ != null;
6823    }
6824    /**
6825     * <code>.hybridsim.Tordeux2015Force force_ped = 6;</code>
6826     * @return The forcePed.
6827     */
6828    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force getForcePed() {
6829      return forcePed_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.getDefaultInstance() : forcePed_;
6830    }
6831    /**
6832     * <code>.hybridsim.Tordeux2015Force force_ped = 6;</code>
6833     */
6834    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015ForceOrBuilder getForcePedOrBuilder() {
6835      return getForcePed();
6836    }
6837
6838    public static final int FORCE_WALL_FIELD_NUMBER = 7;
6839    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force forceWall_;
6840    /**
6841     * <code>.hybridsim.Tordeux2015Force force_wall = 7;</code>
6842     * @return Whether the forceWall field is set.
6843     */
6844    public boolean hasForceWall() {
6845      return forceWall_ != null;
6846    }
6847    /**
6848     * <code>.hybridsim.Tordeux2015Force force_wall = 7;</code>
6849     * @return The forceWall.
6850     */
6851    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force getForceWall() {
6852      return forceWall_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.getDefaultInstance() : forceWall_;
6853    }
6854    /**
6855     * <code>.hybridsim.Tordeux2015Force force_wall = 7;</code>
6856     */
6857    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015ForceOrBuilder getForceWallOrBuilder() {
6858      return getForceWall();
6859    }
6860
6861    public static final int AGENT_PARAMS_FIELD_NUMBER = 8;
6862    private org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams agentParams_;
6863    /**
6864     * <code>.hybridsim.AgentParams agent_params = 8;</code>
6865     * @return Whether the agentParams field is set.
6866     */
6867    public boolean hasAgentParams() {
6868      return agentParams_ != null;
6869    }
6870    /**
6871     * <code>.hybridsim.AgentParams agent_params = 8;</code>
6872     * @return The agentParams.
6873     */
6874    public org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams getAgentParams() {
6875      return agentParams_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.getDefaultInstance() : agentParams_;
6876    }
6877    /**
6878     * <code>.hybridsim.AgentParams agent_params = 8;</code>
6879     */
6880    public org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParamsOrBuilder getAgentParamsOrBuilder() {
6881      return getAgentParams();
6882    }
6883
6884    public static final int PERIODIC_FIELD_NUMBER = 9;
6885    private int periodic_;
6886    /**
6887     * <code>int32 periodic = 9;</code>
6888     * @return The periodic.
6889     */
6890    public int getPeriodic() {
6891      return periodic_;
6892    }
6893
6894    private byte memoizedIsInitialized = -1;
6895    @java.lang.Override
6896    public final boolean isInitialized() {
6897      byte isInitialized = memoizedIsInitialized;
6898      if (isInitialized == 1) return true;
6899      if (isInitialized == 0) return false;
6900
6901      memoizedIsInitialized = 1;
6902      return true;
6903    }
6904
6905    @java.lang.Override
6906    public void writeTo(com.google.protobuf.CodedOutputStream output)
6907                        throws java.io.IOException {
6908      if (!getSolverBytes().isEmpty()) {
6909        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, solver_);
6910      }
6911      if (stepsize_ != 0D) {
6912        output.writeDouble(2, stepsize_);
6913      }
6914      if (exitCrossingStrategy_ != 0) {
6915        output.writeInt32(3, exitCrossingStrategy_);
6916      }
6917      if (linkedCellsEnabled_ != false) {
6918        output.writeBool(4, linkedCellsEnabled_);
6919      }
6920      if (cellSize_ != 0D) {
6921        output.writeDouble(5, cellSize_);
6922      }
6923      if (forcePed_ != null) {
6924        output.writeMessage(6, getForcePed());
6925      }
6926      if (forceWall_ != null) {
6927        output.writeMessage(7, getForceWall());
6928      }
6929      if (agentParams_ != null) {
6930        output.writeMessage(8, getAgentParams());
6931      }
6932      if (periodic_ != 0) {
6933        output.writeInt32(9, periodic_);
6934      }
6935      unknownFields.writeTo(output);
6936    }
6937
6938    @java.lang.Override
6939    public int getSerializedSize() {
6940      int size = memoizedSize;
6941      if (size != -1) return size;
6942
6943      size = 0;
6944      if (!getSolverBytes().isEmpty()) {
6945        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, solver_);
6946      }
6947      if (stepsize_ != 0D) {
6948        size += com.google.protobuf.CodedOutputStream
6949          .computeDoubleSize(2, stepsize_);
6950      }
6951      if (exitCrossingStrategy_ != 0) {
6952        size += com.google.protobuf.CodedOutputStream
6953          .computeInt32Size(3, exitCrossingStrategy_);
6954      }
6955      if (linkedCellsEnabled_ != false) {
6956        size += com.google.protobuf.CodedOutputStream
6957          .computeBoolSize(4, linkedCellsEnabled_);
6958      }
6959      if (cellSize_ != 0D) {
6960        size += com.google.protobuf.CodedOutputStream
6961          .computeDoubleSize(5, cellSize_);
6962      }
6963      if (forcePed_ != null) {
6964        size += com.google.protobuf.CodedOutputStream
6965          .computeMessageSize(6, getForcePed());
6966      }
6967      if (forceWall_ != null) {
6968        size += com.google.protobuf.CodedOutputStream
6969          .computeMessageSize(7, getForceWall());
6970      }
6971      if (agentParams_ != null) {
6972        size += com.google.protobuf.CodedOutputStream
6973          .computeMessageSize(8, getAgentParams());
6974      }
6975      if (periodic_ != 0) {
6976        size += com.google.protobuf.CodedOutputStream
6977          .computeInt32Size(9, periodic_);
6978      }
6979      size += unknownFields.getSerializedSize();
6980      memoizedSize = size;
6981      return size;
6982    }
6983
6984    @java.lang.Override
6985    public boolean equals(final java.lang.Object obj) {
6986      if (obj == this) {
6987       return true;
6988      }
6989      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015)) {
6990        return super.equals(obj);
6991      }
6992      org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015) obj;
6993
6994      if (!getSolver()
6995          .equals(other.getSolver())) return false;
6996      if (java.lang.Double.doubleToLongBits(getStepsize())
6997          != java.lang.Double.doubleToLongBits(
6998              other.getStepsize())) return false;
6999      if (getExitCrossingStrategy()
7000          != other.getExitCrossingStrategy()) return false;
7001      if (getLinkedCellsEnabled()
7002          != other.getLinkedCellsEnabled()) return false;
7003      if (java.lang.Double.doubleToLongBits(getCellSize())
7004          != java.lang.Double.doubleToLongBits(
7005              other.getCellSize())) return false;
7006      if (hasForcePed() != other.hasForcePed()) return false;
7007      if (hasForcePed()) {
7008        if (!getForcePed()
7009            .equals(other.getForcePed())) return false;
7010      }
7011      if (hasForceWall() != other.hasForceWall()) return false;
7012      if (hasForceWall()) {
7013        if (!getForceWall()
7014            .equals(other.getForceWall())) return false;
7015      }
7016      if (hasAgentParams() != other.hasAgentParams()) return false;
7017      if (hasAgentParams()) {
7018        if (!getAgentParams()
7019            .equals(other.getAgentParams())) return false;
7020      }
7021      if (getPeriodic()
7022          != other.getPeriodic()) return false;
7023      if (!unknownFields.equals(other.unknownFields)) return false;
7024      return true;
7025    }
7026
7027    @java.lang.Override
7028    public int hashCode() {
7029      if (memoizedHashCode != 0) {
7030        return memoizedHashCode;
7031      }
7032      int hash = 41;
7033      hash = (19 * hash) + getDescriptor().hashCode();
7034      hash = (37 * hash) + SOLVER_FIELD_NUMBER;
7035      hash = (53 * hash) + getSolver().hashCode();
7036      hash = (37 * hash) + STEPSIZE_FIELD_NUMBER;
7037      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7038          java.lang.Double.doubleToLongBits(getStepsize()));
7039      hash = (37 * hash) + EXIT_CROSSING_STRATEGY_FIELD_NUMBER;
7040      hash = (53 * hash) + getExitCrossingStrategy();
7041      hash = (37 * hash) + LINKED_CELLS_ENABLED_FIELD_NUMBER;
7042      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7043          getLinkedCellsEnabled());
7044      hash = (37 * hash) + CELL_SIZE_FIELD_NUMBER;
7045      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7046          java.lang.Double.doubleToLongBits(getCellSize()));
7047      if (hasForcePed()) {
7048        hash = (37 * hash) + FORCE_PED_FIELD_NUMBER;
7049        hash = (53 * hash) + getForcePed().hashCode();
7050      }
7051      if (hasForceWall()) {
7052        hash = (37 * hash) + FORCE_WALL_FIELD_NUMBER;
7053        hash = (53 * hash) + getForceWall().hashCode();
7054      }
7055      if (hasAgentParams()) {
7056        hash = (37 * hash) + AGENT_PARAMS_FIELD_NUMBER;
7057        hash = (53 * hash) + getAgentParams().hashCode();
7058      }
7059      hash = (37 * hash) + PERIODIC_FIELD_NUMBER;
7060      hash = (53 * hash) + getPeriodic();
7061      hash = (29 * hash) + unknownFields.hashCode();
7062      memoizedHashCode = hash;
7063      return hash;
7064    }
7065
7066    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 parseFrom(
7067        java.nio.ByteBuffer data)
7068        throws com.google.protobuf.InvalidProtocolBufferException {
7069      return PARSER.parseFrom(data);
7070    }
7071    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 parseFrom(
7072        java.nio.ByteBuffer data,
7073        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7074        throws com.google.protobuf.InvalidProtocolBufferException {
7075      return PARSER.parseFrom(data, extensionRegistry);
7076    }
7077    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 parseFrom(
7078        com.google.protobuf.ByteString data)
7079        throws com.google.protobuf.InvalidProtocolBufferException {
7080      return PARSER.parseFrom(data);
7081    }
7082    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 parseFrom(
7083        com.google.protobuf.ByteString data,
7084        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7085        throws com.google.protobuf.InvalidProtocolBufferException {
7086      return PARSER.parseFrom(data, extensionRegistry);
7087    }
7088    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 parseFrom(byte[] data)
7089        throws com.google.protobuf.InvalidProtocolBufferException {
7090      return PARSER.parseFrom(data);
7091    }
7092    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 parseFrom(
7093        byte[] data,
7094        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7095        throws com.google.protobuf.InvalidProtocolBufferException {
7096      return PARSER.parseFrom(data, extensionRegistry);
7097    }
7098    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 parseFrom(java.io.InputStream input)
7099        throws java.io.IOException {
7100      return com.google.protobuf.GeneratedMessageV3
7101          .parseWithIOException(PARSER, input);
7102    }
7103    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 parseFrom(
7104        java.io.InputStream input,
7105        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7106        throws java.io.IOException {
7107      return com.google.protobuf.GeneratedMessageV3
7108          .parseWithIOException(PARSER, input, extensionRegistry);
7109    }
7110    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 parseDelimitedFrom(java.io.InputStream input)
7111        throws java.io.IOException {
7112      return com.google.protobuf.GeneratedMessageV3
7113          .parseDelimitedWithIOException(PARSER, input);
7114    }
7115    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 parseDelimitedFrom(
7116        java.io.InputStream input,
7117        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7118        throws java.io.IOException {
7119      return com.google.protobuf.GeneratedMessageV3
7120          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
7121    }
7122    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 parseFrom(
7123        com.google.protobuf.CodedInputStream input)
7124        throws java.io.IOException {
7125      return com.google.protobuf.GeneratedMessageV3
7126          .parseWithIOException(PARSER, input);
7127    }
7128    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 parseFrom(
7129        com.google.protobuf.CodedInputStream input,
7130        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7131        throws java.io.IOException {
7132      return com.google.protobuf.GeneratedMessageV3
7133          .parseWithIOException(PARSER, input, extensionRegistry);
7134    }
7135
7136    @java.lang.Override
7137    public Builder newBuilderForType() { return newBuilder(); }
7138    public static Builder newBuilder() {
7139      return DEFAULT_INSTANCE.toBuilder();
7140    }
7141    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 prototype) {
7142      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
7143    }
7144    @java.lang.Override
7145    public Builder toBuilder() {
7146      return this == DEFAULT_INSTANCE
7147          ? new Builder() : new Builder().mergeFrom(this);
7148    }
7149
7150    @java.lang.Override
7151    protected Builder newBuilderForType(
7152        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7153      Builder builder = new Builder(parent);
7154      return builder;
7155    }
7156    /**
7157     * Protobuf type {@code hybridsim.Tordeux2015}
7158     */
7159    public static final class Builder extends
7160        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
7161        // @@protoc_insertion_point(builder_implements:hybridsim.Tordeux2015)
7162        org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015OrBuilder {
7163      public static final com.google.protobuf.Descriptors.Descriptor
7164          getDescriptor() {
7165        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Tordeux2015_descriptor;
7166      }
7167
7168      @java.lang.Override
7169      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
7170          internalGetFieldAccessorTable() {
7171        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Tordeux2015_fieldAccessorTable
7172            .ensureFieldAccessorsInitialized(
7173                org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015.Builder.class);
7174      }
7175
7176      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015.newBuilder()
7177      private Builder() {
7178        maybeForceBuilderInitialization();
7179      }
7180
7181      private Builder(
7182          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7183        super(parent);
7184        maybeForceBuilderInitialization();
7185      }
7186      private void maybeForceBuilderInitialization() {
7187        if (com.google.protobuf.GeneratedMessageV3
7188                .alwaysUseFieldBuilders) {
7189        }
7190      }
7191      @java.lang.Override
7192      public Builder clear() {
7193        super.clear();
7194        solver_ = "";
7195
7196        stepsize_ = 0D;
7197
7198        exitCrossingStrategy_ = 0;
7199
7200        linkedCellsEnabled_ = false;
7201
7202        cellSize_ = 0D;
7203
7204        if (forcePedBuilder_ == null) {
7205          forcePed_ = null;
7206        } else {
7207          forcePed_ = null;
7208          forcePedBuilder_ = null;
7209        }
7210        if (forceWallBuilder_ == null) {
7211          forceWall_ = null;
7212        } else {
7213          forceWall_ = null;
7214          forceWallBuilder_ = null;
7215        }
7216        if (agentParamsBuilder_ == null) {
7217          agentParams_ = null;
7218        } else {
7219          agentParams_ = null;
7220          agentParamsBuilder_ = null;
7221        }
7222        periodic_ = 0;
7223
7224        return this;
7225      }
7226
7227      @java.lang.Override
7228      public com.google.protobuf.Descriptors.Descriptor
7229          getDescriptorForType() {
7230        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Tordeux2015_descriptor;
7231      }
7232
7233      @java.lang.Override
7234      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 getDefaultInstanceForType() {
7235        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015.getDefaultInstance();
7236      }
7237
7238      @java.lang.Override
7239      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 build() {
7240        org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 result = buildPartial();
7241        if (!result.isInitialized()) {
7242          throw newUninitializedMessageException(result);
7243        }
7244        return result;
7245      }
7246
7247      @java.lang.Override
7248      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 buildPartial() {
7249        org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015(this);
7250        result.solver_ = solver_;
7251        result.stepsize_ = stepsize_;
7252        result.exitCrossingStrategy_ = exitCrossingStrategy_;
7253        result.linkedCellsEnabled_ = linkedCellsEnabled_;
7254        result.cellSize_ = cellSize_;
7255        if (forcePedBuilder_ == null) {
7256          result.forcePed_ = forcePed_;
7257        } else {
7258          result.forcePed_ = forcePedBuilder_.build();
7259        }
7260        if (forceWallBuilder_ == null) {
7261          result.forceWall_ = forceWall_;
7262        } else {
7263          result.forceWall_ = forceWallBuilder_.build();
7264        }
7265        if (agentParamsBuilder_ == null) {
7266          result.agentParams_ = agentParams_;
7267        } else {
7268          result.agentParams_ = agentParamsBuilder_.build();
7269        }
7270        result.periodic_ = periodic_;
7271        onBuilt();
7272        return result;
7273      }
7274
7275      @java.lang.Override
7276      public Builder clone() {
7277        return super.clone();
7278      }
7279      @java.lang.Override
7280      public Builder setField(
7281          com.google.protobuf.Descriptors.FieldDescriptor field,
7282          java.lang.Object value) {
7283        return super.setField(field, value);
7284      }
7285      @java.lang.Override
7286      public Builder clearField(
7287          com.google.protobuf.Descriptors.FieldDescriptor field) {
7288        return super.clearField(field);
7289      }
7290      @java.lang.Override
7291      public Builder clearOneof(
7292          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
7293        return super.clearOneof(oneof);
7294      }
7295      @java.lang.Override
7296      public Builder setRepeatedField(
7297          com.google.protobuf.Descriptors.FieldDescriptor field,
7298          int index, java.lang.Object value) {
7299        return super.setRepeatedField(field, index, value);
7300      }
7301      @java.lang.Override
7302      public Builder addRepeatedField(
7303          com.google.protobuf.Descriptors.FieldDescriptor field,
7304          java.lang.Object value) {
7305        return super.addRepeatedField(field, value);
7306      }
7307      @java.lang.Override
7308      public Builder mergeFrom(com.google.protobuf.Message other) {
7309        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015) {
7310          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015)other);
7311        } else {
7312          super.mergeFrom(other);
7313          return this;
7314        }
7315      }
7316
7317      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 other) {
7318        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015.getDefaultInstance()) return this;
7319        if (!other.getSolver().isEmpty()) {
7320          solver_ = other.solver_;
7321          onChanged();
7322        }
7323        if (other.getStepsize() != 0D) {
7324          setStepsize(other.getStepsize());
7325        }
7326        if (other.getExitCrossingStrategy() != 0) {
7327          setExitCrossingStrategy(other.getExitCrossingStrategy());
7328        }
7329        if (other.getLinkedCellsEnabled() != false) {
7330          setLinkedCellsEnabled(other.getLinkedCellsEnabled());
7331        }
7332        if (other.getCellSize() != 0D) {
7333          setCellSize(other.getCellSize());
7334        }
7335        if (other.hasForcePed()) {
7336          mergeForcePed(other.getForcePed());
7337        }
7338        if (other.hasForceWall()) {
7339          mergeForceWall(other.getForceWall());
7340        }
7341        if (other.hasAgentParams()) {
7342          mergeAgentParams(other.getAgentParams());
7343        }
7344        if (other.getPeriodic() != 0) {
7345          setPeriodic(other.getPeriodic());
7346        }
7347        this.mergeUnknownFields(other.unknownFields);
7348        onChanged();
7349        return this;
7350      }
7351
7352      @java.lang.Override
7353      public final boolean isInitialized() {
7354        return true;
7355      }
7356
7357      @java.lang.Override
7358      public Builder mergeFrom(
7359          com.google.protobuf.CodedInputStream input,
7360          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7361          throws java.io.IOException {
7362        org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 parsedMessage = null;
7363        try {
7364          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
7365        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
7366          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015) e.getUnfinishedMessage();
7367          throw e.unwrapIOException();
7368        } finally {
7369          if (parsedMessage != null) {
7370            mergeFrom(parsedMessage);
7371          }
7372        }
7373        return this;
7374      }
7375
7376      private java.lang.Object solver_ = "";
7377      /**
7378       * <code>string solver = 1;</code>
7379       * @return The solver.
7380       */
7381      public java.lang.String getSolver() {
7382        java.lang.Object ref = solver_;
7383        if (!(ref instanceof java.lang.String)) {
7384          com.google.protobuf.ByteString bs =
7385              (com.google.protobuf.ByteString) ref;
7386          java.lang.String s = bs.toStringUtf8();
7387          solver_ = s;
7388          return s;
7389        } else {
7390          return (java.lang.String) ref;
7391        }
7392      }
7393      /**
7394       * <code>string solver = 1;</code>
7395       * @return The bytes for solver.
7396       */
7397      public com.google.protobuf.ByteString
7398          getSolverBytes() {
7399        java.lang.Object ref = solver_;
7400        if (ref instanceof String) {
7401          com.google.protobuf.ByteString b = 
7402              com.google.protobuf.ByteString.copyFromUtf8(
7403                  (java.lang.String) ref);
7404          solver_ = b;
7405          return b;
7406        } else {
7407          return (com.google.protobuf.ByteString) ref;
7408        }
7409      }
7410      /**
7411       * <code>string solver = 1;</code>
7412       * @param value The solver to set.
7413       * @return This builder for chaining.
7414       */
7415      public Builder setSolver(
7416          java.lang.String value) {
7417        if (value == null) {
7418    throw new NullPointerException();
7419  }
7420  
7421        solver_ = value;
7422        onChanged();
7423        return this;
7424      }
7425      /**
7426       * <code>string solver = 1;</code>
7427       * @return This builder for chaining.
7428       */
7429      public Builder clearSolver() {
7430        
7431        solver_ = getDefaultInstance().getSolver();
7432        onChanged();
7433        return this;
7434      }
7435      /**
7436       * <code>string solver = 1;</code>
7437       * @param value The bytes for solver to set.
7438       * @return This builder for chaining.
7439       */
7440      public Builder setSolverBytes(
7441          com.google.protobuf.ByteString value) {
7442        if (value == null) {
7443    throw new NullPointerException();
7444  }
7445  checkByteStringIsUtf8(value);
7446        
7447        solver_ = value;
7448        onChanged();
7449        return this;
7450      }
7451
7452      private double stepsize_ ;
7453      /**
7454       * <code>double stepsize = 2;</code>
7455       * @return The stepsize.
7456       */
7457      public double getStepsize() {
7458        return stepsize_;
7459      }
7460      /**
7461       * <code>double stepsize = 2;</code>
7462       * @param value The stepsize to set.
7463       * @return This builder for chaining.
7464       */
7465      public Builder setStepsize(double value) {
7466        
7467        stepsize_ = value;
7468        onChanged();
7469        return this;
7470      }
7471      /**
7472       * <code>double stepsize = 2;</code>
7473       * @return This builder for chaining.
7474       */
7475      public Builder clearStepsize() {
7476        
7477        stepsize_ = 0D;
7478        onChanged();
7479        return this;
7480      }
7481
7482      private int exitCrossingStrategy_ ;
7483      /**
7484       * <code>int32 exit_crossing_strategy = 3;</code>
7485       * @return The exitCrossingStrategy.
7486       */
7487      public int getExitCrossingStrategy() {
7488        return exitCrossingStrategy_;
7489      }
7490      /**
7491       * <code>int32 exit_crossing_strategy = 3;</code>
7492       * @param value The exitCrossingStrategy to set.
7493       * @return This builder for chaining.
7494       */
7495      public Builder setExitCrossingStrategy(int value) {
7496        
7497        exitCrossingStrategy_ = value;
7498        onChanged();
7499        return this;
7500      }
7501      /**
7502       * <code>int32 exit_crossing_strategy = 3;</code>
7503       * @return This builder for chaining.
7504       */
7505      public Builder clearExitCrossingStrategy() {
7506        
7507        exitCrossingStrategy_ = 0;
7508        onChanged();
7509        return this;
7510      }
7511
7512      private boolean linkedCellsEnabled_ ;
7513      /**
7514       * <code>bool linked_cells_enabled = 4;</code>
7515       * @return The linkedCellsEnabled.
7516       */
7517      public boolean getLinkedCellsEnabled() {
7518        return linkedCellsEnabled_;
7519      }
7520      /**
7521       * <code>bool linked_cells_enabled = 4;</code>
7522       * @param value The linkedCellsEnabled to set.
7523       * @return This builder for chaining.
7524       */
7525      public Builder setLinkedCellsEnabled(boolean value) {
7526        
7527        linkedCellsEnabled_ = value;
7528        onChanged();
7529        return this;
7530      }
7531      /**
7532       * <code>bool linked_cells_enabled = 4;</code>
7533       * @return This builder for chaining.
7534       */
7535      public Builder clearLinkedCellsEnabled() {
7536        
7537        linkedCellsEnabled_ = false;
7538        onChanged();
7539        return this;
7540      }
7541
7542      private double cellSize_ ;
7543      /**
7544       * <code>double cell_size = 5;</code>
7545       * @return The cellSize.
7546       */
7547      public double getCellSize() {
7548        return cellSize_;
7549      }
7550      /**
7551       * <code>double cell_size = 5;</code>
7552       * @param value The cellSize to set.
7553       * @return This builder for chaining.
7554       */
7555      public Builder setCellSize(double value) {
7556        
7557        cellSize_ = value;
7558        onChanged();
7559        return this;
7560      }
7561      /**
7562       * <code>double cell_size = 5;</code>
7563       * @return This builder for chaining.
7564       */
7565      public Builder clearCellSize() {
7566        
7567        cellSize_ = 0D;
7568        onChanged();
7569        return this;
7570      }
7571
7572      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force forcePed_;
7573      private com.google.protobuf.SingleFieldBuilderV3<
7574          org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015ForceOrBuilder> forcePedBuilder_;
7575      /**
7576       * <code>.hybridsim.Tordeux2015Force force_ped = 6;</code>
7577       * @return Whether the forcePed field is set.
7578       */
7579      public boolean hasForcePed() {
7580        return forcePedBuilder_ != null || forcePed_ != null;
7581      }
7582      /**
7583       * <code>.hybridsim.Tordeux2015Force force_ped = 6;</code>
7584       * @return The forcePed.
7585       */
7586      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force getForcePed() {
7587        if (forcePedBuilder_ == null) {
7588          return forcePed_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.getDefaultInstance() : forcePed_;
7589        } else {
7590          return forcePedBuilder_.getMessage();
7591        }
7592      }
7593      /**
7594       * <code>.hybridsim.Tordeux2015Force force_ped = 6;</code>
7595       */
7596      public Builder setForcePed(org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force value) {
7597        if (forcePedBuilder_ == null) {
7598          if (value == null) {
7599            throw new NullPointerException();
7600          }
7601          forcePed_ = value;
7602          onChanged();
7603        } else {
7604          forcePedBuilder_.setMessage(value);
7605        }
7606
7607        return this;
7608      }
7609      /**
7610       * <code>.hybridsim.Tordeux2015Force force_ped = 6;</code>
7611       */
7612      public Builder setForcePed(
7613          org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.Builder builderForValue) {
7614        if (forcePedBuilder_ == null) {
7615          forcePed_ = builderForValue.build();
7616          onChanged();
7617        } else {
7618          forcePedBuilder_.setMessage(builderForValue.build());
7619        }
7620
7621        return this;
7622      }
7623      /**
7624       * <code>.hybridsim.Tordeux2015Force force_ped = 6;</code>
7625       */
7626      public Builder mergeForcePed(org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force value) {
7627        if (forcePedBuilder_ == null) {
7628          if (forcePed_ != null) {
7629            forcePed_ =
7630              org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.newBuilder(forcePed_).mergeFrom(value).buildPartial();
7631          } else {
7632            forcePed_ = value;
7633          }
7634          onChanged();
7635        } else {
7636          forcePedBuilder_.mergeFrom(value);
7637        }
7638
7639        return this;
7640      }
7641      /**
7642       * <code>.hybridsim.Tordeux2015Force force_ped = 6;</code>
7643       */
7644      public Builder clearForcePed() {
7645        if (forcePedBuilder_ == null) {
7646          forcePed_ = null;
7647          onChanged();
7648        } else {
7649          forcePed_ = null;
7650          forcePedBuilder_ = null;
7651        }
7652
7653        return this;
7654      }
7655      /**
7656       * <code>.hybridsim.Tordeux2015Force force_ped = 6;</code>
7657       */
7658      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.Builder getForcePedBuilder() {
7659        
7660        onChanged();
7661        return getForcePedFieldBuilder().getBuilder();
7662      }
7663      /**
7664       * <code>.hybridsim.Tordeux2015Force force_ped = 6;</code>
7665       */
7666      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015ForceOrBuilder getForcePedOrBuilder() {
7667        if (forcePedBuilder_ != null) {
7668          return forcePedBuilder_.getMessageOrBuilder();
7669        } else {
7670          return forcePed_ == null ?
7671              org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.getDefaultInstance() : forcePed_;
7672        }
7673      }
7674      /**
7675       * <code>.hybridsim.Tordeux2015Force force_ped = 6;</code>
7676       */
7677      private com.google.protobuf.SingleFieldBuilderV3<
7678          org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015ForceOrBuilder> 
7679          getForcePedFieldBuilder() {
7680        if (forcePedBuilder_ == null) {
7681          forcePedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
7682              org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015ForceOrBuilder>(
7683                  getForcePed(),
7684                  getParentForChildren(),
7685                  isClean());
7686          forcePed_ = null;
7687        }
7688        return forcePedBuilder_;
7689      }
7690
7691      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force forceWall_;
7692      private com.google.protobuf.SingleFieldBuilderV3<
7693          org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015ForceOrBuilder> forceWallBuilder_;
7694      /**
7695       * <code>.hybridsim.Tordeux2015Force force_wall = 7;</code>
7696       * @return Whether the forceWall field is set.
7697       */
7698      public boolean hasForceWall() {
7699        return forceWallBuilder_ != null || forceWall_ != null;
7700      }
7701      /**
7702       * <code>.hybridsim.Tordeux2015Force force_wall = 7;</code>
7703       * @return The forceWall.
7704       */
7705      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force getForceWall() {
7706        if (forceWallBuilder_ == null) {
7707          return forceWall_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.getDefaultInstance() : forceWall_;
7708        } else {
7709          return forceWallBuilder_.getMessage();
7710        }
7711      }
7712      /**
7713       * <code>.hybridsim.Tordeux2015Force force_wall = 7;</code>
7714       */
7715      public Builder setForceWall(org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force value) {
7716        if (forceWallBuilder_ == null) {
7717          if (value == null) {
7718            throw new NullPointerException();
7719          }
7720          forceWall_ = value;
7721          onChanged();
7722        } else {
7723          forceWallBuilder_.setMessage(value);
7724        }
7725
7726        return this;
7727      }
7728      /**
7729       * <code>.hybridsim.Tordeux2015Force force_wall = 7;</code>
7730       */
7731      public Builder setForceWall(
7732          org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.Builder builderForValue) {
7733        if (forceWallBuilder_ == null) {
7734          forceWall_ = builderForValue.build();
7735          onChanged();
7736        } else {
7737          forceWallBuilder_.setMessage(builderForValue.build());
7738        }
7739
7740        return this;
7741      }
7742      /**
7743       * <code>.hybridsim.Tordeux2015Force force_wall = 7;</code>
7744       */
7745      public Builder mergeForceWall(org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force value) {
7746        if (forceWallBuilder_ == null) {
7747          if (forceWall_ != null) {
7748            forceWall_ =
7749              org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.newBuilder(forceWall_).mergeFrom(value).buildPartial();
7750          } else {
7751            forceWall_ = value;
7752          }
7753          onChanged();
7754        } else {
7755          forceWallBuilder_.mergeFrom(value);
7756        }
7757
7758        return this;
7759      }
7760      /**
7761       * <code>.hybridsim.Tordeux2015Force force_wall = 7;</code>
7762       */
7763      public Builder clearForceWall() {
7764        if (forceWallBuilder_ == null) {
7765          forceWall_ = null;
7766          onChanged();
7767        } else {
7768          forceWall_ = null;
7769          forceWallBuilder_ = null;
7770        }
7771
7772        return this;
7773      }
7774      /**
7775       * <code>.hybridsim.Tordeux2015Force force_wall = 7;</code>
7776       */
7777      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.Builder getForceWallBuilder() {
7778        
7779        onChanged();
7780        return getForceWallFieldBuilder().getBuilder();
7781      }
7782      /**
7783       * <code>.hybridsim.Tordeux2015Force force_wall = 7;</code>
7784       */
7785      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015ForceOrBuilder getForceWallOrBuilder() {
7786        if (forceWallBuilder_ != null) {
7787          return forceWallBuilder_.getMessageOrBuilder();
7788        } else {
7789          return forceWall_ == null ?
7790              org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.getDefaultInstance() : forceWall_;
7791        }
7792      }
7793      /**
7794       * <code>.hybridsim.Tordeux2015Force force_wall = 7;</code>
7795       */
7796      private com.google.protobuf.SingleFieldBuilderV3<
7797          org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015ForceOrBuilder> 
7798          getForceWallFieldBuilder() {
7799        if (forceWallBuilder_ == null) {
7800          forceWallBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
7801              org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015ForceOrBuilder>(
7802                  getForceWall(),
7803                  getParentForChildren(),
7804                  isClean());
7805          forceWall_ = null;
7806        }
7807        return forceWallBuilder_;
7808      }
7809
7810      private org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams agentParams_;
7811      private com.google.protobuf.SingleFieldBuilderV3<
7812          org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams, org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParamsOrBuilder> agentParamsBuilder_;
7813      /**
7814       * <code>.hybridsim.AgentParams agent_params = 8;</code>
7815       * @return Whether the agentParams field is set.
7816       */
7817      public boolean hasAgentParams() {
7818        return agentParamsBuilder_ != null || agentParams_ != null;
7819      }
7820      /**
7821       * <code>.hybridsim.AgentParams agent_params = 8;</code>
7822       * @return The agentParams.
7823       */
7824      public org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams getAgentParams() {
7825        if (agentParamsBuilder_ == null) {
7826          return agentParams_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.getDefaultInstance() : agentParams_;
7827        } else {
7828          return agentParamsBuilder_.getMessage();
7829        }
7830      }
7831      /**
7832       * <code>.hybridsim.AgentParams agent_params = 8;</code>
7833       */
7834      public Builder setAgentParams(org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams value) {
7835        if (agentParamsBuilder_ == null) {
7836          if (value == null) {
7837            throw new NullPointerException();
7838          }
7839          agentParams_ = value;
7840          onChanged();
7841        } else {
7842          agentParamsBuilder_.setMessage(value);
7843        }
7844
7845        return this;
7846      }
7847      /**
7848       * <code>.hybridsim.AgentParams agent_params = 8;</code>
7849       */
7850      public Builder setAgentParams(
7851          org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.Builder builderForValue) {
7852        if (agentParamsBuilder_ == null) {
7853          agentParams_ = builderForValue.build();
7854          onChanged();
7855        } else {
7856          agentParamsBuilder_.setMessage(builderForValue.build());
7857        }
7858
7859        return this;
7860      }
7861      /**
7862       * <code>.hybridsim.AgentParams agent_params = 8;</code>
7863       */
7864      public Builder mergeAgentParams(org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams value) {
7865        if (agentParamsBuilder_ == null) {
7866          if (agentParams_ != null) {
7867            agentParams_ =
7868              org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.newBuilder(agentParams_).mergeFrom(value).buildPartial();
7869          } else {
7870            agentParams_ = value;
7871          }
7872          onChanged();
7873        } else {
7874          agentParamsBuilder_.mergeFrom(value);
7875        }
7876
7877        return this;
7878      }
7879      /**
7880       * <code>.hybridsim.AgentParams agent_params = 8;</code>
7881       */
7882      public Builder clearAgentParams() {
7883        if (agentParamsBuilder_ == null) {
7884          agentParams_ = null;
7885          onChanged();
7886        } else {
7887          agentParams_ = null;
7888          agentParamsBuilder_ = null;
7889        }
7890
7891        return this;
7892      }
7893      /**
7894       * <code>.hybridsim.AgentParams agent_params = 8;</code>
7895       */
7896      public org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.Builder getAgentParamsBuilder() {
7897        
7898        onChanged();
7899        return getAgentParamsFieldBuilder().getBuilder();
7900      }
7901      /**
7902       * <code>.hybridsim.AgentParams agent_params = 8;</code>
7903       */
7904      public org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParamsOrBuilder getAgentParamsOrBuilder() {
7905        if (agentParamsBuilder_ != null) {
7906          return agentParamsBuilder_.getMessageOrBuilder();
7907        } else {
7908          return agentParams_ == null ?
7909              org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.getDefaultInstance() : agentParams_;
7910        }
7911      }
7912      /**
7913       * <code>.hybridsim.AgentParams agent_params = 8;</code>
7914       */
7915      private com.google.protobuf.SingleFieldBuilderV3<
7916          org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams, org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParamsOrBuilder> 
7917          getAgentParamsFieldBuilder() {
7918        if (agentParamsBuilder_ == null) {
7919          agentParamsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
7920              org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams, org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParamsOrBuilder>(
7921                  getAgentParams(),
7922                  getParentForChildren(),
7923                  isClean());
7924          agentParams_ = null;
7925        }
7926        return agentParamsBuilder_;
7927      }
7928
7929      private int periodic_ ;
7930      /**
7931       * <code>int32 periodic = 9;</code>
7932       * @return The periodic.
7933       */
7934      public int getPeriodic() {
7935        return periodic_;
7936      }
7937      /**
7938       * <code>int32 periodic = 9;</code>
7939       * @param value The periodic to set.
7940       * @return This builder for chaining.
7941       */
7942      public Builder setPeriodic(int value) {
7943        
7944        periodic_ = value;
7945        onChanged();
7946        return this;
7947      }
7948      /**
7949       * <code>int32 periodic = 9;</code>
7950       * @return This builder for chaining.
7951       */
7952      public Builder clearPeriodic() {
7953        
7954        periodic_ = 0;
7955        onChanged();
7956        return this;
7957      }
7958      @java.lang.Override
7959      public final Builder setUnknownFields(
7960          final com.google.protobuf.UnknownFieldSet unknownFields) {
7961        return super.setUnknownFields(unknownFields);
7962      }
7963
7964      @java.lang.Override
7965      public final Builder mergeUnknownFields(
7966          final com.google.protobuf.UnknownFieldSet unknownFields) {
7967        return super.mergeUnknownFields(unknownFields);
7968      }
7969
7970
7971      // @@protoc_insertion_point(builder_scope:hybridsim.Tordeux2015)
7972    }
7973
7974    // @@protoc_insertion_point(class_scope:hybridsim.Tordeux2015)
7975    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 DEFAULT_INSTANCE;
7976    static {
7977      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015();
7978    }
7979
7980    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 getDefaultInstance() {
7981      return DEFAULT_INSTANCE;
7982    }
7983
7984    private static final com.google.protobuf.Parser<Tordeux2015>
7985        PARSER = new com.google.protobuf.AbstractParser<Tordeux2015>() {
7986      @java.lang.Override
7987      public Tordeux2015 parsePartialFrom(
7988          com.google.protobuf.CodedInputStream input,
7989          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7990          throws com.google.protobuf.InvalidProtocolBufferException {
7991        return new Tordeux2015(input, extensionRegistry);
7992      }
7993    };
7994
7995    public static com.google.protobuf.Parser<Tordeux2015> parser() {
7996      return PARSER;
7997    }
7998
7999    @java.lang.Override
8000    public com.google.protobuf.Parser<Tordeux2015> getParserForType() {
8001      return PARSER;
8002    }
8003
8004    @java.lang.Override
8005    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015 getDefaultInstanceForType() {
8006      return DEFAULT_INSTANCE;
8007    }
8008
8009  }
8010
8011  public interface AgentParamsOrBuilder extends
8012      // @@protoc_insertion_point(interface_extends:hybridsim.AgentParams)
8013      com.google.protobuf.MessageOrBuilder {
8014
8015    /**
8016     * <code>.hybridsim.Distribution v0 = 1;</code>
8017     * @return Whether the v0 field is set.
8018     */
8019    boolean hasV0();
8020    /**
8021     * <code>.hybridsim.Distribution v0 = 1;</code>
8022     * @return The v0.
8023     */
8024    org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0();
8025    /**
8026     * <code>.hybridsim.Distribution v0 = 1;</code>
8027     */
8028    org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0OrBuilder();
8029
8030    /**
8031     * <code>.hybridsim.Distribution b_max = 2;</code>
8032     * @return Whether the bMax field is set.
8033     */
8034    boolean hasBMax();
8035    /**
8036     * <code>.hybridsim.Distribution b_max = 2;</code>
8037     * @return The bMax.
8038     */
8039    org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getBMax();
8040    /**
8041     * <code>.hybridsim.Distribution b_max = 2;</code>
8042     */
8043    org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getBMaxOrBuilder();
8044
8045    /**
8046     * <code>.hybridsim.Distribution b_min = 3;</code>
8047     * @return Whether the bMin field is set.
8048     */
8049    boolean hasBMin();
8050    /**
8051     * <code>.hybridsim.Distribution b_min = 3;</code>
8052     * @return The bMin.
8053     */
8054    org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getBMin();
8055    /**
8056     * <code>.hybridsim.Distribution b_min = 3;</code>
8057     */
8058    org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getBMinOrBuilder();
8059
8060    /**
8061     * <code>.hybridsim.Distribution a_min = 4;</code>
8062     * @return Whether the aMin field is set.
8063     */
8064    boolean hasAMin();
8065    /**
8066     * <code>.hybridsim.Distribution a_min = 4;</code>
8067     * @return The aMin.
8068     */
8069    org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getAMin();
8070    /**
8071     * <code>.hybridsim.Distribution a_min = 4;</code>
8072     */
8073    org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getAMinOrBuilder();
8074
8075    /**
8076     * <code>.hybridsim.Distribution tau = 5;</code>
8077     * @return Whether the tau field is set.
8078     */
8079    boolean hasTau();
8080    /**
8081     * <code>.hybridsim.Distribution tau = 5;</code>
8082     * @return The tau.
8083     */
8084    org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getTau();
8085    /**
8086     * <code>.hybridsim.Distribution tau = 5;</code>
8087     */
8088    org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getTauOrBuilder();
8089
8090    /**
8091     * <code>.hybridsim.Distribution atau = 6;</code>
8092     * @return Whether the atau field is set.
8093     */
8094    boolean hasAtau();
8095    /**
8096     * <code>.hybridsim.Distribution atau = 6;</code>
8097     * @return The atau.
8098     */
8099    org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getAtau();
8100    /**
8101     * <code>.hybridsim.Distribution atau = 6;</code>
8102     */
8103    org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getAtauOrBuilder();
8104
8105    /**
8106     * <code>.hybridsim.Distribution v0_upstairs = 7;</code>
8107     * @return Whether the v0Upstairs field is set.
8108     */
8109    boolean hasV0Upstairs();
8110    /**
8111     * <code>.hybridsim.Distribution v0_upstairs = 7;</code>
8112     * @return The v0Upstairs.
8113     */
8114    org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0Upstairs();
8115    /**
8116     * <code>.hybridsim.Distribution v0_upstairs = 7;</code>
8117     */
8118    org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0UpstairsOrBuilder();
8119
8120    /**
8121     * <code>.hybridsim.Distribution v0_downstairs = 8;</code>
8122     * @return Whether the v0Downstairs field is set.
8123     */
8124    boolean hasV0Downstairs();
8125    /**
8126     * <code>.hybridsim.Distribution v0_downstairs = 8;</code>
8127     * @return The v0Downstairs.
8128     */
8129    org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0Downstairs();
8130    /**
8131     * <code>.hybridsim.Distribution v0_downstairs = 8;</code>
8132     */
8133    org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0DownstairsOrBuilder();
8134
8135    /**
8136     * <code>.hybridsim.Distribution v0_escalator_up = 9;</code>
8137     * @return Whether the v0EscalatorUp field is set.
8138     */
8139    boolean hasV0EscalatorUp();
8140    /**
8141     * <code>.hybridsim.Distribution v0_escalator_up = 9;</code>
8142     * @return The v0EscalatorUp.
8143     */
8144    org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0EscalatorUp();
8145    /**
8146     * <code>.hybridsim.Distribution v0_escalator_up = 9;</code>
8147     */
8148    org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0EscalatorUpOrBuilder();
8149
8150    /**
8151     * <code>.hybridsim.Distribution v0_escalator_down = 10;</code>
8152     * @return Whether the v0EscalatorDown field is set.
8153     */
8154    boolean hasV0EscalatorDown();
8155    /**
8156     * <code>.hybridsim.Distribution v0_escalator_down = 10;</code>
8157     * @return The v0EscalatorDown.
8158     */
8159    org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0EscalatorDown();
8160    /**
8161     * <code>.hybridsim.Distribution v0_escalator_down = 10;</code>
8162     */
8163    org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0EscalatorDownOrBuilder();
8164
8165    /**
8166     * <code>.hybridsim.Distribution v0_idle_escalator_up = 11;</code>
8167     * @return Whether the v0IdleEscalatorUp field is set.
8168     */
8169    boolean hasV0IdleEscalatorUp();
8170    /**
8171     * <code>.hybridsim.Distribution v0_idle_escalator_up = 11;</code>
8172     * @return The v0IdleEscalatorUp.
8173     */
8174    org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0IdleEscalatorUp();
8175    /**
8176     * <code>.hybridsim.Distribution v0_idle_escalator_up = 11;</code>
8177     */
8178    org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0IdleEscalatorUpOrBuilder();
8179
8180    /**
8181     * <code>.hybridsim.Distribution v0_idle_escalator_down = 12;</code>
8182     * @return Whether the v0IdleEscalatorDown field is set.
8183     */
8184    boolean hasV0IdleEscalatorDown();
8185    /**
8186     * <code>.hybridsim.Distribution v0_idle_escalator_down = 12;</code>
8187     * @return The v0IdleEscalatorDown.
8188     */
8189    org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0IdleEscalatorDown();
8190    /**
8191     * <code>.hybridsim.Distribution v0_idle_escalator_down = 12;</code>
8192     */
8193    org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0IdleEscalatorDownOrBuilder();
8194
8195    /**
8196     * <code>.hybridsim.Distribution T = 13;</code>
8197     * @return Whether the t field is set.
8198     */
8199    boolean hasT();
8200    /**
8201     * <code>.hybridsim.Distribution T = 13;</code>
8202     * @return The t.
8203     */
8204    org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getT();
8205    /**
8206     * <code>.hybridsim.Distribution T = 13;</code>
8207     */
8208    org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getTOrBuilder();
8209  }
8210  /**
8211   * Protobuf type {@code hybridsim.AgentParams}
8212   */
8213  public  static final class AgentParams extends
8214      com.google.protobuf.GeneratedMessageV3 implements
8215      // @@protoc_insertion_point(message_implements:hybridsim.AgentParams)
8216      AgentParamsOrBuilder {
8217  private static final long serialVersionUID = 0L;
8218    // Use AgentParams.newBuilder() to construct.
8219    private AgentParams(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
8220      super(builder);
8221    }
8222    private AgentParams() {
8223    }
8224
8225    @java.lang.Override
8226    @SuppressWarnings({"unused"})
8227    protected java.lang.Object newInstance(
8228        UnusedPrivateParameter unused) {
8229      return new AgentParams();
8230    }
8231
8232    @java.lang.Override
8233    public final com.google.protobuf.UnknownFieldSet
8234    getUnknownFields() {
8235      return this.unknownFields;
8236    }
8237    private AgentParams(
8238        com.google.protobuf.CodedInputStream input,
8239        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8240        throws com.google.protobuf.InvalidProtocolBufferException {
8241      this();
8242      if (extensionRegistry == null) {
8243        throw new java.lang.NullPointerException();
8244      }
8245      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
8246          com.google.protobuf.UnknownFieldSet.newBuilder();
8247      try {
8248        boolean done = false;
8249        while (!done) {
8250          int tag = input.readTag();
8251          switch (tag) {
8252            case 0:
8253              done = true;
8254              break;
8255            case 10: {
8256              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder subBuilder = null;
8257              if (v0_ != null) {
8258                subBuilder = v0_.toBuilder();
8259              }
8260              v0_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.parser(), extensionRegistry);
8261              if (subBuilder != null) {
8262                subBuilder.mergeFrom(v0_);
8263                v0_ = subBuilder.buildPartial();
8264              }
8265
8266              break;
8267            }
8268            case 18: {
8269              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder subBuilder = null;
8270              if (bMax_ != null) {
8271                subBuilder = bMax_.toBuilder();
8272              }
8273              bMax_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.parser(), extensionRegistry);
8274              if (subBuilder != null) {
8275                subBuilder.mergeFrom(bMax_);
8276                bMax_ = subBuilder.buildPartial();
8277              }
8278
8279              break;
8280            }
8281            case 26: {
8282              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder subBuilder = null;
8283              if (bMin_ != null) {
8284                subBuilder = bMin_.toBuilder();
8285              }
8286              bMin_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.parser(), extensionRegistry);
8287              if (subBuilder != null) {
8288                subBuilder.mergeFrom(bMin_);
8289                bMin_ = subBuilder.buildPartial();
8290              }
8291
8292              break;
8293            }
8294            case 34: {
8295              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder subBuilder = null;
8296              if (aMin_ != null) {
8297                subBuilder = aMin_.toBuilder();
8298              }
8299              aMin_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.parser(), extensionRegistry);
8300              if (subBuilder != null) {
8301                subBuilder.mergeFrom(aMin_);
8302                aMin_ = subBuilder.buildPartial();
8303              }
8304
8305              break;
8306            }
8307            case 42: {
8308              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder subBuilder = null;
8309              if (tau_ != null) {
8310                subBuilder = tau_.toBuilder();
8311              }
8312              tau_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.parser(), extensionRegistry);
8313              if (subBuilder != null) {
8314                subBuilder.mergeFrom(tau_);
8315                tau_ = subBuilder.buildPartial();
8316              }
8317
8318              break;
8319            }
8320            case 50: {
8321              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder subBuilder = null;
8322              if (atau_ != null) {
8323                subBuilder = atau_.toBuilder();
8324              }
8325              atau_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.parser(), extensionRegistry);
8326              if (subBuilder != null) {
8327                subBuilder.mergeFrom(atau_);
8328                atau_ = subBuilder.buildPartial();
8329              }
8330
8331              break;
8332            }
8333            case 58: {
8334              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder subBuilder = null;
8335              if (v0Upstairs_ != null) {
8336                subBuilder = v0Upstairs_.toBuilder();
8337              }
8338              v0Upstairs_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.parser(), extensionRegistry);
8339              if (subBuilder != null) {
8340                subBuilder.mergeFrom(v0Upstairs_);
8341                v0Upstairs_ = subBuilder.buildPartial();
8342              }
8343
8344              break;
8345            }
8346            case 66: {
8347              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder subBuilder = null;
8348              if (v0Downstairs_ != null) {
8349                subBuilder = v0Downstairs_.toBuilder();
8350              }
8351              v0Downstairs_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.parser(), extensionRegistry);
8352              if (subBuilder != null) {
8353                subBuilder.mergeFrom(v0Downstairs_);
8354                v0Downstairs_ = subBuilder.buildPartial();
8355              }
8356
8357              break;
8358            }
8359            case 74: {
8360              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder subBuilder = null;
8361              if (v0EscalatorUp_ != null) {
8362                subBuilder = v0EscalatorUp_.toBuilder();
8363              }
8364              v0EscalatorUp_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.parser(), extensionRegistry);
8365              if (subBuilder != null) {
8366                subBuilder.mergeFrom(v0EscalatorUp_);
8367                v0EscalatorUp_ = subBuilder.buildPartial();
8368              }
8369
8370              break;
8371            }
8372            case 82: {
8373              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder subBuilder = null;
8374              if (v0EscalatorDown_ != null) {
8375                subBuilder = v0EscalatorDown_.toBuilder();
8376              }
8377              v0EscalatorDown_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.parser(), extensionRegistry);
8378              if (subBuilder != null) {
8379                subBuilder.mergeFrom(v0EscalatorDown_);
8380                v0EscalatorDown_ = subBuilder.buildPartial();
8381              }
8382
8383              break;
8384            }
8385            case 90: {
8386              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder subBuilder = null;
8387              if (v0IdleEscalatorUp_ != null) {
8388                subBuilder = v0IdleEscalatorUp_.toBuilder();
8389              }
8390              v0IdleEscalatorUp_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.parser(), extensionRegistry);
8391              if (subBuilder != null) {
8392                subBuilder.mergeFrom(v0IdleEscalatorUp_);
8393                v0IdleEscalatorUp_ = subBuilder.buildPartial();
8394              }
8395
8396              break;
8397            }
8398            case 98: {
8399              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder subBuilder = null;
8400              if (v0IdleEscalatorDown_ != null) {
8401                subBuilder = v0IdleEscalatorDown_.toBuilder();
8402              }
8403              v0IdleEscalatorDown_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.parser(), extensionRegistry);
8404              if (subBuilder != null) {
8405                subBuilder.mergeFrom(v0IdleEscalatorDown_);
8406                v0IdleEscalatorDown_ = subBuilder.buildPartial();
8407              }
8408
8409              break;
8410            }
8411            case 106: {
8412              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder subBuilder = null;
8413              if (t_ != null) {
8414                subBuilder = t_.toBuilder();
8415              }
8416              t_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.parser(), extensionRegistry);
8417              if (subBuilder != null) {
8418                subBuilder.mergeFrom(t_);
8419                t_ = subBuilder.buildPartial();
8420              }
8421
8422              break;
8423            }
8424            default: {
8425              if (!parseUnknownField(
8426                  input, unknownFields, extensionRegistry, tag)) {
8427                done = true;
8428              }
8429              break;
8430            }
8431          }
8432        }
8433      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8434        throw e.setUnfinishedMessage(this);
8435      } catch (java.io.IOException e) {
8436        throw new com.google.protobuf.InvalidProtocolBufferException(
8437            e).setUnfinishedMessage(this);
8438      } finally {
8439        this.unknownFields = unknownFields.build();
8440        makeExtensionsImmutable();
8441      }
8442    }
8443    public static final com.google.protobuf.Descriptors.Descriptor
8444        getDescriptor() {
8445      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_AgentParams_descriptor;
8446    }
8447
8448    @java.lang.Override
8449    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
8450        internalGetFieldAccessorTable() {
8451      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_AgentParams_fieldAccessorTable
8452          .ensureFieldAccessorsInitialized(
8453              org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.Builder.class);
8454    }
8455
8456    public static final int V0_FIELD_NUMBER = 1;
8457    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution v0_;
8458    /**
8459     * <code>.hybridsim.Distribution v0 = 1;</code>
8460     * @return Whether the v0 field is set.
8461     */
8462    public boolean hasV0() {
8463      return v0_ != null;
8464    }
8465    /**
8466     * <code>.hybridsim.Distribution v0 = 1;</code>
8467     * @return The v0.
8468     */
8469    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0() {
8470      return v0_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0_;
8471    }
8472    /**
8473     * <code>.hybridsim.Distribution v0 = 1;</code>
8474     */
8475    public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0OrBuilder() {
8476      return getV0();
8477    }
8478
8479    public static final int B_MAX_FIELD_NUMBER = 2;
8480    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution bMax_;
8481    /**
8482     * <code>.hybridsim.Distribution b_max = 2;</code>
8483     * @return Whether the bMax field is set.
8484     */
8485    public boolean hasBMax() {
8486      return bMax_ != null;
8487    }
8488    /**
8489     * <code>.hybridsim.Distribution b_max = 2;</code>
8490     * @return The bMax.
8491     */
8492    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getBMax() {
8493      return bMax_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : bMax_;
8494    }
8495    /**
8496     * <code>.hybridsim.Distribution b_max = 2;</code>
8497     */
8498    public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getBMaxOrBuilder() {
8499      return getBMax();
8500    }
8501
8502    public static final int B_MIN_FIELD_NUMBER = 3;
8503    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution bMin_;
8504    /**
8505     * <code>.hybridsim.Distribution b_min = 3;</code>
8506     * @return Whether the bMin field is set.
8507     */
8508    public boolean hasBMin() {
8509      return bMin_ != null;
8510    }
8511    /**
8512     * <code>.hybridsim.Distribution b_min = 3;</code>
8513     * @return The bMin.
8514     */
8515    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getBMin() {
8516      return bMin_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : bMin_;
8517    }
8518    /**
8519     * <code>.hybridsim.Distribution b_min = 3;</code>
8520     */
8521    public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getBMinOrBuilder() {
8522      return getBMin();
8523    }
8524
8525    public static final int A_MIN_FIELD_NUMBER = 4;
8526    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution aMin_;
8527    /**
8528     * <code>.hybridsim.Distribution a_min = 4;</code>
8529     * @return Whether the aMin field is set.
8530     */
8531    public boolean hasAMin() {
8532      return aMin_ != null;
8533    }
8534    /**
8535     * <code>.hybridsim.Distribution a_min = 4;</code>
8536     * @return The aMin.
8537     */
8538    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getAMin() {
8539      return aMin_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : aMin_;
8540    }
8541    /**
8542     * <code>.hybridsim.Distribution a_min = 4;</code>
8543     */
8544    public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getAMinOrBuilder() {
8545      return getAMin();
8546    }
8547
8548    public static final int TAU_FIELD_NUMBER = 5;
8549    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution tau_;
8550    /**
8551     * <code>.hybridsim.Distribution tau = 5;</code>
8552     * @return Whether the tau field is set.
8553     */
8554    public boolean hasTau() {
8555      return tau_ != null;
8556    }
8557    /**
8558     * <code>.hybridsim.Distribution tau = 5;</code>
8559     * @return The tau.
8560     */
8561    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getTau() {
8562      return tau_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : tau_;
8563    }
8564    /**
8565     * <code>.hybridsim.Distribution tau = 5;</code>
8566     */
8567    public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getTauOrBuilder() {
8568      return getTau();
8569    }
8570
8571    public static final int ATAU_FIELD_NUMBER = 6;
8572    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution atau_;
8573    /**
8574     * <code>.hybridsim.Distribution atau = 6;</code>
8575     * @return Whether the atau field is set.
8576     */
8577    public boolean hasAtau() {
8578      return atau_ != null;
8579    }
8580    /**
8581     * <code>.hybridsim.Distribution atau = 6;</code>
8582     * @return The atau.
8583     */
8584    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getAtau() {
8585      return atau_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : atau_;
8586    }
8587    /**
8588     * <code>.hybridsim.Distribution atau = 6;</code>
8589     */
8590    public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getAtauOrBuilder() {
8591      return getAtau();
8592    }
8593
8594    public static final int V0_UPSTAIRS_FIELD_NUMBER = 7;
8595    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution v0Upstairs_;
8596    /**
8597     * <code>.hybridsim.Distribution v0_upstairs = 7;</code>
8598     * @return Whether the v0Upstairs field is set.
8599     */
8600    public boolean hasV0Upstairs() {
8601      return v0Upstairs_ != null;
8602    }
8603    /**
8604     * <code>.hybridsim.Distribution v0_upstairs = 7;</code>
8605     * @return The v0Upstairs.
8606     */
8607    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0Upstairs() {
8608      return v0Upstairs_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0Upstairs_;
8609    }
8610    /**
8611     * <code>.hybridsim.Distribution v0_upstairs = 7;</code>
8612     */
8613    public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0UpstairsOrBuilder() {
8614      return getV0Upstairs();
8615    }
8616
8617    public static final int V0_DOWNSTAIRS_FIELD_NUMBER = 8;
8618    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution v0Downstairs_;
8619    /**
8620     * <code>.hybridsim.Distribution v0_downstairs = 8;</code>
8621     * @return Whether the v0Downstairs field is set.
8622     */
8623    public boolean hasV0Downstairs() {
8624      return v0Downstairs_ != null;
8625    }
8626    /**
8627     * <code>.hybridsim.Distribution v0_downstairs = 8;</code>
8628     * @return The v0Downstairs.
8629     */
8630    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0Downstairs() {
8631      return v0Downstairs_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0Downstairs_;
8632    }
8633    /**
8634     * <code>.hybridsim.Distribution v0_downstairs = 8;</code>
8635     */
8636    public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0DownstairsOrBuilder() {
8637      return getV0Downstairs();
8638    }
8639
8640    public static final int V0_ESCALATOR_UP_FIELD_NUMBER = 9;
8641    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution v0EscalatorUp_;
8642    /**
8643     * <code>.hybridsim.Distribution v0_escalator_up = 9;</code>
8644     * @return Whether the v0EscalatorUp field is set.
8645     */
8646    public boolean hasV0EscalatorUp() {
8647      return v0EscalatorUp_ != null;
8648    }
8649    /**
8650     * <code>.hybridsim.Distribution v0_escalator_up = 9;</code>
8651     * @return The v0EscalatorUp.
8652     */
8653    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0EscalatorUp() {
8654      return v0EscalatorUp_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0EscalatorUp_;
8655    }
8656    /**
8657     * <code>.hybridsim.Distribution v0_escalator_up = 9;</code>
8658     */
8659    public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0EscalatorUpOrBuilder() {
8660      return getV0EscalatorUp();
8661    }
8662
8663    public static final int V0_ESCALATOR_DOWN_FIELD_NUMBER = 10;
8664    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution v0EscalatorDown_;
8665    /**
8666     * <code>.hybridsim.Distribution v0_escalator_down = 10;</code>
8667     * @return Whether the v0EscalatorDown field is set.
8668     */
8669    public boolean hasV0EscalatorDown() {
8670      return v0EscalatorDown_ != null;
8671    }
8672    /**
8673     * <code>.hybridsim.Distribution v0_escalator_down = 10;</code>
8674     * @return The v0EscalatorDown.
8675     */
8676    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0EscalatorDown() {
8677      return v0EscalatorDown_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0EscalatorDown_;
8678    }
8679    /**
8680     * <code>.hybridsim.Distribution v0_escalator_down = 10;</code>
8681     */
8682    public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0EscalatorDownOrBuilder() {
8683      return getV0EscalatorDown();
8684    }
8685
8686    public static final int V0_IDLE_ESCALATOR_UP_FIELD_NUMBER = 11;
8687    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution v0IdleEscalatorUp_;
8688    /**
8689     * <code>.hybridsim.Distribution v0_idle_escalator_up = 11;</code>
8690     * @return Whether the v0IdleEscalatorUp field is set.
8691     */
8692    public boolean hasV0IdleEscalatorUp() {
8693      return v0IdleEscalatorUp_ != null;
8694    }
8695    /**
8696     * <code>.hybridsim.Distribution v0_idle_escalator_up = 11;</code>
8697     * @return The v0IdleEscalatorUp.
8698     */
8699    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0IdleEscalatorUp() {
8700      return v0IdleEscalatorUp_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0IdleEscalatorUp_;
8701    }
8702    /**
8703     * <code>.hybridsim.Distribution v0_idle_escalator_up = 11;</code>
8704     */
8705    public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0IdleEscalatorUpOrBuilder() {
8706      return getV0IdleEscalatorUp();
8707    }
8708
8709    public static final int V0_IDLE_ESCALATOR_DOWN_FIELD_NUMBER = 12;
8710    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution v0IdleEscalatorDown_;
8711    /**
8712     * <code>.hybridsim.Distribution v0_idle_escalator_down = 12;</code>
8713     * @return Whether the v0IdleEscalatorDown field is set.
8714     */
8715    public boolean hasV0IdleEscalatorDown() {
8716      return v0IdleEscalatorDown_ != null;
8717    }
8718    /**
8719     * <code>.hybridsim.Distribution v0_idle_escalator_down = 12;</code>
8720     * @return The v0IdleEscalatorDown.
8721     */
8722    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0IdleEscalatorDown() {
8723      return v0IdleEscalatorDown_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0IdleEscalatorDown_;
8724    }
8725    /**
8726     * <code>.hybridsim.Distribution v0_idle_escalator_down = 12;</code>
8727     */
8728    public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0IdleEscalatorDownOrBuilder() {
8729      return getV0IdleEscalatorDown();
8730    }
8731
8732    public static final int T_FIELD_NUMBER = 13;
8733    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution t_;
8734    /**
8735     * <code>.hybridsim.Distribution T = 13;</code>
8736     * @return Whether the t field is set.
8737     */
8738    public boolean hasT() {
8739      return t_ != null;
8740    }
8741    /**
8742     * <code>.hybridsim.Distribution T = 13;</code>
8743     * @return The t.
8744     */
8745    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getT() {
8746      return t_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : t_;
8747    }
8748    /**
8749     * <code>.hybridsim.Distribution T = 13;</code>
8750     */
8751    public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getTOrBuilder() {
8752      return getT();
8753    }
8754
8755    private byte memoizedIsInitialized = -1;
8756    @java.lang.Override
8757    public final boolean isInitialized() {
8758      byte isInitialized = memoizedIsInitialized;
8759      if (isInitialized == 1) return true;
8760      if (isInitialized == 0) return false;
8761
8762      memoizedIsInitialized = 1;
8763      return true;
8764    }
8765
8766    @java.lang.Override
8767    public void writeTo(com.google.protobuf.CodedOutputStream output)
8768                        throws java.io.IOException {
8769      if (v0_ != null) {
8770        output.writeMessage(1, getV0());
8771      }
8772      if (bMax_ != null) {
8773        output.writeMessage(2, getBMax());
8774      }
8775      if (bMin_ != null) {
8776        output.writeMessage(3, getBMin());
8777      }
8778      if (aMin_ != null) {
8779        output.writeMessage(4, getAMin());
8780      }
8781      if (tau_ != null) {
8782        output.writeMessage(5, getTau());
8783      }
8784      if (atau_ != null) {
8785        output.writeMessage(6, getAtau());
8786      }
8787      if (v0Upstairs_ != null) {
8788        output.writeMessage(7, getV0Upstairs());
8789      }
8790      if (v0Downstairs_ != null) {
8791        output.writeMessage(8, getV0Downstairs());
8792      }
8793      if (v0EscalatorUp_ != null) {
8794        output.writeMessage(9, getV0EscalatorUp());
8795      }
8796      if (v0EscalatorDown_ != null) {
8797        output.writeMessage(10, getV0EscalatorDown());
8798      }
8799      if (v0IdleEscalatorUp_ != null) {
8800        output.writeMessage(11, getV0IdleEscalatorUp());
8801      }
8802      if (v0IdleEscalatorDown_ != null) {
8803        output.writeMessage(12, getV0IdleEscalatorDown());
8804      }
8805      if (t_ != null) {
8806        output.writeMessage(13, getT());
8807      }
8808      unknownFields.writeTo(output);
8809    }
8810
8811    @java.lang.Override
8812    public int getSerializedSize() {
8813      int size = memoizedSize;
8814      if (size != -1) return size;
8815
8816      size = 0;
8817      if (v0_ != null) {
8818        size += com.google.protobuf.CodedOutputStream
8819          .computeMessageSize(1, getV0());
8820      }
8821      if (bMax_ != null) {
8822        size += com.google.protobuf.CodedOutputStream
8823          .computeMessageSize(2, getBMax());
8824      }
8825      if (bMin_ != null) {
8826        size += com.google.protobuf.CodedOutputStream
8827          .computeMessageSize(3, getBMin());
8828      }
8829      if (aMin_ != null) {
8830        size += com.google.protobuf.CodedOutputStream
8831          .computeMessageSize(4, getAMin());
8832      }
8833      if (tau_ != null) {
8834        size += com.google.protobuf.CodedOutputStream
8835          .computeMessageSize(5, getTau());
8836      }
8837      if (atau_ != null) {
8838        size += com.google.protobuf.CodedOutputStream
8839          .computeMessageSize(6, getAtau());
8840      }
8841      if (v0Upstairs_ != null) {
8842        size += com.google.protobuf.CodedOutputStream
8843          .computeMessageSize(7, getV0Upstairs());
8844      }
8845      if (v0Downstairs_ != null) {
8846        size += com.google.protobuf.CodedOutputStream
8847          .computeMessageSize(8, getV0Downstairs());
8848      }
8849      if (v0EscalatorUp_ != null) {
8850        size += com.google.protobuf.CodedOutputStream
8851          .computeMessageSize(9, getV0EscalatorUp());
8852      }
8853      if (v0EscalatorDown_ != null) {
8854        size += com.google.protobuf.CodedOutputStream
8855          .computeMessageSize(10, getV0EscalatorDown());
8856      }
8857      if (v0IdleEscalatorUp_ != null) {
8858        size += com.google.protobuf.CodedOutputStream
8859          .computeMessageSize(11, getV0IdleEscalatorUp());
8860      }
8861      if (v0IdleEscalatorDown_ != null) {
8862        size += com.google.protobuf.CodedOutputStream
8863          .computeMessageSize(12, getV0IdleEscalatorDown());
8864      }
8865      if (t_ != null) {
8866        size += com.google.protobuf.CodedOutputStream
8867          .computeMessageSize(13, getT());
8868      }
8869      size += unknownFields.getSerializedSize();
8870      memoizedSize = size;
8871      return size;
8872    }
8873
8874    @java.lang.Override
8875    public boolean equals(final java.lang.Object obj) {
8876      if (obj == this) {
8877       return true;
8878      }
8879      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams)) {
8880        return super.equals(obj);
8881      }
8882      org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams) obj;
8883
8884      if (hasV0() != other.hasV0()) return false;
8885      if (hasV0()) {
8886        if (!getV0()
8887            .equals(other.getV0())) return false;
8888      }
8889      if (hasBMax() != other.hasBMax()) return false;
8890      if (hasBMax()) {
8891        if (!getBMax()
8892            .equals(other.getBMax())) return false;
8893      }
8894      if (hasBMin() != other.hasBMin()) return false;
8895      if (hasBMin()) {
8896        if (!getBMin()
8897            .equals(other.getBMin())) return false;
8898      }
8899      if (hasAMin() != other.hasAMin()) return false;
8900      if (hasAMin()) {
8901        if (!getAMin()
8902            .equals(other.getAMin())) return false;
8903      }
8904      if (hasTau() != other.hasTau()) return false;
8905      if (hasTau()) {
8906        if (!getTau()
8907            .equals(other.getTau())) return false;
8908      }
8909      if (hasAtau() != other.hasAtau()) return false;
8910      if (hasAtau()) {
8911        if (!getAtau()
8912            .equals(other.getAtau())) return false;
8913      }
8914      if (hasV0Upstairs() != other.hasV0Upstairs()) return false;
8915      if (hasV0Upstairs()) {
8916        if (!getV0Upstairs()
8917            .equals(other.getV0Upstairs())) return false;
8918      }
8919      if (hasV0Downstairs() != other.hasV0Downstairs()) return false;
8920      if (hasV0Downstairs()) {
8921        if (!getV0Downstairs()
8922            .equals(other.getV0Downstairs())) return false;
8923      }
8924      if (hasV0EscalatorUp() != other.hasV0EscalatorUp()) return false;
8925      if (hasV0EscalatorUp()) {
8926        if (!getV0EscalatorUp()
8927            .equals(other.getV0EscalatorUp())) return false;
8928      }
8929      if (hasV0EscalatorDown() != other.hasV0EscalatorDown()) return false;
8930      if (hasV0EscalatorDown()) {
8931        if (!getV0EscalatorDown()
8932            .equals(other.getV0EscalatorDown())) return false;
8933      }
8934      if (hasV0IdleEscalatorUp() != other.hasV0IdleEscalatorUp()) return false;
8935      if (hasV0IdleEscalatorUp()) {
8936        if (!getV0IdleEscalatorUp()
8937            .equals(other.getV0IdleEscalatorUp())) return false;
8938      }
8939      if (hasV0IdleEscalatorDown() != other.hasV0IdleEscalatorDown()) return false;
8940      if (hasV0IdleEscalatorDown()) {
8941        if (!getV0IdleEscalatorDown()
8942            .equals(other.getV0IdleEscalatorDown())) return false;
8943      }
8944      if (hasT() != other.hasT()) return false;
8945      if (hasT()) {
8946        if (!getT()
8947            .equals(other.getT())) return false;
8948      }
8949      if (!unknownFields.equals(other.unknownFields)) return false;
8950      return true;
8951    }
8952
8953    @java.lang.Override
8954    public int hashCode() {
8955      if (memoizedHashCode != 0) {
8956        return memoizedHashCode;
8957      }
8958      int hash = 41;
8959      hash = (19 * hash) + getDescriptor().hashCode();
8960      if (hasV0()) {
8961        hash = (37 * hash) + V0_FIELD_NUMBER;
8962        hash = (53 * hash) + getV0().hashCode();
8963      }
8964      if (hasBMax()) {
8965        hash = (37 * hash) + B_MAX_FIELD_NUMBER;
8966        hash = (53 * hash) + getBMax().hashCode();
8967      }
8968      if (hasBMin()) {
8969        hash = (37 * hash) + B_MIN_FIELD_NUMBER;
8970        hash = (53 * hash) + getBMin().hashCode();
8971      }
8972      if (hasAMin()) {
8973        hash = (37 * hash) + A_MIN_FIELD_NUMBER;
8974        hash = (53 * hash) + getAMin().hashCode();
8975      }
8976      if (hasTau()) {
8977        hash = (37 * hash) + TAU_FIELD_NUMBER;
8978        hash = (53 * hash) + getTau().hashCode();
8979      }
8980      if (hasAtau()) {
8981        hash = (37 * hash) + ATAU_FIELD_NUMBER;
8982        hash = (53 * hash) + getAtau().hashCode();
8983      }
8984      if (hasV0Upstairs()) {
8985        hash = (37 * hash) + V0_UPSTAIRS_FIELD_NUMBER;
8986        hash = (53 * hash) + getV0Upstairs().hashCode();
8987      }
8988      if (hasV0Downstairs()) {
8989        hash = (37 * hash) + V0_DOWNSTAIRS_FIELD_NUMBER;
8990        hash = (53 * hash) + getV0Downstairs().hashCode();
8991      }
8992      if (hasV0EscalatorUp()) {
8993        hash = (37 * hash) + V0_ESCALATOR_UP_FIELD_NUMBER;
8994        hash = (53 * hash) + getV0EscalatorUp().hashCode();
8995      }
8996      if (hasV0EscalatorDown()) {
8997        hash = (37 * hash) + V0_ESCALATOR_DOWN_FIELD_NUMBER;
8998        hash = (53 * hash) + getV0EscalatorDown().hashCode();
8999      }
9000      if (hasV0IdleEscalatorUp()) {
9001        hash = (37 * hash) + V0_IDLE_ESCALATOR_UP_FIELD_NUMBER;
9002        hash = (53 * hash) + getV0IdleEscalatorUp().hashCode();
9003      }
9004      if (hasV0IdleEscalatorDown()) {
9005        hash = (37 * hash) + V0_IDLE_ESCALATOR_DOWN_FIELD_NUMBER;
9006        hash = (53 * hash) + getV0IdleEscalatorDown().hashCode();
9007      }
9008      if (hasT()) {
9009        hash = (37 * hash) + T_FIELD_NUMBER;
9010        hash = (53 * hash) + getT().hashCode();
9011      }
9012      hash = (29 * hash) + unknownFields.hashCode();
9013      memoizedHashCode = hash;
9014      return hash;
9015    }
9016
9017    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams parseFrom(
9018        java.nio.ByteBuffer data)
9019        throws com.google.protobuf.InvalidProtocolBufferException {
9020      return PARSER.parseFrom(data);
9021    }
9022    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams parseFrom(
9023        java.nio.ByteBuffer data,
9024        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9025        throws com.google.protobuf.InvalidProtocolBufferException {
9026      return PARSER.parseFrom(data, extensionRegistry);
9027    }
9028    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams parseFrom(
9029        com.google.protobuf.ByteString data)
9030        throws com.google.protobuf.InvalidProtocolBufferException {
9031      return PARSER.parseFrom(data);
9032    }
9033    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams parseFrom(
9034        com.google.protobuf.ByteString data,
9035        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9036        throws com.google.protobuf.InvalidProtocolBufferException {
9037      return PARSER.parseFrom(data, extensionRegistry);
9038    }
9039    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams parseFrom(byte[] data)
9040        throws com.google.protobuf.InvalidProtocolBufferException {
9041      return PARSER.parseFrom(data);
9042    }
9043    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams parseFrom(
9044        byte[] data,
9045        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9046        throws com.google.protobuf.InvalidProtocolBufferException {
9047      return PARSER.parseFrom(data, extensionRegistry);
9048    }
9049    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams parseFrom(java.io.InputStream input)
9050        throws java.io.IOException {
9051      return com.google.protobuf.GeneratedMessageV3
9052          .parseWithIOException(PARSER, input);
9053    }
9054    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams parseFrom(
9055        java.io.InputStream input,
9056        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9057        throws java.io.IOException {
9058      return com.google.protobuf.GeneratedMessageV3
9059          .parseWithIOException(PARSER, input, extensionRegistry);
9060    }
9061    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams parseDelimitedFrom(java.io.InputStream input)
9062        throws java.io.IOException {
9063      return com.google.protobuf.GeneratedMessageV3
9064          .parseDelimitedWithIOException(PARSER, input);
9065    }
9066    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams parseDelimitedFrom(
9067        java.io.InputStream input,
9068        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9069        throws java.io.IOException {
9070      return com.google.protobuf.GeneratedMessageV3
9071          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
9072    }
9073    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams parseFrom(
9074        com.google.protobuf.CodedInputStream input)
9075        throws java.io.IOException {
9076      return com.google.protobuf.GeneratedMessageV3
9077          .parseWithIOException(PARSER, input);
9078    }
9079    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams parseFrom(
9080        com.google.protobuf.CodedInputStream input,
9081        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9082        throws java.io.IOException {
9083      return com.google.protobuf.GeneratedMessageV3
9084          .parseWithIOException(PARSER, input, extensionRegistry);
9085    }
9086
9087    @java.lang.Override
9088    public Builder newBuilderForType() { return newBuilder(); }
9089    public static Builder newBuilder() {
9090      return DEFAULT_INSTANCE.toBuilder();
9091    }
9092    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams prototype) {
9093      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
9094    }
9095    @java.lang.Override
9096    public Builder toBuilder() {
9097      return this == DEFAULT_INSTANCE
9098          ? new Builder() : new Builder().mergeFrom(this);
9099    }
9100
9101    @java.lang.Override
9102    protected Builder newBuilderForType(
9103        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
9104      Builder builder = new Builder(parent);
9105      return builder;
9106    }
9107    /**
9108     * Protobuf type {@code hybridsim.AgentParams}
9109     */
9110    public static final class Builder extends
9111        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
9112        // @@protoc_insertion_point(builder_implements:hybridsim.AgentParams)
9113        org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParamsOrBuilder {
9114      public static final com.google.protobuf.Descriptors.Descriptor
9115          getDescriptor() {
9116        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_AgentParams_descriptor;
9117      }
9118
9119      @java.lang.Override
9120      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
9121          internalGetFieldAccessorTable() {
9122        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_AgentParams_fieldAccessorTable
9123            .ensureFieldAccessorsInitialized(
9124                org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.Builder.class);
9125      }
9126
9127      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.newBuilder()
9128      private Builder() {
9129        maybeForceBuilderInitialization();
9130      }
9131
9132      private Builder(
9133          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
9134        super(parent);
9135        maybeForceBuilderInitialization();
9136      }
9137      private void maybeForceBuilderInitialization() {
9138        if (com.google.protobuf.GeneratedMessageV3
9139                .alwaysUseFieldBuilders) {
9140        }
9141      }
9142      @java.lang.Override
9143      public Builder clear() {
9144        super.clear();
9145        if (v0Builder_ == null) {
9146          v0_ = null;
9147        } else {
9148          v0_ = null;
9149          v0Builder_ = null;
9150        }
9151        if (bMaxBuilder_ == null) {
9152          bMax_ = null;
9153        } else {
9154          bMax_ = null;
9155          bMaxBuilder_ = null;
9156        }
9157        if (bMinBuilder_ == null) {
9158          bMin_ = null;
9159        } else {
9160          bMin_ = null;
9161          bMinBuilder_ = null;
9162        }
9163        if (aMinBuilder_ == null) {
9164          aMin_ = null;
9165        } else {
9166          aMin_ = null;
9167          aMinBuilder_ = null;
9168        }
9169        if (tauBuilder_ == null) {
9170          tau_ = null;
9171        } else {
9172          tau_ = null;
9173          tauBuilder_ = null;
9174        }
9175        if (atauBuilder_ == null) {
9176          atau_ = null;
9177        } else {
9178          atau_ = null;
9179          atauBuilder_ = null;
9180        }
9181        if (v0UpstairsBuilder_ == null) {
9182          v0Upstairs_ = null;
9183        } else {
9184          v0Upstairs_ = null;
9185          v0UpstairsBuilder_ = null;
9186        }
9187        if (v0DownstairsBuilder_ == null) {
9188          v0Downstairs_ = null;
9189        } else {
9190          v0Downstairs_ = null;
9191          v0DownstairsBuilder_ = null;
9192        }
9193        if (v0EscalatorUpBuilder_ == null) {
9194          v0EscalatorUp_ = null;
9195        } else {
9196          v0EscalatorUp_ = null;
9197          v0EscalatorUpBuilder_ = null;
9198        }
9199        if (v0EscalatorDownBuilder_ == null) {
9200          v0EscalatorDown_ = null;
9201        } else {
9202          v0EscalatorDown_ = null;
9203          v0EscalatorDownBuilder_ = null;
9204        }
9205        if (v0IdleEscalatorUpBuilder_ == null) {
9206          v0IdleEscalatorUp_ = null;
9207        } else {
9208          v0IdleEscalatorUp_ = null;
9209          v0IdleEscalatorUpBuilder_ = null;
9210        }
9211        if (v0IdleEscalatorDownBuilder_ == null) {
9212          v0IdleEscalatorDown_ = null;
9213        } else {
9214          v0IdleEscalatorDown_ = null;
9215          v0IdleEscalatorDownBuilder_ = null;
9216        }
9217        if (tBuilder_ == null) {
9218          t_ = null;
9219        } else {
9220          t_ = null;
9221          tBuilder_ = null;
9222        }
9223        return this;
9224      }
9225
9226      @java.lang.Override
9227      public com.google.protobuf.Descriptors.Descriptor
9228          getDescriptorForType() {
9229        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_AgentParams_descriptor;
9230      }
9231
9232      @java.lang.Override
9233      public org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams getDefaultInstanceForType() {
9234        return org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.getDefaultInstance();
9235      }
9236
9237      @java.lang.Override
9238      public org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams build() {
9239        org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams result = buildPartial();
9240        if (!result.isInitialized()) {
9241          throw newUninitializedMessageException(result);
9242        }
9243        return result;
9244      }
9245
9246      @java.lang.Override
9247      public org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams buildPartial() {
9248        org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams(this);
9249        if (v0Builder_ == null) {
9250          result.v0_ = v0_;
9251        } else {
9252          result.v0_ = v0Builder_.build();
9253        }
9254        if (bMaxBuilder_ == null) {
9255          result.bMax_ = bMax_;
9256        } else {
9257          result.bMax_ = bMaxBuilder_.build();
9258        }
9259        if (bMinBuilder_ == null) {
9260          result.bMin_ = bMin_;
9261        } else {
9262          result.bMin_ = bMinBuilder_.build();
9263        }
9264        if (aMinBuilder_ == null) {
9265          result.aMin_ = aMin_;
9266        } else {
9267          result.aMin_ = aMinBuilder_.build();
9268        }
9269        if (tauBuilder_ == null) {
9270          result.tau_ = tau_;
9271        } else {
9272          result.tau_ = tauBuilder_.build();
9273        }
9274        if (atauBuilder_ == null) {
9275          result.atau_ = atau_;
9276        } else {
9277          result.atau_ = atauBuilder_.build();
9278        }
9279        if (v0UpstairsBuilder_ == null) {
9280          result.v0Upstairs_ = v0Upstairs_;
9281        } else {
9282          result.v0Upstairs_ = v0UpstairsBuilder_.build();
9283        }
9284        if (v0DownstairsBuilder_ == null) {
9285          result.v0Downstairs_ = v0Downstairs_;
9286        } else {
9287          result.v0Downstairs_ = v0DownstairsBuilder_.build();
9288        }
9289        if (v0EscalatorUpBuilder_ == null) {
9290          result.v0EscalatorUp_ = v0EscalatorUp_;
9291        } else {
9292          result.v0EscalatorUp_ = v0EscalatorUpBuilder_.build();
9293        }
9294        if (v0EscalatorDownBuilder_ == null) {
9295          result.v0EscalatorDown_ = v0EscalatorDown_;
9296        } else {
9297          result.v0EscalatorDown_ = v0EscalatorDownBuilder_.build();
9298        }
9299        if (v0IdleEscalatorUpBuilder_ == null) {
9300          result.v0IdleEscalatorUp_ = v0IdleEscalatorUp_;
9301        } else {
9302          result.v0IdleEscalatorUp_ = v0IdleEscalatorUpBuilder_.build();
9303        }
9304        if (v0IdleEscalatorDownBuilder_ == null) {
9305          result.v0IdleEscalatorDown_ = v0IdleEscalatorDown_;
9306        } else {
9307          result.v0IdleEscalatorDown_ = v0IdleEscalatorDownBuilder_.build();
9308        }
9309        if (tBuilder_ == null) {
9310          result.t_ = t_;
9311        } else {
9312          result.t_ = tBuilder_.build();
9313        }
9314        onBuilt();
9315        return result;
9316      }
9317
9318      @java.lang.Override
9319      public Builder clone() {
9320        return super.clone();
9321      }
9322      @java.lang.Override
9323      public Builder setField(
9324          com.google.protobuf.Descriptors.FieldDescriptor field,
9325          java.lang.Object value) {
9326        return super.setField(field, value);
9327      }
9328      @java.lang.Override
9329      public Builder clearField(
9330          com.google.protobuf.Descriptors.FieldDescriptor field) {
9331        return super.clearField(field);
9332      }
9333      @java.lang.Override
9334      public Builder clearOneof(
9335          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
9336        return super.clearOneof(oneof);
9337      }
9338      @java.lang.Override
9339      public Builder setRepeatedField(
9340          com.google.protobuf.Descriptors.FieldDescriptor field,
9341          int index, java.lang.Object value) {
9342        return super.setRepeatedField(field, index, value);
9343      }
9344      @java.lang.Override
9345      public Builder addRepeatedField(
9346          com.google.protobuf.Descriptors.FieldDescriptor field,
9347          java.lang.Object value) {
9348        return super.addRepeatedField(field, value);
9349      }
9350      @java.lang.Override
9351      public Builder mergeFrom(com.google.protobuf.Message other) {
9352        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams) {
9353          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams)other);
9354        } else {
9355          super.mergeFrom(other);
9356          return this;
9357        }
9358      }
9359
9360      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams other) {
9361        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams.getDefaultInstance()) return this;
9362        if (other.hasV0()) {
9363          mergeV0(other.getV0());
9364        }
9365        if (other.hasBMax()) {
9366          mergeBMax(other.getBMax());
9367        }
9368        if (other.hasBMin()) {
9369          mergeBMin(other.getBMin());
9370        }
9371        if (other.hasAMin()) {
9372          mergeAMin(other.getAMin());
9373        }
9374        if (other.hasTau()) {
9375          mergeTau(other.getTau());
9376        }
9377        if (other.hasAtau()) {
9378          mergeAtau(other.getAtau());
9379        }
9380        if (other.hasV0Upstairs()) {
9381          mergeV0Upstairs(other.getV0Upstairs());
9382        }
9383        if (other.hasV0Downstairs()) {
9384          mergeV0Downstairs(other.getV0Downstairs());
9385        }
9386        if (other.hasV0EscalatorUp()) {
9387          mergeV0EscalatorUp(other.getV0EscalatorUp());
9388        }
9389        if (other.hasV0EscalatorDown()) {
9390          mergeV0EscalatorDown(other.getV0EscalatorDown());
9391        }
9392        if (other.hasV0IdleEscalatorUp()) {
9393          mergeV0IdleEscalatorUp(other.getV0IdleEscalatorUp());
9394        }
9395        if (other.hasV0IdleEscalatorDown()) {
9396          mergeV0IdleEscalatorDown(other.getV0IdleEscalatorDown());
9397        }
9398        if (other.hasT()) {
9399          mergeT(other.getT());
9400        }
9401        this.mergeUnknownFields(other.unknownFields);
9402        onChanged();
9403        return this;
9404      }
9405
9406      @java.lang.Override
9407      public final boolean isInitialized() {
9408        return true;
9409      }
9410
9411      @java.lang.Override
9412      public Builder mergeFrom(
9413          com.google.protobuf.CodedInputStream input,
9414          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9415          throws java.io.IOException {
9416        org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams parsedMessage = null;
9417        try {
9418          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
9419        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
9420          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams) e.getUnfinishedMessage();
9421          throw e.unwrapIOException();
9422        } finally {
9423          if (parsedMessage != null) {
9424            mergeFrom(parsedMessage);
9425          }
9426        }
9427        return this;
9428      }
9429
9430      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution v0_;
9431      private com.google.protobuf.SingleFieldBuilderV3<
9432          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> v0Builder_;
9433      /**
9434       * <code>.hybridsim.Distribution v0 = 1;</code>
9435       * @return Whether the v0 field is set.
9436       */
9437      public boolean hasV0() {
9438        return v0Builder_ != null || v0_ != null;
9439      }
9440      /**
9441       * <code>.hybridsim.Distribution v0 = 1;</code>
9442       * @return The v0.
9443       */
9444      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0() {
9445        if (v0Builder_ == null) {
9446          return v0_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0_;
9447        } else {
9448          return v0Builder_.getMessage();
9449        }
9450      }
9451      /**
9452       * <code>.hybridsim.Distribution v0 = 1;</code>
9453       */
9454      public Builder setV0(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
9455        if (v0Builder_ == null) {
9456          if (value == null) {
9457            throw new NullPointerException();
9458          }
9459          v0_ = value;
9460          onChanged();
9461        } else {
9462          v0Builder_.setMessage(value);
9463        }
9464
9465        return this;
9466      }
9467      /**
9468       * <code>.hybridsim.Distribution v0 = 1;</code>
9469       */
9470      public Builder setV0(
9471          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder builderForValue) {
9472        if (v0Builder_ == null) {
9473          v0_ = builderForValue.build();
9474          onChanged();
9475        } else {
9476          v0Builder_.setMessage(builderForValue.build());
9477        }
9478
9479        return this;
9480      }
9481      /**
9482       * <code>.hybridsim.Distribution v0 = 1;</code>
9483       */
9484      public Builder mergeV0(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
9485        if (v0Builder_ == null) {
9486          if (v0_ != null) {
9487            v0_ =
9488              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.newBuilder(v0_).mergeFrom(value).buildPartial();
9489          } else {
9490            v0_ = value;
9491          }
9492          onChanged();
9493        } else {
9494          v0Builder_.mergeFrom(value);
9495        }
9496
9497        return this;
9498      }
9499      /**
9500       * <code>.hybridsim.Distribution v0 = 1;</code>
9501       */
9502      public Builder clearV0() {
9503        if (v0Builder_ == null) {
9504          v0_ = null;
9505          onChanged();
9506        } else {
9507          v0_ = null;
9508          v0Builder_ = null;
9509        }
9510
9511        return this;
9512      }
9513      /**
9514       * <code>.hybridsim.Distribution v0 = 1;</code>
9515       */
9516      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder getV0Builder() {
9517        
9518        onChanged();
9519        return getV0FieldBuilder().getBuilder();
9520      }
9521      /**
9522       * <code>.hybridsim.Distribution v0 = 1;</code>
9523       */
9524      public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0OrBuilder() {
9525        if (v0Builder_ != null) {
9526          return v0Builder_.getMessageOrBuilder();
9527        } else {
9528          return v0_ == null ?
9529              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0_;
9530        }
9531      }
9532      /**
9533       * <code>.hybridsim.Distribution v0 = 1;</code>
9534       */
9535      private com.google.protobuf.SingleFieldBuilderV3<
9536          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> 
9537          getV0FieldBuilder() {
9538        if (v0Builder_ == null) {
9539          v0Builder_ = new com.google.protobuf.SingleFieldBuilderV3<
9540              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder>(
9541                  getV0(),
9542                  getParentForChildren(),
9543                  isClean());
9544          v0_ = null;
9545        }
9546        return v0Builder_;
9547      }
9548
9549      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution bMax_;
9550      private com.google.protobuf.SingleFieldBuilderV3<
9551          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> bMaxBuilder_;
9552      /**
9553       * <code>.hybridsim.Distribution b_max = 2;</code>
9554       * @return Whether the bMax field is set.
9555       */
9556      public boolean hasBMax() {
9557        return bMaxBuilder_ != null || bMax_ != null;
9558      }
9559      /**
9560       * <code>.hybridsim.Distribution b_max = 2;</code>
9561       * @return The bMax.
9562       */
9563      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getBMax() {
9564        if (bMaxBuilder_ == null) {
9565          return bMax_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : bMax_;
9566        } else {
9567          return bMaxBuilder_.getMessage();
9568        }
9569      }
9570      /**
9571       * <code>.hybridsim.Distribution b_max = 2;</code>
9572       */
9573      public Builder setBMax(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
9574        if (bMaxBuilder_ == null) {
9575          if (value == null) {
9576            throw new NullPointerException();
9577          }
9578          bMax_ = value;
9579          onChanged();
9580        } else {
9581          bMaxBuilder_.setMessage(value);
9582        }
9583
9584        return this;
9585      }
9586      /**
9587       * <code>.hybridsim.Distribution b_max = 2;</code>
9588       */
9589      public Builder setBMax(
9590          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder builderForValue) {
9591        if (bMaxBuilder_ == null) {
9592          bMax_ = builderForValue.build();
9593          onChanged();
9594        } else {
9595          bMaxBuilder_.setMessage(builderForValue.build());
9596        }
9597
9598        return this;
9599      }
9600      /**
9601       * <code>.hybridsim.Distribution b_max = 2;</code>
9602       */
9603      public Builder mergeBMax(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
9604        if (bMaxBuilder_ == null) {
9605          if (bMax_ != null) {
9606            bMax_ =
9607              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.newBuilder(bMax_).mergeFrom(value).buildPartial();
9608          } else {
9609            bMax_ = value;
9610          }
9611          onChanged();
9612        } else {
9613          bMaxBuilder_.mergeFrom(value);
9614        }
9615
9616        return this;
9617      }
9618      /**
9619       * <code>.hybridsim.Distribution b_max = 2;</code>
9620       */
9621      public Builder clearBMax() {
9622        if (bMaxBuilder_ == null) {
9623          bMax_ = null;
9624          onChanged();
9625        } else {
9626          bMax_ = null;
9627          bMaxBuilder_ = null;
9628        }
9629
9630        return this;
9631      }
9632      /**
9633       * <code>.hybridsim.Distribution b_max = 2;</code>
9634       */
9635      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder getBMaxBuilder() {
9636        
9637        onChanged();
9638        return getBMaxFieldBuilder().getBuilder();
9639      }
9640      /**
9641       * <code>.hybridsim.Distribution b_max = 2;</code>
9642       */
9643      public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getBMaxOrBuilder() {
9644        if (bMaxBuilder_ != null) {
9645          return bMaxBuilder_.getMessageOrBuilder();
9646        } else {
9647          return bMax_ == null ?
9648              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : bMax_;
9649        }
9650      }
9651      /**
9652       * <code>.hybridsim.Distribution b_max = 2;</code>
9653       */
9654      private com.google.protobuf.SingleFieldBuilderV3<
9655          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> 
9656          getBMaxFieldBuilder() {
9657        if (bMaxBuilder_ == null) {
9658          bMaxBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
9659              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder>(
9660                  getBMax(),
9661                  getParentForChildren(),
9662                  isClean());
9663          bMax_ = null;
9664        }
9665        return bMaxBuilder_;
9666      }
9667
9668      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution bMin_;
9669      private com.google.protobuf.SingleFieldBuilderV3<
9670          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> bMinBuilder_;
9671      /**
9672       * <code>.hybridsim.Distribution b_min = 3;</code>
9673       * @return Whether the bMin field is set.
9674       */
9675      public boolean hasBMin() {
9676        return bMinBuilder_ != null || bMin_ != null;
9677      }
9678      /**
9679       * <code>.hybridsim.Distribution b_min = 3;</code>
9680       * @return The bMin.
9681       */
9682      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getBMin() {
9683        if (bMinBuilder_ == null) {
9684          return bMin_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : bMin_;
9685        } else {
9686          return bMinBuilder_.getMessage();
9687        }
9688      }
9689      /**
9690       * <code>.hybridsim.Distribution b_min = 3;</code>
9691       */
9692      public Builder setBMin(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
9693        if (bMinBuilder_ == null) {
9694          if (value == null) {
9695            throw new NullPointerException();
9696          }
9697          bMin_ = value;
9698          onChanged();
9699        } else {
9700          bMinBuilder_.setMessage(value);
9701        }
9702
9703        return this;
9704      }
9705      /**
9706       * <code>.hybridsim.Distribution b_min = 3;</code>
9707       */
9708      public Builder setBMin(
9709          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder builderForValue) {
9710        if (bMinBuilder_ == null) {
9711          bMin_ = builderForValue.build();
9712          onChanged();
9713        } else {
9714          bMinBuilder_.setMessage(builderForValue.build());
9715        }
9716
9717        return this;
9718      }
9719      /**
9720       * <code>.hybridsim.Distribution b_min = 3;</code>
9721       */
9722      public Builder mergeBMin(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
9723        if (bMinBuilder_ == null) {
9724          if (bMin_ != null) {
9725            bMin_ =
9726              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.newBuilder(bMin_).mergeFrom(value).buildPartial();
9727          } else {
9728            bMin_ = value;
9729          }
9730          onChanged();
9731        } else {
9732          bMinBuilder_.mergeFrom(value);
9733        }
9734
9735        return this;
9736      }
9737      /**
9738       * <code>.hybridsim.Distribution b_min = 3;</code>
9739       */
9740      public Builder clearBMin() {
9741        if (bMinBuilder_ == null) {
9742          bMin_ = null;
9743          onChanged();
9744        } else {
9745          bMin_ = null;
9746          bMinBuilder_ = null;
9747        }
9748
9749        return this;
9750      }
9751      /**
9752       * <code>.hybridsim.Distribution b_min = 3;</code>
9753       */
9754      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder getBMinBuilder() {
9755        
9756        onChanged();
9757        return getBMinFieldBuilder().getBuilder();
9758      }
9759      /**
9760       * <code>.hybridsim.Distribution b_min = 3;</code>
9761       */
9762      public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getBMinOrBuilder() {
9763        if (bMinBuilder_ != null) {
9764          return bMinBuilder_.getMessageOrBuilder();
9765        } else {
9766          return bMin_ == null ?
9767              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : bMin_;
9768        }
9769      }
9770      /**
9771       * <code>.hybridsim.Distribution b_min = 3;</code>
9772       */
9773      private com.google.protobuf.SingleFieldBuilderV3<
9774          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> 
9775          getBMinFieldBuilder() {
9776        if (bMinBuilder_ == null) {
9777          bMinBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
9778              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder>(
9779                  getBMin(),
9780                  getParentForChildren(),
9781                  isClean());
9782          bMin_ = null;
9783        }
9784        return bMinBuilder_;
9785      }
9786
9787      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution aMin_;
9788      private com.google.protobuf.SingleFieldBuilderV3<
9789          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> aMinBuilder_;
9790      /**
9791       * <code>.hybridsim.Distribution a_min = 4;</code>
9792       * @return Whether the aMin field is set.
9793       */
9794      public boolean hasAMin() {
9795        return aMinBuilder_ != null || aMin_ != null;
9796      }
9797      /**
9798       * <code>.hybridsim.Distribution a_min = 4;</code>
9799       * @return The aMin.
9800       */
9801      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getAMin() {
9802        if (aMinBuilder_ == null) {
9803          return aMin_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : aMin_;
9804        } else {
9805          return aMinBuilder_.getMessage();
9806        }
9807      }
9808      /**
9809       * <code>.hybridsim.Distribution a_min = 4;</code>
9810       */
9811      public Builder setAMin(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
9812        if (aMinBuilder_ == null) {
9813          if (value == null) {
9814            throw new NullPointerException();
9815          }
9816          aMin_ = value;
9817          onChanged();
9818        } else {
9819          aMinBuilder_.setMessage(value);
9820        }
9821
9822        return this;
9823      }
9824      /**
9825       * <code>.hybridsim.Distribution a_min = 4;</code>
9826       */
9827      public Builder setAMin(
9828          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder builderForValue) {
9829        if (aMinBuilder_ == null) {
9830          aMin_ = builderForValue.build();
9831          onChanged();
9832        } else {
9833          aMinBuilder_.setMessage(builderForValue.build());
9834        }
9835
9836        return this;
9837      }
9838      /**
9839       * <code>.hybridsim.Distribution a_min = 4;</code>
9840       */
9841      public Builder mergeAMin(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
9842        if (aMinBuilder_ == null) {
9843          if (aMin_ != null) {
9844            aMin_ =
9845              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.newBuilder(aMin_).mergeFrom(value).buildPartial();
9846          } else {
9847            aMin_ = value;
9848          }
9849          onChanged();
9850        } else {
9851          aMinBuilder_.mergeFrom(value);
9852        }
9853
9854        return this;
9855      }
9856      /**
9857       * <code>.hybridsim.Distribution a_min = 4;</code>
9858       */
9859      public Builder clearAMin() {
9860        if (aMinBuilder_ == null) {
9861          aMin_ = null;
9862          onChanged();
9863        } else {
9864          aMin_ = null;
9865          aMinBuilder_ = null;
9866        }
9867
9868        return this;
9869      }
9870      /**
9871       * <code>.hybridsim.Distribution a_min = 4;</code>
9872       */
9873      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder getAMinBuilder() {
9874        
9875        onChanged();
9876        return getAMinFieldBuilder().getBuilder();
9877      }
9878      /**
9879       * <code>.hybridsim.Distribution a_min = 4;</code>
9880       */
9881      public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getAMinOrBuilder() {
9882        if (aMinBuilder_ != null) {
9883          return aMinBuilder_.getMessageOrBuilder();
9884        } else {
9885          return aMin_ == null ?
9886              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : aMin_;
9887        }
9888      }
9889      /**
9890       * <code>.hybridsim.Distribution a_min = 4;</code>
9891       */
9892      private com.google.protobuf.SingleFieldBuilderV3<
9893          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> 
9894          getAMinFieldBuilder() {
9895        if (aMinBuilder_ == null) {
9896          aMinBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
9897              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder>(
9898                  getAMin(),
9899                  getParentForChildren(),
9900                  isClean());
9901          aMin_ = null;
9902        }
9903        return aMinBuilder_;
9904      }
9905
9906      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution tau_;
9907      private com.google.protobuf.SingleFieldBuilderV3<
9908          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> tauBuilder_;
9909      /**
9910       * <code>.hybridsim.Distribution tau = 5;</code>
9911       * @return Whether the tau field is set.
9912       */
9913      public boolean hasTau() {
9914        return tauBuilder_ != null || tau_ != null;
9915      }
9916      /**
9917       * <code>.hybridsim.Distribution tau = 5;</code>
9918       * @return The tau.
9919       */
9920      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getTau() {
9921        if (tauBuilder_ == null) {
9922          return tau_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : tau_;
9923        } else {
9924          return tauBuilder_.getMessage();
9925        }
9926      }
9927      /**
9928       * <code>.hybridsim.Distribution tau = 5;</code>
9929       */
9930      public Builder setTau(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
9931        if (tauBuilder_ == null) {
9932          if (value == null) {
9933            throw new NullPointerException();
9934          }
9935          tau_ = value;
9936          onChanged();
9937        } else {
9938          tauBuilder_.setMessage(value);
9939        }
9940
9941        return this;
9942      }
9943      /**
9944       * <code>.hybridsim.Distribution tau = 5;</code>
9945       */
9946      public Builder setTau(
9947          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder builderForValue) {
9948        if (tauBuilder_ == null) {
9949          tau_ = builderForValue.build();
9950          onChanged();
9951        } else {
9952          tauBuilder_.setMessage(builderForValue.build());
9953        }
9954
9955        return this;
9956      }
9957      /**
9958       * <code>.hybridsim.Distribution tau = 5;</code>
9959       */
9960      public Builder mergeTau(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
9961        if (tauBuilder_ == null) {
9962          if (tau_ != null) {
9963            tau_ =
9964              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.newBuilder(tau_).mergeFrom(value).buildPartial();
9965          } else {
9966            tau_ = value;
9967          }
9968          onChanged();
9969        } else {
9970          tauBuilder_.mergeFrom(value);
9971        }
9972
9973        return this;
9974      }
9975      /**
9976       * <code>.hybridsim.Distribution tau = 5;</code>
9977       */
9978      public Builder clearTau() {
9979        if (tauBuilder_ == null) {
9980          tau_ = null;
9981          onChanged();
9982        } else {
9983          tau_ = null;
9984          tauBuilder_ = null;
9985        }
9986
9987        return this;
9988      }
9989      /**
9990       * <code>.hybridsim.Distribution tau = 5;</code>
9991       */
9992      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder getTauBuilder() {
9993        
9994        onChanged();
9995        return getTauFieldBuilder().getBuilder();
9996      }
9997      /**
9998       * <code>.hybridsim.Distribution tau = 5;</code>
9999       */
10000      public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getTauOrBuilder() {
10001        if (tauBuilder_ != null) {
10002          return tauBuilder_.getMessageOrBuilder();
10003        } else {
10004          return tau_ == null ?
10005              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : tau_;
10006        }
10007      }
10008      /**
10009       * <code>.hybridsim.Distribution tau = 5;</code>
10010       */
10011      private com.google.protobuf.SingleFieldBuilderV3<
10012          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> 
10013          getTauFieldBuilder() {
10014        if (tauBuilder_ == null) {
10015          tauBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
10016              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder>(
10017                  getTau(),
10018                  getParentForChildren(),
10019                  isClean());
10020          tau_ = null;
10021        }
10022        return tauBuilder_;
10023      }
10024
10025      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution atau_;
10026      private com.google.protobuf.SingleFieldBuilderV3<
10027          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> atauBuilder_;
10028      /**
10029       * <code>.hybridsim.Distribution atau = 6;</code>
10030       * @return Whether the atau field is set.
10031       */
10032      public boolean hasAtau() {
10033        return atauBuilder_ != null || atau_ != null;
10034      }
10035      /**
10036       * <code>.hybridsim.Distribution atau = 6;</code>
10037       * @return The atau.
10038       */
10039      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getAtau() {
10040        if (atauBuilder_ == null) {
10041          return atau_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : atau_;
10042        } else {
10043          return atauBuilder_.getMessage();
10044        }
10045      }
10046      /**
10047       * <code>.hybridsim.Distribution atau = 6;</code>
10048       */
10049      public Builder setAtau(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
10050        if (atauBuilder_ == null) {
10051          if (value == null) {
10052            throw new NullPointerException();
10053          }
10054          atau_ = value;
10055          onChanged();
10056        } else {
10057          atauBuilder_.setMessage(value);
10058        }
10059
10060        return this;
10061      }
10062      /**
10063       * <code>.hybridsim.Distribution atau = 6;</code>
10064       */
10065      public Builder setAtau(
10066          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder builderForValue) {
10067        if (atauBuilder_ == null) {
10068          atau_ = builderForValue.build();
10069          onChanged();
10070        } else {
10071          atauBuilder_.setMessage(builderForValue.build());
10072        }
10073
10074        return this;
10075      }
10076      /**
10077       * <code>.hybridsim.Distribution atau = 6;</code>
10078       */
10079      public Builder mergeAtau(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
10080        if (atauBuilder_ == null) {
10081          if (atau_ != null) {
10082            atau_ =
10083              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.newBuilder(atau_).mergeFrom(value).buildPartial();
10084          } else {
10085            atau_ = value;
10086          }
10087          onChanged();
10088        } else {
10089          atauBuilder_.mergeFrom(value);
10090        }
10091
10092        return this;
10093      }
10094      /**
10095       * <code>.hybridsim.Distribution atau = 6;</code>
10096       */
10097      public Builder clearAtau() {
10098        if (atauBuilder_ == null) {
10099          atau_ = null;
10100          onChanged();
10101        } else {
10102          atau_ = null;
10103          atauBuilder_ = null;
10104        }
10105
10106        return this;
10107      }
10108      /**
10109       * <code>.hybridsim.Distribution atau = 6;</code>
10110       */
10111      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder getAtauBuilder() {
10112        
10113        onChanged();
10114        return getAtauFieldBuilder().getBuilder();
10115      }
10116      /**
10117       * <code>.hybridsim.Distribution atau = 6;</code>
10118       */
10119      public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getAtauOrBuilder() {
10120        if (atauBuilder_ != null) {
10121          return atauBuilder_.getMessageOrBuilder();
10122        } else {
10123          return atau_ == null ?
10124              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : atau_;
10125        }
10126      }
10127      /**
10128       * <code>.hybridsim.Distribution atau = 6;</code>
10129       */
10130      private com.google.protobuf.SingleFieldBuilderV3<
10131          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> 
10132          getAtauFieldBuilder() {
10133        if (atauBuilder_ == null) {
10134          atauBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
10135              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder>(
10136                  getAtau(),
10137                  getParentForChildren(),
10138                  isClean());
10139          atau_ = null;
10140        }
10141        return atauBuilder_;
10142      }
10143
10144      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution v0Upstairs_;
10145      private com.google.protobuf.SingleFieldBuilderV3<
10146          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> v0UpstairsBuilder_;
10147      /**
10148       * <code>.hybridsim.Distribution v0_upstairs = 7;</code>
10149       * @return Whether the v0Upstairs field is set.
10150       */
10151      public boolean hasV0Upstairs() {
10152        return v0UpstairsBuilder_ != null || v0Upstairs_ != null;
10153      }
10154      /**
10155       * <code>.hybridsim.Distribution v0_upstairs = 7;</code>
10156       * @return The v0Upstairs.
10157       */
10158      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0Upstairs() {
10159        if (v0UpstairsBuilder_ == null) {
10160          return v0Upstairs_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0Upstairs_;
10161        } else {
10162          return v0UpstairsBuilder_.getMessage();
10163        }
10164      }
10165      /**
10166       * <code>.hybridsim.Distribution v0_upstairs = 7;</code>
10167       */
10168      public Builder setV0Upstairs(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
10169        if (v0UpstairsBuilder_ == null) {
10170          if (value == null) {
10171            throw new NullPointerException();
10172          }
10173          v0Upstairs_ = value;
10174          onChanged();
10175        } else {
10176          v0UpstairsBuilder_.setMessage(value);
10177        }
10178
10179        return this;
10180      }
10181      /**
10182       * <code>.hybridsim.Distribution v0_upstairs = 7;</code>
10183       */
10184      public Builder setV0Upstairs(
10185          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder builderForValue) {
10186        if (v0UpstairsBuilder_ == null) {
10187          v0Upstairs_ = builderForValue.build();
10188          onChanged();
10189        } else {
10190          v0UpstairsBuilder_.setMessage(builderForValue.build());
10191        }
10192
10193        return this;
10194      }
10195      /**
10196       * <code>.hybridsim.Distribution v0_upstairs = 7;</code>
10197       */
10198      public Builder mergeV0Upstairs(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
10199        if (v0UpstairsBuilder_ == null) {
10200          if (v0Upstairs_ != null) {
10201            v0Upstairs_ =
10202              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.newBuilder(v0Upstairs_).mergeFrom(value).buildPartial();
10203          } else {
10204            v0Upstairs_ = value;
10205          }
10206          onChanged();
10207        } else {
10208          v0UpstairsBuilder_.mergeFrom(value);
10209        }
10210
10211        return this;
10212      }
10213      /**
10214       * <code>.hybridsim.Distribution v0_upstairs = 7;</code>
10215       */
10216      public Builder clearV0Upstairs() {
10217        if (v0UpstairsBuilder_ == null) {
10218          v0Upstairs_ = null;
10219          onChanged();
10220        } else {
10221          v0Upstairs_ = null;
10222          v0UpstairsBuilder_ = null;
10223        }
10224
10225        return this;
10226      }
10227      /**
10228       * <code>.hybridsim.Distribution v0_upstairs = 7;</code>
10229       */
10230      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder getV0UpstairsBuilder() {
10231        
10232        onChanged();
10233        return getV0UpstairsFieldBuilder().getBuilder();
10234      }
10235      /**
10236       * <code>.hybridsim.Distribution v0_upstairs = 7;</code>
10237       */
10238      public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0UpstairsOrBuilder() {
10239        if (v0UpstairsBuilder_ != null) {
10240          return v0UpstairsBuilder_.getMessageOrBuilder();
10241        } else {
10242          return v0Upstairs_ == null ?
10243              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0Upstairs_;
10244        }
10245      }
10246      /**
10247       * <code>.hybridsim.Distribution v0_upstairs = 7;</code>
10248       */
10249      private com.google.protobuf.SingleFieldBuilderV3<
10250          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> 
10251          getV0UpstairsFieldBuilder() {
10252        if (v0UpstairsBuilder_ == null) {
10253          v0UpstairsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
10254              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder>(
10255                  getV0Upstairs(),
10256                  getParentForChildren(),
10257                  isClean());
10258          v0Upstairs_ = null;
10259        }
10260        return v0UpstairsBuilder_;
10261      }
10262
10263      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution v0Downstairs_;
10264      private com.google.protobuf.SingleFieldBuilderV3<
10265          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> v0DownstairsBuilder_;
10266      /**
10267       * <code>.hybridsim.Distribution v0_downstairs = 8;</code>
10268       * @return Whether the v0Downstairs field is set.
10269       */
10270      public boolean hasV0Downstairs() {
10271        return v0DownstairsBuilder_ != null || v0Downstairs_ != null;
10272      }
10273      /**
10274       * <code>.hybridsim.Distribution v0_downstairs = 8;</code>
10275       * @return The v0Downstairs.
10276       */
10277      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0Downstairs() {
10278        if (v0DownstairsBuilder_ == null) {
10279          return v0Downstairs_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0Downstairs_;
10280        } else {
10281          return v0DownstairsBuilder_.getMessage();
10282        }
10283      }
10284      /**
10285       * <code>.hybridsim.Distribution v0_downstairs = 8;</code>
10286       */
10287      public Builder setV0Downstairs(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
10288        if (v0DownstairsBuilder_ == null) {
10289          if (value == null) {
10290            throw new NullPointerException();
10291          }
10292          v0Downstairs_ = value;
10293          onChanged();
10294        } else {
10295          v0DownstairsBuilder_.setMessage(value);
10296        }
10297
10298        return this;
10299      }
10300      /**
10301       * <code>.hybridsim.Distribution v0_downstairs = 8;</code>
10302       */
10303      public Builder setV0Downstairs(
10304          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder builderForValue) {
10305        if (v0DownstairsBuilder_ == null) {
10306          v0Downstairs_ = builderForValue.build();
10307          onChanged();
10308        } else {
10309          v0DownstairsBuilder_.setMessage(builderForValue.build());
10310        }
10311
10312        return this;
10313      }
10314      /**
10315       * <code>.hybridsim.Distribution v0_downstairs = 8;</code>
10316       */
10317      public Builder mergeV0Downstairs(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
10318        if (v0DownstairsBuilder_ == null) {
10319          if (v0Downstairs_ != null) {
10320            v0Downstairs_ =
10321              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.newBuilder(v0Downstairs_).mergeFrom(value).buildPartial();
10322          } else {
10323            v0Downstairs_ = value;
10324          }
10325          onChanged();
10326        } else {
10327          v0DownstairsBuilder_.mergeFrom(value);
10328        }
10329
10330        return this;
10331      }
10332      /**
10333       * <code>.hybridsim.Distribution v0_downstairs = 8;</code>
10334       */
10335      public Builder clearV0Downstairs() {
10336        if (v0DownstairsBuilder_ == null) {
10337          v0Downstairs_ = null;
10338          onChanged();
10339        } else {
10340          v0Downstairs_ = null;
10341          v0DownstairsBuilder_ = null;
10342        }
10343
10344        return this;
10345      }
10346      /**
10347       * <code>.hybridsim.Distribution v0_downstairs = 8;</code>
10348       */
10349      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder getV0DownstairsBuilder() {
10350        
10351        onChanged();
10352        return getV0DownstairsFieldBuilder().getBuilder();
10353      }
10354      /**
10355       * <code>.hybridsim.Distribution v0_downstairs = 8;</code>
10356       */
10357      public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0DownstairsOrBuilder() {
10358        if (v0DownstairsBuilder_ != null) {
10359          return v0DownstairsBuilder_.getMessageOrBuilder();
10360        } else {
10361          return v0Downstairs_ == null ?
10362              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0Downstairs_;
10363        }
10364      }
10365      /**
10366       * <code>.hybridsim.Distribution v0_downstairs = 8;</code>
10367       */
10368      private com.google.protobuf.SingleFieldBuilderV3<
10369          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> 
10370          getV0DownstairsFieldBuilder() {
10371        if (v0DownstairsBuilder_ == null) {
10372          v0DownstairsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
10373              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder>(
10374                  getV0Downstairs(),
10375                  getParentForChildren(),
10376                  isClean());
10377          v0Downstairs_ = null;
10378        }
10379        return v0DownstairsBuilder_;
10380      }
10381
10382      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution v0EscalatorUp_;
10383      private com.google.protobuf.SingleFieldBuilderV3<
10384          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> v0EscalatorUpBuilder_;
10385      /**
10386       * <code>.hybridsim.Distribution v0_escalator_up = 9;</code>
10387       * @return Whether the v0EscalatorUp field is set.
10388       */
10389      public boolean hasV0EscalatorUp() {
10390        return v0EscalatorUpBuilder_ != null || v0EscalatorUp_ != null;
10391      }
10392      /**
10393       * <code>.hybridsim.Distribution v0_escalator_up = 9;</code>
10394       * @return The v0EscalatorUp.
10395       */
10396      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0EscalatorUp() {
10397        if (v0EscalatorUpBuilder_ == null) {
10398          return v0EscalatorUp_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0EscalatorUp_;
10399        } else {
10400          return v0EscalatorUpBuilder_.getMessage();
10401        }
10402      }
10403      /**
10404       * <code>.hybridsim.Distribution v0_escalator_up = 9;</code>
10405       */
10406      public Builder setV0EscalatorUp(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
10407        if (v0EscalatorUpBuilder_ == null) {
10408          if (value == null) {
10409            throw new NullPointerException();
10410          }
10411          v0EscalatorUp_ = value;
10412          onChanged();
10413        } else {
10414          v0EscalatorUpBuilder_.setMessage(value);
10415        }
10416
10417        return this;
10418      }
10419      /**
10420       * <code>.hybridsim.Distribution v0_escalator_up = 9;</code>
10421       */
10422      public Builder setV0EscalatorUp(
10423          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder builderForValue) {
10424        if (v0EscalatorUpBuilder_ == null) {
10425          v0EscalatorUp_ = builderForValue.build();
10426          onChanged();
10427        } else {
10428          v0EscalatorUpBuilder_.setMessage(builderForValue.build());
10429        }
10430
10431        return this;
10432      }
10433      /**
10434       * <code>.hybridsim.Distribution v0_escalator_up = 9;</code>
10435       */
10436      public Builder mergeV0EscalatorUp(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
10437        if (v0EscalatorUpBuilder_ == null) {
10438          if (v0EscalatorUp_ != null) {
10439            v0EscalatorUp_ =
10440              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.newBuilder(v0EscalatorUp_).mergeFrom(value).buildPartial();
10441          } else {
10442            v0EscalatorUp_ = value;
10443          }
10444          onChanged();
10445        } else {
10446          v0EscalatorUpBuilder_.mergeFrom(value);
10447        }
10448
10449        return this;
10450      }
10451      /**
10452       * <code>.hybridsim.Distribution v0_escalator_up = 9;</code>
10453       */
10454      public Builder clearV0EscalatorUp() {
10455        if (v0EscalatorUpBuilder_ == null) {
10456          v0EscalatorUp_ = null;
10457          onChanged();
10458        } else {
10459          v0EscalatorUp_ = null;
10460          v0EscalatorUpBuilder_ = null;
10461        }
10462
10463        return this;
10464      }
10465      /**
10466       * <code>.hybridsim.Distribution v0_escalator_up = 9;</code>
10467       */
10468      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder getV0EscalatorUpBuilder() {
10469        
10470        onChanged();
10471        return getV0EscalatorUpFieldBuilder().getBuilder();
10472      }
10473      /**
10474       * <code>.hybridsim.Distribution v0_escalator_up = 9;</code>
10475       */
10476      public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0EscalatorUpOrBuilder() {
10477        if (v0EscalatorUpBuilder_ != null) {
10478          return v0EscalatorUpBuilder_.getMessageOrBuilder();
10479        } else {
10480          return v0EscalatorUp_ == null ?
10481              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0EscalatorUp_;
10482        }
10483      }
10484      /**
10485       * <code>.hybridsim.Distribution v0_escalator_up = 9;</code>
10486       */
10487      private com.google.protobuf.SingleFieldBuilderV3<
10488          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> 
10489          getV0EscalatorUpFieldBuilder() {
10490        if (v0EscalatorUpBuilder_ == null) {
10491          v0EscalatorUpBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
10492              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder>(
10493                  getV0EscalatorUp(),
10494                  getParentForChildren(),
10495                  isClean());
10496          v0EscalatorUp_ = null;
10497        }
10498        return v0EscalatorUpBuilder_;
10499      }
10500
10501      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution v0EscalatorDown_;
10502      private com.google.protobuf.SingleFieldBuilderV3<
10503          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> v0EscalatorDownBuilder_;
10504      /**
10505       * <code>.hybridsim.Distribution v0_escalator_down = 10;</code>
10506       * @return Whether the v0EscalatorDown field is set.
10507       */
10508      public boolean hasV0EscalatorDown() {
10509        return v0EscalatorDownBuilder_ != null || v0EscalatorDown_ != null;
10510      }
10511      /**
10512       * <code>.hybridsim.Distribution v0_escalator_down = 10;</code>
10513       * @return The v0EscalatorDown.
10514       */
10515      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0EscalatorDown() {
10516        if (v0EscalatorDownBuilder_ == null) {
10517          return v0EscalatorDown_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0EscalatorDown_;
10518        } else {
10519          return v0EscalatorDownBuilder_.getMessage();
10520        }
10521      }
10522      /**
10523       * <code>.hybridsim.Distribution v0_escalator_down = 10;</code>
10524       */
10525      public Builder setV0EscalatorDown(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
10526        if (v0EscalatorDownBuilder_ == null) {
10527          if (value == null) {
10528            throw new NullPointerException();
10529          }
10530          v0EscalatorDown_ = value;
10531          onChanged();
10532        } else {
10533          v0EscalatorDownBuilder_.setMessage(value);
10534        }
10535
10536        return this;
10537      }
10538      /**
10539       * <code>.hybridsim.Distribution v0_escalator_down = 10;</code>
10540       */
10541      public Builder setV0EscalatorDown(
10542          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder builderForValue) {
10543        if (v0EscalatorDownBuilder_ == null) {
10544          v0EscalatorDown_ = builderForValue.build();
10545          onChanged();
10546        } else {
10547          v0EscalatorDownBuilder_.setMessage(builderForValue.build());
10548        }
10549
10550        return this;
10551      }
10552      /**
10553       * <code>.hybridsim.Distribution v0_escalator_down = 10;</code>
10554       */
10555      public Builder mergeV0EscalatorDown(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
10556        if (v0EscalatorDownBuilder_ == null) {
10557          if (v0EscalatorDown_ != null) {
10558            v0EscalatorDown_ =
10559              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.newBuilder(v0EscalatorDown_).mergeFrom(value).buildPartial();
10560          } else {
10561            v0EscalatorDown_ = value;
10562          }
10563          onChanged();
10564        } else {
10565          v0EscalatorDownBuilder_.mergeFrom(value);
10566        }
10567
10568        return this;
10569      }
10570      /**
10571       * <code>.hybridsim.Distribution v0_escalator_down = 10;</code>
10572       */
10573      public Builder clearV0EscalatorDown() {
10574        if (v0EscalatorDownBuilder_ == null) {
10575          v0EscalatorDown_ = null;
10576          onChanged();
10577        } else {
10578          v0EscalatorDown_ = null;
10579          v0EscalatorDownBuilder_ = null;
10580        }
10581
10582        return this;
10583      }
10584      /**
10585       * <code>.hybridsim.Distribution v0_escalator_down = 10;</code>
10586       */
10587      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder getV0EscalatorDownBuilder() {
10588        
10589        onChanged();
10590        return getV0EscalatorDownFieldBuilder().getBuilder();
10591      }
10592      /**
10593       * <code>.hybridsim.Distribution v0_escalator_down = 10;</code>
10594       */
10595      public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0EscalatorDownOrBuilder() {
10596        if (v0EscalatorDownBuilder_ != null) {
10597          return v0EscalatorDownBuilder_.getMessageOrBuilder();
10598        } else {
10599          return v0EscalatorDown_ == null ?
10600              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0EscalatorDown_;
10601        }
10602      }
10603      /**
10604       * <code>.hybridsim.Distribution v0_escalator_down = 10;</code>
10605       */
10606      private com.google.protobuf.SingleFieldBuilderV3<
10607          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> 
10608          getV0EscalatorDownFieldBuilder() {
10609        if (v0EscalatorDownBuilder_ == null) {
10610          v0EscalatorDownBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
10611              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder>(
10612                  getV0EscalatorDown(),
10613                  getParentForChildren(),
10614                  isClean());
10615          v0EscalatorDown_ = null;
10616        }
10617        return v0EscalatorDownBuilder_;
10618      }
10619
10620      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution v0IdleEscalatorUp_;
10621      private com.google.protobuf.SingleFieldBuilderV3<
10622          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> v0IdleEscalatorUpBuilder_;
10623      /**
10624       * <code>.hybridsim.Distribution v0_idle_escalator_up = 11;</code>
10625       * @return Whether the v0IdleEscalatorUp field is set.
10626       */
10627      public boolean hasV0IdleEscalatorUp() {
10628        return v0IdleEscalatorUpBuilder_ != null || v0IdleEscalatorUp_ != null;
10629      }
10630      /**
10631       * <code>.hybridsim.Distribution v0_idle_escalator_up = 11;</code>
10632       * @return The v0IdleEscalatorUp.
10633       */
10634      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0IdleEscalatorUp() {
10635        if (v0IdleEscalatorUpBuilder_ == null) {
10636          return v0IdleEscalatorUp_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0IdleEscalatorUp_;
10637        } else {
10638          return v0IdleEscalatorUpBuilder_.getMessage();
10639        }
10640      }
10641      /**
10642       * <code>.hybridsim.Distribution v0_idle_escalator_up = 11;</code>
10643       */
10644      public Builder setV0IdleEscalatorUp(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
10645        if (v0IdleEscalatorUpBuilder_ == null) {
10646          if (value == null) {
10647            throw new NullPointerException();
10648          }
10649          v0IdleEscalatorUp_ = value;
10650          onChanged();
10651        } else {
10652          v0IdleEscalatorUpBuilder_.setMessage(value);
10653        }
10654
10655        return this;
10656      }
10657      /**
10658       * <code>.hybridsim.Distribution v0_idle_escalator_up = 11;</code>
10659       */
10660      public Builder setV0IdleEscalatorUp(
10661          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder builderForValue) {
10662        if (v0IdleEscalatorUpBuilder_ == null) {
10663          v0IdleEscalatorUp_ = builderForValue.build();
10664          onChanged();
10665        } else {
10666          v0IdleEscalatorUpBuilder_.setMessage(builderForValue.build());
10667        }
10668
10669        return this;
10670      }
10671      /**
10672       * <code>.hybridsim.Distribution v0_idle_escalator_up = 11;</code>
10673       */
10674      public Builder mergeV0IdleEscalatorUp(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
10675        if (v0IdleEscalatorUpBuilder_ == null) {
10676          if (v0IdleEscalatorUp_ != null) {
10677            v0IdleEscalatorUp_ =
10678              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.newBuilder(v0IdleEscalatorUp_).mergeFrom(value).buildPartial();
10679          } else {
10680            v0IdleEscalatorUp_ = value;
10681          }
10682          onChanged();
10683        } else {
10684          v0IdleEscalatorUpBuilder_.mergeFrom(value);
10685        }
10686
10687        return this;
10688      }
10689      /**
10690       * <code>.hybridsim.Distribution v0_idle_escalator_up = 11;</code>
10691       */
10692      public Builder clearV0IdleEscalatorUp() {
10693        if (v0IdleEscalatorUpBuilder_ == null) {
10694          v0IdleEscalatorUp_ = null;
10695          onChanged();
10696        } else {
10697          v0IdleEscalatorUp_ = null;
10698          v0IdleEscalatorUpBuilder_ = null;
10699        }
10700
10701        return this;
10702      }
10703      /**
10704       * <code>.hybridsim.Distribution v0_idle_escalator_up = 11;</code>
10705       */
10706      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder getV0IdleEscalatorUpBuilder() {
10707        
10708        onChanged();
10709        return getV0IdleEscalatorUpFieldBuilder().getBuilder();
10710      }
10711      /**
10712       * <code>.hybridsim.Distribution v0_idle_escalator_up = 11;</code>
10713       */
10714      public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0IdleEscalatorUpOrBuilder() {
10715        if (v0IdleEscalatorUpBuilder_ != null) {
10716          return v0IdleEscalatorUpBuilder_.getMessageOrBuilder();
10717        } else {
10718          return v0IdleEscalatorUp_ == null ?
10719              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0IdleEscalatorUp_;
10720        }
10721      }
10722      /**
10723       * <code>.hybridsim.Distribution v0_idle_escalator_up = 11;</code>
10724       */
10725      private com.google.protobuf.SingleFieldBuilderV3<
10726          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> 
10727          getV0IdleEscalatorUpFieldBuilder() {
10728        if (v0IdleEscalatorUpBuilder_ == null) {
10729          v0IdleEscalatorUpBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
10730              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder>(
10731                  getV0IdleEscalatorUp(),
10732                  getParentForChildren(),
10733                  isClean());
10734          v0IdleEscalatorUp_ = null;
10735        }
10736        return v0IdleEscalatorUpBuilder_;
10737      }
10738
10739      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution v0IdleEscalatorDown_;
10740      private com.google.protobuf.SingleFieldBuilderV3<
10741          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> v0IdleEscalatorDownBuilder_;
10742      /**
10743       * <code>.hybridsim.Distribution v0_idle_escalator_down = 12;</code>
10744       * @return Whether the v0IdleEscalatorDown field is set.
10745       */
10746      public boolean hasV0IdleEscalatorDown() {
10747        return v0IdleEscalatorDownBuilder_ != null || v0IdleEscalatorDown_ != null;
10748      }
10749      /**
10750       * <code>.hybridsim.Distribution v0_idle_escalator_down = 12;</code>
10751       * @return The v0IdleEscalatorDown.
10752       */
10753      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getV0IdleEscalatorDown() {
10754        if (v0IdleEscalatorDownBuilder_ == null) {
10755          return v0IdleEscalatorDown_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0IdleEscalatorDown_;
10756        } else {
10757          return v0IdleEscalatorDownBuilder_.getMessage();
10758        }
10759      }
10760      /**
10761       * <code>.hybridsim.Distribution v0_idle_escalator_down = 12;</code>
10762       */
10763      public Builder setV0IdleEscalatorDown(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
10764        if (v0IdleEscalatorDownBuilder_ == null) {
10765          if (value == null) {
10766            throw new NullPointerException();
10767          }
10768          v0IdleEscalatorDown_ = value;
10769          onChanged();
10770        } else {
10771          v0IdleEscalatorDownBuilder_.setMessage(value);
10772        }
10773
10774        return this;
10775      }
10776      /**
10777       * <code>.hybridsim.Distribution v0_idle_escalator_down = 12;</code>
10778       */
10779      public Builder setV0IdleEscalatorDown(
10780          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder builderForValue) {
10781        if (v0IdleEscalatorDownBuilder_ == null) {
10782          v0IdleEscalatorDown_ = builderForValue.build();
10783          onChanged();
10784        } else {
10785          v0IdleEscalatorDownBuilder_.setMessage(builderForValue.build());
10786        }
10787
10788        return this;
10789      }
10790      /**
10791       * <code>.hybridsim.Distribution v0_idle_escalator_down = 12;</code>
10792       */
10793      public Builder mergeV0IdleEscalatorDown(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
10794        if (v0IdleEscalatorDownBuilder_ == null) {
10795          if (v0IdleEscalatorDown_ != null) {
10796            v0IdleEscalatorDown_ =
10797              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.newBuilder(v0IdleEscalatorDown_).mergeFrom(value).buildPartial();
10798          } else {
10799            v0IdleEscalatorDown_ = value;
10800          }
10801          onChanged();
10802        } else {
10803          v0IdleEscalatorDownBuilder_.mergeFrom(value);
10804        }
10805
10806        return this;
10807      }
10808      /**
10809       * <code>.hybridsim.Distribution v0_idle_escalator_down = 12;</code>
10810       */
10811      public Builder clearV0IdleEscalatorDown() {
10812        if (v0IdleEscalatorDownBuilder_ == null) {
10813          v0IdleEscalatorDown_ = null;
10814          onChanged();
10815        } else {
10816          v0IdleEscalatorDown_ = null;
10817          v0IdleEscalatorDownBuilder_ = null;
10818        }
10819
10820        return this;
10821      }
10822      /**
10823       * <code>.hybridsim.Distribution v0_idle_escalator_down = 12;</code>
10824       */
10825      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder getV0IdleEscalatorDownBuilder() {
10826        
10827        onChanged();
10828        return getV0IdleEscalatorDownFieldBuilder().getBuilder();
10829      }
10830      /**
10831       * <code>.hybridsim.Distribution v0_idle_escalator_down = 12;</code>
10832       */
10833      public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getV0IdleEscalatorDownOrBuilder() {
10834        if (v0IdleEscalatorDownBuilder_ != null) {
10835          return v0IdleEscalatorDownBuilder_.getMessageOrBuilder();
10836        } else {
10837          return v0IdleEscalatorDown_ == null ?
10838              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : v0IdleEscalatorDown_;
10839        }
10840      }
10841      /**
10842       * <code>.hybridsim.Distribution v0_idle_escalator_down = 12;</code>
10843       */
10844      private com.google.protobuf.SingleFieldBuilderV3<
10845          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> 
10846          getV0IdleEscalatorDownFieldBuilder() {
10847        if (v0IdleEscalatorDownBuilder_ == null) {
10848          v0IdleEscalatorDownBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
10849              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder>(
10850                  getV0IdleEscalatorDown(),
10851                  getParentForChildren(),
10852                  isClean());
10853          v0IdleEscalatorDown_ = null;
10854        }
10855        return v0IdleEscalatorDownBuilder_;
10856      }
10857
10858      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution t_;
10859      private com.google.protobuf.SingleFieldBuilderV3<
10860          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> tBuilder_;
10861      /**
10862       * <code>.hybridsim.Distribution T = 13;</code>
10863       * @return Whether the t field is set.
10864       */
10865      public boolean hasT() {
10866        return tBuilder_ != null || t_ != null;
10867      }
10868      /**
10869       * <code>.hybridsim.Distribution T = 13;</code>
10870       * @return The t.
10871       */
10872      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getT() {
10873        if (tBuilder_ == null) {
10874          return t_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : t_;
10875        } else {
10876          return tBuilder_.getMessage();
10877        }
10878      }
10879      /**
10880       * <code>.hybridsim.Distribution T = 13;</code>
10881       */
10882      public Builder setT(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
10883        if (tBuilder_ == null) {
10884          if (value == null) {
10885            throw new NullPointerException();
10886          }
10887          t_ = value;
10888          onChanged();
10889        } else {
10890          tBuilder_.setMessage(value);
10891        }
10892
10893        return this;
10894      }
10895      /**
10896       * <code>.hybridsim.Distribution T = 13;</code>
10897       */
10898      public Builder setT(
10899          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder builderForValue) {
10900        if (tBuilder_ == null) {
10901          t_ = builderForValue.build();
10902          onChanged();
10903        } else {
10904          tBuilder_.setMessage(builderForValue.build());
10905        }
10906
10907        return this;
10908      }
10909      /**
10910       * <code>.hybridsim.Distribution T = 13;</code>
10911       */
10912      public Builder mergeT(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution value) {
10913        if (tBuilder_ == null) {
10914          if (t_ != null) {
10915            t_ =
10916              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.newBuilder(t_).mergeFrom(value).buildPartial();
10917          } else {
10918            t_ = value;
10919          }
10920          onChanged();
10921        } else {
10922          tBuilder_.mergeFrom(value);
10923        }
10924
10925        return this;
10926      }
10927      /**
10928       * <code>.hybridsim.Distribution T = 13;</code>
10929       */
10930      public Builder clearT() {
10931        if (tBuilder_ == null) {
10932          t_ = null;
10933          onChanged();
10934        } else {
10935          t_ = null;
10936          tBuilder_ = null;
10937        }
10938
10939        return this;
10940      }
10941      /**
10942       * <code>.hybridsim.Distribution T = 13;</code>
10943       */
10944      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder getTBuilder() {
10945        
10946        onChanged();
10947        return getTFieldBuilder().getBuilder();
10948      }
10949      /**
10950       * <code>.hybridsim.Distribution T = 13;</code>
10951       */
10952      public org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder getTOrBuilder() {
10953        if (tBuilder_ != null) {
10954          return tBuilder_.getMessageOrBuilder();
10955        } else {
10956          return t_ == null ?
10957              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance() : t_;
10958        }
10959      }
10960      /**
10961       * <code>.hybridsim.Distribution T = 13;</code>
10962       */
10963      private com.google.protobuf.SingleFieldBuilderV3<
10964          org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder> 
10965          getTFieldBuilder() {
10966        if (tBuilder_ == null) {
10967          tBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
10968              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder>(
10969                  getT(),
10970                  getParentForChildren(),
10971                  isClean());
10972          t_ = null;
10973        }
10974        return tBuilder_;
10975      }
10976      @java.lang.Override
10977      public final Builder setUnknownFields(
10978          final com.google.protobuf.UnknownFieldSet unknownFields) {
10979        return super.setUnknownFields(unknownFields);
10980      }
10981
10982      @java.lang.Override
10983      public final Builder mergeUnknownFields(
10984          final com.google.protobuf.UnknownFieldSet unknownFields) {
10985        return super.mergeUnknownFields(unknownFields);
10986      }
10987
10988
10989      // @@protoc_insertion_point(builder_scope:hybridsim.AgentParams)
10990    }
10991
10992    // @@protoc_insertion_point(class_scope:hybridsim.AgentParams)
10993    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams DEFAULT_INSTANCE;
10994    static {
10995      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams();
10996    }
10997
10998    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams getDefaultInstance() {
10999      return DEFAULT_INSTANCE;
11000    }
11001
11002    private static final com.google.protobuf.Parser<AgentParams>
11003        PARSER = new com.google.protobuf.AbstractParser<AgentParams>() {
11004      @java.lang.Override
11005      public AgentParams parsePartialFrom(
11006          com.google.protobuf.CodedInputStream input,
11007          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11008          throws com.google.protobuf.InvalidProtocolBufferException {
11009        return new AgentParams(input, extensionRegistry);
11010      }
11011    };
11012
11013    public static com.google.protobuf.Parser<AgentParams> parser() {
11014      return PARSER;
11015    }
11016
11017    @java.lang.Override
11018    public com.google.protobuf.Parser<AgentParams> getParserForType() {
11019      return PARSER;
11020    }
11021
11022    @java.lang.Override
11023    public org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentParams getDefaultInstanceForType() {
11024      return DEFAULT_INSTANCE;
11025    }
11026
11027  }
11028
11029  public interface DistributionOrBuilder extends
11030      // @@protoc_insertion_point(interface_extends:hybridsim.Distribution)
11031      com.google.protobuf.MessageOrBuilder {
11032
11033    /**
11034     * <code>double mu = 1;</code>
11035     * @return The mu.
11036     */
11037    double getMu();
11038
11039    /**
11040     * <code>double sigma = 2;</code>
11041     * @return The sigma.
11042     */
11043    double getSigma();
11044  }
11045  /**
11046   * Protobuf type {@code hybridsim.Distribution}
11047   */
11048  public  static final class Distribution extends
11049      com.google.protobuf.GeneratedMessageV3 implements
11050      // @@protoc_insertion_point(message_implements:hybridsim.Distribution)
11051      DistributionOrBuilder {
11052  private static final long serialVersionUID = 0L;
11053    // Use Distribution.newBuilder() to construct.
11054    private Distribution(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
11055      super(builder);
11056    }
11057    private Distribution() {
11058    }
11059
11060    @java.lang.Override
11061    @SuppressWarnings({"unused"})
11062    protected java.lang.Object newInstance(
11063        UnusedPrivateParameter unused) {
11064      return new Distribution();
11065    }
11066
11067    @java.lang.Override
11068    public final com.google.protobuf.UnknownFieldSet
11069    getUnknownFields() {
11070      return this.unknownFields;
11071    }
11072    private Distribution(
11073        com.google.protobuf.CodedInputStream input,
11074        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11075        throws com.google.protobuf.InvalidProtocolBufferException {
11076      this();
11077      if (extensionRegistry == null) {
11078        throw new java.lang.NullPointerException();
11079      }
11080      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
11081          com.google.protobuf.UnknownFieldSet.newBuilder();
11082      try {
11083        boolean done = false;
11084        while (!done) {
11085          int tag = input.readTag();
11086          switch (tag) {
11087            case 0:
11088              done = true;
11089              break;
11090            case 9: {
11091
11092              mu_ = input.readDouble();
11093              break;
11094            }
11095            case 17: {
11096
11097              sigma_ = input.readDouble();
11098              break;
11099            }
11100            default: {
11101              if (!parseUnknownField(
11102                  input, unknownFields, extensionRegistry, tag)) {
11103                done = true;
11104              }
11105              break;
11106            }
11107          }
11108        }
11109      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
11110        throw e.setUnfinishedMessage(this);
11111      } catch (java.io.IOException e) {
11112        throw new com.google.protobuf.InvalidProtocolBufferException(
11113            e).setUnfinishedMessage(this);
11114      } finally {
11115        this.unknownFields = unknownFields.build();
11116        makeExtensionsImmutable();
11117      }
11118    }
11119    public static final com.google.protobuf.Descriptors.Descriptor
11120        getDescriptor() {
11121      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Distribution_descriptor;
11122    }
11123
11124    @java.lang.Override
11125    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
11126        internalGetFieldAccessorTable() {
11127      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Distribution_fieldAccessorTable
11128          .ensureFieldAccessorsInitialized(
11129              org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder.class);
11130    }
11131
11132    public static final int MU_FIELD_NUMBER = 1;
11133    private double mu_;
11134    /**
11135     * <code>double mu = 1;</code>
11136     * @return The mu.
11137     */
11138    public double getMu() {
11139      return mu_;
11140    }
11141
11142    public static final int SIGMA_FIELD_NUMBER = 2;
11143    private double sigma_;
11144    /**
11145     * <code>double sigma = 2;</code>
11146     * @return The sigma.
11147     */
11148    public double getSigma() {
11149      return sigma_;
11150    }
11151
11152    private byte memoizedIsInitialized = -1;
11153    @java.lang.Override
11154    public final boolean isInitialized() {
11155      byte isInitialized = memoizedIsInitialized;
11156      if (isInitialized == 1) return true;
11157      if (isInitialized == 0) return false;
11158
11159      memoizedIsInitialized = 1;
11160      return true;
11161    }
11162
11163    @java.lang.Override
11164    public void writeTo(com.google.protobuf.CodedOutputStream output)
11165                        throws java.io.IOException {
11166      if (mu_ != 0D) {
11167        output.writeDouble(1, mu_);
11168      }
11169      if (sigma_ != 0D) {
11170        output.writeDouble(2, sigma_);
11171      }
11172      unknownFields.writeTo(output);
11173    }
11174
11175    @java.lang.Override
11176    public int getSerializedSize() {
11177      int size = memoizedSize;
11178      if (size != -1) return size;
11179
11180      size = 0;
11181      if (mu_ != 0D) {
11182        size += com.google.protobuf.CodedOutputStream
11183          .computeDoubleSize(1, mu_);
11184      }
11185      if (sigma_ != 0D) {
11186        size += com.google.protobuf.CodedOutputStream
11187          .computeDoubleSize(2, sigma_);
11188      }
11189      size += unknownFields.getSerializedSize();
11190      memoizedSize = size;
11191      return size;
11192    }
11193
11194    @java.lang.Override
11195    public boolean equals(final java.lang.Object obj) {
11196      if (obj == this) {
11197       return true;
11198      }
11199      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution)) {
11200        return super.equals(obj);
11201      }
11202      org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution) obj;
11203
11204      if (java.lang.Double.doubleToLongBits(getMu())
11205          != java.lang.Double.doubleToLongBits(
11206              other.getMu())) return false;
11207      if (java.lang.Double.doubleToLongBits(getSigma())
11208          != java.lang.Double.doubleToLongBits(
11209              other.getSigma())) return false;
11210      if (!unknownFields.equals(other.unknownFields)) return false;
11211      return true;
11212    }
11213
11214    @java.lang.Override
11215    public int hashCode() {
11216      if (memoizedHashCode != 0) {
11217        return memoizedHashCode;
11218      }
11219      int hash = 41;
11220      hash = (19 * hash) + getDescriptor().hashCode();
11221      hash = (37 * hash) + MU_FIELD_NUMBER;
11222      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11223          java.lang.Double.doubleToLongBits(getMu()));
11224      hash = (37 * hash) + SIGMA_FIELD_NUMBER;
11225      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11226          java.lang.Double.doubleToLongBits(getSigma()));
11227      hash = (29 * hash) + unknownFields.hashCode();
11228      memoizedHashCode = hash;
11229      return hash;
11230    }
11231
11232    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution parseFrom(
11233        java.nio.ByteBuffer data)
11234        throws com.google.protobuf.InvalidProtocolBufferException {
11235      return PARSER.parseFrom(data);
11236    }
11237    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution parseFrom(
11238        java.nio.ByteBuffer data,
11239        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11240        throws com.google.protobuf.InvalidProtocolBufferException {
11241      return PARSER.parseFrom(data, extensionRegistry);
11242    }
11243    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution parseFrom(
11244        com.google.protobuf.ByteString data)
11245        throws com.google.protobuf.InvalidProtocolBufferException {
11246      return PARSER.parseFrom(data);
11247    }
11248    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution parseFrom(
11249        com.google.protobuf.ByteString data,
11250        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11251        throws com.google.protobuf.InvalidProtocolBufferException {
11252      return PARSER.parseFrom(data, extensionRegistry);
11253    }
11254    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution parseFrom(byte[] data)
11255        throws com.google.protobuf.InvalidProtocolBufferException {
11256      return PARSER.parseFrom(data);
11257    }
11258    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution parseFrom(
11259        byte[] data,
11260        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11261        throws com.google.protobuf.InvalidProtocolBufferException {
11262      return PARSER.parseFrom(data, extensionRegistry);
11263    }
11264    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution parseFrom(java.io.InputStream input)
11265        throws java.io.IOException {
11266      return com.google.protobuf.GeneratedMessageV3
11267          .parseWithIOException(PARSER, input);
11268    }
11269    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution parseFrom(
11270        java.io.InputStream input,
11271        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11272        throws java.io.IOException {
11273      return com.google.protobuf.GeneratedMessageV3
11274          .parseWithIOException(PARSER, input, extensionRegistry);
11275    }
11276    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution parseDelimitedFrom(java.io.InputStream input)
11277        throws java.io.IOException {
11278      return com.google.protobuf.GeneratedMessageV3
11279          .parseDelimitedWithIOException(PARSER, input);
11280    }
11281    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution parseDelimitedFrom(
11282        java.io.InputStream input,
11283        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11284        throws java.io.IOException {
11285      return com.google.protobuf.GeneratedMessageV3
11286          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
11287    }
11288    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution parseFrom(
11289        com.google.protobuf.CodedInputStream input)
11290        throws java.io.IOException {
11291      return com.google.protobuf.GeneratedMessageV3
11292          .parseWithIOException(PARSER, input);
11293    }
11294    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution parseFrom(
11295        com.google.protobuf.CodedInputStream input,
11296        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11297        throws java.io.IOException {
11298      return com.google.protobuf.GeneratedMessageV3
11299          .parseWithIOException(PARSER, input, extensionRegistry);
11300    }
11301
11302    @java.lang.Override
11303    public Builder newBuilderForType() { return newBuilder(); }
11304    public static Builder newBuilder() {
11305      return DEFAULT_INSTANCE.toBuilder();
11306    }
11307    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution prototype) {
11308      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
11309    }
11310    @java.lang.Override
11311    public Builder toBuilder() {
11312      return this == DEFAULT_INSTANCE
11313          ? new Builder() : new Builder().mergeFrom(this);
11314    }
11315
11316    @java.lang.Override
11317    protected Builder newBuilderForType(
11318        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
11319      Builder builder = new Builder(parent);
11320      return builder;
11321    }
11322    /**
11323     * Protobuf type {@code hybridsim.Distribution}
11324     */
11325    public static final class Builder extends
11326        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
11327        // @@protoc_insertion_point(builder_implements:hybridsim.Distribution)
11328        org.matsim.contrib.hybridsim.proto.HybridSimProto.DistributionOrBuilder {
11329      public static final com.google.protobuf.Descriptors.Descriptor
11330          getDescriptor() {
11331        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Distribution_descriptor;
11332      }
11333
11334      @java.lang.Override
11335      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
11336          internalGetFieldAccessorTable() {
11337        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Distribution_fieldAccessorTable
11338            .ensureFieldAccessorsInitialized(
11339                org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.Builder.class);
11340      }
11341
11342      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.newBuilder()
11343      private Builder() {
11344        maybeForceBuilderInitialization();
11345      }
11346
11347      private Builder(
11348          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
11349        super(parent);
11350        maybeForceBuilderInitialization();
11351      }
11352      private void maybeForceBuilderInitialization() {
11353        if (com.google.protobuf.GeneratedMessageV3
11354                .alwaysUseFieldBuilders) {
11355        }
11356      }
11357      @java.lang.Override
11358      public Builder clear() {
11359        super.clear();
11360        mu_ = 0D;
11361
11362        sigma_ = 0D;
11363
11364        return this;
11365      }
11366
11367      @java.lang.Override
11368      public com.google.protobuf.Descriptors.Descriptor
11369          getDescriptorForType() {
11370        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Distribution_descriptor;
11371      }
11372
11373      @java.lang.Override
11374      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getDefaultInstanceForType() {
11375        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance();
11376      }
11377
11378      @java.lang.Override
11379      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution build() {
11380        org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution result = buildPartial();
11381        if (!result.isInitialized()) {
11382          throw newUninitializedMessageException(result);
11383        }
11384        return result;
11385      }
11386
11387      @java.lang.Override
11388      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution buildPartial() {
11389        org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution(this);
11390        result.mu_ = mu_;
11391        result.sigma_ = sigma_;
11392        onBuilt();
11393        return result;
11394      }
11395
11396      @java.lang.Override
11397      public Builder clone() {
11398        return super.clone();
11399      }
11400      @java.lang.Override
11401      public Builder setField(
11402          com.google.protobuf.Descriptors.FieldDescriptor field,
11403          java.lang.Object value) {
11404        return super.setField(field, value);
11405      }
11406      @java.lang.Override
11407      public Builder clearField(
11408          com.google.protobuf.Descriptors.FieldDescriptor field) {
11409        return super.clearField(field);
11410      }
11411      @java.lang.Override
11412      public Builder clearOneof(
11413          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
11414        return super.clearOneof(oneof);
11415      }
11416      @java.lang.Override
11417      public Builder setRepeatedField(
11418          com.google.protobuf.Descriptors.FieldDescriptor field,
11419          int index, java.lang.Object value) {
11420        return super.setRepeatedField(field, index, value);
11421      }
11422      @java.lang.Override
11423      public Builder addRepeatedField(
11424          com.google.protobuf.Descriptors.FieldDescriptor field,
11425          java.lang.Object value) {
11426        return super.addRepeatedField(field, value);
11427      }
11428      @java.lang.Override
11429      public Builder mergeFrom(com.google.protobuf.Message other) {
11430        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution) {
11431          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution)other);
11432        } else {
11433          super.mergeFrom(other);
11434          return this;
11435        }
11436      }
11437
11438      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution other) {
11439        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution.getDefaultInstance()) return this;
11440        if (other.getMu() != 0D) {
11441          setMu(other.getMu());
11442        }
11443        if (other.getSigma() != 0D) {
11444          setSigma(other.getSigma());
11445        }
11446        this.mergeUnknownFields(other.unknownFields);
11447        onChanged();
11448        return this;
11449      }
11450
11451      @java.lang.Override
11452      public final boolean isInitialized() {
11453        return true;
11454      }
11455
11456      @java.lang.Override
11457      public Builder mergeFrom(
11458          com.google.protobuf.CodedInputStream input,
11459          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11460          throws java.io.IOException {
11461        org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution parsedMessage = null;
11462        try {
11463          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
11464        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
11465          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution) e.getUnfinishedMessage();
11466          throw e.unwrapIOException();
11467        } finally {
11468          if (parsedMessage != null) {
11469            mergeFrom(parsedMessage);
11470          }
11471        }
11472        return this;
11473      }
11474
11475      private double mu_ ;
11476      /**
11477       * <code>double mu = 1;</code>
11478       * @return The mu.
11479       */
11480      public double getMu() {
11481        return mu_;
11482      }
11483      /**
11484       * <code>double mu = 1;</code>
11485       * @param value The mu to set.
11486       * @return This builder for chaining.
11487       */
11488      public Builder setMu(double value) {
11489        
11490        mu_ = value;
11491        onChanged();
11492        return this;
11493      }
11494      /**
11495       * <code>double mu = 1;</code>
11496       * @return This builder for chaining.
11497       */
11498      public Builder clearMu() {
11499        
11500        mu_ = 0D;
11501        onChanged();
11502        return this;
11503      }
11504
11505      private double sigma_ ;
11506      /**
11507       * <code>double sigma = 2;</code>
11508       * @return The sigma.
11509       */
11510      public double getSigma() {
11511        return sigma_;
11512      }
11513      /**
11514       * <code>double sigma = 2;</code>
11515       * @param value The sigma to set.
11516       * @return This builder for chaining.
11517       */
11518      public Builder setSigma(double value) {
11519        
11520        sigma_ = value;
11521        onChanged();
11522        return this;
11523      }
11524      /**
11525       * <code>double sigma = 2;</code>
11526       * @return This builder for chaining.
11527       */
11528      public Builder clearSigma() {
11529        
11530        sigma_ = 0D;
11531        onChanged();
11532        return this;
11533      }
11534      @java.lang.Override
11535      public final Builder setUnknownFields(
11536          final com.google.protobuf.UnknownFieldSet unknownFields) {
11537        return super.setUnknownFields(unknownFields);
11538      }
11539
11540      @java.lang.Override
11541      public final Builder mergeUnknownFields(
11542          final com.google.protobuf.UnknownFieldSet unknownFields) {
11543        return super.mergeUnknownFields(unknownFields);
11544      }
11545
11546
11547      // @@protoc_insertion_point(builder_scope:hybridsim.Distribution)
11548    }
11549
11550    // @@protoc_insertion_point(class_scope:hybridsim.Distribution)
11551    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution DEFAULT_INSTANCE;
11552    static {
11553      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution();
11554    }
11555
11556    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getDefaultInstance() {
11557      return DEFAULT_INSTANCE;
11558    }
11559
11560    private static final com.google.protobuf.Parser<Distribution>
11561        PARSER = new com.google.protobuf.AbstractParser<Distribution>() {
11562      @java.lang.Override
11563      public Distribution parsePartialFrom(
11564          com.google.protobuf.CodedInputStream input,
11565          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11566          throws com.google.protobuf.InvalidProtocolBufferException {
11567        return new Distribution(input, extensionRegistry);
11568      }
11569    };
11570
11571    public static com.google.protobuf.Parser<Distribution> parser() {
11572      return PARSER;
11573    }
11574
11575    @java.lang.Override
11576    public com.google.protobuf.Parser<Distribution> getParserForType() {
11577      return PARSER;
11578    }
11579
11580    @java.lang.Override
11581    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Distribution getDefaultInstanceForType() {
11582      return DEFAULT_INSTANCE;
11583    }
11584
11585  }
11586
11587  public interface ForceOrBuilder extends
11588      // @@protoc_insertion_point(interface_extends:hybridsim.Force)
11589      com.google.protobuf.MessageOrBuilder {
11590
11591    /**
11592     * <code>double nu = 1;</code>
11593     * @return The nu.
11594     */
11595    double getNu();
11596
11597    /**
11598     * <code>double a = 2;</code>
11599     * @return The a.
11600     */
11601    double getA();
11602
11603    /**
11604     * <code>double b = 3;</code>
11605     * @return The b.
11606     */
11607    double getB();
11608
11609    /**
11610     * <code>double c = 4;</code>
11611     * @return The c.
11612     */
11613    double getC();
11614  }
11615  /**
11616   * Protobuf type {@code hybridsim.Force}
11617   */
11618  public  static final class Force extends
11619      com.google.protobuf.GeneratedMessageV3 implements
11620      // @@protoc_insertion_point(message_implements:hybridsim.Force)
11621      ForceOrBuilder {
11622  private static final long serialVersionUID = 0L;
11623    // Use Force.newBuilder() to construct.
11624    private Force(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
11625      super(builder);
11626    }
11627    private Force() {
11628    }
11629
11630    @java.lang.Override
11631    @SuppressWarnings({"unused"})
11632    protected java.lang.Object newInstance(
11633        UnusedPrivateParameter unused) {
11634      return new Force();
11635    }
11636
11637    @java.lang.Override
11638    public final com.google.protobuf.UnknownFieldSet
11639    getUnknownFields() {
11640      return this.unknownFields;
11641    }
11642    private Force(
11643        com.google.protobuf.CodedInputStream input,
11644        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11645        throws com.google.protobuf.InvalidProtocolBufferException {
11646      this();
11647      if (extensionRegistry == null) {
11648        throw new java.lang.NullPointerException();
11649      }
11650      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
11651          com.google.protobuf.UnknownFieldSet.newBuilder();
11652      try {
11653        boolean done = false;
11654        while (!done) {
11655          int tag = input.readTag();
11656          switch (tag) {
11657            case 0:
11658              done = true;
11659              break;
11660            case 9: {
11661
11662              nu_ = input.readDouble();
11663              break;
11664            }
11665            case 17: {
11666
11667              a_ = input.readDouble();
11668              break;
11669            }
11670            case 25: {
11671
11672              b_ = input.readDouble();
11673              break;
11674            }
11675            case 33: {
11676
11677              c_ = input.readDouble();
11678              break;
11679            }
11680            default: {
11681              if (!parseUnknownField(
11682                  input, unknownFields, extensionRegistry, tag)) {
11683                done = true;
11684              }
11685              break;
11686            }
11687          }
11688        }
11689      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
11690        throw e.setUnfinishedMessage(this);
11691      } catch (java.io.IOException e) {
11692        throw new com.google.protobuf.InvalidProtocolBufferException(
11693            e).setUnfinishedMessage(this);
11694      } finally {
11695        this.unknownFields = unknownFields.build();
11696        makeExtensionsImmutable();
11697      }
11698    }
11699    public static final com.google.protobuf.Descriptors.Descriptor
11700        getDescriptor() {
11701      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Force_descriptor;
11702    }
11703
11704    @java.lang.Override
11705    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
11706        internalGetFieldAccessorTable() {
11707      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Force_fieldAccessorTable
11708          .ensureFieldAccessorsInitialized(
11709              org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.Builder.class);
11710    }
11711
11712    public static final int NU_FIELD_NUMBER = 1;
11713    private double nu_;
11714    /**
11715     * <code>double nu = 1;</code>
11716     * @return The nu.
11717     */
11718    public double getNu() {
11719      return nu_;
11720    }
11721
11722    public static final int A_FIELD_NUMBER = 2;
11723    private double a_;
11724    /**
11725     * <code>double a = 2;</code>
11726     * @return The a.
11727     */
11728    public double getA() {
11729      return a_;
11730    }
11731
11732    public static final int B_FIELD_NUMBER = 3;
11733    private double b_;
11734    /**
11735     * <code>double b = 3;</code>
11736     * @return The b.
11737     */
11738    public double getB() {
11739      return b_;
11740    }
11741
11742    public static final int C_FIELD_NUMBER = 4;
11743    private double c_;
11744    /**
11745     * <code>double c = 4;</code>
11746     * @return The c.
11747     */
11748    public double getC() {
11749      return c_;
11750    }
11751
11752    private byte memoizedIsInitialized = -1;
11753    @java.lang.Override
11754    public final boolean isInitialized() {
11755      byte isInitialized = memoizedIsInitialized;
11756      if (isInitialized == 1) return true;
11757      if (isInitialized == 0) return false;
11758
11759      memoizedIsInitialized = 1;
11760      return true;
11761    }
11762
11763    @java.lang.Override
11764    public void writeTo(com.google.protobuf.CodedOutputStream output)
11765                        throws java.io.IOException {
11766      if (nu_ != 0D) {
11767        output.writeDouble(1, nu_);
11768      }
11769      if (a_ != 0D) {
11770        output.writeDouble(2, a_);
11771      }
11772      if (b_ != 0D) {
11773        output.writeDouble(3, b_);
11774      }
11775      if (c_ != 0D) {
11776        output.writeDouble(4, c_);
11777      }
11778      unknownFields.writeTo(output);
11779    }
11780
11781    @java.lang.Override
11782    public int getSerializedSize() {
11783      int size = memoizedSize;
11784      if (size != -1) return size;
11785
11786      size = 0;
11787      if (nu_ != 0D) {
11788        size += com.google.protobuf.CodedOutputStream
11789          .computeDoubleSize(1, nu_);
11790      }
11791      if (a_ != 0D) {
11792        size += com.google.protobuf.CodedOutputStream
11793          .computeDoubleSize(2, a_);
11794      }
11795      if (b_ != 0D) {
11796        size += com.google.protobuf.CodedOutputStream
11797          .computeDoubleSize(3, b_);
11798      }
11799      if (c_ != 0D) {
11800        size += com.google.protobuf.CodedOutputStream
11801          .computeDoubleSize(4, c_);
11802      }
11803      size += unknownFields.getSerializedSize();
11804      memoizedSize = size;
11805      return size;
11806    }
11807
11808    @java.lang.Override
11809    public boolean equals(final java.lang.Object obj) {
11810      if (obj == this) {
11811       return true;
11812      }
11813      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Force)) {
11814        return super.equals(obj);
11815      }
11816      org.matsim.contrib.hybridsim.proto.HybridSimProto.Force other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Force) obj;
11817
11818      if (java.lang.Double.doubleToLongBits(getNu())
11819          != java.lang.Double.doubleToLongBits(
11820              other.getNu())) return false;
11821      if (java.lang.Double.doubleToLongBits(getA())
11822          != java.lang.Double.doubleToLongBits(
11823              other.getA())) return false;
11824      if (java.lang.Double.doubleToLongBits(getB())
11825          != java.lang.Double.doubleToLongBits(
11826              other.getB())) return false;
11827      if (java.lang.Double.doubleToLongBits(getC())
11828          != java.lang.Double.doubleToLongBits(
11829              other.getC())) return false;
11830      if (!unknownFields.equals(other.unknownFields)) return false;
11831      return true;
11832    }
11833
11834    @java.lang.Override
11835    public int hashCode() {
11836      if (memoizedHashCode != 0) {
11837        return memoizedHashCode;
11838      }
11839      int hash = 41;
11840      hash = (19 * hash) + getDescriptor().hashCode();
11841      hash = (37 * hash) + NU_FIELD_NUMBER;
11842      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11843          java.lang.Double.doubleToLongBits(getNu()));
11844      hash = (37 * hash) + A_FIELD_NUMBER;
11845      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11846          java.lang.Double.doubleToLongBits(getA()));
11847      hash = (37 * hash) + B_FIELD_NUMBER;
11848      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11849          java.lang.Double.doubleToLongBits(getB()));
11850      hash = (37 * hash) + C_FIELD_NUMBER;
11851      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11852          java.lang.Double.doubleToLongBits(getC()));
11853      hash = (29 * hash) + unknownFields.hashCode();
11854      memoizedHashCode = hash;
11855      return hash;
11856    }
11857
11858    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Force parseFrom(
11859        java.nio.ByteBuffer data)
11860        throws com.google.protobuf.InvalidProtocolBufferException {
11861      return PARSER.parseFrom(data);
11862    }
11863    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Force parseFrom(
11864        java.nio.ByteBuffer data,
11865        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11866        throws com.google.protobuf.InvalidProtocolBufferException {
11867      return PARSER.parseFrom(data, extensionRegistry);
11868    }
11869    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Force parseFrom(
11870        com.google.protobuf.ByteString data)
11871        throws com.google.protobuf.InvalidProtocolBufferException {
11872      return PARSER.parseFrom(data);
11873    }
11874    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Force parseFrom(
11875        com.google.protobuf.ByteString data,
11876        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11877        throws com.google.protobuf.InvalidProtocolBufferException {
11878      return PARSER.parseFrom(data, extensionRegistry);
11879    }
11880    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Force parseFrom(byte[] data)
11881        throws com.google.protobuf.InvalidProtocolBufferException {
11882      return PARSER.parseFrom(data);
11883    }
11884    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Force parseFrom(
11885        byte[] data,
11886        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11887        throws com.google.protobuf.InvalidProtocolBufferException {
11888      return PARSER.parseFrom(data, extensionRegistry);
11889    }
11890    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Force parseFrom(java.io.InputStream input)
11891        throws java.io.IOException {
11892      return com.google.protobuf.GeneratedMessageV3
11893          .parseWithIOException(PARSER, input);
11894    }
11895    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Force parseFrom(
11896        java.io.InputStream input,
11897        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11898        throws java.io.IOException {
11899      return com.google.protobuf.GeneratedMessageV3
11900          .parseWithIOException(PARSER, input, extensionRegistry);
11901    }
11902    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Force parseDelimitedFrom(java.io.InputStream input)
11903        throws java.io.IOException {
11904      return com.google.protobuf.GeneratedMessageV3
11905          .parseDelimitedWithIOException(PARSER, input);
11906    }
11907    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Force parseDelimitedFrom(
11908        java.io.InputStream input,
11909        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11910        throws java.io.IOException {
11911      return com.google.protobuf.GeneratedMessageV3
11912          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
11913    }
11914    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Force parseFrom(
11915        com.google.protobuf.CodedInputStream input)
11916        throws java.io.IOException {
11917      return com.google.protobuf.GeneratedMessageV3
11918          .parseWithIOException(PARSER, input);
11919    }
11920    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Force parseFrom(
11921        com.google.protobuf.CodedInputStream input,
11922        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11923        throws java.io.IOException {
11924      return com.google.protobuf.GeneratedMessageV3
11925          .parseWithIOException(PARSER, input, extensionRegistry);
11926    }
11927
11928    @java.lang.Override
11929    public Builder newBuilderForType() { return newBuilder(); }
11930    public static Builder newBuilder() {
11931      return DEFAULT_INSTANCE.toBuilder();
11932    }
11933    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Force prototype) {
11934      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
11935    }
11936    @java.lang.Override
11937    public Builder toBuilder() {
11938      return this == DEFAULT_INSTANCE
11939          ? new Builder() : new Builder().mergeFrom(this);
11940    }
11941
11942    @java.lang.Override
11943    protected Builder newBuilderForType(
11944        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
11945      Builder builder = new Builder(parent);
11946      return builder;
11947    }
11948    /**
11949     * Protobuf type {@code hybridsim.Force}
11950     */
11951    public static final class Builder extends
11952        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
11953        // @@protoc_insertion_point(builder_implements:hybridsim.Force)
11954        org.matsim.contrib.hybridsim.proto.HybridSimProto.ForceOrBuilder {
11955      public static final com.google.protobuf.Descriptors.Descriptor
11956          getDescriptor() {
11957        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Force_descriptor;
11958      }
11959
11960      @java.lang.Override
11961      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
11962          internalGetFieldAccessorTable() {
11963        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Force_fieldAccessorTable
11964            .ensureFieldAccessorsInitialized(
11965                org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.Builder.class);
11966      }
11967
11968      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.newBuilder()
11969      private Builder() {
11970        maybeForceBuilderInitialization();
11971      }
11972
11973      private Builder(
11974          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
11975        super(parent);
11976        maybeForceBuilderInitialization();
11977      }
11978      private void maybeForceBuilderInitialization() {
11979        if (com.google.protobuf.GeneratedMessageV3
11980                .alwaysUseFieldBuilders) {
11981        }
11982      }
11983      @java.lang.Override
11984      public Builder clear() {
11985        super.clear();
11986        nu_ = 0D;
11987
11988        a_ = 0D;
11989
11990        b_ = 0D;
11991
11992        c_ = 0D;
11993
11994        return this;
11995      }
11996
11997      @java.lang.Override
11998      public com.google.protobuf.Descriptors.Descriptor
11999          getDescriptorForType() {
12000        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Force_descriptor;
12001      }
12002
12003      @java.lang.Override
12004      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Force getDefaultInstanceForType() {
12005        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.getDefaultInstance();
12006      }
12007
12008      @java.lang.Override
12009      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Force build() {
12010        org.matsim.contrib.hybridsim.proto.HybridSimProto.Force result = buildPartial();
12011        if (!result.isInitialized()) {
12012          throw newUninitializedMessageException(result);
12013        }
12014        return result;
12015      }
12016
12017      @java.lang.Override
12018      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Force buildPartial() {
12019        org.matsim.contrib.hybridsim.proto.HybridSimProto.Force result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Force(this);
12020        result.nu_ = nu_;
12021        result.a_ = a_;
12022        result.b_ = b_;
12023        result.c_ = c_;
12024        onBuilt();
12025        return result;
12026      }
12027
12028      @java.lang.Override
12029      public Builder clone() {
12030        return super.clone();
12031      }
12032      @java.lang.Override
12033      public Builder setField(
12034          com.google.protobuf.Descriptors.FieldDescriptor field,
12035          java.lang.Object value) {
12036        return super.setField(field, value);
12037      }
12038      @java.lang.Override
12039      public Builder clearField(
12040          com.google.protobuf.Descriptors.FieldDescriptor field) {
12041        return super.clearField(field);
12042      }
12043      @java.lang.Override
12044      public Builder clearOneof(
12045          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
12046        return super.clearOneof(oneof);
12047      }
12048      @java.lang.Override
12049      public Builder setRepeatedField(
12050          com.google.protobuf.Descriptors.FieldDescriptor field,
12051          int index, java.lang.Object value) {
12052        return super.setRepeatedField(field, index, value);
12053      }
12054      @java.lang.Override
12055      public Builder addRepeatedField(
12056          com.google.protobuf.Descriptors.FieldDescriptor field,
12057          java.lang.Object value) {
12058        return super.addRepeatedField(field, value);
12059      }
12060      @java.lang.Override
12061      public Builder mergeFrom(com.google.protobuf.Message other) {
12062        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Force) {
12063          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Force)other);
12064        } else {
12065          super.mergeFrom(other);
12066          return this;
12067        }
12068      }
12069
12070      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Force other) {
12071        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Force.getDefaultInstance()) return this;
12072        if (other.getNu() != 0D) {
12073          setNu(other.getNu());
12074        }
12075        if (other.getA() != 0D) {
12076          setA(other.getA());
12077        }
12078        if (other.getB() != 0D) {
12079          setB(other.getB());
12080        }
12081        if (other.getC() != 0D) {
12082          setC(other.getC());
12083        }
12084        this.mergeUnknownFields(other.unknownFields);
12085        onChanged();
12086        return this;
12087      }
12088
12089      @java.lang.Override
12090      public final boolean isInitialized() {
12091        return true;
12092      }
12093
12094      @java.lang.Override
12095      public Builder mergeFrom(
12096          com.google.protobuf.CodedInputStream input,
12097          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12098          throws java.io.IOException {
12099        org.matsim.contrib.hybridsim.proto.HybridSimProto.Force parsedMessage = null;
12100        try {
12101          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
12102        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
12103          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Force) e.getUnfinishedMessage();
12104          throw e.unwrapIOException();
12105        } finally {
12106          if (parsedMessage != null) {
12107            mergeFrom(parsedMessage);
12108          }
12109        }
12110        return this;
12111      }
12112
12113      private double nu_ ;
12114      /**
12115       * <code>double nu = 1;</code>
12116       * @return The nu.
12117       */
12118      public double getNu() {
12119        return nu_;
12120      }
12121      /**
12122       * <code>double nu = 1;</code>
12123       * @param value The nu to set.
12124       * @return This builder for chaining.
12125       */
12126      public Builder setNu(double value) {
12127        
12128        nu_ = value;
12129        onChanged();
12130        return this;
12131      }
12132      /**
12133       * <code>double nu = 1;</code>
12134       * @return This builder for chaining.
12135       */
12136      public Builder clearNu() {
12137        
12138        nu_ = 0D;
12139        onChanged();
12140        return this;
12141      }
12142
12143      private double a_ ;
12144      /**
12145       * <code>double a = 2;</code>
12146       * @return The a.
12147       */
12148      public double getA() {
12149        return a_;
12150      }
12151      /**
12152       * <code>double a = 2;</code>
12153       * @param value The a to set.
12154       * @return This builder for chaining.
12155       */
12156      public Builder setA(double value) {
12157        
12158        a_ = value;
12159        onChanged();
12160        return this;
12161      }
12162      /**
12163       * <code>double a = 2;</code>
12164       * @return This builder for chaining.
12165       */
12166      public Builder clearA() {
12167        
12168        a_ = 0D;
12169        onChanged();
12170        return this;
12171      }
12172
12173      private double b_ ;
12174      /**
12175       * <code>double b = 3;</code>
12176       * @return The b.
12177       */
12178      public double getB() {
12179        return b_;
12180      }
12181      /**
12182       * <code>double b = 3;</code>
12183       * @param value The b to set.
12184       * @return This builder for chaining.
12185       */
12186      public Builder setB(double value) {
12187        
12188        b_ = value;
12189        onChanged();
12190        return this;
12191      }
12192      /**
12193       * <code>double b = 3;</code>
12194       * @return This builder for chaining.
12195       */
12196      public Builder clearB() {
12197        
12198        b_ = 0D;
12199        onChanged();
12200        return this;
12201      }
12202
12203      private double c_ ;
12204      /**
12205       * <code>double c = 4;</code>
12206       * @return The c.
12207       */
12208      public double getC() {
12209        return c_;
12210      }
12211      /**
12212       * <code>double c = 4;</code>
12213       * @param value The c to set.
12214       * @return This builder for chaining.
12215       */
12216      public Builder setC(double value) {
12217        
12218        c_ = value;
12219        onChanged();
12220        return this;
12221      }
12222      /**
12223       * <code>double c = 4;</code>
12224       * @return This builder for chaining.
12225       */
12226      public Builder clearC() {
12227        
12228        c_ = 0D;
12229        onChanged();
12230        return this;
12231      }
12232      @java.lang.Override
12233      public final Builder setUnknownFields(
12234          final com.google.protobuf.UnknownFieldSet unknownFields) {
12235        return super.setUnknownFields(unknownFields);
12236      }
12237
12238      @java.lang.Override
12239      public final Builder mergeUnknownFields(
12240          final com.google.protobuf.UnknownFieldSet unknownFields) {
12241        return super.mergeUnknownFields(unknownFields);
12242      }
12243
12244
12245      // @@protoc_insertion_point(builder_scope:hybridsim.Force)
12246    }
12247
12248    // @@protoc_insertion_point(class_scope:hybridsim.Force)
12249    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Force DEFAULT_INSTANCE;
12250    static {
12251      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Force();
12252    }
12253
12254    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Force getDefaultInstance() {
12255      return DEFAULT_INSTANCE;
12256    }
12257
12258    private static final com.google.protobuf.Parser<Force>
12259        PARSER = new com.google.protobuf.AbstractParser<Force>() {
12260      @java.lang.Override
12261      public Force parsePartialFrom(
12262          com.google.protobuf.CodedInputStream input,
12263          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12264          throws com.google.protobuf.InvalidProtocolBufferException {
12265        return new Force(input, extensionRegistry);
12266      }
12267    };
12268
12269    public static com.google.protobuf.Parser<Force> parser() {
12270      return PARSER;
12271    }
12272
12273    @java.lang.Override
12274    public com.google.protobuf.Parser<Force> getParserForType() {
12275      return PARSER;
12276    }
12277
12278    @java.lang.Override
12279    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Force getDefaultInstanceForType() {
12280      return DEFAULT_INSTANCE;
12281    }
12282
12283  }
12284
12285  public interface Tordeux2015ForceOrBuilder extends
12286      // @@protoc_insertion_point(interface_extends:hybridsim.Tordeux2015Force)
12287      com.google.protobuf.MessageOrBuilder {
12288
12289    /**
12290     * <code>double a = 1;</code>
12291     * @return The a.
12292     */
12293    double getA();
12294
12295    /**
12296     * <code>double D = 2;</code>
12297     * @return The d.
12298     */
12299    double getD();
12300  }
12301  /**
12302   * Protobuf type {@code hybridsim.Tordeux2015Force}
12303   */
12304  public  static final class Tordeux2015Force extends
12305      com.google.protobuf.GeneratedMessageV3 implements
12306      // @@protoc_insertion_point(message_implements:hybridsim.Tordeux2015Force)
12307      Tordeux2015ForceOrBuilder {
12308  private static final long serialVersionUID = 0L;
12309    // Use Tordeux2015Force.newBuilder() to construct.
12310    private Tordeux2015Force(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
12311      super(builder);
12312    }
12313    private Tordeux2015Force() {
12314    }
12315
12316    @java.lang.Override
12317    @SuppressWarnings({"unused"})
12318    protected java.lang.Object newInstance(
12319        UnusedPrivateParameter unused) {
12320      return new Tordeux2015Force();
12321    }
12322
12323    @java.lang.Override
12324    public final com.google.protobuf.UnknownFieldSet
12325    getUnknownFields() {
12326      return this.unknownFields;
12327    }
12328    private Tordeux2015Force(
12329        com.google.protobuf.CodedInputStream input,
12330        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12331        throws com.google.protobuf.InvalidProtocolBufferException {
12332      this();
12333      if (extensionRegistry == null) {
12334        throw new java.lang.NullPointerException();
12335      }
12336      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
12337          com.google.protobuf.UnknownFieldSet.newBuilder();
12338      try {
12339        boolean done = false;
12340        while (!done) {
12341          int tag = input.readTag();
12342          switch (tag) {
12343            case 0:
12344              done = true;
12345              break;
12346            case 9: {
12347
12348              a_ = input.readDouble();
12349              break;
12350            }
12351            case 17: {
12352
12353              d_ = input.readDouble();
12354              break;
12355            }
12356            default: {
12357              if (!parseUnknownField(
12358                  input, unknownFields, extensionRegistry, tag)) {
12359                done = true;
12360              }
12361              break;
12362            }
12363          }
12364        }
12365      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
12366        throw e.setUnfinishedMessage(this);
12367      } catch (java.io.IOException e) {
12368        throw new com.google.protobuf.InvalidProtocolBufferException(
12369            e).setUnfinishedMessage(this);
12370      } finally {
12371        this.unknownFields = unknownFields.build();
12372        makeExtensionsImmutable();
12373      }
12374    }
12375    public static final com.google.protobuf.Descriptors.Descriptor
12376        getDescriptor() {
12377      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Tordeux2015Force_descriptor;
12378    }
12379
12380    @java.lang.Override
12381    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
12382        internalGetFieldAccessorTable() {
12383      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Tordeux2015Force_fieldAccessorTable
12384          .ensureFieldAccessorsInitialized(
12385              org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.Builder.class);
12386    }
12387
12388    public static final int A_FIELD_NUMBER = 1;
12389    private double a_;
12390    /**
12391     * <code>double a = 1;</code>
12392     * @return The a.
12393     */
12394    public double getA() {
12395      return a_;
12396    }
12397
12398    public static final int D_FIELD_NUMBER = 2;
12399    private double d_;
12400    /**
12401     * <code>double D = 2;</code>
12402     * @return The d.
12403     */
12404    public double getD() {
12405      return d_;
12406    }
12407
12408    private byte memoizedIsInitialized = -1;
12409    @java.lang.Override
12410    public final boolean isInitialized() {
12411      byte isInitialized = memoizedIsInitialized;
12412      if (isInitialized == 1) return true;
12413      if (isInitialized == 0) return false;
12414
12415      memoizedIsInitialized = 1;
12416      return true;
12417    }
12418
12419    @java.lang.Override
12420    public void writeTo(com.google.protobuf.CodedOutputStream output)
12421                        throws java.io.IOException {
12422      if (a_ != 0D) {
12423        output.writeDouble(1, a_);
12424      }
12425      if (d_ != 0D) {
12426        output.writeDouble(2, d_);
12427      }
12428      unknownFields.writeTo(output);
12429    }
12430
12431    @java.lang.Override
12432    public int getSerializedSize() {
12433      int size = memoizedSize;
12434      if (size != -1) return size;
12435
12436      size = 0;
12437      if (a_ != 0D) {
12438        size += com.google.protobuf.CodedOutputStream
12439          .computeDoubleSize(1, a_);
12440      }
12441      if (d_ != 0D) {
12442        size += com.google.protobuf.CodedOutputStream
12443          .computeDoubleSize(2, d_);
12444      }
12445      size += unknownFields.getSerializedSize();
12446      memoizedSize = size;
12447      return size;
12448    }
12449
12450    @java.lang.Override
12451    public boolean equals(final java.lang.Object obj) {
12452      if (obj == this) {
12453       return true;
12454      }
12455      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force)) {
12456        return super.equals(obj);
12457      }
12458      org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force) obj;
12459
12460      if (java.lang.Double.doubleToLongBits(getA())
12461          != java.lang.Double.doubleToLongBits(
12462              other.getA())) return false;
12463      if (java.lang.Double.doubleToLongBits(getD())
12464          != java.lang.Double.doubleToLongBits(
12465              other.getD())) return false;
12466      if (!unknownFields.equals(other.unknownFields)) return false;
12467      return true;
12468    }
12469
12470    @java.lang.Override
12471    public int hashCode() {
12472      if (memoizedHashCode != 0) {
12473        return memoizedHashCode;
12474      }
12475      int hash = 41;
12476      hash = (19 * hash) + getDescriptor().hashCode();
12477      hash = (37 * hash) + A_FIELD_NUMBER;
12478      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12479          java.lang.Double.doubleToLongBits(getA()));
12480      hash = (37 * hash) + D_FIELD_NUMBER;
12481      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12482          java.lang.Double.doubleToLongBits(getD()));
12483      hash = (29 * hash) + unknownFields.hashCode();
12484      memoizedHashCode = hash;
12485      return hash;
12486    }
12487
12488    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force parseFrom(
12489        java.nio.ByteBuffer data)
12490        throws com.google.protobuf.InvalidProtocolBufferException {
12491      return PARSER.parseFrom(data);
12492    }
12493    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force parseFrom(
12494        java.nio.ByteBuffer data,
12495        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12496        throws com.google.protobuf.InvalidProtocolBufferException {
12497      return PARSER.parseFrom(data, extensionRegistry);
12498    }
12499    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force parseFrom(
12500        com.google.protobuf.ByteString data)
12501        throws com.google.protobuf.InvalidProtocolBufferException {
12502      return PARSER.parseFrom(data);
12503    }
12504    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force parseFrom(
12505        com.google.protobuf.ByteString data,
12506        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12507        throws com.google.protobuf.InvalidProtocolBufferException {
12508      return PARSER.parseFrom(data, extensionRegistry);
12509    }
12510    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force parseFrom(byte[] data)
12511        throws com.google.protobuf.InvalidProtocolBufferException {
12512      return PARSER.parseFrom(data);
12513    }
12514    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force parseFrom(
12515        byte[] data,
12516        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12517        throws com.google.protobuf.InvalidProtocolBufferException {
12518      return PARSER.parseFrom(data, extensionRegistry);
12519    }
12520    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force parseFrom(java.io.InputStream input)
12521        throws java.io.IOException {
12522      return com.google.protobuf.GeneratedMessageV3
12523          .parseWithIOException(PARSER, input);
12524    }
12525    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force parseFrom(
12526        java.io.InputStream input,
12527        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12528        throws java.io.IOException {
12529      return com.google.protobuf.GeneratedMessageV3
12530          .parseWithIOException(PARSER, input, extensionRegistry);
12531    }
12532    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force parseDelimitedFrom(java.io.InputStream input)
12533        throws java.io.IOException {
12534      return com.google.protobuf.GeneratedMessageV3
12535          .parseDelimitedWithIOException(PARSER, input);
12536    }
12537    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force parseDelimitedFrom(
12538        java.io.InputStream input,
12539        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12540        throws java.io.IOException {
12541      return com.google.protobuf.GeneratedMessageV3
12542          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
12543    }
12544    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force parseFrom(
12545        com.google.protobuf.CodedInputStream input)
12546        throws java.io.IOException {
12547      return com.google.protobuf.GeneratedMessageV3
12548          .parseWithIOException(PARSER, input);
12549    }
12550    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force parseFrom(
12551        com.google.protobuf.CodedInputStream input,
12552        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12553        throws java.io.IOException {
12554      return com.google.protobuf.GeneratedMessageV3
12555          .parseWithIOException(PARSER, input, extensionRegistry);
12556    }
12557
12558    @java.lang.Override
12559    public Builder newBuilderForType() { return newBuilder(); }
12560    public static Builder newBuilder() {
12561      return DEFAULT_INSTANCE.toBuilder();
12562    }
12563    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force prototype) {
12564      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
12565    }
12566    @java.lang.Override
12567    public Builder toBuilder() {
12568      return this == DEFAULT_INSTANCE
12569          ? new Builder() : new Builder().mergeFrom(this);
12570    }
12571
12572    @java.lang.Override
12573    protected Builder newBuilderForType(
12574        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
12575      Builder builder = new Builder(parent);
12576      return builder;
12577    }
12578    /**
12579     * Protobuf type {@code hybridsim.Tordeux2015Force}
12580     */
12581    public static final class Builder extends
12582        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
12583        // @@protoc_insertion_point(builder_implements:hybridsim.Tordeux2015Force)
12584        org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015ForceOrBuilder {
12585      public static final com.google.protobuf.Descriptors.Descriptor
12586          getDescriptor() {
12587        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Tordeux2015Force_descriptor;
12588      }
12589
12590      @java.lang.Override
12591      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
12592          internalGetFieldAccessorTable() {
12593        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Tordeux2015Force_fieldAccessorTable
12594            .ensureFieldAccessorsInitialized(
12595                org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.Builder.class);
12596      }
12597
12598      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.newBuilder()
12599      private Builder() {
12600        maybeForceBuilderInitialization();
12601      }
12602
12603      private Builder(
12604          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
12605        super(parent);
12606        maybeForceBuilderInitialization();
12607      }
12608      private void maybeForceBuilderInitialization() {
12609        if (com.google.protobuf.GeneratedMessageV3
12610                .alwaysUseFieldBuilders) {
12611        }
12612      }
12613      @java.lang.Override
12614      public Builder clear() {
12615        super.clear();
12616        a_ = 0D;
12617
12618        d_ = 0D;
12619
12620        return this;
12621      }
12622
12623      @java.lang.Override
12624      public com.google.protobuf.Descriptors.Descriptor
12625          getDescriptorForType() {
12626        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Tordeux2015Force_descriptor;
12627      }
12628
12629      @java.lang.Override
12630      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force getDefaultInstanceForType() {
12631        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.getDefaultInstance();
12632      }
12633
12634      @java.lang.Override
12635      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force build() {
12636        org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force result = buildPartial();
12637        if (!result.isInitialized()) {
12638          throw newUninitializedMessageException(result);
12639        }
12640        return result;
12641      }
12642
12643      @java.lang.Override
12644      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force buildPartial() {
12645        org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force(this);
12646        result.a_ = a_;
12647        result.d_ = d_;
12648        onBuilt();
12649        return result;
12650      }
12651
12652      @java.lang.Override
12653      public Builder clone() {
12654        return super.clone();
12655      }
12656      @java.lang.Override
12657      public Builder setField(
12658          com.google.protobuf.Descriptors.FieldDescriptor field,
12659          java.lang.Object value) {
12660        return super.setField(field, value);
12661      }
12662      @java.lang.Override
12663      public Builder clearField(
12664          com.google.protobuf.Descriptors.FieldDescriptor field) {
12665        return super.clearField(field);
12666      }
12667      @java.lang.Override
12668      public Builder clearOneof(
12669          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
12670        return super.clearOneof(oneof);
12671      }
12672      @java.lang.Override
12673      public Builder setRepeatedField(
12674          com.google.protobuf.Descriptors.FieldDescriptor field,
12675          int index, java.lang.Object value) {
12676        return super.setRepeatedField(field, index, value);
12677      }
12678      @java.lang.Override
12679      public Builder addRepeatedField(
12680          com.google.protobuf.Descriptors.FieldDescriptor field,
12681          java.lang.Object value) {
12682        return super.addRepeatedField(field, value);
12683      }
12684      @java.lang.Override
12685      public Builder mergeFrom(com.google.protobuf.Message other) {
12686        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force) {
12687          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force)other);
12688        } else {
12689          super.mergeFrom(other);
12690          return this;
12691        }
12692      }
12693
12694      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force other) {
12695        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force.getDefaultInstance()) return this;
12696        if (other.getA() != 0D) {
12697          setA(other.getA());
12698        }
12699        if (other.getD() != 0D) {
12700          setD(other.getD());
12701        }
12702        this.mergeUnknownFields(other.unknownFields);
12703        onChanged();
12704        return this;
12705      }
12706
12707      @java.lang.Override
12708      public final boolean isInitialized() {
12709        return true;
12710      }
12711
12712      @java.lang.Override
12713      public Builder mergeFrom(
12714          com.google.protobuf.CodedInputStream input,
12715          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12716          throws java.io.IOException {
12717        org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force parsedMessage = null;
12718        try {
12719          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
12720        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
12721          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force) e.getUnfinishedMessage();
12722          throw e.unwrapIOException();
12723        } finally {
12724          if (parsedMessage != null) {
12725            mergeFrom(parsedMessage);
12726          }
12727        }
12728        return this;
12729      }
12730
12731      private double a_ ;
12732      /**
12733       * <code>double a = 1;</code>
12734       * @return The a.
12735       */
12736      public double getA() {
12737        return a_;
12738      }
12739      /**
12740       * <code>double a = 1;</code>
12741       * @param value The a to set.
12742       * @return This builder for chaining.
12743       */
12744      public Builder setA(double value) {
12745        
12746        a_ = value;
12747        onChanged();
12748        return this;
12749      }
12750      /**
12751       * <code>double a = 1;</code>
12752       * @return This builder for chaining.
12753       */
12754      public Builder clearA() {
12755        
12756        a_ = 0D;
12757        onChanged();
12758        return this;
12759      }
12760
12761      private double d_ ;
12762      /**
12763       * <code>double D = 2;</code>
12764       * @return The d.
12765       */
12766      public double getD() {
12767        return d_;
12768      }
12769      /**
12770       * <code>double D = 2;</code>
12771       * @param value The d to set.
12772       * @return This builder for chaining.
12773       */
12774      public Builder setD(double value) {
12775        
12776        d_ = value;
12777        onChanged();
12778        return this;
12779      }
12780      /**
12781       * <code>double D = 2;</code>
12782       * @return This builder for chaining.
12783       */
12784      public Builder clearD() {
12785        
12786        d_ = 0D;
12787        onChanged();
12788        return this;
12789      }
12790      @java.lang.Override
12791      public final Builder setUnknownFields(
12792          final com.google.protobuf.UnknownFieldSet unknownFields) {
12793        return super.setUnknownFields(unknownFields);
12794      }
12795
12796      @java.lang.Override
12797      public final Builder mergeUnknownFields(
12798          final com.google.protobuf.UnknownFieldSet unknownFields) {
12799        return super.mergeUnknownFields(unknownFields);
12800      }
12801
12802
12803      // @@protoc_insertion_point(builder_scope:hybridsim.Tordeux2015Force)
12804    }
12805
12806    // @@protoc_insertion_point(class_scope:hybridsim.Tordeux2015Force)
12807    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force DEFAULT_INSTANCE;
12808    static {
12809      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force();
12810    }
12811
12812    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force getDefaultInstance() {
12813      return DEFAULT_INSTANCE;
12814    }
12815
12816    private static final com.google.protobuf.Parser<Tordeux2015Force>
12817        PARSER = new com.google.protobuf.AbstractParser<Tordeux2015Force>() {
12818      @java.lang.Override
12819      public Tordeux2015Force parsePartialFrom(
12820          com.google.protobuf.CodedInputStream input,
12821          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12822          throws com.google.protobuf.InvalidProtocolBufferException {
12823        return new Tordeux2015Force(input, extensionRegistry);
12824      }
12825    };
12826
12827    public static com.google.protobuf.Parser<Tordeux2015Force> parser() {
12828      return PARSER;
12829    }
12830
12831    @java.lang.Override
12832    public com.google.protobuf.Parser<Tordeux2015Force> getParserForType() {
12833      return PARSER;
12834    }
12835
12836    @java.lang.Override
12837    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Tordeux2015Force getDefaultInstanceForType() {
12838      return DEFAULT_INSTANCE;
12839    }
12840
12841  }
12842
12843  public interface GroupOrBuilder extends
12844      // @@protoc_insertion_point(interface_extends:hybridsim.Group)
12845      com.google.protobuf.MessageOrBuilder {
12846
12847    /**
12848     * <code>int32 group_id = 1;</code>
12849     * @return The groupId.
12850     */
12851    int getGroupId();
12852
12853    /**
12854     * <code>int32 room_id = 2;</code>
12855     * @return The roomId.
12856     */
12857    int getRoomId();
12858
12859    /**
12860     * <code>int32 subroom_id = 3;</code>
12861     * @return The subroomId.
12862     */
12863    int getSubroomId();
12864
12865    /**
12866     * <code>int32 number = 4;</code>
12867     * @return The number.
12868     */
12869    int getNumber();
12870
12871    /**
12872     * <code>int32 router_id = 5;</code>
12873     * @return The routerId.
12874     */
12875    int getRouterId();
12876
12877    /**
12878     * <code>int32 agent_parameter_id = 6;</code>
12879     * @return The agentParameterId.
12880     */
12881    int getAgentParameterId();
12882
12883    /**
12884     * <code>.hybridsim.Coordinate min_x_y = 7;</code>
12885     * @return Whether the minXY field is set.
12886     */
12887    boolean hasMinXY();
12888    /**
12889     * <code>.hybridsim.Coordinate min_x_y = 7;</code>
12890     * @return The minXY.
12891     */
12892    org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getMinXY();
12893    /**
12894     * <code>.hybridsim.Coordinate min_x_y = 7;</code>
12895     */
12896    org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getMinXYOrBuilder();
12897
12898    /**
12899     * <code>.hybridsim.Coordinate max_x_y = 8;</code>
12900     * @return Whether the maxXY field is set.
12901     */
12902    boolean hasMaxXY();
12903    /**
12904     * <code>.hybridsim.Coordinate max_x_y = 8;</code>
12905     * @return The maxXY.
12906     */
12907    org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getMaxXY();
12908    /**
12909     * <code>.hybridsim.Coordinate max_x_y = 8;</code>
12910     */
12911    org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getMaxXYOrBuilder();
12912  }
12913  /**
12914   * Protobuf type {@code hybridsim.Group}
12915   */
12916  public  static final class Group extends
12917      com.google.protobuf.GeneratedMessageV3 implements
12918      // @@protoc_insertion_point(message_implements:hybridsim.Group)
12919      GroupOrBuilder {
12920  private static final long serialVersionUID = 0L;
12921    // Use Group.newBuilder() to construct.
12922    private Group(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
12923      super(builder);
12924    }
12925    private Group() {
12926    }
12927
12928    @java.lang.Override
12929    @SuppressWarnings({"unused"})
12930    protected java.lang.Object newInstance(
12931        UnusedPrivateParameter unused) {
12932      return new Group();
12933    }
12934
12935    @java.lang.Override
12936    public final com.google.protobuf.UnknownFieldSet
12937    getUnknownFields() {
12938      return this.unknownFields;
12939    }
12940    private Group(
12941        com.google.protobuf.CodedInputStream input,
12942        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12943        throws com.google.protobuf.InvalidProtocolBufferException {
12944      this();
12945      if (extensionRegistry == null) {
12946        throw new java.lang.NullPointerException();
12947      }
12948      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
12949          com.google.protobuf.UnknownFieldSet.newBuilder();
12950      try {
12951        boolean done = false;
12952        while (!done) {
12953          int tag = input.readTag();
12954          switch (tag) {
12955            case 0:
12956              done = true;
12957              break;
12958            case 8: {
12959
12960              groupId_ = input.readInt32();
12961              break;
12962            }
12963            case 16: {
12964
12965              roomId_ = input.readInt32();
12966              break;
12967            }
12968            case 24: {
12969
12970              subroomId_ = input.readInt32();
12971              break;
12972            }
12973            case 32: {
12974
12975              number_ = input.readInt32();
12976              break;
12977            }
12978            case 40: {
12979
12980              routerId_ = input.readInt32();
12981              break;
12982            }
12983            case 48: {
12984
12985              agentParameterId_ = input.readInt32();
12986              break;
12987            }
12988            case 58: {
12989              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder subBuilder = null;
12990              if (minXY_ != null) {
12991                subBuilder = minXY_.toBuilder();
12992              }
12993              minXY_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.parser(), extensionRegistry);
12994              if (subBuilder != null) {
12995                subBuilder.mergeFrom(minXY_);
12996                minXY_ = subBuilder.buildPartial();
12997              }
12998
12999              break;
13000            }
13001            case 66: {
13002              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder subBuilder = null;
13003              if (maxXY_ != null) {
13004                subBuilder = maxXY_.toBuilder();
13005              }
13006              maxXY_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.parser(), extensionRegistry);
13007              if (subBuilder != null) {
13008                subBuilder.mergeFrom(maxXY_);
13009                maxXY_ = subBuilder.buildPartial();
13010              }
13011
13012              break;
13013            }
13014            default: {
13015              if (!parseUnknownField(
13016                  input, unknownFields, extensionRegistry, tag)) {
13017                done = true;
13018              }
13019              break;
13020            }
13021          }
13022        }
13023      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
13024        throw e.setUnfinishedMessage(this);
13025      } catch (java.io.IOException e) {
13026        throw new com.google.protobuf.InvalidProtocolBufferException(
13027            e).setUnfinishedMessage(this);
13028      } finally {
13029        this.unknownFields = unknownFields.build();
13030        makeExtensionsImmutable();
13031      }
13032    }
13033    public static final com.google.protobuf.Descriptors.Descriptor
13034        getDescriptor() {
13035      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Group_descriptor;
13036    }
13037
13038    @java.lang.Override
13039    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
13040        internalGetFieldAccessorTable() {
13041      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Group_fieldAccessorTable
13042          .ensureFieldAccessorsInitialized(
13043              org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.Builder.class);
13044    }
13045
13046    public static final int GROUP_ID_FIELD_NUMBER = 1;
13047    private int groupId_;
13048    /**
13049     * <code>int32 group_id = 1;</code>
13050     * @return The groupId.
13051     */
13052    public int getGroupId() {
13053      return groupId_;
13054    }
13055
13056    public static final int ROOM_ID_FIELD_NUMBER = 2;
13057    private int roomId_;
13058    /**
13059     * <code>int32 room_id = 2;</code>
13060     * @return The roomId.
13061     */
13062    public int getRoomId() {
13063      return roomId_;
13064    }
13065
13066    public static final int SUBROOM_ID_FIELD_NUMBER = 3;
13067    private int subroomId_;
13068    /**
13069     * <code>int32 subroom_id = 3;</code>
13070     * @return The subroomId.
13071     */
13072    public int getSubroomId() {
13073      return subroomId_;
13074    }
13075
13076    public static final int NUMBER_FIELD_NUMBER = 4;
13077    private int number_;
13078    /**
13079     * <code>int32 number = 4;</code>
13080     * @return The number.
13081     */
13082    public int getNumber() {
13083      return number_;
13084    }
13085
13086    public static final int ROUTER_ID_FIELD_NUMBER = 5;
13087    private int routerId_;
13088    /**
13089     * <code>int32 router_id = 5;</code>
13090     * @return The routerId.
13091     */
13092    public int getRouterId() {
13093      return routerId_;
13094    }
13095
13096    public static final int AGENT_PARAMETER_ID_FIELD_NUMBER = 6;
13097    private int agentParameterId_;
13098    /**
13099     * <code>int32 agent_parameter_id = 6;</code>
13100     * @return The agentParameterId.
13101     */
13102    public int getAgentParameterId() {
13103      return agentParameterId_;
13104    }
13105
13106    public static final int MIN_X_Y_FIELD_NUMBER = 7;
13107    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate minXY_;
13108    /**
13109     * <code>.hybridsim.Coordinate min_x_y = 7;</code>
13110     * @return Whether the minXY field is set.
13111     */
13112    public boolean hasMinXY() {
13113      return minXY_ != null;
13114    }
13115    /**
13116     * <code>.hybridsim.Coordinate min_x_y = 7;</code>
13117     * @return The minXY.
13118     */
13119    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getMinXY() {
13120      return minXY_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : minXY_;
13121    }
13122    /**
13123     * <code>.hybridsim.Coordinate min_x_y = 7;</code>
13124     */
13125    public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getMinXYOrBuilder() {
13126      return getMinXY();
13127    }
13128
13129    public static final int MAX_X_Y_FIELD_NUMBER = 8;
13130    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate maxXY_;
13131    /**
13132     * <code>.hybridsim.Coordinate max_x_y = 8;</code>
13133     * @return Whether the maxXY field is set.
13134     */
13135    public boolean hasMaxXY() {
13136      return maxXY_ != null;
13137    }
13138    /**
13139     * <code>.hybridsim.Coordinate max_x_y = 8;</code>
13140     * @return The maxXY.
13141     */
13142    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getMaxXY() {
13143      return maxXY_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : maxXY_;
13144    }
13145    /**
13146     * <code>.hybridsim.Coordinate max_x_y = 8;</code>
13147     */
13148    public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getMaxXYOrBuilder() {
13149      return getMaxXY();
13150    }
13151
13152    private byte memoizedIsInitialized = -1;
13153    @java.lang.Override
13154    public final boolean isInitialized() {
13155      byte isInitialized = memoizedIsInitialized;
13156      if (isInitialized == 1) return true;
13157      if (isInitialized == 0) return false;
13158
13159      memoizedIsInitialized = 1;
13160      return true;
13161    }
13162
13163    @java.lang.Override
13164    public void writeTo(com.google.protobuf.CodedOutputStream output)
13165                        throws java.io.IOException {
13166      if (groupId_ != 0) {
13167        output.writeInt32(1, groupId_);
13168      }
13169      if (roomId_ != 0) {
13170        output.writeInt32(2, roomId_);
13171      }
13172      if (subroomId_ != 0) {
13173        output.writeInt32(3, subroomId_);
13174      }
13175      if (number_ != 0) {
13176        output.writeInt32(4, number_);
13177      }
13178      if (routerId_ != 0) {
13179        output.writeInt32(5, routerId_);
13180      }
13181      if (agentParameterId_ != 0) {
13182        output.writeInt32(6, agentParameterId_);
13183      }
13184      if (minXY_ != null) {
13185        output.writeMessage(7, getMinXY());
13186      }
13187      if (maxXY_ != null) {
13188        output.writeMessage(8, getMaxXY());
13189      }
13190      unknownFields.writeTo(output);
13191    }
13192
13193    @java.lang.Override
13194    public int getSerializedSize() {
13195      int size = memoizedSize;
13196      if (size != -1) return size;
13197
13198      size = 0;
13199      if (groupId_ != 0) {
13200        size += com.google.protobuf.CodedOutputStream
13201          .computeInt32Size(1, groupId_);
13202      }
13203      if (roomId_ != 0) {
13204        size += com.google.protobuf.CodedOutputStream
13205          .computeInt32Size(2, roomId_);
13206      }
13207      if (subroomId_ != 0) {
13208        size += com.google.protobuf.CodedOutputStream
13209          .computeInt32Size(3, subroomId_);
13210      }
13211      if (number_ != 0) {
13212        size += com.google.protobuf.CodedOutputStream
13213          .computeInt32Size(4, number_);
13214      }
13215      if (routerId_ != 0) {
13216        size += com.google.protobuf.CodedOutputStream
13217          .computeInt32Size(5, routerId_);
13218      }
13219      if (agentParameterId_ != 0) {
13220        size += com.google.protobuf.CodedOutputStream
13221          .computeInt32Size(6, agentParameterId_);
13222      }
13223      if (minXY_ != null) {
13224        size += com.google.protobuf.CodedOutputStream
13225          .computeMessageSize(7, getMinXY());
13226      }
13227      if (maxXY_ != null) {
13228        size += com.google.protobuf.CodedOutputStream
13229          .computeMessageSize(8, getMaxXY());
13230      }
13231      size += unknownFields.getSerializedSize();
13232      memoizedSize = size;
13233      return size;
13234    }
13235
13236    @java.lang.Override
13237    public boolean equals(final java.lang.Object obj) {
13238      if (obj == this) {
13239       return true;
13240      }
13241      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Group)) {
13242        return super.equals(obj);
13243      }
13244      org.matsim.contrib.hybridsim.proto.HybridSimProto.Group other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Group) obj;
13245
13246      if (getGroupId()
13247          != other.getGroupId()) return false;
13248      if (getRoomId()
13249          != other.getRoomId()) return false;
13250      if (getSubroomId()
13251          != other.getSubroomId()) return false;
13252      if (getNumber()
13253          != other.getNumber()) return false;
13254      if (getRouterId()
13255          != other.getRouterId()) return false;
13256      if (getAgentParameterId()
13257          != other.getAgentParameterId()) return false;
13258      if (hasMinXY() != other.hasMinXY()) return false;
13259      if (hasMinXY()) {
13260        if (!getMinXY()
13261            .equals(other.getMinXY())) return false;
13262      }
13263      if (hasMaxXY() != other.hasMaxXY()) return false;
13264      if (hasMaxXY()) {
13265        if (!getMaxXY()
13266            .equals(other.getMaxXY())) return false;
13267      }
13268      if (!unknownFields.equals(other.unknownFields)) return false;
13269      return true;
13270    }
13271
13272    @java.lang.Override
13273    public int hashCode() {
13274      if (memoizedHashCode != 0) {
13275        return memoizedHashCode;
13276      }
13277      int hash = 41;
13278      hash = (19 * hash) + getDescriptor().hashCode();
13279      hash = (37 * hash) + GROUP_ID_FIELD_NUMBER;
13280      hash = (53 * hash) + getGroupId();
13281      hash = (37 * hash) + ROOM_ID_FIELD_NUMBER;
13282      hash = (53 * hash) + getRoomId();
13283      hash = (37 * hash) + SUBROOM_ID_FIELD_NUMBER;
13284      hash = (53 * hash) + getSubroomId();
13285      hash = (37 * hash) + NUMBER_FIELD_NUMBER;
13286      hash = (53 * hash) + getNumber();
13287      hash = (37 * hash) + ROUTER_ID_FIELD_NUMBER;
13288      hash = (53 * hash) + getRouterId();
13289      hash = (37 * hash) + AGENT_PARAMETER_ID_FIELD_NUMBER;
13290      hash = (53 * hash) + getAgentParameterId();
13291      if (hasMinXY()) {
13292        hash = (37 * hash) + MIN_X_Y_FIELD_NUMBER;
13293        hash = (53 * hash) + getMinXY().hashCode();
13294      }
13295      if (hasMaxXY()) {
13296        hash = (37 * hash) + MAX_X_Y_FIELD_NUMBER;
13297        hash = (53 * hash) + getMaxXY().hashCode();
13298      }
13299      hash = (29 * hash) + unknownFields.hashCode();
13300      memoizedHashCode = hash;
13301      return hash;
13302    }
13303
13304    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Group parseFrom(
13305        java.nio.ByteBuffer data)
13306        throws com.google.protobuf.InvalidProtocolBufferException {
13307      return PARSER.parseFrom(data);
13308    }
13309    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Group parseFrom(
13310        java.nio.ByteBuffer data,
13311        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13312        throws com.google.protobuf.InvalidProtocolBufferException {
13313      return PARSER.parseFrom(data, extensionRegistry);
13314    }
13315    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Group parseFrom(
13316        com.google.protobuf.ByteString data)
13317        throws com.google.protobuf.InvalidProtocolBufferException {
13318      return PARSER.parseFrom(data);
13319    }
13320    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Group parseFrom(
13321        com.google.protobuf.ByteString data,
13322        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13323        throws com.google.protobuf.InvalidProtocolBufferException {
13324      return PARSER.parseFrom(data, extensionRegistry);
13325    }
13326    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Group parseFrom(byte[] data)
13327        throws com.google.protobuf.InvalidProtocolBufferException {
13328      return PARSER.parseFrom(data);
13329    }
13330    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Group parseFrom(
13331        byte[] data,
13332        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13333        throws com.google.protobuf.InvalidProtocolBufferException {
13334      return PARSER.parseFrom(data, extensionRegistry);
13335    }
13336    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Group parseFrom(java.io.InputStream input)
13337        throws java.io.IOException {
13338      return com.google.protobuf.GeneratedMessageV3
13339          .parseWithIOException(PARSER, input);
13340    }
13341    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Group parseFrom(
13342        java.io.InputStream input,
13343        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13344        throws java.io.IOException {
13345      return com.google.protobuf.GeneratedMessageV3
13346          .parseWithIOException(PARSER, input, extensionRegistry);
13347    }
13348    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Group parseDelimitedFrom(java.io.InputStream input)
13349        throws java.io.IOException {
13350      return com.google.protobuf.GeneratedMessageV3
13351          .parseDelimitedWithIOException(PARSER, input);
13352    }
13353    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Group parseDelimitedFrom(
13354        java.io.InputStream input,
13355        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13356        throws java.io.IOException {
13357      return com.google.protobuf.GeneratedMessageV3
13358          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
13359    }
13360    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Group parseFrom(
13361        com.google.protobuf.CodedInputStream input)
13362        throws java.io.IOException {
13363      return com.google.protobuf.GeneratedMessageV3
13364          .parseWithIOException(PARSER, input);
13365    }
13366    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Group parseFrom(
13367        com.google.protobuf.CodedInputStream input,
13368        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13369        throws java.io.IOException {
13370      return com.google.protobuf.GeneratedMessageV3
13371          .parseWithIOException(PARSER, input, extensionRegistry);
13372    }
13373
13374    @java.lang.Override
13375    public Builder newBuilderForType() { return newBuilder(); }
13376    public static Builder newBuilder() {
13377      return DEFAULT_INSTANCE.toBuilder();
13378    }
13379    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Group prototype) {
13380      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
13381    }
13382    @java.lang.Override
13383    public Builder toBuilder() {
13384      return this == DEFAULT_INSTANCE
13385          ? new Builder() : new Builder().mergeFrom(this);
13386    }
13387
13388    @java.lang.Override
13389    protected Builder newBuilderForType(
13390        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
13391      Builder builder = new Builder(parent);
13392      return builder;
13393    }
13394    /**
13395     * Protobuf type {@code hybridsim.Group}
13396     */
13397    public static final class Builder extends
13398        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
13399        // @@protoc_insertion_point(builder_implements:hybridsim.Group)
13400        org.matsim.contrib.hybridsim.proto.HybridSimProto.GroupOrBuilder {
13401      public static final com.google.protobuf.Descriptors.Descriptor
13402          getDescriptor() {
13403        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Group_descriptor;
13404      }
13405
13406      @java.lang.Override
13407      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
13408          internalGetFieldAccessorTable() {
13409        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Group_fieldAccessorTable
13410            .ensureFieldAccessorsInitialized(
13411                org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.Builder.class);
13412      }
13413
13414      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.newBuilder()
13415      private Builder() {
13416        maybeForceBuilderInitialization();
13417      }
13418
13419      private Builder(
13420          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
13421        super(parent);
13422        maybeForceBuilderInitialization();
13423      }
13424      private void maybeForceBuilderInitialization() {
13425        if (com.google.protobuf.GeneratedMessageV3
13426                .alwaysUseFieldBuilders) {
13427        }
13428      }
13429      @java.lang.Override
13430      public Builder clear() {
13431        super.clear();
13432        groupId_ = 0;
13433
13434        roomId_ = 0;
13435
13436        subroomId_ = 0;
13437
13438        number_ = 0;
13439
13440        routerId_ = 0;
13441
13442        agentParameterId_ = 0;
13443
13444        if (minXYBuilder_ == null) {
13445          minXY_ = null;
13446        } else {
13447          minXY_ = null;
13448          minXYBuilder_ = null;
13449        }
13450        if (maxXYBuilder_ == null) {
13451          maxXY_ = null;
13452        } else {
13453          maxXY_ = null;
13454          maxXYBuilder_ = null;
13455        }
13456        return this;
13457      }
13458
13459      @java.lang.Override
13460      public com.google.protobuf.Descriptors.Descriptor
13461          getDescriptorForType() {
13462        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Group_descriptor;
13463      }
13464
13465      @java.lang.Override
13466      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Group getDefaultInstanceForType() {
13467        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.getDefaultInstance();
13468      }
13469
13470      @java.lang.Override
13471      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Group build() {
13472        org.matsim.contrib.hybridsim.proto.HybridSimProto.Group result = buildPartial();
13473        if (!result.isInitialized()) {
13474          throw newUninitializedMessageException(result);
13475        }
13476        return result;
13477      }
13478
13479      @java.lang.Override
13480      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Group buildPartial() {
13481        org.matsim.contrib.hybridsim.proto.HybridSimProto.Group result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Group(this);
13482        result.groupId_ = groupId_;
13483        result.roomId_ = roomId_;
13484        result.subroomId_ = subroomId_;
13485        result.number_ = number_;
13486        result.routerId_ = routerId_;
13487        result.agentParameterId_ = agentParameterId_;
13488        if (minXYBuilder_ == null) {
13489          result.minXY_ = minXY_;
13490        } else {
13491          result.minXY_ = minXYBuilder_.build();
13492        }
13493        if (maxXYBuilder_ == null) {
13494          result.maxXY_ = maxXY_;
13495        } else {
13496          result.maxXY_ = maxXYBuilder_.build();
13497        }
13498        onBuilt();
13499        return result;
13500      }
13501
13502      @java.lang.Override
13503      public Builder clone() {
13504        return super.clone();
13505      }
13506      @java.lang.Override
13507      public Builder setField(
13508          com.google.protobuf.Descriptors.FieldDescriptor field,
13509          java.lang.Object value) {
13510        return super.setField(field, value);
13511      }
13512      @java.lang.Override
13513      public Builder clearField(
13514          com.google.protobuf.Descriptors.FieldDescriptor field) {
13515        return super.clearField(field);
13516      }
13517      @java.lang.Override
13518      public Builder clearOneof(
13519          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
13520        return super.clearOneof(oneof);
13521      }
13522      @java.lang.Override
13523      public Builder setRepeatedField(
13524          com.google.protobuf.Descriptors.FieldDescriptor field,
13525          int index, java.lang.Object value) {
13526        return super.setRepeatedField(field, index, value);
13527      }
13528      @java.lang.Override
13529      public Builder addRepeatedField(
13530          com.google.protobuf.Descriptors.FieldDescriptor field,
13531          java.lang.Object value) {
13532        return super.addRepeatedField(field, value);
13533      }
13534      @java.lang.Override
13535      public Builder mergeFrom(com.google.protobuf.Message other) {
13536        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Group) {
13537          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Group)other);
13538        } else {
13539          super.mergeFrom(other);
13540          return this;
13541        }
13542      }
13543
13544      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Group other) {
13545        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Group.getDefaultInstance()) return this;
13546        if (other.getGroupId() != 0) {
13547          setGroupId(other.getGroupId());
13548        }
13549        if (other.getRoomId() != 0) {
13550          setRoomId(other.getRoomId());
13551        }
13552        if (other.getSubroomId() != 0) {
13553          setSubroomId(other.getSubroomId());
13554        }
13555        if (other.getNumber() != 0) {
13556          setNumber(other.getNumber());
13557        }
13558        if (other.getRouterId() != 0) {
13559          setRouterId(other.getRouterId());
13560        }
13561        if (other.getAgentParameterId() != 0) {
13562          setAgentParameterId(other.getAgentParameterId());
13563        }
13564        if (other.hasMinXY()) {
13565          mergeMinXY(other.getMinXY());
13566        }
13567        if (other.hasMaxXY()) {
13568          mergeMaxXY(other.getMaxXY());
13569        }
13570        this.mergeUnknownFields(other.unknownFields);
13571        onChanged();
13572        return this;
13573      }
13574
13575      @java.lang.Override
13576      public final boolean isInitialized() {
13577        return true;
13578      }
13579
13580      @java.lang.Override
13581      public Builder mergeFrom(
13582          com.google.protobuf.CodedInputStream input,
13583          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13584          throws java.io.IOException {
13585        org.matsim.contrib.hybridsim.proto.HybridSimProto.Group parsedMessage = null;
13586        try {
13587          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
13588        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
13589          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Group) e.getUnfinishedMessage();
13590          throw e.unwrapIOException();
13591        } finally {
13592          if (parsedMessage != null) {
13593            mergeFrom(parsedMessage);
13594          }
13595        }
13596        return this;
13597      }
13598
13599      private int groupId_ ;
13600      /**
13601       * <code>int32 group_id = 1;</code>
13602       * @return The groupId.
13603       */
13604      public int getGroupId() {
13605        return groupId_;
13606      }
13607      /**
13608       * <code>int32 group_id = 1;</code>
13609       * @param value The groupId to set.
13610       * @return This builder for chaining.
13611       */
13612      public Builder setGroupId(int value) {
13613        
13614        groupId_ = value;
13615        onChanged();
13616        return this;
13617      }
13618      /**
13619       * <code>int32 group_id = 1;</code>
13620       * @return This builder for chaining.
13621       */
13622      public Builder clearGroupId() {
13623        
13624        groupId_ = 0;
13625        onChanged();
13626        return this;
13627      }
13628
13629      private int roomId_ ;
13630      /**
13631       * <code>int32 room_id = 2;</code>
13632       * @return The roomId.
13633       */
13634      public int getRoomId() {
13635        return roomId_;
13636      }
13637      /**
13638       * <code>int32 room_id = 2;</code>
13639       * @param value The roomId to set.
13640       * @return This builder for chaining.
13641       */
13642      public Builder setRoomId(int value) {
13643        
13644        roomId_ = value;
13645        onChanged();
13646        return this;
13647      }
13648      /**
13649       * <code>int32 room_id = 2;</code>
13650       * @return This builder for chaining.
13651       */
13652      public Builder clearRoomId() {
13653        
13654        roomId_ = 0;
13655        onChanged();
13656        return this;
13657      }
13658
13659      private int subroomId_ ;
13660      /**
13661       * <code>int32 subroom_id = 3;</code>
13662       * @return The subroomId.
13663       */
13664      public int getSubroomId() {
13665        return subroomId_;
13666      }
13667      /**
13668       * <code>int32 subroom_id = 3;</code>
13669       * @param value The subroomId to set.
13670       * @return This builder for chaining.
13671       */
13672      public Builder setSubroomId(int value) {
13673        
13674        subroomId_ = value;
13675        onChanged();
13676        return this;
13677      }
13678      /**
13679       * <code>int32 subroom_id = 3;</code>
13680       * @return This builder for chaining.
13681       */
13682      public Builder clearSubroomId() {
13683        
13684        subroomId_ = 0;
13685        onChanged();
13686        return this;
13687      }
13688
13689      private int number_ ;
13690      /**
13691       * <code>int32 number = 4;</code>
13692       * @return The number.
13693       */
13694      public int getNumber() {
13695        return number_;
13696      }
13697      /**
13698       * <code>int32 number = 4;</code>
13699       * @param value The number to set.
13700       * @return This builder for chaining.
13701       */
13702      public Builder setNumber(int value) {
13703        
13704        number_ = value;
13705        onChanged();
13706        return this;
13707      }
13708      /**
13709       * <code>int32 number = 4;</code>
13710       * @return This builder for chaining.
13711       */
13712      public Builder clearNumber() {
13713        
13714        number_ = 0;
13715        onChanged();
13716        return this;
13717      }
13718
13719      private int routerId_ ;
13720      /**
13721       * <code>int32 router_id = 5;</code>
13722       * @return The routerId.
13723       */
13724      public int getRouterId() {
13725        return routerId_;
13726      }
13727      /**
13728       * <code>int32 router_id = 5;</code>
13729       * @param value The routerId to set.
13730       * @return This builder for chaining.
13731       */
13732      public Builder setRouterId(int value) {
13733        
13734        routerId_ = value;
13735        onChanged();
13736        return this;
13737      }
13738      /**
13739       * <code>int32 router_id = 5;</code>
13740       * @return This builder for chaining.
13741       */
13742      public Builder clearRouterId() {
13743        
13744        routerId_ = 0;
13745        onChanged();
13746        return this;
13747      }
13748
13749      private int agentParameterId_ ;
13750      /**
13751       * <code>int32 agent_parameter_id = 6;</code>
13752       * @return The agentParameterId.
13753       */
13754      public int getAgentParameterId() {
13755        return agentParameterId_;
13756      }
13757      /**
13758       * <code>int32 agent_parameter_id = 6;</code>
13759       * @param value The agentParameterId to set.
13760       * @return This builder for chaining.
13761       */
13762      public Builder setAgentParameterId(int value) {
13763        
13764        agentParameterId_ = value;
13765        onChanged();
13766        return this;
13767      }
13768      /**
13769       * <code>int32 agent_parameter_id = 6;</code>
13770       * @return This builder for chaining.
13771       */
13772      public Builder clearAgentParameterId() {
13773        
13774        agentParameterId_ = 0;
13775        onChanged();
13776        return this;
13777      }
13778
13779      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate minXY_;
13780      private com.google.protobuf.SingleFieldBuilderV3<
13781          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> minXYBuilder_;
13782      /**
13783       * <code>.hybridsim.Coordinate min_x_y = 7;</code>
13784       * @return Whether the minXY field is set.
13785       */
13786      public boolean hasMinXY() {
13787        return minXYBuilder_ != null || minXY_ != null;
13788      }
13789      /**
13790       * <code>.hybridsim.Coordinate min_x_y = 7;</code>
13791       * @return The minXY.
13792       */
13793      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getMinXY() {
13794        if (minXYBuilder_ == null) {
13795          return minXY_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : minXY_;
13796        } else {
13797          return minXYBuilder_.getMessage();
13798        }
13799      }
13800      /**
13801       * <code>.hybridsim.Coordinate min_x_y = 7;</code>
13802       */
13803      public Builder setMinXY(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
13804        if (minXYBuilder_ == null) {
13805          if (value == null) {
13806            throw new NullPointerException();
13807          }
13808          minXY_ = value;
13809          onChanged();
13810        } else {
13811          minXYBuilder_.setMessage(value);
13812        }
13813
13814        return this;
13815      }
13816      /**
13817       * <code>.hybridsim.Coordinate min_x_y = 7;</code>
13818       */
13819      public Builder setMinXY(
13820          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder builderForValue) {
13821        if (minXYBuilder_ == null) {
13822          minXY_ = builderForValue.build();
13823          onChanged();
13824        } else {
13825          minXYBuilder_.setMessage(builderForValue.build());
13826        }
13827
13828        return this;
13829      }
13830      /**
13831       * <code>.hybridsim.Coordinate min_x_y = 7;</code>
13832       */
13833      public Builder mergeMinXY(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
13834        if (minXYBuilder_ == null) {
13835          if (minXY_ != null) {
13836            minXY_ =
13837              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.newBuilder(minXY_).mergeFrom(value).buildPartial();
13838          } else {
13839            minXY_ = value;
13840          }
13841          onChanged();
13842        } else {
13843          minXYBuilder_.mergeFrom(value);
13844        }
13845
13846        return this;
13847      }
13848      /**
13849       * <code>.hybridsim.Coordinate min_x_y = 7;</code>
13850       */
13851      public Builder clearMinXY() {
13852        if (minXYBuilder_ == null) {
13853          minXY_ = null;
13854          onChanged();
13855        } else {
13856          minXY_ = null;
13857          minXYBuilder_ = null;
13858        }
13859
13860        return this;
13861      }
13862      /**
13863       * <code>.hybridsim.Coordinate min_x_y = 7;</code>
13864       */
13865      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder getMinXYBuilder() {
13866        
13867        onChanged();
13868        return getMinXYFieldBuilder().getBuilder();
13869      }
13870      /**
13871       * <code>.hybridsim.Coordinate min_x_y = 7;</code>
13872       */
13873      public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getMinXYOrBuilder() {
13874        if (minXYBuilder_ != null) {
13875          return minXYBuilder_.getMessageOrBuilder();
13876        } else {
13877          return minXY_ == null ?
13878              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : minXY_;
13879        }
13880      }
13881      /**
13882       * <code>.hybridsim.Coordinate min_x_y = 7;</code>
13883       */
13884      private com.google.protobuf.SingleFieldBuilderV3<
13885          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> 
13886          getMinXYFieldBuilder() {
13887        if (minXYBuilder_ == null) {
13888          minXYBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
13889              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder>(
13890                  getMinXY(),
13891                  getParentForChildren(),
13892                  isClean());
13893          minXY_ = null;
13894        }
13895        return minXYBuilder_;
13896      }
13897
13898      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate maxXY_;
13899      private com.google.protobuf.SingleFieldBuilderV3<
13900          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> maxXYBuilder_;
13901      /**
13902       * <code>.hybridsim.Coordinate max_x_y = 8;</code>
13903       * @return Whether the maxXY field is set.
13904       */
13905      public boolean hasMaxXY() {
13906        return maxXYBuilder_ != null || maxXY_ != null;
13907      }
13908      /**
13909       * <code>.hybridsim.Coordinate max_x_y = 8;</code>
13910       * @return The maxXY.
13911       */
13912      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getMaxXY() {
13913        if (maxXYBuilder_ == null) {
13914          return maxXY_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : maxXY_;
13915        } else {
13916          return maxXYBuilder_.getMessage();
13917        }
13918      }
13919      /**
13920       * <code>.hybridsim.Coordinate max_x_y = 8;</code>
13921       */
13922      public Builder setMaxXY(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
13923        if (maxXYBuilder_ == null) {
13924          if (value == null) {
13925            throw new NullPointerException();
13926          }
13927          maxXY_ = value;
13928          onChanged();
13929        } else {
13930          maxXYBuilder_.setMessage(value);
13931        }
13932
13933        return this;
13934      }
13935      /**
13936       * <code>.hybridsim.Coordinate max_x_y = 8;</code>
13937       */
13938      public Builder setMaxXY(
13939          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder builderForValue) {
13940        if (maxXYBuilder_ == null) {
13941          maxXY_ = builderForValue.build();
13942          onChanged();
13943        } else {
13944          maxXYBuilder_.setMessage(builderForValue.build());
13945        }
13946
13947        return this;
13948      }
13949      /**
13950       * <code>.hybridsim.Coordinate max_x_y = 8;</code>
13951       */
13952      public Builder mergeMaxXY(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
13953        if (maxXYBuilder_ == null) {
13954          if (maxXY_ != null) {
13955            maxXY_ =
13956              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.newBuilder(maxXY_).mergeFrom(value).buildPartial();
13957          } else {
13958            maxXY_ = value;
13959          }
13960          onChanged();
13961        } else {
13962          maxXYBuilder_.mergeFrom(value);
13963        }
13964
13965        return this;
13966      }
13967      /**
13968       * <code>.hybridsim.Coordinate max_x_y = 8;</code>
13969       */
13970      public Builder clearMaxXY() {
13971        if (maxXYBuilder_ == null) {
13972          maxXY_ = null;
13973          onChanged();
13974        } else {
13975          maxXY_ = null;
13976          maxXYBuilder_ = null;
13977        }
13978
13979        return this;
13980      }
13981      /**
13982       * <code>.hybridsim.Coordinate max_x_y = 8;</code>
13983       */
13984      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder getMaxXYBuilder() {
13985        
13986        onChanged();
13987        return getMaxXYFieldBuilder().getBuilder();
13988      }
13989      /**
13990       * <code>.hybridsim.Coordinate max_x_y = 8;</code>
13991       */
13992      public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getMaxXYOrBuilder() {
13993        if (maxXYBuilder_ != null) {
13994          return maxXYBuilder_.getMessageOrBuilder();
13995        } else {
13996          return maxXY_ == null ?
13997              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : maxXY_;
13998        }
13999      }
14000      /**
14001       * <code>.hybridsim.Coordinate max_x_y = 8;</code>
14002       */
14003      private com.google.protobuf.SingleFieldBuilderV3<
14004          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> 
14005          getMaxXYFieldBuilder() {
14006        if (maxXYBuilder_ == null) {
14007          maxXYBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
14008              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder>(
14009                  getMaxXY(),
14010                  getParentForChildren(),
14011                  isClean());
14012          maxXY_ = null;
14013        }
14014        return maxXYBuilder_;
14015      }
14016      @java.lang.Override
14017      public final Builder setUnknownFields(
14018          final com.google.protobuf.UnknownFieldSet unknownFields) {
14019        return super.setUnknownFields(unknownFields);
14020      }
14021
14022      @java.lang.Override
14023      public final Builder mergeUnknownFields(
14024          final com.google.protobuf.UnknownFieldSet unknownFields) {
14025        return super.mergeUnknownFields(unknownFields);
14026      }
14027
14028
14029      // @@protoc_insertion_point(builder_scope:hybridsim.Group)
14030    }
14031
14032    // @@protoc_insertion_point(class_scope:hybridsim.Group)
14033    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Group DEFAULT_INSTANCE;
14034    static {
14035      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Group();
14036    }
14037
14038    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Group getDefaultInstance() {
14039      return DEFAULT_INSTANCE;
14040    }
14041
14042    private static final com.google.protobuf.Parser<Group>
14043        PARSER = new com.google.protobuf.AbstractParser<Group>() {
14044      @java.lang.Override
14045      public Group parsePartialFrom(
14046          com.google.protobuf.CodedInputStream input,
14047          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14048          throws com.google.protobuf.InvalidProtocolBufferException {
14049        return new Group(input, extensionRegistry);
14050      }
14051    };
14052
14053    public static com.google.protobuf.Parser<Group> parser() {
14054      return PARSER;
14055    }
14056
14057    @java.lang.Override
14058    public com.google.protobuf.Parser<Group> getParserForType() {
14059      return PARSER;
14060    }
14061
14062    @java.lang.Override
14063    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Group getDefaultInstanceForType() {
14064      return DEFAULT_INSTANCE;
14065    }
14066
14067  }
14068
14069  public interface SourceOrBuilder extends
14070      // @@protoc_insertion_point(interface_extends:hybridsim.Source)
14071      com.google.protobuf.MessageOrBuilder {
14072
14073    /**
14074     * <code>int32 id = 1;</code>
14075     * @return The id.
14076     */
14077    int getId();
14078
14079    /**
14080     * <code>int32 frequency = 2;</code>
14081     * @return The frequency.
14082     */
14083    int getFrequency();
14084
14085    /**
14086     * <code>int32 max_agents = 3;</code>
14087     * @return The maxAgents.
14088     */
14089    int getMaxAgents();
14090
14091    /**
14092     * <code>int32 group_id = 4;</code>
14093     * @return The groupId.
14094     */
14095    int getGroupId();
14096
14097    /**
14098     * <code>string caption = 5;</code>
14099     * @return The caption.
14100     */
14101    java.lang.String getCaption();
14102    /**
14103     * <code>string caption = 5;</code>
14104     * @return The bytes for caption.
14105     */
14106    com.google.protobuf.ByteString
14107        getCaptionBytes();
14108  }
14109  /**
14110   * Protobuf type {@code hybridsim.Source}
14111   */
14112  public  static final class Source extends
14113      com.google.protobuf.GeneratedMessageV3 implements
14114      // @@protoc_insertion_point(message_implements:hybridsim.Source)
14115      SourceOrBuilder {
14116  private static final long serialVersionUID = 0L;
14117    // Use Source.newBuilder() to construct.
14118    private Source(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
14119      super(builder);
14120    }
14121    private Source() {
14122      caption_ = "";
14123    }
14124
14125    @java.lang.Override
14126    @SuppressWarnings({"unused"})
14127    protected java.lang.Object newInstance(
14128        UnusedPrivateParameter unused) {
14129      return new Source();
14130    }
14131
14132    @java.lang.Override
14133    public final com.google.protobuf.UnknownFieldSet
14134    getUnknownFields() {
14135      return this.unknownFields;
14136    }
14137    private Source(
14138        com.google.protobuf.CodedInputStream input,
14139        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14140        throws com.google.protobuf.InvalidProtocolBufferException {
14141      this();
14142      if (extensionRegistry == null) {
14143        throw new java.lang.NullPointerException();
14144      }
14145      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
14146          com.google.protobuf.UnknownFieldSet.newBuilder();
14147      try {
14148        boolean done = false;
14149        while (!done) {
14150          int tag = input.readTag();
14151          switch (tag) {
14152            case 0:
14153              done = true;
14154              break;
14155            case 8: {
14156
14157              id_ = input.readInt32();
14158              break;
14159            }
14160            case 16: {
14161
14162              frequency_ = input.readInt32();
14163              break;
14164            }
14165            case 24: {
14166
14167              maxAgents_ = input.readInt32();
14168              break;
14169            }
14170            case 32: {
14171
14172              groupId_ = input.readInt32();
14173              break;
14174            }
14175            case 42: {
14176              java.lang.String s = input.readStringRequireUtf8();
14177
14178              caption_ = s;
14179              break;
14180            }
14181            default: {
14182              if (!parseUnknownField(
14183                  input, unknownFields, extensionRegistry, tag)) {
14184                done = true;
14185              }
14186              break;
14187            }
14188          }
14189        }
14190      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
14191        throw e.setUnfinishedMessage(this);
14192      } catch (java.io.IOException e) {
14193        throw new com.google.protobuf.InvalidProtocolBufferException(
14194            e).setUnfinishedMessage(this);
14195      } finally {
14196        this.unknownFields = unknownFields.build();
14197        makeExtensionsImmutable();
14198      }
14199    }
14200    public static final com.google.protobuf.Descriptors.Descriptor
14201        getDescriptor() {
14202      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Source_descriptor;
14203    }
14204
14205    @java.lang.Override
14206    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
14207        internalGetFieldAccessorTable() {
14208      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Source_fieldAccessorTable
14209          .ensureFieldAccessorsInitialized(
14210              org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.Builder.class);
14211    }
14212
14213    public static final int ID_FIELD_NUMBER = 1;
14214    private int id_;
14215    /**
14216     * <code>int32 id = 1;</code>
14217     * @return The id.
14218     */
14219    public int getId() {
14220      return id_;
14221    }
14222
14223    public static final int FREQUENCY_FIELD_NUMBER = 2;
14224    private int frequency_;
14225    /**
14226     * <code>int32 frequency = 2;</code>
14227     * @return The frequency.
14228     */
14229    public int getFrequency() {
14230      return frequency_;
14231    }
14232
14233    public static final int MAX_AGENTS_FIELD_NUMBER = 3;
14234    private int maxAgents_;
14235    /**
14236     * <code>int32 max_agents = 3;</code>
14237     * @return The maxAgents.
14238     */
14239    public int getMaxAgents() {
14240      return maxAgents_;
14241    }
14242
14243    public static final int GROUP_ID_FIELD_NUMBER = 4;
14244    private int groupId_;
14245    /**
14246     * <code>int32 group_id = 4;</code>
14247     * @return The groupId.
14248     */
14249    public int getGroupId() {
14250      return groupId_;
14251    }
14252
14253    public static final int CAPTION_FIELD_NUMBER = 5;
14254    private volatile java.lang.Object caption_;
14255    /**
14256     * <code>string caption = 5;</code>
14257     * @return The caption.
14258     */
14259    public java.lang.String getCaption() {
14260      java.lang.Object ref = caption_;
14261      if (ref instanceof java.lang.String) {
14262        return (java.lang.String) ref;
14263      } else {
14264        com.google.protobuf.ByteString bs = 
14265            (com.google.protobuf.ByteString) ref;
14266        java.lang.String s = bs.toStringUtf8();
14267        caption_ = s;
14268        return s;
14269      }
14270    }
14271    /**
14272     * <code>string caption = 5;</code>
14273     * @return The bytes for caption.
14274     */
14275    public com.google.protobuf.ByteString
14276        getCaptionBytes() {
14277      java.lang.Object ref = caption_;
14278      if (ref instanceof java.lang.String) {
14279        com.google.protobuf.ByteString b = 
14280            com.google.protobuf.ByteString.copyFromUtf8(
14281                (java.lang.String) ref);
14282        caption_ = b;
14283        return b;
14284      } else {
14285        return (com.google.protobuf.ByteString) ref;
14286      }
14287    }
14288
14289    private byte memoizedIsInitialized = -1;
14290    @java.lang.Override
14291    public final boolean isInitialized() {
14292      byte isInitialized = memoizedIsInitialized;
14293      if (isInitialized == 1) return true;
14294      if (isInitialized == 0) return false;
14295
14296      memoizedIsInitialized = 1;
14297      return true;
14298    }
14299
14300    @java.lang.Override
14301    public void writeTo(com.google.protobuf.CodedOutputStream output)
14302                        throws java.io.IOException {
14303      if (id_ != 0) {
14304        output.writeInt32(1, id_);
14305      }
14306      if (frequency_ != 0) {
14307        output.writeInt32(2, frequency_);
14308      }
14309      if (maxAgents_ != 0) {
14310        output.writeInt32(3, maxAgents_);
14311      }
14312      if (groupId_ != 0) {
14313        output.writeInt32(4, groupId_);
14314      }
14315      if (!getCaptionBytes().isEmpty()) {
14316        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, caption_);
14317      }
14318      unknownFields.writeTo(output);
14319    }
14320
14321    @java.lang.Override
14322    public int getSerializedSize() {
14323      int size = memoizedSize;
14324      if (size != -1) return size;
14325
14326      size = 0;
14327      if (id_ != 0) {
14328        size += com.google.protobuf.CodedOutputStream
14329          .computeInt32Size(1, id_);
14330      }
14331      if (frequency_ != 0) {
14332        size += com.google.protobuf.CodedOutputStream
14333          .computeInt32Size(2, frequency_);
14334      }
14335      if (maxAgents_ != 0) {
14336        size += com.google.protobuf.CodedOutputStream
14337          .computeInt32Size(3, maxAgents_);
14338      }
14339      if (groupId_ != 0) {
14340        size += com.google.protobuf.CodedOutputStream
14341          .computeInt32Size(4, groupId_);
14342      }
14343      if (!getCaptionBytes().isEmpty()) {
14344        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, caption_);
14345      }
14346      size += unknownFields.getSerializedSize();
14347      memoizedSize = size;
14348      return size;
14349    }
14350
14351    @java.lang.Override
14352    public boolean equals(final java.lang.Object obj) {
14353      if (obj == this) {
14354       return true;
14355      }
14356      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Source)) {
14357        return super.equals(obj);
14358      }
14359      org.matsim.contrib.hybridsim.proto.HybridSimProto.Source other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Source) obj;
14360
14361      if (getId()
14362          != other.getId()) return false;
14363      if (getFrequency()
14364          != other.getFrequency()) return false;
14365      if (getMaxAgents()
14366          != other.getMaxAgents()) return false;
14367      if (getGroupId()
14368          != other.getGroupId()) return false;
14369      if (!getCaption()
14370          .equals(other.getCaption())) return false;
14371      if (!unknownFields.equals(other.unknownFields)) return false;
14372      return true;
14373    }
14374
14375    @java.lang.Override
14376    public int hashCode() {
14377      if (memoizedHashCode != 0) {
14378        return memoizedHashCode;
14379      }
14380      int hash = 41;
14381      hash = (19 * hash) + getDescriptor().hashCode();
14382      hash = (37 * hash) + ID_FIELD_NUMBER;
14383      hash = (53 * hash) + getId();
14384      hash = (37 * hash) + FREQUENCY_FIELD_NUMBER;
14385      hash = (53 * hash) + getFrequency();
14386      hash = (37 * hash) + MAX_AGENTS_FIELD_NUMBER;
14387      hash = (53 * hash) + getMaxAgents();
14388      hash = (37 * hash) + GROUP_ID_FIELD_NUMBER;
14389      hash = (53 * hash) + getGroupId();
14390      hash = (37 * hash) + CAPTION_FIELD_NUMBER;
14391      hash = (53 * hash) + getCaption().hashCode();
14392      hash = (29 * hash) + unknownFields.hashCode();
14393      memoizedHashCode = hash;
14394      return hash;
14395    }
14396
14397    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Source parseFrom(
14398        java.nio.ByteBuffer data)
14399        throws com.google.protobuf.InvalidProtocolBufferException {
14400      return PARSER.parseFrom(data);
14401    }
14402    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Source parseFrom(
14403        java.nio.ByteBuffer data,
14404        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14405        throws com.google.protobuf.InvalidProtocolBufferException {
14406      return PARSER.parseFrom(data, extensionRegistry);
14407    }
14408    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Source parseFrom(
14409        com.google.protobuf.ByteString data)
14410        throws com.google.protobuf.InvalidProtocolBufferException {
14411      return PARSER.parseFrom(data);
14412    }
14413    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Source parseFrom(
14414        com.google.protobuf.ByteString data,
14415        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14416        throws com.google.protobuf.InvalidProtocolBufferException {
14417      return PARSER.parseFrom(data, extensionRegistry);
14418    }
14419    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Source parseFrom(byte[] data)
14420        throws com.google.protobuf.InvalidProtocolBufferException {
14421      return PARSER.parseFrom(data);
14422    }
14423    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Source parseFrom(
14424        byte[] data,
14425        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14426        throws com.google.protobuf.InvalidProtocolBufferException {
14427      return PARSER.parseFrom(data, extensionRegistry);
14428    }
14429    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Source parseFrom(java.io.InputStream input)
14430        throws java.io.IOException {
14431      return com.google.protobuf.GeneratedMessageV3
14432          .parseWithIOException(PARSER, input);
14433    }
14434    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Source parseFrom(
14435        java.io.InputStream input,
14436        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14437        throws java.io.IOException {
14438      return com.google.protobuf.GeneratedMessageV3
14439          .parseWithIOException(PARSER, input, extensionRegistry);
14440    }
14441    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Source parseDelimitedFrom(java.io.InputStream input)
14442        throws java.io.IOException {
14443      return com.google.protobuf.GeneratedMessageV3
14444          .parseDelimitedWithIOException(PARSER, input);
14445    }
14446    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Source parseDelimitedFrom(
14447        java.io.InputStream input,
14448        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14449        throws java.io.IOException {
14450      return com.google.protobuf.GeneratedMessageV3
14451          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
14452    }
14453    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Source parseFrom(
14454        com.google.protobuf.CodedInputStream input)
14455        throws java.io.IOException {
14456      return com.google.protobuf.GeneratedMessageV3
14457          .parseWithIOException(PARSER, input);
14458    }
14459    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Source parseFrom(
14460        com.google.protobuf.CodedInputStream input,
14461        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14462        throws java.io.IOException {
14463      return com.google.protobuf.GeneratedMessageV3
14464          .parseWithIOException(PARSER, input, extensionRegistry);
14465    }
14466
14467    @java.lang.Override
14468    public Builder newBuilderForType() { return newBuilder(); }
14469    public static Builder newBuilder() {
14470      return DEFAULT_INSTANCE.toBuilder();
14471    }
14472    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Source prototype) {
14473      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
14474    }
14475    @java.lang.Override
14476    public Builder toBuilder() {
14477      return this == DEFAULT_INSTANCE
14478          ? new Builder() : new Builder().mergeFrom(this);
14479    }
14480
14481    @java.lang.Override
14482    protected Builder newBuilderForType(
14483        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
14484      Builder builder = new Builder(parent);
14485      return builder;
14486    }
14487    /**
14488     * Protobuf type {@code hybridsim.Source}
14489     */
14490    public static final class Builder extends
14491        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
14492        // @@protoc_insertion_point(builder_implements:hybridsim.Source)
14493        org.matsim.contrib.hybridsim.proto.HybridSimProto.SourceOrBuilder {
14494      public static final com.google.protobuf.Descriptors.Descriptor
14495          getDescriptor() {
14496        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Source_descriptor;
14497      }
14498
14499      @java.lang.Override
14500      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
14501          internalGetFieldAccessorTable() {
14502        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Source_fieldAccessorTable
14503            .ensureFieldAccessorsInitialized(
14504                org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.Builder.class);
14505      }
14506
14507      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.newBuilder()
14508      private Builder() {
14509        maybeForceBuilderInitialization();
14510      }
14511
14512      private Builder(
14513          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
14514        super(parent);
14515        maybeForceBuilderInitialization();
14516      }
14517      private void maybeForceBuilderInitialization() {
14518        if (com.google.protobuf.GeneratedMessageV3
14519                .alwaysUseFieldBuilders) {
14520        }
14521      }
14522      @java.lang.Override
14523      public Builder clear() {
14524        super.clear();
14525        id_ = 0;
14526
14527        frequency_ = 0;
14528
14529        maxAgents_ = 0;
14530
14531        groupId_ = 0;
14532
14533        caption_ = "";
14534
14535        return this;
14536      }
14537
14538      @java.lang.Override
14539      public com.google.protobuf.Descriptors.Descriptor
14540          getDescriptorForType() {
14541        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Source_descriptor;
14542      }
14543
14544      @java.lang.Override
14545      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Source getDefaultInstanceForType() {
14546        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.getDefaultInstance();
14547      }
14548
14549      @java.lang.Override
14550      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Source build() {
14551        org.matsim.contrib.hybridsim.proto.HybridSimProto.Source result = buildPartial();
14552        if (!result.isInitialized()) {
14553          throw newUninitializedMessageException(result);
14554        }
14555        return result;
14556      }
14557
14558      @java.lang.Override
14559      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Source buildPartial() {
14560        org.matsim.contrib.hybridsim.proto.HybridSimProto.Source result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Source(this);
14561        result.id_ = id_;
14562        result.frequency_ = frequency_;
14563        result.maxAgents_ = maxAgents_;
14564        result.groupId_ = groupId_;
14565        result.caption_ = caption_;
14566        onBuilt();
14567        return result;
14568      }
14569
14570      @java.lang.Override
14571      public Builder clone() {
14572        return super.clone();
14573      }
14574      @java.lang.Override
14575      public Builder setField(
14576          com.google.protobuf.Descriptors.FieldDescriptor field,
14577          java.lang.Object value) {
14578        return super.setField(field, value);
14579      }
14580      @java.lang.Override
14581      public Builder clearField(
14582          com.google.protobuf.Descriptors.FieldDescriptor field) {
14583        return super.clearField(field);
14584      }
14585      @java.lang.Override
14586      public Builder clearOneof(
14587          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
14588        return super.clearOneof(oneof);
14589      }
14590      @java.lang.Override
14591      public Builder setRepeatedField(
14592          com.google.protobuf.Descriptors.FieldDescriptor field,
14593          int index, java.lang.Object value) {
14594        return super.setRepeatedField(field, index, value);
14595      }
14596      @java.lang.Override
14597      public Builder addRepeatedField(
14598          com.google.protobuf.Descriptors.FieldDescriptor field,
14599          java.lang.Object value) {
14600        return super.addRepeatedField(field, value);
14601      }
14602      @java.lang.Override
14603      public Builder mergeFrom(com.google.protobuf.Message other) {
14604        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Source) {
14605          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Source)other);
14606        } else {
14607          super.mergeFrom(other);
14608          return this;
14609        }
14610      }
14611
14612      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Source other) {
14613        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Source.getDefaultInstance()) return this;
14614        if (other.getId() != 0) {
14615          setId(other.getId());
14616        }
14617        if (other.getFrequency() != 0) {
14618          setFrequency(other.getFrequency());
14619        }
14620        if (other.getMaxAgents() != 0) {
14621          setMaxAgents(other.getMaxAgents());
14622        }
14623        if (other.getGroupId() != 0) {
14624          setGroupId(other.getGroupId());
14625        }
14626        if (!other.getCaption().isEmpty()) {
14627          caption_ = other.caption_;
14628          onChanged();
14629        }
14630        this.mergeUnknownFields(other.unknownFields);
14631        onChanged();
14632        return this;
14633      }
14634
14635      @java.lang.Override
14636      public final boolean isInitialized() {
14637        return true;
14638      }
14639
14640      @java.lang.Override
14641      public Builder mergeFrom(
14642          com.google.protobuf.CodedInputStream input,
14643          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14644          throws java.io.IOException {
14645        org.matsim.contrib.hybridsim.proto.HybridSimProto.Source parsedMessage = null;
14646        try {
14647          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
14648        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
14649          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Source) e.getUnfinishedMessage();
14650          throw e.unwrapIOException();
14651        } finally {
14652          if (parsedMessage != null) {
14653            mergeFrom(parsedMessage);
14654          }
14655        }
14656        return this;
14657      }
14658
14659      private int id_ ;
14660      /**
14661       * <code>int32 id = 1;</code>
14662       * @return The id.
14663       */
14664      public int getId() {
14665        return id_;
14666      }
14667      /**
14668       * <code>int32 id = 1;</code>
14669       * @param value The id to set.
14670       * @return This builder for chaining.
14671       */
14672      public Builder setId(int value) {
14673        
14674        id_ = value;
14675        onChanged();
14676        return this;
14677      }
14678      /**
14679       * <code>int32 id = 1;</code>
14680       * @return This builder for chaining.
14681       */
14682      public Builder clearId() {
14683        
14684        id_ = 0;
14685        onChanged();
14686        return this;
14687      }
14688
14689      private int frequency_ ;
14690      /**
14691       * <code>int32 frequency = 2;</code>
14692       * @return The frequency.
14693       */
14694      public int getFrequency() {
14695        return frequency_;
14696      }
14697      /**
14698       * <code>int32 frequency = 2;</code>
14699       * @param value The frequency to set.
14700       * @return This builder for chaining.
14701       */
14702      public Builder setFrequency(int value) {
14703        
14704        frequency_ = value;
14705        onChanged();
14706        return this;
14707      }
14708      /**
14709       * <code>int32 frequency = 2;</code>
14710       * @return This builder for chaining.
14711       */
14712      public Builder clearFrequency() {
14713        
14714        frequency_ = 0;
14715        onChanged();
14716        return this;
14717      }
14718
14719      private int maxAgents_ ;
14720      /**
14721       * <code>int32 max_agents = 3;</code>
14722       * @return The maxAgents.
14723       */
14724      public int getMaxAgents() {
14725        return maxAgents_;
14726      }
14727      /**
14728       * <code>int32 max_agents = 3;</code>
14729       * @param value The maxAgents to set.
14730       * @return This builder for chaining.
14731       */
14732      public Builder setMaxAgents(int value) {
14733        
14734        maxAgents_ = value;
14735        onChanged();
14736        return this;
14737      }
14738      /**
14739       * <code>int32 max_agents = 3;</code>
14740       * @return This builder for chaining.
14741       */
14742      public Builder clearMaxAgents() {
14743        
14744        maxAgents_ = 0;
14745        onChanged();
14746        return this;
14747      }
14748
14749      private int groupId_ ;
14750      /**
14751       * <code>int32 group_id = 4;</code>
14752       * @return The groupId.
14753       */
14754      public int getGroupId() {
14755        return groupId_;
14756      }
14757      /**
14758       * <code>int32 group_id = 4;</code>
14759       * @param value The groupId to set.
14760       * @return This builder for chaining.
14761       */
14762      public Builder setGroupId(int value) {
14763        
14764        groupId_ = value;
14765        onChanged();
14766        return this;
14767      }
14768      /**
14769       * <code>int32 group_id = 4;</code>
14770       * @return This builder for chaining.
14771       */
14772      public Builder clearGroupId() {
14773        
14774        groupId_ = 0;
14775        onChanged();
14776        return this;
14777      }
14778
14779      private java.lang.Object caption_ = "";
14780      /**
14781       * <code>string caption = 5;</code>
14782       * @return The caption.
14783       */
14784      public java.lang.String getCaption() {
14785        java.lang.Object ref = caption_;
14786        if (!(ref instanceof java.lang.String)) {
14787          com.google.protobuf.ByteString bs =
14788              (com.google.protobuf.ByteString) ref;
14789          java.lang.String s = bs.toStringUtf8();
14790          caption_ = s;
14791          return s;
14792        } else {
14793          return (java.lang.String) ref;
14794        }
14795      }
14796      /**
14797       * <code>string caption = 5;</code>
14798       * @return The bytes for caption.
14799       */
14800      public com.google.protobuf.ByteString
14801          getCaptionBytes() {
14802        java.lang.Object ref = caption_;
14803        if (ref instanceof String) {
14804          com.google.protobuf.ByteString b = 
14805              com.google.protobuf.ByteString.copyFromUtf8(
14806                  (java.lang.String) ref);
14807          caption_ = b;
14808          return b;
14809        } else {
14810          return (com.google.protobuf.ByteString) ref;
14811        }
14812      }
14813      /**
14814       * <code>string caption = 5;</code>
14815       * @param value The caption to set.
14816       * @return This builder for chaining.
14817       */
14818      public Builder setCaption(
14819          java.lang.String value) {
14820        if (value == null) {
14821    throw new NullPointerException();
14822  }
14823  
14824        caption_ = value;
14825        onChanged();
14826        return this;
14827      }
14828      /**
14829       * <code>string caption = 5;</code>
14830       * @return This builder for chaining.
14831       */
14832      public Builder clearCaption() {
14833        
14834        caption_ = getDefaultInstance().getCaption();
14835        onChanged();
14836        return this;
14837      }
14838      /**
14839       * <code>string caption = 5;</code>
14840       * @param value The bytes for caption to set.
14841       * @return This builder for chaining.
14842       */
14843      public Builder setCaptionBytes(
14844          com.google.protobuf.ByteString value) {
14845        if (value == null) {
14846    throw new NullPointerException();
14847  }
14848  checkByteStringIsUtf8(value);
14849        
14850        caption_ = value;
14851        onChanged();
14852        return this;
14853      }
14854      @java.lang.Override
14855      public final Builder setUnknownFields(
14856          final com.google.protobuf.UnknownFieldSet unknownFields) {
14857        return super.setUnknownFields(unknownFields);
14858      }
14859
14860      @java.lang.Override
14861      public final Builder mergeUnknownFields(
14862          final com.google.protobuf.UnknownFieldSet unknownFields) {
14863        return super.mergeUnknownFields(unknownFields);
14864      }
14865
14866
14867      // @@protoc_insertion_point(builder_scope:hybridsim.Source)
14868    }
14869
14870    // @@protoc_insertion_point(class_scope:hybridsim.Source)
14871    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Source DEFAULT_INSTANCE;
14872    static {
14873      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Source();
14874    }
14875
14876    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Source getDefaultInstance() {
14877      return DEFAULT_INSTANCE;
14878    }
14879
14880    private static final com.google.protobuf.Parser<Source>
14881        PARSER = new com.google.protobuf.AbstractParser<Source>() {
14882      @java.lang.Override
14883      public Source parsePartialFrom(
14884          com.google.protobuf.CodedInputStream input,
14885          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14886          throws com.google.protobuf.InvalidProtocolBufferException {
14887        return new Source(input, extensionRegistry);
14888      }
14889    };
14890
14891    public static com.google.protobuf.Parser<Source> parser() {
14892      return PARSER;
14893    }
14894
14895    @java.lang.Override
14896    public com.google.protobuf.Parser<Source> getParserForType() {
14897      return PARSER;
14898    }
14899
14900    @java.lang.Override
14901    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Source getDefaultInstanceForType() {
14902      return DEFAULT_INSTANCE;
14903    }
14904
14905  }
14906
14907  public interface GoalOrBuilder extends
14908      // @@protoc_insertion_point(interface_extends:hybridsim.Goal)
14909      com.google.protobuf.MessageOrBuilder {
14910
14911    /**
14912     * <code>int32 id = 1;</code>
14913     * @return The id.
14914     */
14915    int getId();
14916
14917    /**
14918     * <code>bool final = 2;</code>
14919     * @return The final.
14920     */
14921    boolean getFinal();
14922
14923    /**
14924     * <code>string caption = 3;</code>
14925     * @return The caption.
14926     */
14927    java.lang.String getCaption();
14928    /**
14929     * <code>string caption = 3;</code>
14930     * @return The bytes for caption.
14931     */
14932    com.google.protobuf.ByteString
14933        getCaptionBytes();
14934
14935    /**
14936     * <code>.hybridsim.Polygon p = 4;</code>
14937     * @return Whether the p field is set.
14938     */
14939    boolean hasP();
14940    /**
14941     * <code>.hybridsim.Polygon p = 4;</code>
14942     * @return The p.
14943     */
14944    org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon getP();
14945    /**
14946     * <code>.hybridsim.Polygon p = 4;</code>
14947     */
14948    org.matsim.contrib.hybridsim.proto.HybridSimProto.PolygonOrBuilder getPOrBuilder();
14949  }
14950  /**
14951   * Protobuf type {@code hybridsim.Goal}
14952   */
14953  public  static final class Goal extends
14954      com.google.protobuf.GeneratedMessageV3 implements
14955      // @@protoc_insertion_point(message_implements:hybridsim.Goal)
14956      GoalOrBuilder {
14957  private static final long serialVersionUID = 0L;
14958    // Use Goal.newBuilder() to construct.
14959    private Goal(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
14960      super(builder);
14961    }
14962    private Goal() {
14963      caption_ = "";
14964    }
14965
14966    @java.lang.Override
14967    @SuppressWarnings({"unused"})
14968    protected java.lang.Object newInstance(
14969        UnusedPrivateParameter unused) {
14970      return new Goal();
14971    }
14972
14973    @java.lang.Override
14974    public final com.google.protobuf.UnknownFieldSet
14975    getUnknownFields() {
14976      return this.unknownFields;
14977    }
14978    private Goal(
14979        com.google.protobuf.CodedInputStream input,
14980        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14981        throws com.google.protobuf.InvalidProtocolBufferException {
14982      this();
14983      if (extensionRegistry == null) {
14984        throw new java.lang.NullPointerException();
14985      }
14986      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
14987          com.google.protobuf.UnknownFieldSet.newBuilder();
14988      try {
14989        boolean done = false;
14990        while (!done) {
14991          int tag = input.readTag();
14992          switch (tag) {
14993            case 0:
14994              done = true;
14995              break;
14996            case 8: {
14997
14998              id_ = input.readInt32();
14999              break;
15000            }
15001            case 16: {
15002
15003              final_ = input.readBool();
15004              break;
15005            }
15006            case 26: {
15007              java.lang.String s = input.readStringRequireUtf8();
15008
15009              caption_ = s;
15010              break;
15011            }
15012            case 34: {
15013              org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.Builder subBuilder = null;
15014              if (p_ != null) {
15015                subBuilder = p_.toBuilder();
15016              }
15017              p_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.parser(), extensionRegistry);
15018              if (subBuilder != null) {
15019                subBuilder.mergeFrom(p_);
15020                p_ = subBuilder.buildPartial();
15021              }
15022
15023              break;
15024            }
15025            default: {
15026              if (!parseUnknownField(
15027                  input, unknownFields, extensionRegistry, tag)) {
15028                done = true;
15029              }
15030              break;
15031            }
15032          }
15033        }
15034      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
15035        throw e.setUnfinishedMessage(this);
15036      } catch (java.io.IOException e) {
15037        throw new com.google.protobuf.InvalidProtocolBufferException(
15038            e).setUnfinishedMessage(this);
15039      } finally {
15040        this.unknownFields = unknownFields.build();
15041        makeExtensionsImmutable();
15042      }
15043    }
15044    public static final com.google.protobuf.Descriptors.Descriptor
15045        getDescriptor() {
15046      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Goal_descriptor;
15047    }
15048
15049    @java.lang.Override
15050    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
15051        internalGetFieldAccessorTable() {
15052      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Goal_fieldAccessorTable
15053          .ensureFieldAccessorsInitialized(
15054              org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.Builder.class);
15055    }
15056
15057    public static final int ID_FIELD_NUMBER = 1;
15058    private int id_;
15059    /**
15060     * <code>int32 id = 1;</code>
15061     * @return The id.
15062     */
15063    public int getId() {
15064      return id_;
15065    }
15066
15067    public static final int FINAL_FIELD_NUMBER = 2;
15068    private boolean final_;
15069    /**
15070     * <code>bool final = 2;</code>
15071     * @return The final.
15072     */
15073    public boolean getFinal() {
15074      return final_;
15075    }
15076
15077    public static final int CAPTION_FIELD_NUMBER = 3;
15078    private volatile java.lang.Object caption_;
15079    /**
15080     * <code>string caption = 3;</code>
15081     * @return The caption.
15082     */
15083    public java.lang.String getCaption() {
15084      java.lang.Object ref = caption_;
15085      if (ref instanceof java.lang.String) {
15086        return (java.lang.String) ref;
15087      } else {
15088        com.google.protobuf.ByteString bs = 
15089            (com.google.protobuf.ByteString) ref;
15090        java.lang.String s = bs.toStringUtf8();
15091        caption_ = s;
15092        return s;
15093      }
15094    }
15095    /**
15096     * <code>string caption = 3;</code>
15097     * @return The bytes for caption.
15098     */
15099    public com.google.protobuf.ByteString
15100        getCaptionBytes() {
15101      java.lang.Object ref = caption_;
15102      if (ref instanceof java.lang.String) {
15103        com.google.protobuf.ByteString b = 
15104            com.google.protobuf.ByteString.copyFromUtf8(
15105                (java.lang.String) ref);
15106        caption_ = b;
15107        return b;
15108      } else {
15109        return (com.google.protobuf.ByteString) ref;
15110      }
15111    }
15112
15113    public static final int P_FIELD_NUMBER = 4;
15114    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon p_;
15115    /**
15116     * <code>.hybridsim.Polygon p = 4;</code>
15117     * @return Whether the p field is set.
15118     */
15119    public boolean hasP() {
15120      return p_ != null;
15121    }
15122    /**
15123     * <code>.hybridsim.Polygon p = 4;</code>
15124     * @return The p.
15125     */
15126    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon getP() {
15127      return p_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.getDefaultInstance() : p_;
15128    }
15129    /**
15130     * <code>.hybridsim.Polygon p = 4;</code>
15131     */
15132    public org.matsim.contrib.hybridsim.proto.HybridSimProto.PolygonOrBuilder getPOrBuilder() {
15133      return getP();
15134    }
15135
15136    private byte memoizedIsInitialized = -1;
15137    @java.lang.Override
15138    public final boolean isInitialized() {
15139      byte isInitialized = memoizedIsInitialized;
15140      if (isInitialized == 1) return true;
15141      if (isInitialized == 0) return false;
15142
15143      memoizedIsInitialized = 1;
15144      return true;
15145    }
15146
15147    @java.lang.Override
15148    public void writeTo(com.google.protobuf.CodedOutputStream output)
15149                        throws java.io.IOException {
15150      if (id_ != 0) {
15151        output.writeInt32(1, id_);
15152      }
15153      if (final_ != false) {
15154        output.writeBool(2, final_);
15155      }
15156      if (!getCaptionBytes().isEmpty()) {
15157        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, caption_);
15158      }
15159      if (p_ != null) {
15160        output.writeMessage(4, getP());
15161      }
15162      unknownFields.writeTo(output);
15163    }
15164
15165    @java.lang.Override
15166    public int getSerializedSize() {
15167      int size = memoizedSize;
15168      if (size != -1) return size;
15169
15170      size = 0;
15171      if (id_ != 0) {
15172        size += com.google.protobuf.CodedOutputStream
15173          .computeInt32Size(1, id_);
15174      }
15175      if (final_ != false) {
15176        size += com.google.protobuf.CodedOutputStream
15177          .computeBoolSize(2, final_);
15178      }
15179      if (!getCaptionBytes().isEmpty()) {
15180        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, caption_);
15181      }
15182      if (p_ != null) {
15183        size += com.google.protobuf.CodedOutputStream
15184          .computeMessageSize(4, getP());
15185      }
15186      size += unknownFields.getSerializedSize();
15187      memoizedSize = size;
15188      return size;
15189    }
15190
15191    @java.lang.Override
15192    public boolean equals(final java.lang.Object obj) {
15193      if (obj == this) {
15194       return true;
15195      }
15196      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal)) {
15197        return super.equals(obj);
15198      }
15199      org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal) obj;
15200
15201      if (getId()
15202          != other.getId()) return false;
15203      if (getFinal()
15204          != other.getFinal()) return false;
15205      if (!getCaption()
15206          .equals(other.getCaption())) return false;
15207      if (hasP() != other.hasP()) return false;
15208      if (hasP()) {
15209        if (!getP()
15210            .equals(other.getP())) return false;
15211      }
15212      if (!unknownFields.equals(other.unknownFields)) return false;
15213      return true;
15214    }
15215
15216    @java.lang.Override
15217    public int hashCode() {
15218      if (memoizedHashCode != 0) {
15219        return memoizedHashCode;
15220      }
15221      int hash = 41;
15222      hash = (19 * hash) + getDescriptor().hashCode();
15223      hash = (37 * hash) + ID_FIELD_NUMBER;
15224      hash = (53 * hash) + getId();
15225      hash = (37 * hash) + FINAL_FIELD_NUMBER;
15226      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
15227          getFinal());
15228      hash = (37 * hash) + CAPTION_FIELD_NUMBER;
15229      hash = (53 * hash) + getCaption().hashCode();
15230      if (hasP()) {
15231        hash = (37 * hash) + P_FIELD_NUMBER;
15232        hash = (53 * hash) + getP().hashCode();
15233      }
15234      hash = (29 * hash) + unknownFields.hashCode();
15235      memoizedHashCode = hash;
15236      return hash;
15237    }
15238
15239    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal parseFrom(
15240        java.nio.ByteBuffer data)
15241        throws com.google.protobuf.InvalidProtocolBufferException {
15242      return PARSER.parseFrom(data);
15243    }
15244    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal parseFrom(
15245        java.nio.ByteBuffer data,
15246        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15247        throws com.google.protobuf.InvalidProtocolBufferException {
15248      return PARSER.parseFrom(data, extensionRegistry);
15249    }
15250    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal parseFrom(
15251        com.google.protobuf.ByteString data)
15252        throws com.google.protobuf.InvalidProtocolBufferException {
15253      return PARSER.parseFrom(data);
15254    }
15255    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal parseFrom(
15256        com.google.protobuf.ByteString data,
15257        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15258        throws com.google.protobuf.InvalidProtocolBufferException {
15259      return PARSER.parseFrom(data, extensionRegistry);
15260    }
15261    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal parseFrom(byte[] data)
15262        throws com.google.protobuf.InvalidProtocolBufferException {
15263      return PARSER.parseFrom(data);
15264    }
15265    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal parseFrom(
15266        byte[] data,
15267        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15268        throws com.google.protobuf.InvalidProtocolBufferException {
15269      return PARSER.parseFrom(data, extensionRegistry);
15270    }
15271    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal parseFrom(java.io.InputStream input)
15272        throws java.io.IOException {
15273      return com.google.protobuf.GeneratedMessageV3
15274          .parseWithIOException(PARSER, input);
15275    }
15276    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal parseFrom(
15277        java.io.InputStream input,
15278        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15279        throws java.io.IOException {
15280      return com.google.protobuf.GeneratedMessageV3
15281          .parseWithIOException(PARSER, input, extensionRegistry);
15282    }
15283    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal parseDelimitedFrom(java.io.InputStream input)
15284        throws java.io.IOException {
15285      return com.google.protobuf.GeneratedMessageV3
15286          .parseDelimitedWithIOException(PARSER, input);
15287    }
15288    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal parseDelimitedFrom(
15289        java.io.InputStream input,
15290        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15291        throws java.io.IOException {
15292      return com.google.protobuf.GeneratedMessageV3
15293          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
15294    }
15295    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal parseFrom(
15296        com.google.protobuf.CodedInputStream input)
15297        throws java.io.IOException {
15298      return com.google.protobuf.GeneratedMessageV3
15299          .parseWithIOException(PARSER, input);
15300    }
15301    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal parseFrom(
15302        com.google.protobuf.CodedInputStream input,
15303        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15304        throws java.io.IOException {
15305      return com.google.protobuf.GeneratedMessageV3
15306          .parseWithIOException(PARSER, input, extensionRegistry);
15307    }
15308
15309    @java.lang.Override
15310    public Builder newBuilderForType() { return newBuilder(); }
15311    public static Builder newBuilder() {
15312      return DEFAULT_INSTANCE.toBuilder();
15313    }
15314    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal prototype) {
15315      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
15316    }
15317    @java.lang.Override
15318    public Builder toBuilder() {
15319      return this == DEFAULT_INSTANCE
15320          ? new Builder() : new Builder().mergeFrom(this);
15321    }
15322
15323    @java.lang.Override
15324    protected Builder newBuilderForType(
15325        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
15326      Builder builder = new Builder(parent);
15327      return builder;
15328    }
15329    /**
15330     * Protobuf type {@code hybridsim.Goal}
15331     */
15332    public static final class Builder extends
15333        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
15334        // @@protoc_insertion_point(builder_implements:hybridsim.Goal)
15335        org.matsim.contrib.hybridsim.proto.HybridSimProto.GoalOrBuilder {
15336      public static final com.google.protobuf.Descriptors.Descriptor
15337          getDescriptor() {
15338        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Goal_descriptor;
15339      }
15340
15341      @java.lang.Override
15342      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
15343          internalGetFieldAccessorTable() {
15344        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Goal_fieldAccessorTable
15345            .ensureFieldAccessorsInitialized(
15346                org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.Builder.class);
15347      }
15348
15349      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.newBuilder()
15350      private Builder() {
15351        maybeForceBuilderInitialization();
15352      }
15353
15354      private Builder(
15355          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
15356        super(parent);
15357        maybeForceBuilderInitialization();
15358      }
15359      private void maybeForceBuilderInitialization() {
15360        if (com.google.protobuf.GeneratedMessageV3
15361                .alwaysUseFieldBuilders) {
15362        }
15363      }
15364      @java.lang.Override
15365      public Builder clear() {
15366        super.clear();
15367        id_ = 0;
15368
15369        final_ = false;
15370
15371        caption_ = "";
15372
15373        if (pBuilder_ == null) {
15374          p_ = null;
15375        } else {
15376          p_ = null;
15377          pBuilder_ = null;
15378        }
15379        return this;
15380      }
15381
15382      @java.lang.Override
15383      public com.google.protobuf.Descriptors.Descriptor
15384          getDescriptorForType() {
15385        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Goal_descriptor;
15386      }
15387
15388      @java.lang.Override
15389      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal getDefaultInstanceForType() {
15390        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.getDefaultInstance();
15391      }
15392
15393      @java.lang.Override
15394      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal build() {
15395        org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal result = buildPartial();
15396        if (!result.isInitialized()) {
15397          throw newUninitializedMessageException(result);
15398        }
15399        return result;
15400      }
15401
15402      @java.lang.Override
15403      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal buildPartial() {
15404        org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal(this);
15405        result.id_ = id_;
15406        result.final_ = final_;
15407        result.caption_ = caption_;
15408        if (pBuilder_ == null) {
15409          result.p_ = p_;
15410        } else {
15411          result.p_ = pBuilder_.build();
15412        }
15413        onBuilt();
15414        return result;
15415      }
15416
15417      @java.lang.Override
15418      public Builder clone() {
15419        return super.clone();
15420      }
15421      @java.lang.Override
15422      public Builder setField(
15423          com.google.protobuf.Descriptors.FieldDescriptor field,
15424          java.lang.Object value) {
15425        return super.setField(field, value);
15426      }
15427      @java.lang.Override
15428      public Builder clearField(
15429          com.google.protobuf.Descriptors.FieldDescriptor field) {
15430        return super.clearField(field);
15431      }
15432      @java.lang.Override
15433      public Builder clearOneof(
15434          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
15435        return super.clearOneof(oneof);
15436      }
15437      @java.lang.Override
15438      public Builder setRepeatedField(
15439          com.google.protobuf.Descriptors.FieldDescriptor field,
15440          int index, java.lang.Object value) {
15441        return super.setRepeatedField(field, index, value);
15442      }
15443      @java.lang.Override
15444      public Builder addRepeatedField(
15445          com.google.protobuf.Descriptors.FieldDescriptor field,
15446          java.lang.Object value) {
15447        return super.addRepeatedField(field, value);
15448      }
15449      @java.lang.Override
15450      public Builder mergeFrom(com.google.protobuf.Message other) {
15451        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal) {
15452          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal)other);
15453        } else {
15454          super.mergeFrom(other);
15455          return this;
15456        }
15457      }
15458
15459      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal other) {
15460        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal.getDefaultInstance()) return this;
15461        if (other.getId() != 0) {
15462          setId(other.getId());
15463        }
15464        if (other.getFinal() != false) {
15465          setFinal(other.getFinal());
15466        }
15467        if (!other.getCaption().isEmpty()) {
15468          caption_ = other.caption_;
15469          onChanged();
15470        }
15471        if (other.hasP()) {
15472          mergeP(other.getP());
15473        }
15474        this.mergeUnknownFields(other.unknownFields);
15475        onChanged();
15476        return this;
15477      }
15478
15479      @java.lang.Override
15480      public final boolean isInitialized() {
15481        return true;
15482      }
15483
15484      @java.lang.Override
15485      public Builder mergeFrom(
15486          com.google.protobuf.CodedInputStream input,
15487          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15488          throws java.io.IOException {
15489        org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal parsedMessage = null;
15490        try {
15491          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
15492        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
15493          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal) e.getUnfinishedMessage();
15494          throw e.unwrapIOException();
15495        } finally {
15496          if (parsedMessage != null) {
15497            mergeFrom(parsedMessage);
15498          }
15499        }
15500        return this;
15501      }
15502
15503      private int id_ ;
15504      /**
15505       * <code>int32 id = 1;</code>
15506       * @return The id.
15507       */
15508      public int getId() {
15509        return id_;
15510      }
15511      /**
15512       * <code>int32 id = 1;</code>
15513       * @param value The id to set.
15514       * @return This builder for chaining.
15515       */
15516      public Builder setId(int value) {
15517        
15518        id_ = value;
15519        onChanged();
15520        return this;
15521      }
15522      /**
15523       * <code>int32 id = 1;</code>
15524       * @return This builder for chaining.
15525       */
15526      public Builder clearId() {
15527        
15528        id_ = 0;
15529        onChanged();
15530        return this;
15531      }
15532
15533      private boolean final_ ;
15534      /**
15535       * <code>bool final = 2;</code>
15536       * @return The final.
15537       */
15538      public boolean getFinal() {
15539        return final_;
15540      }
15541      /**
15542       * <code>bool final = 2;</code>
15543       * @param value The final to set.
15544       * @return This builder for chaining.
15545       */
15546      public Builder setFinal(boolean value) {
15547        
15548        final_ = value;
15549        onChanged();
15550        return this;
15551      }
15552      /**
15553       * <code>bool final = 2;</code>
15554       * @return This builder for chaining.
15555       */
15556      public Builder clearFinal() {
15557        
15558        final_ = false;
15559        onChanged();
15560        return this;
15561      }
15562
15563      private java.lang.Object caption_ = "";
15564      /**
15565       * <code>string caption = 3;</code>
15566       * @return The caption.
15567       */
15568      public java.lang.String getCaption() {
15569        java.lang.Object ref = caption_;
15570        if (!(ref instanceof java.lang.String)) {
15571          com.google.protobuf.ByteString bs =
15572              (com.google.protobuf.ByteString) ref;
15573          java.lang.String s = bs.toStringUtf8();
15574          caption_ = s;
15575          return s;
15576        } else {
15577          return (java.lang.String) ref;
15578        }
15579      }
15580      /**
15581       * <code>string caption = 3;</code>
15582       * @return The bytes for caption.
15583       */
15584      public com.google.protobuf.ByteString
15585          getCaptionBytes() {
15586        java.lang.Object ref = caption_;
15587        if (ref instanceof String) {
15588          com.google.protobuf.ByteString b = 
15589              com.google.protobuf.ByteString.copyFromUtf8(
15590                  (java.lang.String) ref);
15591          caption_ = b;
15592          return b;
15593        } else {
15594          return (com.google.protobuf.ByteString) ref;
15595        }
15596      }
15597      /**
15598       * <code>string caption = 3;</code>
15599       * @param value The caption to set.
15600       * @return This builder for chaining.
15601       */
15602      public Builder setCaption(
15603          java.lang.String value) {
15604        if (value == null) {
15605    throw new NullPointerException();
15606  }
15607  
15608        caption_ = value;
15609        onChanged();
15610        return this;
15611      }
15612      /**
15613       * <code>string caption = 3;</code>
15614       * @return This builder for chaining.
15615       */
15616      public Builder clearCaption() {
15617        
15618        caption_ = getDefaultInstance().getCaption();
15619        onChanged();
15620        return this;
15621      }
15622      /**
15623       * <code>string caption = 3;</code>
15624       * @param value The bytes for caption to set.
15625       * @return This builder for chaining.
15626       */
15627      public Builder setCaptionBytes(
15628          com.google.protobuf.ByteString value) {
15629        if (value == null) {
15630    throw new NullPointerException();
15631  }
15632  checkByteStringIsUtf8(value);
15633        
15634        caption_ = value;
15635        onChanged();
15636        return this;
15637      }
15638
15639      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon p_;
15640      private com.google.protobuf.SingleFieldBuilderV3<
15641          org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon, org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.PolygonOrBuilder> pBuilder_;
15642      /**
15643       * <code>.hybridsim.Polygon p = 4;</code>
15644       * @return Whether the p field is set.
15645       */
15646      public boolean hasP() {
15647        return pBuilder_ != null || p_ != null;
15648      }
15649      /**
15650       * <code>.hybridsim.Polygon p = 4;</code>
15651       * @return The p.
15652       */
15653      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon getP() {
15654        if (pBuilder_ == null) {
15655          return p_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.getDefaultInstance() : p_;
15656        } else {
15657          return pBuilder_.getMessage();
15658        }
15659      }
15660      /**
15661       * <code>.hybridsim.Polygon p = 4;</code>
15662       */
15663      public Builder setP(org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon value) {
15664        if (pBuilder_ == null) {
15665          if (value == null) {
15666            throw new NullPointerException();
15667          }
15668          p_ = value;
15669          onChanged();
15670        } else {
15671          pBuilder_.setMessage(value);
15672        }
15673
15674        return this;
15675      }
15676      /**
15677       * <code>.hybridsim.Polygon p = 4;</code>
15678       */
15679      public Builder setP(
15680          org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.Builder builderForValue) {
15681        if (pBuilder_ == null) {
15682          p_ = builderForValue.build();
15683          onChanged();
15684        } else {
15685          pBuilder_.setMessage(builderForValue.build());
15686        }
15687
15688        return this;
15689      }
15690      /**
15691       * <code>.hybridsim.Polygon p = 4;</code>
15692       */
15693      public Builder mergeP(org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon value) {
15694        if (pBuilder_ == null) {
15695          if (p_ != null) {
15696            p_ =
15697              org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.newBuilder(p_).mergeFrom(value).buildPartial();
15698          } else {
15699            p_ = value;
15700          }
15701          onChanged();
15702        } else {
15703          pBuilder_.mergeFrom(value);
15704        }
15705
15706        return this;
15707      }
15708      /**
15709       * <code>.hybridsim.Polygon p = 4;</code>
15710       */
15711      public Builder clearP() {
15712        if (pBuilder_ == null) {
15713          p_ = null;
15714          onChanged();
15715        } else {
15716          p_ = null;
15717          pBuilder_ = null;
15718        }
15719
15720        return this;
15721      }
15722      /**
15723       * <code>.hybridsim.Polygon p = 4;</code>
15724       */
15725      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.Builder getPBuilder() {
15726        
15727        onChanged();
15728        return getPFieldBuilder().getBuilder();
15729      }
15730      /**
15731       * <code>.hybridsim.Polygon p = 4;</code>
15732       */
15733      public org.matsim.contrib.hybridsim.proto.HybridSimProto.PolygonOrBuilder getPOrBuilder() {
15734        if (pBuilder_ != null) {
15735          return pBuilder_.getMessageOrBuilder();
15736        } else {
15737          return p_ == null ?
15738              org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.getDefaultInstance() : p_;
15739        }
15740      }
15741      /**
15742       * <code>.hybridsim.Polygon p = 4;</code>
15743       */
15744      private com.google.protobuf.SingleFieldBuilderV3<
15745          org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon, org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.PolygonOrBuilder> 
15746          getPFieldBuilder() {
15747        if (pBuilder_ == null) {
15748          pBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
15749              org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon, org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.PolygonOrBuilder>(
15750                  getP(),
15751                  getParentForChildren(),
15752                  isClean());
15753          p_ = null;
15754        }
15755        return pBuilder_;
15756      }
15757      @java.lang.Override
15758      public final Builder setUnknownFields(
15759          final com.google.protobuf.UnknownFieldSet unknownFields) {
15760        return super.setUnknownFields(unknownFields);
15761      }
15762
15763      @java.lang.Override
15764      public final Builder mergeUnknownFields(
15765          final com.google.protobuf.UnknownFieldSet unknownFields) {
15766        return super.mergeUnknownFields(unknownFields);
15767      }
15768
15769
15770      // @@protoc_insertion_point(builder_scope:hybridsim.Goal)
15771    }
15772
15773    // @@protoc_insertion_point(class_scope:hybridsim.Goal)
15774    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal DEFAULT_INSTANCE;
15775    static {
15776      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal();
15777    }
15778
15779    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal getDefaultInstance() {
15780      return DEFAULT_INSTANCE;
15781    }
15782
15783    private static final com.google.protobuf.Parser<Goal>
15784        PARSER = new com.google.protobuf.AbstractParser<Goal>() {
15785      @java.lang.Override
15786      public Goal parsePartialFrom(
15787          com.google.protobuf.CodedInputStream input,
15788          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15789          throws com.google.protobuf.InvalidProtocolBufferException {
15790        return new Goal(input, extensionRegistry);
15791      }
15792    };
15793
15794    public static com.google.protobuf.Parser<Goal> parser() {
15795      return PARSER;
15796    }
15797
15798    @java.lang.Override
15799    public com.google.protobuf.Parser<Goal> getParserForType() {
15800      return PARSER;
15801    }
15802
15803    @java.lang.Override
15804    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Goal getDefaultInstanceForType() {
15805      return DEFAULT_INSTANCE;
15806    }
15807
15808  }
15809
15810  public interface EnvironmentOrBuilder extends
15811      // @@protoc_insertion_point(interface_extends:hybridsim.Environment)
15812      com.google.protobuf.MessageOrBuilder {
15813
15814    /**
15815     * <code>repeated .hybridsim.Room room = 1;</code>
15816     */
15817    java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Room> 
15818        getRoomList();
15819    /**
15820     * <code>repeated .hybridsim.Room room = 1;</code>
15821     */
15822    org.matsim.contrib.hybridsim.proto.HybridSimProto.Room getRoom(int index);
15823    /**
15824     * <code>repeated .hybridsim.Room room = 1;</code>
15825     */
15826    int getRoomCount();
15827    /**
15828     * <code>repeated .hybridsim.Room room = 1;</code>
15829     */
15830    java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.RoomOrBuilder> 
15831        getRoomOrBuilderList();
15832    /**
15833     * <code>repeated .hybridsim.Room room = 1;</code>
15834     */
15835    org.matsim.contrib.hybridsim.proto.HybridSimProto.RoomOrBuilder getRoomOrBuilder(
15836        int index);
15837
15838    /**
15839     * <code>repeated .hybridsim.Transition transition = 2;</code>
15840     */
15841    java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition> 
15842        getTransitionList();
15843    /**
15844     * <code>repeated .hybridsim.Transition transition = 2;</code>
15845     */
15846    org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition getTransition(int index);
15847    /**
15848     * <code>repeated .hybridsim.Transition transition = 2;</code>
15849     */
15850    int getTransitionCount();
15851    /**
15852     * <code>repeated .hybridsim.Transition transition = 2;</code>
15853     */
15854    java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.TransitionOrBuilder> 
15855        getTransitionOrBuilderList();
15856    /**
15857     * <code>repeated .hybridsim.Transition transition = 2;</code>
15858     */
15859    org.matsim.contrib.hybridsim.proto.HybridSimProto.TransitionOrBuilder getTransitionOrBuilder(
15860        int index);
15861
15862    /**
15863     * <code>repeated .hybridsim.Hline hline = 3;</code>
15864     */
15865    java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline> 
15866        getHlineList();
15867    /**
15868     * <code>repeated .hybridsim.Hline hline = 3;</code>
15869     */
15870    org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline getHline(int index);
15871    /**
15872     * <code>repeated .hybridsim.Hline hline = 3;</code>
15873     */
15874    int getHlineCount();
15875    /**
15876     * <code>repeated .hybridsim.Hline hline = 3;</code>
15877     */
15878    java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.HlineOrBuilder> 
15879        getHlineOrBuilderList();
15880    /**
15881     * <code>repeated .hybridsim.Hline hline = 3;</code>
15882     */
15883    org.matsim.contrib.hybridsim.proto.HybridSimProto.HlineOrBuilder getHlineOrBuilder(
15884        int index);
15885  }
15886  /**
15887   * Protobuf type {@code hybridsim.Environment}
15888   */
15889  public  static final class Environment extends
15890      com.google.protobuf.GeneratedMessageV3 implements
15891      // @@protoc_insertion_point(message_implements:hybridsim.Environment)
15892      EnvironmentOrBuilder {
15893  private static final long serialVersionUID = 0L;
15894    // Use Environment.newBuilder() to construct.
15895    private Environment(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
15896      super(builder);
15897    }
15898    private Environment() {
15899      room_ = java.util.Collections.emptyList();
15900      transition_ = java.util.Collections.emptyList();
15901      hline_ = java.util.Collections.emptyList();
15902    }
15903
15904    @java.lang.Override
15905    @SuppressWarnings({"unused"})
15906    protected java.lang.Object newInstance(
15907        UnusedPrivateParameter unused) {
15908      return new Environment();
15909    }
15910
15911    @java.lang.Override
15912    public final com.google.protobuf.UnknownFieldSet
15913    getUnknownFields() {
15914      return this.unknownFields;
15915    }
15916    private Environment(
15917        com.google.protobuf.CodedInputStream input,
15918        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15919        throws com.google.protobuf.InvalidProtocolBufferException {
15920      this();
15921      if (extensionRegistry == null) {
15922        throw new java.lang.NullPointerException();
15923      }
15924      int mutable_bitField0_ = 0;
15925      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
15926          com.google.protobuf.UnknownFieldSet.newBuilder();
15927      try {
15928        boolean done = false;
15929        while (!done) {
15930          int tag = input.readTag();
15931          switch (tag) {
15932            case 0:
15933              done = true;
15934              break;
15935            case 10: {
15936              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
15937                room_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Room>();
15938                mutable_bitField0_ |= 0x00000001;
15939              }
15940              room_.add(
15941                  input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.parser(), extensionRegistry));
15942              break;
15943            }
15944            case 18: {
15945              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
15946                transition_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition>();
15947                mutable_bitField0_ |= 0x00000002;
15948              }
15949              transition_.add(
15950                  input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.parser(), extensionRegistry));
15951              break;
15952            }
15953            case 26: {
15954              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
15955                hline_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline>();
15956                mutable_bitField0_ |= 0x00000004;
15957              }
15958              hline_.add(
15959                  input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.parser(), extensionRegistry));
15960              break;
15961            }
15962            default: {
15963              if (!parseUnknownField(
15964                  input, unknownFields, extensionRegistry, tag)) {
15965                done = true;
15966              }
15967              break;
15968            }
15969          }
15970        }
15971      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
15972        throw e.setUnfinishedMessage(this);
15973      } catch (java.io.IOException e) {
15974        throw new com.google.protobuf.InvalidProtocolBufferException(
15975            e).setUnfinishedMessage(this);
15976      } finally {
15977        if (((mutable_bitField0_ & 0x00000001) != 0)) {
15978          room_ = java.util.Collections.unmodifiableList(room_);
15979        }
15980        if (((mutable_bitField0_ & 0x00000002) != 0)) {
15981          transition_ = java.util.Collections.unmodifiableList(transition_);
15982        }
15983        if (((mutable_bitField0_ & 0x00000004) != 0)) {
15984          hline_ = java.util.Collections.unmodifiableList(hline_);
15985        }
15986        this.unknownFields = unknownFields.build();
15987        makeExtensionsImmutable();
15988      }
15989    }
15990    public static final com.google.protobuf.Descriptors.Descriptor
15991        getDescriptor() {
15992      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Environment_descriptor;
15993    }
15994
15995    @java.lang.Override
15996    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
15997        internalGetFieldAccessorTable() {
15998      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Environment_fieldAccessorTable
15999          .ensureFieldAccessorsInitialized(
16000              org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment.Builder.class);
16001    }
16002
16003    public static final int ROOM_FIELD_NUMBER = 1;
16004    private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Room> room_;
16005    /**
16006     * <code>repeated .hybridsim.Room room = 1;</code>
16007     */
16008    public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Room> getRoomList() {
16009      return room_;
16010    }
16011    /**
16012     * <code>repeated .hybridsim.Room room = 1;</code>
16013     */
16014    public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.RoomOrBuilder> 
16015        getRoomOrBuilderList() {
16016      return room_;
16017    }
16018    /**
16019     * <code>repeated .hybridsim.Room room = 1;</code>
16020     */
16021    public int getRoomCount() {
16022      return room_.size();
16023    }
16024    /**
16025     * <code>repeated .hybridsim.Room room = 1;</code>
16026     */
16027    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Room getRoom(int index) {
16028      return room_.get(index);
16029    }
16030    /**
16031     * <code>repeated .hybridsim.Room room = 1;</code>
16032     */
16033    public org.matsim.contrib.hybridsim.proto.HybridSimProto.RoomOrBuilder getRoomOrBuilder(
16034        int index) {
16035      return room_.get(index);
16036    }
16037
16038    public static final int TRANSITION_FIELD_NUMBER = 2;
16039    private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition> transition_;
16040    /**
16041     * <code>repeated .hybridsim.Transition transition = 2;</code>
16042     */
16043    public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition> getTransitionList() {
16044      return transition_;
16045    }
16046    /**
16047     * <code>repeated .hybridsim.Transition transition = 2;</code>
16048     */
16049    public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.TransitionOrBuilder> 
16050        getTransitionOrBuilderList() {
16051      return transition_;
16052    }
16053    /**
16054     * <code>repeated .hybridsim.Transition transition = 2;</code>
16055     */
16056    public int getTransitionCount() {
16057      return transition_.size();
16058    }
16059    /**
16060     * <code>repeated .hybridsim.Transition transition = 2;</code>
16061     */
16062    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition getTransition(int index) {
16063      return transition_.get(index);
16064    }
16065    /**
16066     * <code>repeated .hybridsim.Transition transition = 2;</code>
16067     */
16068    public org.matsim.contrib.hybridsim.proto.HybridSimProto.TransitionOrBuilder getTransitionOrBuilder(
16069        int index) {
16070      return transition_.get(index);
16071    }
16072
16073    public static final int HLINE_FIELD_NUMBER = 3;
16074    private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline> hline_;
16075    /**
16076     * <code>repeated .hybridsim.Hline hline = 3;</code>
16077     */
16078    public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline> getHlineList() {
16079      return hline_;
16080    }
16081    /**
16082     * <code>repeated .hybridsim.Hline hline = 3;</code>
16083     */
16084    public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.HlineOrBuilder> 
16085        getHlineOrBuilderList() {
16086      return hline_;
16087    }
16088    /**
16089     * <code>repeated .hybridsim.Hline hline = 3;</code>
16090     */
16091    public int getHlineCount() {
16092      return hline_.size();
16093    }
16094    /**
16095     * <code>repeated .hybridsim.Hline hline = 3;</code>
16096     */
16097    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline getHline(int index) {
16098      return hline_.get(index);
16099    }
16100    /**
16101     * <code>repeated .hybridsim.Hline hline = 3;</code>
16102     */
16103    public org.matsim.contrib.hybridsim.proto.HybridSimProto.HlineOrBuilder getHlineOrBuilder(
16104        int index) {
16105      return hline_.get(index);
16106    }
16107
16108    private byte memoizedIsInitialized = -1;
16109    @java.lang.Override
16110    public final boolean isInitialized() {
16111      byte isInitialized = memoizedIsInitialized;
16112      if (isInitialized == 1) return true;
16113      if (isInitialized == 0) return false;
16114
16115      memoizedIsInitialized = 1;
16116      return true;
16117    }
16118
16119    @java.lang.Override
16120    public void writeTo(com.google.protobuf.CodedOutputStream output)
16121                        throws java.io.IOException {
16122      for (int i = 0; i < room_.size(); i++) {
16123        output.writeMessage(1, room_.get(i));
16124      }
16125      for (int i = 0; i < transition_.size(); i++) {
16126        output.writeMessage(2, transition_.get(i));
16127      }
16128      for (int i = 0; i < hline_.size(); i++) {
16129        output.writeMessage(3, hline_.get(i));
16130      }
16131      unknownFields.writeTo(output);
16132    }
16133
16134    @java.lang.Override
16135    public int getSerializedSize() {
16136      int size = memoizedSize;
16137      if (size != -1) return size;
16138
16139      size = 0;
16140      for (int i = 0; i < room_.size(); i++) {
16141        size += com.google.protobuf.CodedOutputStream
16142          .computeMessageSize(1, room_.get(i));
16143      }
16144      for (int i = 0; i < transition_.size(); i++) {
16145        size += com.google.protobuf.CodedOutputStream
16146          .computeMessageSize(2, transition_.get(i));
16147      }
16148      for (int i = 0; i < hline_.size(); i++) {
16149        size += com.google.protobuf.CodedOutputStream
16150          .computeMessageSize(3, hline_.get(i));
16151      }
16152      size += unknownFields.getSerializedSize();
16153      memoizedSize = size;
16154      return size;
16155    }
16156
16157    @java.lang.Override
16158    public boolean equals(final java.lang.Object obj) {
16159      if (obj == this) {
16160       return true;
16161      }
16162      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment)) {
16163        return super.equals(obj);
16164      }
16165      org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment) obj;
16166
16167      if (!getRoomList()
16168          .equals(other.getRoomList())) return false;
16169      if (!getTransitionList()
16170          .equals(other.getTransitionList())) return false;
16171      if (!getHlineList()
16172          .equals(other.getHlineList())) return false;
16173      if (!unknownFields.equals(other.unknownFields)) return false;
16174      return true;
16175    }
16176
16177    @java.lang.Override
16178    public int hashCode() {
16179      if (memoizedHashCode != 0) {
16180        return memoizedHashCode;
16181      }
16182      int hash = 41;
16183      hash = (19 * hash) + getDescriptor().hashCode();
16184      if (getRoomCount() > 0) {
16185        hash = (37 * hash) + ROOM_FIELD_NUMBER;
16186        hash = (53 * hash) + getRoomList().hashCode();
16187      }
16188      if (getTransitionCount() > 0) {
16189        hash = (37 * hash) + TRANSITION_FIELD_NUMBER;
16190        hash = (53 * hash) + getTransitionList().hashCode();
16191      }
16192      if (getHlineCount() > 0) {
16193        hash = (37 * hash) + HLINE_FIELD_NUMBER;
16194        hash = (53 * hash) + getHlineList().hashCode();
16195      }
16196      hash = (29 * hash) + unknownFields.hashCode();
16197      memoizedHashCode = hash;
16198      return hash;
16199    }
16200
16201    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment parseFrom(
16202        java.nio.ByteBuffer data)
16203        throws com.google.protobuf.InvalidProtocolBufferException {
16204      return PARSER.parseFrom(data);
16205    }
16206    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment parseFrom(
16207        java.nio.ByteBuffer data,
16208        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16209        throws com.google.protobuf.InvalidProtocolBufferException {
16210      return PARSER.parseFrom(data, extensionRegistry);
16211    }
16212    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment parseFrom(
16213        com.google.protobuf.ByteString data)
16214        throws com.google.protobuf.InvalidProtocolBufferException {
16215      return PARSER.parseFrom(data);
16216    }
16217    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment parseFrom(
16218        com.google.protobuf.ByteString data,
16219        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16220        throws com.google.protobuf.InvalidProtocolBufferException {
16221      return PARSER.parseFrom(data, extensionRegistry);
16222    }
16223    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment parseFrom(byte[] data)
16224        throws com.google.protobuf.InvalidProtocolBufferException {
16225      return PARSER.parseFrom(data);
16226    }
16227    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment parseFrom(
16228        byte[] data,
16229        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16230        throws com.google.protobuf.InvalidProtocolBufferException {
16231      return PARSER.parseFrom(data, extensionRegistry);
16232    }
16233    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment parseFrom(java.io.InputStream input)
16234        throws java.io.IOException {
16235      return com.google.protobuf.GeneratedMessageV3
16236          .parseWithIOException(PARSER, input);
16237    }
16238    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment parseFrom(
16239        java.io.InputStream input,
16240        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16241        throws java.io.IOException {
16242      return com.google.protobuf.GeneratedMessageV3
16243          .parseWithIOException(PARSER, input, extensionRegistry);
16244    }
16245    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment parseDelimitedFrom(java.io.InputStream input)
16246        throws java.io.IOException {
16247      return com.google.protobuf.GeneratedMessageV3
16248          .parseDelimitedWithIOException(PARSER, input);
16249    }
16250    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment parseDelimitedFrom(
16251        java.io.InputStream input,
16252        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16253        throws java.io.IOException {
16254      return com.google.protobuf.GeneratedMessageV3
16255          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
16256    }
16257    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment parseFrom(
16258        com.google.protobuf.CodedInputStream input)
16259        throws java.io.IOException {
16260      return com.google.protobuf.GeneratedMessageV3
16261          .parseWithIOException(PARSER, input);
16262    }
16263    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment parseFrom(
16264        com.google.protobuf.CodedInputStream input,
16265        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16266        throws java.io.IOException {
16267      return com.google.protobuf.GeneratedMessageV3
16268          .parseWithIOException(PARSER, input, extensionRegistry);
16269    }
16270
16271    @java.lang.Override
16272    public Builder newBuilderForType() { return newBuilder(); }
16273    public static Builder newBuilder() {
16274      return DEFAULT_INSTANCE.toBuilder();
16275    }
16276    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment prototype) {
16277      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
16278    }
16279    @java.lang.Override
16280    public Builder toBuilder() {
16281      return this == DEFAULT_INSTANCE
16282          ? new Builder() : new Builder().mergeFrom(this);
16283    }
16284
16285    @java.lang.Override
16286    protected Builder newBuilderForType(
16287        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
16288      Builder builder = new Builder(parent);
16289      return builder;
16290    }
16291    /**
16292     * Protobuf type {@code hybridsim.Environment}
16293     */
16294    public static final class Builder extends
16295        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
16296        // @@protoc_insertion_point(builder_implements:hybridsim.Environment)
16297        org.matsim.contrib.hybridsim.proto.HybridSimProto.EnvironmentOrBuilder {
16298      public static final com.google.protobuf.Descriptors.Descriptor
16299          getDescriptor() {
16300        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Environment_descriptor;
16301      }
16302
16303      @java.lang.Override
16304      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
16305          internalGetFieldAccessorTable() {
16306        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Environment_fieldAccessorTable
16307            .ensureFieldAccessorsInitialized(
16308                org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment.Builder.class);
16309      }
16310
16311      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment.newBuilder()
16312      private Builder() {
16313        maybeForceBuilderInitialization();
16314      }
16315
16316      private Builder(
16317          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
16318        super(parent);
16319        maybeForceBuilderInitialization();
16320      }
16321      private void maybeForceBuilderInitialization() {
16322        if (com.google.protobuf.GeneratedMessageV3
16323                .alwaysUseFieldBuilders) {
16324          getRoomFieldBuilder();
16325          getTransitionFieldBuilder();
16326          getHlineFieldBuilder();
16327        }
16328      }
16329      @java.lang.Override
16330      public Builder clear() {
16331        super.clear();
16332        if (roomBuilder_ == null) {
16333          room_ = java.util.Collections.emptyList();
16334          bitField0_ = (bitField0_ & ~0x00000001);
16335        } else {
16336          roomBuilder_.clear();
16337        }
16338        if (transitionBuilder_ == null) {
16339          transition_ = java.util.Collections.emptyList();
16340          bitField0_ = (bitField0_ & ~0x00000002);
16341        } else {
16342          transitionBuilder_.clear();
16343        }
16344        if (hlineBuilder_ == null) {
16345          hline_ = java.util.Collections.emptyList();
16346          bitField0_ = (bitField0_ & ~0x00000004);
16347        } else {
16348          hlineBuilder_.clear();
16349        }
16350        return this;
16351      }
16352
16353      @java.lang.Override
16354      public com.google.protobuf.Descriptors.Descriptor
16355          getDescriptorForType() {
16356        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Environment_descriptor;
16357      }
16358
16359      @java.lang.Override
16360      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment getDefaultInstanceForType() {
16361        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment.getDefaultInstance();
16362      }
16363
16364      @java.lang.Override
16365      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment build() {
16366        org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment result = buildPartial();
16367        if (!result.isInitialized()) {
16368          throw newUninitializedMessageException(result);
16369        }
16370        return result;
16371      }
16372
16373      @java.lang.Override
16374      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment buildPartial() {
16375        org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment(this);
16376        int from_bitField0_ = bitField0_;
16377        if (roomBuilder_ == null) {
16378          if (((bitField0_ & 0x00000001) != 0)) {
16379            room_ = java.util.Collections.unmodifiableList(room_);
16380            bitField0_ = (bitField0_ & ~0x00000001);
16381          }
16382          result.room_ = room_;
16383        } else {
16384          result.room_ = roomBuilder_.build();
16385        }
16386        if (transitionBuilder_ == null) {
16387          if (((bitField0_ & 0x00000002) != 0)) {
16388            transition_ = java.util.Collections.unmodifiableList(transition_);
16389            bitField0_ = (bitField0_ & ~0x00000002);
16390          }
16391          result.transition_ = transition_;
16392        } else {
16393          result.transition_ = transitionBuilder_.build();
16394        }
16395        if (hlineBuilder_ == null) {
16396          if (((bitField0_ & 0x00000004) != 0)) {
16397            hline_ = java.util.Collections.unmodifiableList(hline_);
16398            bitField0_ = (bitField0_ & ~0x00000004);
16399          }
16400          result.hline_ = hline_;
16401        } else {
16402          result.hline_ = hlineBuilder_.build();
16403        }
16404        onBuilt();
16405        return result;
16406      }
16407
16408      @java.lang.Override
16409      public Builder clone() {
16410        return super.clone();
16411      }
16412      @java.lang.Override
16413      public Builder setField(
16414          com.google.protobuf.Descriptors.FieldDescriptor field,
16415          java.lang.Object value) {
16416        return super.setField(field, value);
16417      }
16418      @java.lang.Override
16419      public Builder clearField(
16420          com.google.protobuf.Descriptors.FieldDescriptor field) {
16421        return super.clearField(field);
16422      }
16423      @java.lang.Override
16424      public Builder clearOneof(
16425          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
16426        return super.clearOneof(oneof);
16427      }
16428      @java.lang.Override
16429      public Builder setRepeatedField(
16430          com.google.protobuf.Descriptors.FieldDescriptor field,
16431          int index, java.lang.Object value) {
16432        return super.setRepeatedField(field, index, value);
16433      }
16434      @java.lang.Override
16435      public Builder addRepeatedField(
16436          com.google.protobuf.Descriptors.FieldDescriptor field,
16437          java.lang.Object value) {
16438        return super.addRepeatedField(field, value);
16439      }
16440      @java.lang.Override
16441      public Builder mergeFrom(com.google.protobuf.Message other) {
16442        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment) {
16443          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment)other);
16444        } else {
16445          super.mergeFrom(other);
16446          return this;
16447        }
16448      }
16449
16450      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment other) {
16451        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment.getDefaultInstance()) return this;
16452        if (roomBuilder_ == null) {
16453          if (!other.room_.isEmpty()) {
16454            if (room_.isEmpty()) {
16455              room_ = other.room_;
16456              bitField0_ = (bitField0_ & ~0x00000001);
16457            } else {
16458              ensureRoomIsMutable();
16459              room_.addAll(other.room_);
16460            }
16461            onChanged();
16462          }
16463        } else {
16464          if (!other.room_.isEmpty()) {
16465            if (roomBuilder_.isEmpty()) {
16466              roomBuilder_.dispose();
16467              roomBuilder_ = null;
16468              room_ = other.room_;
16469              bitField0_ = (bitField0_ & ~0x00000001);
16470              roomBuilder_ = 
16471                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
16472                   getRoomFieldBuilder() : null;
16473            } else {
16474              roomBuilder_.addAllMessages(other.room_);
16475            }
16476          }
16477        }
16478        if (transitionBuilder_ == null) {
16479          if (!other.transition_.isEmpty()) {
16480            if (transition_.isEmpty()) {
16481              transition_ = other.transition_;
16482              bitField0_ = (bitField0_ & ~0x00000002);
16483            } else {
16484              ensureTransitionIsMutable();
16485              transition_.addAll(other.transition_);
16486            }
16487            onChanged();
16488          }
16489        } else {
16490          if (!other.transition_.isEmpty()) {
16491            if (transitionBuilder_.isEmpty()) {
16492              transitionBuilder_.dispose();
16493              transitionBuilder_ = null;
16494              transition_ = other.transition_;
16495              bitField0_ = (bitField0_ & ~0x00000002);
16496              transitionBuilder_ = 
16497                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
16498                   getTransitionFieldBuilder() : null;
16499            } else {
16500              transitionBuilder_.addAllMessages(other.transition_);
16501            }
16502          }
16503        }
16504        if (hlineBuilder_ == null) {
16505          if (!other.hline_.isEmpty()) {
16506            if (hline_.isEmpty()) {
16507              hline_ = other.hline_;
16508              bitField0_ = (bitField0_ & ~0x00000004);
16509            } else {
16510              ensureHlineIsMutable();
16511              hline_.addAll(other.hline_);
16512            }
16513            onChanged();
16514          }
16515        } else {
16516          if (!other.hline_.isEmpty()) {
16517            if (hlineBuilder_.isEmpty()) {
16518              hlineBuilder_.dispose();
16519              hlineBuilder_ = null;
16520              hline_ = other.hline_;
16521              bitField0_ = (bitField0_ & ~0x00000004);
16522              hlineBuilder_ = 
16523                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
16524                   getHlineFieldBuilder() : null;
16525            } else {
16526              hlineBuilder_.addAllMessages(other.hline_);
16527            }
16528          }
16529        }
16530        this.mergeUnknownFields(other.unknownFields);
16531        onChanged();
16532        return this;
16533      }
16534
16535      @java.lang.Override
16536      public final boolean isInitialized() {
16537        return true;
16538      }
16539
16540      @java.lang.Override
16541      public Builder mergeFrom(
16542          com.google.protobuf.CodedInputStream input,
16543          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16544          throws java.io.IOException {
16545        org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment parsedMessage = null;
16546        try {
16547          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
16548        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
16549          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment) e.getUnfinishedMessage();
16550          throw e.unwrapIOException();
16551        } finally {
16552          if (parsedMessage != null) {
16553            mergeFrom(parsedMessage);
16554          }
16555        }
16556        return this;
16557      }
16558      private int bitField0_;
16559
16560      private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Room> room_ =
16561        java.util.Collections.emptyList();
16562      private void ensureRoomIsMutable() {
16563        if (!((bitField0_ & 0x00000001) != 0)) {
16564          room_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Room>(room_);
16565          bitField0_ |= 0x00000001;
16566         }
16567      }
16568
16569      private com.google.protobuf.RepeatedFieldBuilderV3<
16570          org.matsim.contrib.hybridsim.proto.HybridSimProto.Room, org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.RoomOrBuilder> roomBuilder_;
16571
16572      /**
16573       * <code>repeated .hybridsim.Room room = 1;</code>
16574       */
16575      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Room> getRoomList() {
16576        if (roomBuilder_ == null) {
16577          return java.util.Collections.unmodifiableList(room_);
16578        } else {
16579          return roomBuilder_.getMessageList();
16580        }
16581      }
16582      /**
16583       * <code>repeated .hybridsim.Room room = 1;</code>
16584       */
16585      public int getRoomCount() {
16586        if (roomBuilder_ == null) {
16587          return room_.size();
16588        } else {
16589          return roomBuilder_.getCount();
16590        }
16591      }
16592      /**
16593       * <code>repeated .hybridsim.Room room = 1;</code>
16594       */
16595      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Room getRoom(int index) {
16596        if (roomBuilder_ == null) {
16597          return room_.get(index);
16598        } else {
16599          return roomBuilder_.getMessage(index);
16600        }
16601      }
16602      /**
16603       * <code>repeated .hybridsim.Room room = 1;</code>
16604       */
16605      public Builder setRoom(
16606          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Room value) {
16607        if (roomBuilder_ == null) {
16608          if (value == null) {
16609            throw new NullPointerException();
16610          }
16611          ensureRoomIsMutable();
16612          room_.set(index, value);
16613          onChanged();
16614        } else {
16615          roomBuilder_.setMessage(index, value);
16616        }
16617        return this;
16618      }
16619      /**
16620       * <code>repeated .hybridsim.Room room = 1;</code>
16621       */
16622      public Builder setRoom(
16623          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.Builder builderForValue) {
16624        if (roomBuilder_ == null) {
16625          ensureRoomIsMutable();
16626          room_.set(index, builderForValue.build());
16627          onChanged();
16628        } else {
16629          roomBuilder_.setMessage(index, builderForValue.build());
16630        }
16631        return this;
16632      }
16633      /**
16634       * <code>repeated .hybridsim.Room room = 1;</code>
16635       */
16636      public Builder addRoom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Room value) {
16637        if (roomBuilder_ == null) {
16638          if (value == null) {
16639            throw new NullPointerException();
16640          }
16641          ensureRoomIsMutable();
16642          room_.add(value);
16643          onChanged();
16644        } else {
16645          roomBuilder_.addMessage(value);
16646        }
16647        return this;
16648      }
16649      /**
16650       * <code>repeated .hybridsim.Room room = 1;</code>
16651       */
16652      public Builder addRoom(
16653          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Room value) {
16654        if (roomBuilder_ == null) {
16655          if (value == null) {
16656            throw new NullPointerException();
16657          }
16658          ensureRoomIsMutable();
16659          room_.add(index, value);
16660          onChanged();
16661        } else {
16662          roomBuilder_.addMessage(index, value);
16663        }
16664        return this;
16665      }
16666      /**
16667       * <code>repeated .hybridsim.Room room = 1;</code>
16668       */
16669      public Builder addRoom(
16670          org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.Builder builderForValue) {
16671        if (roomBuilder_ == null) {
16672          ensureRoomIsMutable();
16673          room_.add(builderForValue.build());
16674          onChanged();
16675        } else {
16676          roomBuilder_.addMessage(builderForValue.build());
16677        }
16678        return this;
16679      }
16680      /**
16681       * <code>repeated .hybridsim.Room room = 1;</code>
16682       */
16683      public Builder addRoom(
16684          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.Builder builderForValue) {
16685        if (roomBuilder_ == null) {
16686          ensureRoomIsMutable();
16687          room_.add(index, builderForValue.build());
16688          onChanged();
16689        } else {
16690          roomBuilder_.addMessage(index, builderForValue.build());
16691        }
16692        return this;
16693      }
16694      /**
16695       * <code>repeated .hybridsim.Room room = 1;</code>
16696       */
16697      public Builder addAllRoom(
16698          java.lang.Iterable<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.Room> values) {
16699        if (roomBuilder_ == null) {
16700          ensureRoomIsMutable();
16701          com.google.protobuf.AbstractMessageLite.Builder.addAll(
16702              values, room_);
16703          onChanged();
16704        } else {
16705          roomBuilder_.addAllMessages(values);
16706        }
16707        return this;
16708      }
16709      /**
16710       * <code>repeated .hybridsim.Room room = 1;</code>
16711       */
16712      public Builder clearRoom() {
16713        if (roomBuilder_ == null) {
16714          room_ = java.util.Collections.emptyList();
16715          bitField0_ = (bitField0_ & ~0x00000001);
16716          onChanged();
16717        } else {
16718          roomBuilder_.clear();
16719        }
16720        return this;
16721      }
16722      /**
16723       * <code>repeated .hybridsim.Room room = 1;</code>
16724       */
16725      public Builder removeRoom(int index) {
16726        if (roomBuilder_ == null) {
16727          ensureRoomIsMutable();
16728          room_.remove(index);
16729          onChanged();
16730        } else {
16731          roomBuilder_.remove(index);
16732        }
16733        return this;
16734      }
16735      /**
16736       * <code>repeated .hybridsim.Room room = 1;</code>
16737       */
16738      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.Builder getRoomBuilder(
16739          int index) {
16740        return getRoomFieldBuilder().getBuilder(index);
16741      }
16742      /**
16743       * <code>repeated .hybridsim.Room room = 1;</code>
16744       */
16745      public org.matsim.contrib.hybridsim.proto.HybridSimProto.RoomOrBuilder getRoomOrBuilder(
16746          int index) {
16747        if (roomBuilder_ == null) {
16748          return room_.get(index);  } else {
16749          return roomBuilder_.getMessageOrBuilder(index);
16750        }
16751      }
16752      /**
16753       * <code>repeated .hybridsim.Room room = 1;</code>
16754       */
16755      public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.RoomOrBuilder> 
16756           getRoomOrBuilderList() {
16757        if (roomBuilder_ != null) {
16758          return roomBuilder_.getMessageOrBuilderList();
16759        } else {
16760          return java.util.Collections.unmodifiableList(room_);
16761        }
16762      }
16763      /**
16764       * <code>repeated .hybridsim.Room room = 1;</code>
16765       */
16766      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.Builder addRoomBuilder() {
16767        return getRoomFieldBuilder().addBuilder(
16768            org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.getDefaultInstance());
16769      }
16770      /**
16771       * <code>repeated .hybridsim.Room room = 1;</code>
16772       */
16773      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.Builder addRoomBuilder(
16774          int index) {
16775        return getRoomFieldBuilder().addBuilder(
16776            index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.getDefaultInstance());
16777      }
16778      /**
16779       * <code>repeated .hybridsim.Room room = 1;</code>
16780       */
16781      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.Builder> 
16782           getRoomBuilderList() {
16783        return getRoomFieldBuilder().getBuilderList();
16784      }
16785      private com.google.protobuf.RepeatedFieldBuilderV3<
16786          org.matsim.contrib.hybridsim.proto.HybridSimProto.Room, org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.RoomOrBuilder> 
16787          getRoomFieldBuilder() {
16788        if (roomBuilder_ == null) {
16789          roomBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
16790              org.matsim.contrib.hybridsim.proto.HybridSimProto.Room, org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.RoomOrBuilder>(
16791                  room_,
16792                  ((bitField0_ & 0x00000001) != 0),
16793                  getParentForChildren(),
16794                  isClean());
16795          room_ = null;
16796        }
16797        return roomBuilder_;
16798      }
16799
16800      private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition> transition_ =
16801        java.util.Collections.emptyList();
16802      private void ensureTransitionIsMutable() {
16803        if (!((bitField0_ & 0x00000002) != 0)) {
16804          transition_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition>(transition_);
16805          bitField0_ |= 0x00000002;
16806         }
16807      }
16808
16809      private com.google.protobuf.RepeatedFieldBuilderV3<
16810          org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition, org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.TransitionOrBuilder> transitionBuilder_;
16811
16812      /**
16813       * <code>repeated .hybridsim.Transition transition = 2;</code>
16814       */
16815      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition> getTransitionList() {
16816        if (transitionBuilder_ == null) {
16817          return java.util.Collections.unmodifiableList(transition_);
16818        } else {
16819          return transitionBuilder_.getMessageList();
16820        }
16821      }
16822      /**
16823       * <code>repeated .hybridsim.Transition transition = 2;</code>
16824       */
16825      public int getTransitionCount() {
16826        if (transitionBuilder_ == null) {
16827          return transition_.size();
16828        } else {
16829          return transitionBuilder_.getCount();
16830        }
16831      }
16832      /**
16833       * <code>repeated .hybridsim.Transition transition = 2;</code>
16834       */
16835      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition getTransition(int index) {
16836        if (transitionBuilder_ == null) {
16837          return transition_.get(index);
16838        } else {
16839          return transitionBuilder_.getMessage(index);
16840        }
16841      }
16842      /**
16843       * <code>repeated .hybridsim.Transition transition = 2;</code>
16844       */
16845      public Builder setTransition(
16846          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition value) {
16847        if (transitionBuilder_ == null) {
16848          if (value == null) {
16849            throw new NullPointerException();
16850          }
16851          ensureTransitionIsMutable();
16852          transition_.set(index, value);
16853          onChanged();
16854        } else {
16855          transitionBuilder_.setMessage(index, value);
16856        }
16857        return this;
16858      }
16859      /**
16860       * <code>repeated .hybridsim.Transition transition = 2;</code>
16861       */
16862      public Builder setTransition(
16863          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.Builder builderForValue) {
16864        if (transitionBuilder_ == null) {
16865          ensureTransitionIsMutable();
16866          transition_.set(index, builderForValue.build());
16867          onChanged();
16868        } else {
16869          transitionBuilder_.setMessage(index, builderForValue.build());
16870        }
16871        return this;
16872      }
16873      /**
16874       * <code>repeated .hybridsim.Transition transition = 2;</code>
16875       */
16876      public Builder addTransition(org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition value) {
16877        if (transitionBuilder_ == null) {
16878          if (value == null) {
16879            throw new NullPointerException();
16880          }
16881          ensureTransitionIsMutable();
16882          transition_.add(value);
16883          onChanged();
16884        } else {
16885          transitionBuilder_.addMessage(value);
16886        }
16887        return this;
16888      }
16889      /**
16890       * <code>repeated .hybridsim.Transition transition = 2;</code>
16891       */
16892      public Builder addTransition(
16893          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition value) {
16894        if (transitionBuilder_ == null) {
16895          if (value == null) {
16896            throw new NullPointerException();
16897          }
16898          ensureTransitionIsMutable();
16899          transition_.add(index, value);
16900          onChanged();
16901        } else {
16902          transitionBuilder_.addMessage(index, value);
16903        }
16904        return this;
16905      }
16906      /**
16907       * <code>repeated .hybridsim.Transition transition = 2;</code>
16908       */
16909      public Builder addTransition(
16910          org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.Builder builderForValue) {
16911        if (transitionBuilder_ == null) {
16912          ensureTransitionIsMutable();
16913          transition_.add(builderForValue.build());
16914          onChanged();
16915        } else {
16916          transitionBuilder_.addMessage(builderForValue.build());
16917        }
16918        return this;
16919      }
16920      /**
16921       * <code>repeated .hybridsim.Transition transition = 2;</code>
16922       */
16923      public Builder addTransition(
16924          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.Builder builderForValue) {
16925        if (transitionBuilder_ == null) {
16926          ensureTransitionIsMutable();
16927          transition_.add(index, builderForValue.build());
16928          onChanged();
16929        } else {
16930          transitionBuilder_.addMessage(index, builderForValue.build());
16931        }
16932        return this;
16933      }
16934      /**
16935       * <code>repeated .hybridsim.Transition transition = 2;</code>
16936       */
16937      public Builder addAllTransition(
16938          java.lang.Iterable<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition> values) {
16939        if (transitionBuilder_ == null) {
16940          ensureTransitionIsMutable();
16941          com.google.protobuf.AbstractMessageLite.Builder.addAll(
16942              values, transition_);
16943          onChanged();
16944        } else {
16945          transitionBuilder_.addAllMessages(values);
16946        }
16947        return this;
16948      }
16949      /**
16950       * <code>repeated .hybridsim.Transition transition = 2;</code>
16951       */
16952      public Builder clearTransition() {
16953        if (transitionBuilder_ == null) {
16954          transition_ = java.util.Collections.emptyList();
16955          bitField0_ = (bitField0_ & ~0x00000002);
16956          onChanged();
16957        } else {
16958          transitionBuilder_.clear();
16959        }
16960        return this;
16961      }
16962      /**
16963       * <code>repeated .hybridsim.Transition transition = 2;</code>
16964       */
16965      public Builder removeTransition(int index) {
16966        if (transitionBuilder_ == null) {
16967          ensureTransitionIsMutable();
16968          transition_.remove(index);
16969          onChanged();
16970        } else {
16971          transitionBuilder_.remove(index);
16972        }
16973        return this;
16974      }
16975      /**
16976       * <code>repeated .hybridsim.Transition transition = 2;</code>
16977       */
16978      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.Builder getTransitionBuilder(
16979          int index) {
16980        return getTransitionFieldBuilder().getBuilder(index);
16981      }
16982      /**
16983       * <code>repeated .hybridsim.Transition transition = 2;</code>
16984       */
16985      public org.matsim.contrib.hybridsim.proto.HybridSimProto.TransitionOrBuilder getTransitionOrBuilder(
16986          int index) {
16987        if (transitionBuilder_ == null) {
16988          return transition_.get(index);  } else {
16989          return transitionBuilder_.getMessageOrBuilder(index);
16990        }
16991      }
16992      /**
16993       * <code>repeated .hybridsim.Transition transition = 2;</code>
16994       */
16995      public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.TransitionOrBuilder> 
16996           getTransitionOrBuilderList() {
16997        if (transitionBuilder_ != null) {
16998          return transitionBuilder_.getMessageOrBuilderList();
16999        } else {
17000          return java.util.Collections.unmodifiableList(transition_);
17001        }
17002      }
17003      /**
17004       * <code>repeated .hybridsim.Transition transition = 2;</code>
17005       */
17006      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.Builder addTransitionBuilder() {
17007        return getTransitionFieldBuilder().addBuilder(
17008            org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.getDefaultInstance());
17009      }
17010      /**
17011       * <code>repeated .hybridsim.Transition transition = 2;</code>
17012       */
17013      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.Builder addTransitionBuilder(
17014          int index) {
17015        return getTransitionFieldBuilder().addBuilder(
17016            index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.getDefaultInstance());
17017      }
17018      /**
17019       * <code>repeated .hybridsim.Transition transition = 2;</code>
17020       */
17021      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.Builder> 
17022           getTransitionBuilderList() {
17023        return getTransitionFieldBuilder().getBuilderList();
17024      }
17025      private com.google.protobuf.RepeatedFieldBuilderV3<
17026          org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition, org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.TransitionOrBuilder> 
17027          getTransitionFieldBuilder() {
17028        if (transitionBuilder_ == null) {
17029          transitionBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
17030              org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition, org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.TransitionOrBuilder>(
17031                  transition_,
17032                  ((bitField0_ & 0x00000002) != 0),
17033                  getParentForChildren(),
17034                  isClean());
17035          transition_ = null;
17036        }
17037        return transitionBuilder_;
17038      }
17039
17040      private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline> hline_ =
17041        java.util.Collections.emptyList();
17042      private void ensureHlineIsMutable() {
17043        if (!((bitField0_ & 0x00000004) != 0)) {
17044          hline_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline>(hline_);
17045          bitField0_ |= 0x00000004;
17046         }
17047      }
17048
17049      private com.google.protobuf.RepeatedFieldBuilderV3<
17050          org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline, org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.HlineOrBuilder> hlineBuilder_;
17051
17052      /**
17053       * <code>repeated .hybridsim.Hline hline = 3;</code>
17054       */
17055      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline> getHlineList() {
17056        if (hlineBuilder_ == null) {
17057          return java.util.Collections.unmodifiableList(hline_);
17058        } else {
17059          return hlineBuilder_.getMessageList();
17060        }
17061      }
17062      /**
17063       * <code>repeated .hybridsim.Hline hline = 3;</code>
17064       */
17065      public int getHlineCount() {
17066        if (hlineBuilder_ == null) {
17067          return hline_.size();
17068        } else {
17069          return hlineBuilder_.getCount();
17070        }
17071      }
17072      /**
17073       * <code>repeated .hybridsim.Hline hline = 3;</code>
17074       */
17075      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline getHline(int index) {
17076        if (hlineBuilder_ == null) {
17077          return hline_.get(index);
17078        } else {
17079          return hlineBuilder_.getMessage(index);
17080        }
17081      }
17082      /**
17083       * <code>repeated .hybridsim.Hline hline = 3;</code>
17084       */
17085      public Builder setHline(
17086          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline value) {
17087        if (hlineBuilder_ == null) {
17088          if (value == null) {
17089            throw new NullPointerException();
17090          }
17091          ensureHlineIsMutable();
17092          hline_.set(index, value);
17093          onChanged();
17094        } else {
17095          hlineBuilder_.setMessage(index, value);
17096        }
17097        return this;
17098      }
17099      /**
17100       * <code>repeated .hybridsim.Hline hline = 3;</code>
17101       */
17102      public Builder setHline(
17103          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.Builder builderForValue) {
17104        if (hlineBuilder_ == null) {
17105          ensureHlineIsMutable();
17106          hline_.set(index, builderForValue.build());
17107          onChanged();
17108        } else {
17109          hlineBuilder_.setMessage(index, builderForValue.build());
17110        }
17111        return this;
17112      }
17113      /**
17114       * <code>repeated .hybridsim.Hline hline = 3;</code>
17115       */
17116      public Builder addHline(org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline value) {
17117        if (hlineBuilder_ == null) {
17118          if (value == null) {
17119            throw new NullPointerException();
17120          }
17121          ensureHlineIsMutable();
17122          hline_.add(value);
17123          onChanged();
17124        } else {
17125          hlineBuilder_.addMessage(value);
17126        }
17127        return this;
17128      }
17129      /**
17130       * <code>repeated .hybridsim.Hline hline = 3;</code>
17131       */
17132      public Builder addHline(
17133          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline value) {
17134        if (hlineBuilder_ == null) {
17135          if (value == null) {
17136            throw new NullPointerException();
17137          }
17138          ensureHlineIsMutable();
17139          hline_.add(index, value);
17140          onChanged();
17141        } else {
17142          hlineBuilder_.addMessage(index, value);
17143        }
17144        return this;
17145      }
17146      /**
17147       * <code>repeated .hybridsim.Hline hline = 3;</code>
17148       */
17149      public Builder addHline(
17150          org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.Builder builderForValue) {
17151        if (hlineBuilder_ == null) {
17152          ensureHlineIsMutable();
17153          hline_.add(builderForValue.build());
17154          onChanged();
17155        } else {
17156          hlineBuilder_.addMessage(builderForValue.build());
17157        }
17158        return this;
17159      }
17160      /**
17161       * <code>repeated .hybridsim.Hline hline = 3;</code>
17162       */
17163      public Builder addHline(
17164          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.Builder builderForValue) {
17165        if (hlineBuilder_ == null) {
17166          ensureHlineIsMutable();
17167          hline_.add(index, builderForValue.build());
17168          onChanged();
17169        } else {
17170          hlineBuilder_.addMessage(index, builderForValue.build());
17171        }
17172        return this;
17173      }
17174      /**
17175       * <code>repeated .hybridsim.Hline hline = 3;</code>
17176       */
17177      public Builder addAllHline(
17178          java.lang.Iterable<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline> values) {
17179        if (hlineBuilder_ == null) {
17180          ensureHlineIsMutable();
17181          com.google.protobuf.AbstractMessageLite.Builder.addAll(
17182              values, hline_);
17183          onChanged();
17184        } else {
17185          hlineBuilder_.addAllMessages(values);
17186        }
17187        return this;
17188      }
17189      /**
17190       * <code>repeated .hybridsim.Hline hline = 3;</code>
17191       */
17192      public Builder clearHline() {
17193        if (hlineBuilder_ == null) {
17194          hline_ = java.util.Collections.emptyList();
17195          bitField0_ = (bitField0_ & ~0x00000004);
17196          onChanged();
17197        } else {
17198          hlineBuilder_.clear();
17199        }
17200        return this;
17201      }
17202      /**
17203       * <code>repeated .hybridsim.Hline hline = 3;</code>
17204       */
17205      public Builder removeHline(int index) {
17206        if (hlineBuilder_ == null) {
17207          ensureHlineIsMutable();
17208          hline_.remove(index);
17209          onChanged();
17210        } else {
17211          hlineBuilder_.remove(index);
17212        }
17213        return this;
17214      }
17215      /**
17216       * <code>repeated .hybridsim.Hline hline = 3;</code>
17217       */
17218      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.Builder getHlineBuilder(
17219          int index) {
17220        return getHlineFieldBuilder().getBuilder(index);
17221      }
17222      /**
17223       * <code>repeated .hybridsim.Hline hline = 3;</code>
17224       */
17225      public org.matsim.contrib.hybridsim.proto.HybridSimProto.HlineOrBuilder getHlineOrBuilder(
17226          int index) {
17227        if (hlineBuilder_ == null) {
17228          return hline_.get(index);  } else {
17229          return hlineBuilder_.getMessageOrBuilder(index);
17230        }
17231      }
17232      /**
17233       * <code>repeated .hybridsim.Hline hline = 3;</code>
17234       */
17235      public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.HlineOrBuilder> 
17236           getHlineOrBuilderList() {
17237        if (hlineBuilder_ != null) {
17238          return hlineBuilder_.getMessageOrBuilderList();
17239        } else {
17240          return java.util.Collections.unmodifiableList(hline_);
17241        }
17242      }
17243      /**
17244       * <code>repeated .hybridsim.Hline hline = 3;</code>
17245       */
17246      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.Builder addHlineBuilder() {
17247        return getHlineFieldBuilder().addBuilder(
17248            org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.getDefaultInstance());
17249      }
17250      /**
17251       * <code>repeated .hybridsim.Hline hline = 3;</code>
17252       */
17253      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.Builder addHlineBuilder(
17254          int index) {
17255        return getHlineFieldBuilder().addBuilder(
17256            index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.getDefaultInstance());
17257      }
17258      /**
17259       * <code>repeated .hybridsim.Hline hline = 3;</code>
17260       */
17261      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.Builder> 
17262           getHlineBuilderList() {
17263        return getHlineFieldBuilder().getBuilderList();
17264      }
17265      private com.google.protobuf.RepeatedFieldBuilderV3<
17266          org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline, org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.HlineOrBuilder> 
17267          getHlineFieldBuilder() {
17268        if (hlineBuilder_ == null) {
17269          hlineBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
17270              org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline, org.matsim.contrib.hybridsim.proto.HybridSimProto.Hline.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.HlineOrBuilder>(
17271                  hline_,
17272                  ((bitField0_ & 0x00000004) != 0),
17273                  getParentForChildren(),
17274                  isClean());
17275          hline_ = null;
17276        }
17277        return hlineBuilder_;
17278      }
17279      @java.lang.Override
17280      public final Builder setUnknownFields(
17281          final com.google.protobuf.UnknownFieldSet unknownFields) {
17282        return super.setUnknownFields(unknownFields);
17283      }
17284
17285      @java.lang.Override
17286      public final Builder mergeUnknownFields(
17287          final com.google.protobuf.UnknownFieldSet unknownFields) {
17288        return super.mergeUnknownFields(unknownFields);
17289      }
17290
17291
17292      // @@protoc_insertion_point(builder_scope:hybridsim.Environment)
17293    }
17294
17295    // @@protoc_insertion_point(class_scope:hybridsim.Environment)
17296    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment DEFAULT_INSTANCE;
17297    static {
17298      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment();
17299    }
17300
17301    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment getDefaultInstance() {
17302      return DEFAULT_INSTANCE;
17303    }
17304
17305    private static final com.google.protobuf.Parser<Environment>
17306        PARSER = new com.google.protobuf.AbstractParser<Environment>() {
17307      @java.lang.Override
17308      public Environment parsePartialFrom(
17309          com.google.protobuf.CodedInputStream input,
17310          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17311          throws com.google.protobuf.InvalidProtocolBufferException {
17312        return new Environment(input, extensionRegistry);
17313      }
17314    };
17315
17316    public static com.google.protobuf.Parser<Environment> parser() {
17317      return PARSER;
17318    }
17319
17320    @java.lang.Override
17321    public com.google.protobuf.Parser<Environment> getParserForType() {
17322      return PARSER;
17323    }
17324
17325    @java.lang.Override
17326    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Environment getDefaultInstanceForType() {
17327      return DEFAULT_INSTANCE;
17328    }
17329
17330  }
17331
17332  public interface TransitionOrBuilder extends
17333      // @@protoc_insertion_point(interface_extends:hybridsim.Transition)
17334      com.google.protobuf.MessageOrBuilder {
17335
17336    /**
17337     * <code>int32 id = 1;</code>
17338     * @return The id.
17339     */
17340    int getId();
17341
17342    /**
17343     * <code>string caption = 2;</code>
17344     * @return The caption.
17345     */
17346    java.lang.String getCaption();
17347    /**
17348     * <code>string caption = 2;</code>
17349     * @return The bytes for caption.
17350     */
17351    com.google.protobuf.ByteString
17352        getCaptionBytes();
17353
17354    /**
17355     * <code>string type = 3;</code>
17356     * @return The type.
17357     */
17358    java.lang.String getType();
17359    /**
17360     * <code>string type = 3;</code>
17361     * @return The bytes for type.
17362     */
17363    com.google.protobuf.ByteString
17364        getTypeBytes();
17365
17366    /**
17367     * <code>int32 room1_id = 4;</code>
17368     * @return The room1Id.
17369     */
17370    int getRoom1Id();
17371
17372    /**
17373     * <code>int32 subroom1_id = 5;</code>
17374     * @return The subroom1Id.
17375     */
17376    int getSubroom1Id();
17377
17378    /**
17379     * <code>int32 room2_id = 6;</code>
17380     * @return The room2Id.
17381     */
17382    int getRoom2Id();
17383
17384    /**
17385     * <code>int32 subroom2_id = 7;</code>
17386     * @return The subroom2Id.
17387     */
17388    int getSubroom2Id();
17389
17390    /**
17391     * <code>.hybridsim.Coordinate vert1 = 8;</code>
17392     * @return Whether the vert1 field is set.
17393     */
17394    boolean hasVert1();
17395    /**
17396     * <code>.hybridsim.Coordinate vert1 = 8;</code>
17397     * @return The vert1.
17398     */
17399    org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getVert1();
17400    /**
17401     * <code>.hybridsim.Coordinate vert1 = 8;</code>
17402     */
17403    org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getVert1OrBuilder();
17404
17405    /**
17406     * <code>.hybridsim.Coordinate vert2 = 9;</code>
17407     * @return Whether the vert2 field is set.
17408     */
17409    boolean hasVert2();
17410    /**
17411     * <code>.hybridsim.Coordinate vert2 = 9;</code>
17412     * @return The vert2.
17413     */
17414    org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getVert2();
17415    /**
17416     * <code>.hybridsim.Coordinate vert2 = 9;</code>
17417     */
17418    org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getVert2OrBuilder();
17419  }
17420  /**
17421   * Protobuf type {@code hybridsim.Transition}
17422   */
17423  public  static final class Transition extends
17424      com.google.protobuf.GeneratedMessageV3 implements
17425      // @@protoc_insertion_point(message_implements:hybridsim.Transition)
17426      TransitionOrBuilder {
17427  private static final long serialVersionUID = 0L;
17428    // Use Transition.newBuilder() to construct.
17429    private Transition(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
17430      super(builder);
17431    }
17432    private Transition() {
17433      caption_ = "";
17434      type_ = "";
17435    }
17436
17437    @java.lang.Override
17438    @SuppressWarnings({"unused"})
17439    protected java.lang.Object newInstance(
17440        UnusedPrivateParameter unused) {
17441      return new Transition();
17442    }
17443
17444    @java.lang.Override
17445    public final com.google.protobuf.UnknownFieldSet
17446    getUnknownFields() {
17447      return this.unknownFields;
17448    }
17449    private Transition(
17450        com.google.protobuf.CodedInputStream input,
17451        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17452        throws com.google.protobuf.InvalidProtocolBufferException {
17453      this();
17454      if (extensionRegistry == null) {
17455        throw new java.lang.NullPointerException();
17456      }
17457      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
17458          com.google.protobuf.UnknownFieldSet.newBuilder();
17459      try {
17460        boolean done = false;
17461        while (!done) {
17462          int tag = input.readTag();
17463          switch (tag) {
17464            case 0:
17465              done = true;
17466              break;
17467            case 8: {
17468
17469              id_ = input.readInt32();
17470              break;
17471            }
17472            case 18: {
17473              java.lang.String s = input.readStringRequireUtf8();
17474
17475              caption_ = s;
17476              break;
17477            }
17478            case 26: {
17479              java.lang.String s = input.readStringRequireUtf8();
17480
17481              type_ = s;
17482              break;
17483            }
17484            case 32: {
17485
17486              room1Id_ = input.readInt32();
17487              break;
17488            }
17489            case 40: {
17490
17491              subroom1Id_ = input.readInt32();
17492              break;
17493            }
17494            case 48: {
17495
17496              room2Id_ = input.readInt32();
17497              break;
17498            }
17499            case 56: {
17500
17501              subroom2Id_ = input.readInt32();
17502              break;
17503            }
17504            case 66: {
17505              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder subBuilder = null;
17506              if (vert1_ != null) {
17507                subBuilder = vert1_.toBuilder();
17508              }
17509              vert1_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.parser(), extensionRegistry);
17510              if (subBuilder != null) {
17511                subBuilder.mergeFrom(vert1_);
17512                vert1_ = subBuilder.buildPartial();
17513              }
17514
17515              break;
17516            }
17517            case 74: {
17518              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder subBuilder = null;
17519              if (vert2_ != null) {
17520                subBuilder = vert2_.toBuilder();
17521              }
17522              vert2_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.parser(), extensionRegistry);
17523              if (subBuilder != null) {
17524                subBuilder.mergeFrom(vert2_);
17525                vert2_ = subBuilder.buildPartial();
17526              }
17527
17528              break;
17529            }
17530            default: {
17531              if (!parseUnknownField(
17532                  input, unknownFields, extensionRegistry, tag)) {
17533                done = true;
17534              }
17535              break;
17536            }
17537          }
17538        }
17539      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
17540        throw e.setUnfinishedMessage(this);
17541      } catch (java.io.IOException e) {
17542        throw new com.google.protobuf.InvalidProtocolBufferException(
17543            e).setUnfinishedMessage(this);
17544      } finally {
17545        this.unknownFields = unknownFields.build();
17546        makeExtensionsImmutable();
17547      }
17548    }
17549    public static final com.google.protobuf.Descriptors.Descriptor
17550        getDescriptor() {
17551      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Transition_descriptor;
17552    }
17553
17554    @java.lang.Override
17555    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
17556        internalGetFieldAccessorTable() {
17557      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Transition_fieldAccessorTable
17558          .ensureFieldAccessorsInitialized(
17559              org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.Builder.class);
17560    }
17561
17562    public static final int ID_FIELD_NUMBER = 1;
17563    private int id_;
17564    /**
17565     * <code>int32 id = 1;</code>
17566     * @return The id.
17567     */
17568    public int getId() {
17569      return id_;
17570    }
17571
17572    public static final int CAPTION_FIELD_NUMBER = 2;
17573    private volatile java.lang.Object caption_;
17574    /**
17575     * <code>string caption = 2;</code>
17576     * @return The caption.
17577     */
17578    public java.lang.String getCaption() {
17579      java.lang.Object ref = caption_;
17580      if (ref instanceof java.lang.String) {
17581        return (java.lang.String) ref;
17582      } else {
17583        com.google.protobuf.ByteString bs = 
17584            (com.google.protobuf.ByteString) ref;
17585        java.lang.String s = bs.toStringUtf8();
17586        caption_ = s;
17587        return s;
17588      }
17589    }
17590    /**
17591     * <code>string caption = 2;</code>
17592     * @return The bytes for caption.
17593     */
17594    public com.google.protobuf.ByteString
17595        getCaptionBytes() {
17596      java.lang.Object ref = caption_;
17597      if (ref instanceof java.lang.String) {
17598        com.google.protobuf.ByteString b = 
17599            com.google.protobuf.ByteString.copyFromUtf8(
17600                (java.lang.String) ref);
17601        caption_ = b;
17602        return b;
17603      } else {
17604        return (com.google.protobuf.ByteString) ref;
17605      }
17606    }
17607
17608    public static final int TYPE_FIELD_NUMBER = 3;
17609    private volatile java.lang.Object type_;
17610    /**
17611     * <code>string type = 3;</code>
17612     * @return The type.
17613     */
17614    public java.lang.String getType() {
17615      java.lang.Object ref = type_;
17616      if (ref instanceof java.lang.String) {
17617        return (java.lang.String) ref;
17618      } else {
17619        com.google.protobuf.ByteString bs = 
17620            (com.google.protobuf.ByteString) ref;
17621        java.lang.String s = bs.toStringUtf8();
17622        type_ = s;
17623        return s;
17624      }
17625    }
17626    /**
17627     * <code>string type = 3;</code>
17628     * @return The bytes for type.
17629     */
17630    public com.google.protobuf.ByteString
17631        getTypeBytes() {
17632      java.lang.Object ref = type_;
17633      if (ref instanceof java.lang.String) {
17634        com.google.protobuf.ByteString b = 
17635            com.google.protobuf.ByteString.copyFromUtf8(
17636                (java.lang.String) ref);
17637        type_ = b;
17638        return b;
17639      } else {
17640        return (com.google.protobuf.ByteString) ref;
17641      }
17642    }
17643
17644    public static final int ROOM1_ID_FIELD_NUMBER = 4;
17645    private int room1Id_;
17646    /**
17647     * <code>int32 room1_id = 4;</code>
17648     * @return The room1Id.
17649     */
17650    public int getRoom1Id() {
17651      return room1Id_;
17652    }
17653
17654    public static final int SUBROOM1_ID_FIELD_NUMBER = 5;
17655    private int subroom1Id_;
17656    /**
17657     * <code>int32 subroom1_id = 5;</code>
17658     * @return The subroom1Id.
17659     */
17660    public int getSubroom1Id() {
17661      return subroom1Id_;
17662    }
17663
17664    public static final int ROOM2_ID_FIELD_NUMBER = 6;
17665    private int room2Id_;
17666    /**
17667     * <code>int32 room2_id = 6;</code>
17668     * @return The room2Id.
17669     */
17670    public int getRoom2Id() {
17671      return room2Id_;
17672    }
17673
17674    public static final int SUBROOM2_ID_FIELD_NUMBER = 7;
17675    private int subroom2Id_;
17676    /**
17677     * <code>int32 subroom2_id = 7;</code>
17678     * @return The subroom2Id.
17679     */
17680    public int getSubroom2Id() {
17681      return subroom2Id_;
17682    }
17683
17684    public static final int VERT1_FIELD_NUMBER = 8;
17685    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate vert1_;
17686    /**
17687     * <code>.hybridsim.Coordinate vert1 = 8;</code>
17688     * @return Whether the vert1 field is set.
17689     */
17690    public boolean hasVert1() {
17691      return vert1_ != null;
17692    }
17693    /**
17694     * <code>.hybridsim.Coordinate vert1 = 8;</code>
17695     * @return The vert1.
17696     */
17697    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getVert1() {
17698      return vert1_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : vert1_;
17699    }
17700    /**
17701     * <code>.hybridsim.Coordinate vert1 = 8;</code>
17702     */
17703    public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getVert1OrBuilder() {
17704      return getVert1();
17705    }
17706
17707    public static final int VERT2_FIELD_NUMBER = 9;
17708    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate vert2_;
17709    /**
17710     * <code>.hybridsim.Coordinate vert2 = 9;</code>
17711     * @return Whether the vert2 field is set.
17712     */
17713    public boolean hasVert2() {
17714      return vert2_ != null;
17715    }
17716    /**
17717     * <code>.hybridsim.Coordinate vert2 = 9;</code>
17718     * @return The vert2.
17719     */
17720    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getVert2() {
17721      return vert2_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : vert2_;
17722    }
17723    /**
17724     * <code>.hybridsim.Coordinate vert2 = 9;</code>
17725     */
17726    public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getVert2OrBuilder() {
17727      return getVert2();
17728    }
17729
17730    private byte memoizedIsInitialized = -1;
17731    @java.lang.Override
17732    public final boolean isInitialized() {
17733      byte isInitialized = memoizedIsInitialized;
17734      if (isInitialized == 1) return true;
17735      if (isInitialized == 0) return false;
17736
17737      memoizedIsInitialized = 1;
17738      return true;
17739    }
17740
17741    @java.lang.Override
17742    public void writeTo(com.google.protobuf.CodedOutputStream output)
17743                        throws java.io.IOException {
17744      if (id_ != 0) {
17745        output.writeInt32(1, id_);
17746      }
17747      if (!getCaptionBytes().isEmpty()) {
17748        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, caption_);
17749      }
17750      if (!getTypeBytes().isEmpty()) {
17751        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, type_);
17752      }
17753      if (room1Id_ != 0) {
17754        output.writeInt32(4, room1Id_);
17755      }
17756      if (subroom1Id_ != 0) {
17757        output.writeInt32(5, subroom1Id_);
17758      }
17759      if (room2Id_ != 0) {
17760        output.writeInt32(6, room2Id_);
17761      }
17762      if (subroom2Id_ != 0) {
17763        output.writeInt32(7, subroom2Id_);
17764      }
17765      if (vert1_ != null) {
17766        output.writeMessage(8, getVert1());
17767      }
17768      if (vert2_ != null) {
17769        output.writeMessage(9, getVert2());
17770      }
17771      unknownFields.writeTo(output);
17772    }
17773
17774    @java.lang.Override
17775    public int getSerializedSize() {
17776      int size = memoizedSize;
17777      if (size != -1) return size;
17778
17779      size = 0;
17780      if (id_ != 0) {
17781        size += com.google.protobuf.CodedOutputStream
17782          .computeInt32Size(1, id_);
17783      }
17784      if (!getCaptionBytes().isEmpty()) {
17785        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, caption_);
17786      }
17787      if (!getTypeBytes().isEmpty()) {
17788        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, type_);
17789      }
17790      if (room1Id_ != 0) {
17791        size += com.google.protobuf.CodedOutputStream
17792          .computeInt32Size(4, room1Id_);
17793      }
17794      if (subroom1Id_ != 0) {
17795        size += com.google.protobuf.CodedOutputStream
17796          .computeInt32Size(5, subroom1Id_);
17797      }
17798      if (room2Id_ != 0) {
17799        size += com.google.protobuf.CodedOutputStream
17800          .computeInt32Size(6, room2Id_);
17801      }
17802      if (subroom2Id_ != 0) {
17803        size += com.google.protobuf.CodedOutputStream
17804          .computeInt32Size(7, subroom2Id_);
17805      }
17806      if (vert1_ != null) {
17807        size += com.google.protobuf.CodedOutputStream
17808          .computeMessageSize(8, getVert1());
17809      }
17810      if (vert2_ != null) {
17811        size += com.google.protobuf.CodedOutputStream
17812          .computeMessageSize(9, getVert2());
17813      }
17814      size += unknownFields.getSerializedSize();
17815      memoizedSize = size;
17816      return size;
17817    }
17818
17819    @java.lang.Override
17820    public boolean equals(final java.lang.Object obj) {
17821      if (obj == this) {
17822       return true;
17823      }
17824      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition)) {
17825        return super.equals(obj);
17826      }
17827      org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition) obj;
17828
17829      if (getId()
17830          != other.getId()) return false;
17831      if (!getCaption()
17832          .equals(other.getCaption())) return false;
17833      if (!getType()
17834          .equals(other.getType())) return false;
17835      if (getRoom1Id()
17836          != other.getRoom1Id()) return false;
17837      if (getSubroom1Id()
17838          != other.getSubroom1Id()) return false;
17839      if (getRoom2Id()
17840          != other.getRoom2Id()) return false;
17841      if (getSubroom2Id()
17842          != other.getSubroom2Id()) return false;
17843      if (hasVert1() != other.hasVert1()) return false;
17844      if (hasVert1()) {
17845        if (!getVert1()
17846            .equals(other.getVert1())) return false;
17847      }
17848      if (hasVert2() != other.hasVert2()) return false;
17849      if (hasVert2()) {
17850        if (!getVert2()
17851            .equals(other.getVert2())) return false;
17852      }
17853      if (!unknownFields.equals(other.unknownFields)) return false;
17854      return true;
17855    }
17856
17857    @java.lang.Override
17858    public int hashCode() {
17859      if (memoizedHashCode != 0) {
17860        return memoizedHashCode;
17861      }
17862      int hash = 41;
17863      hash = (19 * hash) + getDescriptor().hashCode();
17864      hash = (37 * hash) + ID_FIELD_NUMBER;
17865      hash = (53 * hash) + getId();
17866      hash = (37 * hash) + CAPTION_FIELD_NUMBER;
17867      hash = (53 * hash) + getCaption().hashCode();
17868      hash = (37 * hash) + TYPE_FIELD_NUMBER;
17869      hash = (53 * hash) + getType().hashCode();
17870      hash = (37 * hash) + ROOM1_ID_FIELD_NUMBER;
17871      hash = (53 * hash) + getRoom1Id();
17872      hash = (37 * hash) + SUBROOM1_ID_FIELD_NUMBER;
17873      hash = (53 * hash) + getSubroom1Id();
17874      hash = (37 * hash) + ROOM2_ID_FIELD_NUMBER;
17875      hash = (53 * hash) + getRoom2Id();
17876      hash = (37 * hash) + SUBROOM2_ID_FIELD_NUMBER;
17877      hash = (53 * hash) + getSubroom2Id();
17878      if (hasVert1()) {
17879        hash = (37 * hash) + VERT1_FIELD_NUMBER;
17880        hash = (53 * hash) + getVert1().hashCode();
17881      }
17882      if (hasVert2()) {
17883        hash = (37 * hash) + VERT2_FIELD_NUMBER;
17884        hash = (53 * hash) + getVert2().hashCode();
17885      }
17886      hash = (29 * hash) + unknownFields.hashCode();
17887      memoizedHashCode = hash;
17888      return hash;
17889    }
17890
17891    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition parseFrom(
17892        java.nio.ByteBuffer data)
17893        throws com.google.protobuf.InvalidProtocolBufferException {
17894      return PARSER.parseFrom(data);
17895    }
17896    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition parseFrom(
17897        java.nio.ByteBuffer data,
17898        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17899        throws com.google.protobuf.InvalidProtocolBufferException {
17900      return PARSER.parseFrom(data, extensionRegistry);
17901    }
17902    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition parseFrom(
17903        com.google.protobuf.ByteString data)
17904        throws com.google.protobuf.InvalidProtocolBufferException {
17905      return PARSER.parseFrom(data);
17906    }
17907    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition parseFrom(
17908        com.google.protobuf.ByteString data,
17909        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17910        throws com.google.protobuf.InvalidProtocolBufferException {
17911      return PARSER.parseFrom(data, extensionRegistry);
17912    }
17913    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition parseFrom(byte[] data)
17914        throws com.google.protobuf.InvalidProtocolBufferException {
17915      return PARSER.parseFrom(data);
17916    }
17917    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition parseFrom(
17918        byte[] data,
17919        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17920        throws com.google.protobuf.InvalidProtocolBufferException {
17921      return PARSER.parseFrom(data, extensionRegistry);
17922    }
17923    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition parseFrom(java.io.InputStream input)
17924        throws java.io.IOException {
17925      return com.google.protobuf.GeneratedMessageV3
17926          .parseWithIOException(PARSER, input);
17927    }
17928    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition parseFrom(
17929        java.io.InputStream input,
17930        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17931        throws java.io.IOException {
17932      return com.google.protobuf.GeneratedMessageV3
17933          .parseWithIOException(PARSER, input, extensionRegistry);
17934    }
17935    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition parseDelimitedFrom(java.io.InputStream input)
17936        throws java.io.IOException {
17937      return com.google.protobuf.GeneratedMessageV3
17938          .parseDelimitedWithIOException(PARSER, input);
17939    }
17940    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition parseDelimitedFrom(
17941        java.io.InputStream input,
17942        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17943        throws java.io.IOException {
17944      return com.google.protobuf.GeneratedMessageV3
17945          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
17946    }
17947    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition parseFrom(
17948        com.google.protobuf.CodedInputStream input)
17949        throws java.io.IOException {
17950      return com.google.protobuf.GeneratedMessageV3
17951          .parseWithIOException(PARSER, input);
17952    }
17953    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition parseFrom(
17954        com.google.protobuf.CodedInputStream input,
17955        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17956        throws java.io.IOException {
17957      return com.google.protobuf.GeneratedMessageV3
17958          .parseWithIOException(PARSER, input, extensionRegistry);
17959    }
17960
17961    @java.lang.Override
17962    public Builder newBuilderForType() { return newBuilder(); }
17963    public static Builder newBuilder() {
17964      return DEFAULT_INSTANCE.toBuilder();
17965    }
17966    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition prototype) {
17967      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
17968    }
17969    @java.lang.Override
17970    public Builder toBuilder() {
17971      return this == DEFAULT_INSTANCE
17972          ? new Builder() : new Builder().mergeFrom(this);
17973    }
17974
17975    @java.lang.Override
17976    protected Builder newBuilderForType(
17977        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
17978      Builder builder = new Builder(parent);
17979      return builder;
17980    }
17981    /**
17982     * Protobuf type {@code hybridsim.Transition}
17983     */
17984    public static final class Builder extends
17985        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
17986        // @@protoc_insertion_point(builder_implements:hybridsim.Transition)
17987        org.matsim.contrib.hybridsim.proto.HybridSimProto.TransitionOrBuilder {
17988      public static final com.google.protobuf.Descriptors.Descriptor
17989          getDescriptor() {
17990        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Transition_descriptor;
17991      }
17992
17993      @java.lang.Override
17994      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
17995          internalGetFieldAccessorTable() {
17996        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Transition_fieldAccessorTable
17997            .ensureFieldAccessorsInitialized(
17998                org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.Builder.class);
17999      }
18000
18001      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.newBuilder()
18002      private Builder() {
18003        maybeForceBuilderInitialization();
18004      }
18005
18006      private Builder(
18007          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
18008        super(parent);
18009        maybeForceBuilderInitialization();
18010      }
18011      private void maybeForceBuilderInitialization() {
18012        if (com.google.protobuf.GeneratedMessageV3
18013                .alwaysUseFieldBuilders) {
18014        }
18015      }
18016      @java.lang.Override
18017      public Builder clear() {
18018        super.clear();
18019        id_ = 0;
18020
18021        caption_ = "";
18022
18023        type_ = "";
18024
18025        room1Id_ = 0;
18026
18027        subroom1Id_ = 0;
18028
18029        room2Id_ = 0;
18030
18031        subroom2Id_ = 0;
18032
18033        if (vert1Builder_ == null) {
18034          vert1_ = null;
18035        } else {
18036          vert1_ = null;
18037          vert1Builder_ = null;
18038        }
18039        if (vert2Builder_ == null) {
18040          vert2_ = null;
18041        } else {
18042          vert2_ = null;
18043          vert2Builder_ = null;
18044        }
18045        return this;
18046      }
18047
18048      @java.lang.Override
18049      public com.google.protobuf.Descriptors.Descriptor
18050          getDescriptorForType() {
18051        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Transition_descriptor;
18052      }
18053
18054      @java.lang.Override
18055      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition getDefaultInstanceForType() {
18056        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.getDefaultInstance();
18057      }
18058
18059      @java.lang.Override
18060      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition build() {
18061        org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition result = buildPartial();
18062        if (!result.isInitialized()) {
18063          throw newUninitializedMessageException(result);
18064        }
18065        return result;
18066      }
18067
18068      @java.lang.Override
18069      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition buildPartial() {
18070        org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition(this);
18071        result.id_ = id_;
18072        result.caption_ = caption_;
18073        result.type_ = type_;
18074        result.room1Id_ = room1Id_;
18075        result.subroom1Id_ = subroom1Id_;
18076        result.room2Id_ = room2Id_;
18077        result.subroom2Id_ = subroom2Id_;
18078        if (vert1Builder_ == null) {
18079          result.vert1_ = vert1_;
18080        } else {
18081          result.vert1_ = vert1Builder_.build();
18082        }
18083        if (vert2Builder_ == null) {
18084          result.vert2_ = vert2_;
18085        } else {
18086          result.vert2_ = vert2Builder_.build();
18087        }
18088        onBuilt();
18089        return result;
18090      }
18091
18092      @java.lang.Override
18093      public Builder clone() {
18094        return super.clone();
18095      }
18096      @java.lang.Override
18097      public Builder setField(
18098          com.google.protobuf.Descriptors.FieldDescriptor field,
18099          java.lang.Object value) {
18100        return super.setField(field, value);
18101      }
18102      @java.lang.Override
18103      public Builder clearField(
18104          com.google.protobuf.Descriptors.FieldDescriptor field) {
18105        return super.clearField(field);
18106      }
18107      @java.lang.Override
18108      public Builder clearOneof(
18109          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
18110        return super.clearOneof(oneof);
18111      }
18112      @java.lang.Override
18113      public Builder setRepeatedField(
18114          com.google.protobuf.Descriptors.FieldDescriptor field,
18115          int index, java.lang.Object value) {
18116        return super.setRepeatedField(field, index, value);
18117      }
18118      @java.lang.Override
18119      public Builder addRepeatedField(
18120          com.google.protobuf.Descriptors.FieldDescriptor field,
18121          java.lang.Object value) {
18122        return super.addRepeatedField(field, value);
18123      }
18124      @java.lang.Override
18125      public Builder mergeFrom(com.google.protobuf.Message other) {
18126        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition) {
18127          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition)other);
18128        } else {
18129          super.mergeFrom(other);
18130          return this;
18131        }
18132      }
18133
18134      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition other) {
18135        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition.getDefaultInstance()) return this;
18136        if (other.getId() != 0) {
18137          setId(other.getId());
18138        }
18139        if (!other.getCaption().isEmpty()) {
18140          caption_ = other.caption_;
18141          onChanged();
18142        }
18143        if (!other.getType().isEmpty()) {
18144          type_ = other.type_;
18145          onChanged();
18146        }
18147        if (other.getRoom1Id() != 0) {
18148          setRoom1Id(other.getRoom1Id());
18149        }
18150        if (other.getSubroom1Id() != 0) {
18151          setSubroom1Id(other.getSubroom1Id());
18152        }
18153        if (other.getRoom2Id() != 0) {
18154          setRoom2Id(other.getRoom2Id());
18155        }
18156        if (other.getSubroom2Id() != 0) {
18157          setSubroom2Id(other.getSubroom2Id());
18158        }
18159        if (other.hasVert1()) {
18160          mergeVert1(other.getVert1());
18161        }
18162        if (other.hasVert2()) {
18163          mergeVert2(other.getVert2());
18164        }
18165        this.mergeUnknownFields(other.unknownFields);
18166        onChanged();
18167        return this;
18168      }
18169
18170      @java.lang.Override
18171      public final boolean isInitialized() {
18172        return true;
18173      }
18174
18175      @java.lang.Override
18176      public Builder mergeFrom(
18177          com.google.protobuf.CodedInputStream input,
18178          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18179          throws java.io.IOException {
18180        org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition parsedMessage = null;
18181        try {
18182          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
18183        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
18184          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition) e.getUnfinishedMessage();
18185          throw e.unwrapIOException();
18186        } finally {
18187          if (parsedMessage != null) {
18188            mergeFrom(parsedMessage);
18189          }
18190        }
18191        return this;
18192      }
18193
18194      private int id_ ;
18195      /**
18196       * <code>int32 id = 1;</code>
18197       * @return The id.
18198       */
18199      public int getId() {
18200        return id_;
18201      }
18202      /**
18203       * <code>int32 id = 1;</code>
18204       * @param value The id to set.
18205       * @return This builder for chaining.
18206       */
18207      public Builder setId(int value) {
18208        
18209        id_ = value;
18210        onChanged();
18211        return this;
18212      }
18213      /**
18214       * <code>int32 id = 1;</code>
18215       * @return This builder for chaining.
18216       */
18217      public Builder clearId() {
18218        
18219        id_ = 0;
18220        onChanged();
18221        return this;
18222      }
18223
18224      private java.lang.Object caption_ = "";
18225      /**
18226       * <code>string caption = 2;</code>
18227       * @return The caption.
18228       */
18229      public java.lang.String getCaption() {
18230        java.lang.Object ref = caption_;
18231        if (!(ref instanceof java.lang.String)) {
18232          com.google.protobuf.ByteString bs =
18233              (com.google.protobuf.ByteString) ref;
18234          java.lang.String s = bs.toStringUtf8();
18235          caption_ = s;
18236          return s;
18237        } else {
18238          return (java.lang.String) ref;
18239        }
18240      }
18241      /**
18242       * <code>string caption = 2;</code>
18243       * @return The bytes for caption.
18244       */
18245      public com.google.protobuf.ByteString
18246          getCaptionBytes() {
18247        java.lang.Object ref = caption_;
18248        if (ref instanceof String) {
18249          com.google.protobuf.ByteString b = 
18250              com.google.protobuf.ByteString.copyFromUtf8(
18251                  (java.lang.String) ref);
18252          caption_ = b;
18253          return b;
18254        } else {
18255          return (com.google.protobuf.ByteString) ref;
18256        }
18257      }
18258      /**
18259       * <code>string caption = 2;</code>
18260       * @param value The caption to set.
18261       * @return This builder for chaining.
18262       */
18263      public Builder setCaption(
18264          java.lang.String value) {
18265        if (value == null) {
18266    throw new NullPointerException();
18267  }
18268  
18269        caption_ = value;
18270        onChanged();
18271        return this;
18272      }
18273      /**
18274       * <code>string caption = 2;</code>
18275       * @return This builder for chaining.
18276       */
18277      public Builder clearCaption() {
18278        
18279        caption_ = getDefaultInstance().getCaption();
18280        onChanged();
18281        return this;
18282      }
18283      /**
18284       * <code>string caption = 2;</code>
18285       * @param value The bytes for caption to set.
18286       * @return This builder for chaining.
18287       */
18288      public Builder setCaptionBytes(
18289          com.google.protobuf.ByteString value) {
18290        if (value == null) {
18291    throw new NullPointerException();
18292  }
18293  checkByteStringIsUtf8(value);
18294        
18295        caption_ = value;
18296        onChanged();
18297        return this;
18298      }
18299
18300      private java.lang.Object type_ = "";
18301      /**
18302       * <code>string type = 3;</code>
18303       * @return The type.
18304       */
18305      public java.lang.String getType() {
18306        java.lang.Object ref = type_;
18307        if (!(ref instanceof java.lang.String)) {
18308          com.google.protobuf.ByteString bs =
18309              (com.google.protobuf.ByteString) ref;
18310          java.lang.String s = bs.toStringUtf8();
18311          type_ = s;
18312          return s;
18313        } else {
18314          return (java.lang.String) ref;
18315        }
18316      }
18317      /**
18318       * <code>string type = 3;</code>
18319       * @return The bytes for type.
18320       */
18321      public com.google.protobuf.ByteString
18322          getTypeBytes() {
18323        java.lang.Object ref = type_;
18324        if (ref instanceof String) {
18325          com.google.protobuf.ByteString b = 
18326              com.google.protobuf.ByteString.copyFromUtf8(
18327                  (java.lang.String) ref);
18328          type_ = b;
18329          return b;
18330        } else {
18331          return (com.google.protobuf.ByteString) ref;
18332        }
18333      }
18334      /**
18335       * <code>string type = 3;</code>
18336       * @param value The type to set.
18337       * @return This builder for chaining.
18338       */
18339      public Builder setType(
18340          java.lang.String value) {
18341        if (value == null) {
18342    throw new NullPointerException();
18343  }
18344  
18345        type_ = value;
18346        onChanged();
18347        return this;
18348      }
18349      /**
18350       * <code>string type = 3;</code>
18351       * @return This builder for chaining.
18352       */
18353      public Builder clearType() {
18354        
18355        type_ = getDefaultInstance().getType();
18356        onChanged();
18357        return this;
18358      }
18359      /**
18360       * <code>string type = 3;</code>
18361       * @param value The bytes for type to set.
18362       * @return This builder for chaining.
18363       */
18364      public Builder setTypeBytes(
18365          com.google.protobuf.ByteString value) {
18366        if (value == null) {
18367    throw new NullPointerException();
18368  }
18369  checkByteStringIsUtf8(value);
18370        
18371        type_ = value;
18372        onChanged();
18373        return this;
18374      }
18375
18376      private int room1Id_ ;
18377      /**
18378       * <code>int32 room1_id = 4;</code>
18379       * @return The room1Id.
18380       */
18381      public int getRoom1Id() {
18382        return room1Id_;
18383      }
18384      /**
18385       * <code>int32 room1_id = 4;</code>
18386       * @param value The room1Id to set.
18387       * @return This builder for chaining.
18388       */
18389      public Builder setRoom1Id(int value) {
18390        
18391        room1Id_ = value;
18392        onChanged();
18393        return this;
18394      }
18395      /**
18396       * <code>int32 room1_id = 4;</code>
18397       * @return This builder for chaining.
18398       */
18399      public Builder clearRoom1Id() {
18400        
18401        room1Id_ = 0;
18402        onChanged();
18403        return this;
18404      }
18405
18406      private int subroom1Id_ ;
18407      /**
18408       * <code>int32 subroom1_id = 5;</code>
18409       * @return The subroom1Id.
18410       */
18411      public int getSubroom1Id() {
18412        return subroom1Id_;
18413      }
18414      /**
18415       * <code>int32 subroom1_id = 5;</code>
18416       * @param value The subroom1Id to set.
18417       * @return This builder for chaining.
18418       */
18419      public Builder setSubroom1Id(int value) {
18420        
18421        subroom1Id_ = value;
18422        onChanged();
18423        return this;
18424      }
18425      /**
18426       * <code>int32 subroom1_id = 5;</code>
18427       * @return This builder for chaining.
18428       */
18429      public Builder clearSubroom1Id() {
18430        
18431        subroom1Id_ = 0;
18432        onChanged();
18433        return this;
18434      }
18435
18436      private int room2Id_ ;
18437      /**
18438       * <code>int32 room2_id = 6;</code>
18439       * @return The room2Id.
18440       */
18441      public int getRoom2Id() {
18442        return room2Id_;
18443      }
18444      /**
18445       * <code>int32 room2_id = 6;</code>
18446       * @param value The room2Id to set.
18447       * @return This builder for chaining.
18448       */
18449      public Builder setRoom2Id(int value) {
18450        
18451        room2Id_ = value;
18452        onChanged();
18453        return this;
18454      }
18455      /**
18456       * <code>int32 room2_id = 6;</code>
18457       * @return This builder for chaining.
18458       */
18459      public Builder clearRoom2Id() {
18460        
18461        room2Id_ = 0;
18462        onChanged();
18463        return this;
18464      }
18465
18466      private int subroom2Id_ ;
18467      /**
18468       * <code>int32 subroom2_id = 7;</code>
18469       * @return The subroom2Id.
18470       */
18471      public int getSubroom2Id() {
18472        return subroom2Id_;
18473      }
18474      /**
18475       * <code>int32 subroom2_id = 7;</code>
18476       * @param value The subroom2Id to set.
18477       * @return This builder for chaining.
18478       */
18479      public Builder setSubroom2Id(int value) {
18480        
18481        subroom2Id_ = value;
18482        onChanged();
18483        return this;
18484      }
18485      /**
18486       * <code>int32 subroom2_id = 7;</code>
18487       * @return This builder for chaining.
18488       */
18489      public Builder clearSubroom2Id() {
18490        
18491        subroom2Id_ = 0;
18492        onChanged();
18493        return this;
18494      }
18495
18496      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate vert1_;
18497      private com.google.protobuf.SingleFieldBuilderV3<
18498          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> vert1Builder_;
18499      /**
18500       * <code>.hybridsim.Coordinate vert1 = 8;</code>
18501       * @return Whether the vert1 field is set.
18502       */
18503      public boolean hasVert1() {
18504        return vert1Builder_ != null || vert1_ != null;
18505      }
18506      /**
18507       * <code>.hybridsim.Coordinate vert1 = 8;</code>
18508       * @return The vert1.
18509       */
18510      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getVert1() {
18511        if (vert1Builder_ == null) {
18512          return vert1_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : vert1_;
18513        } else {
18514          return vert1Builder_.getMessage();
18515        }
18516      }
18517      /**
18518       * <code>.hybridsim.Coordinate vert1 = 8;</code>
18519       */
18520      public Builder setVert1(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
18521        if (vert1Builder_ == null) {
18522          if (value == null) {
18523            throw new NullPointerException();
18524          }
18525          vert1_ = value;
18526          onChanged();
18527        } else {
18528          vert1Builder_.setMessage(value);
18529        }
18530
18531        return this;
18532      }
18533      /**
18534       * <code>.hybridsim.Coordinate vert1 = 8;</code>
18535       */
18536      public Builder setVert1(
18537          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder builderForValue) {
18538        if (vert1Builder_ == null) {
18539          vert1_ = builderForValue.build();
18540          onChanged();
18541        } else {
18542          vert1Builder_.setMessage(builderForValue.build());
18543        }
18544
18545        return this;
18546      }
18547      /**
18548       * <code>.hybridsim.Coordinate vert1 = 8;</code>
18549       */
18550      public Builder mergeVert1(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
18551        if (vert1Builder_ == null) {
18552          if (vert1_ != null) {
18553            vert1_ =
18554              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.newBuilder(vert1_).mergeFrom(value).buildPartial();
18555          } else {
18556            vert1_ = value;
18557          }
18558          onChanged();
18559        } else {
18560          vert1Builder_.mergeFrom(value);
18561        }
18562
18563        return this;
18564      }
18565      /**
18566       * <code>.hybridsim.Coordinate vert1 = 8;</code>
18567       */
18568      public Builder clearVert1() {
18569        if (vert1Builder_ == null) {
18570          vert1_ = null;
18571          onChanged();
18572        } else {
18573          vert1_ = null;
18574          vert1Builder_ = null;
18575        }
18576
18577        return this;
18578      }
18579      /**
18580       * <code>.hybridsim.Coordinate vert1 = 8;</code>
18581       */
18582      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder getVert1Builder() {
18583        
18584        onChanged();
18585        return getVert1FieldBuilder().getBuilder();
18586      }
18587      /**
18588       * <code>.hybridsim.Coordinate vert1 = 8;</code>
18589       */
18590      public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getVert1OrBuilder() {
18591        if (vert1Builder_ != null) {
18592          return vert1Builder_.getMessageOrBuilder();
18593        } else {
18594          return vert1_ == null ?
18595              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : vert1_;
18596        }
18597      }
18598      /**
18599       * <code>.hybridsim.Coordinate vert1 = 8;</code>
18600       */
18601      private com.google.protobuf.SingleFieldBuilderV3<
18602          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> 
18603          getVert1FieldBuilder() {
18604        if (vert1Builder_ == null) {
18605          vert1Builder_ = new com.google.protobuf.SingleFieldBuilderV3<
18606              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder>(
18607                  getVert1(),
18608                  getParentForChildren(),
18609                  isClean());
18610          vert1_ = null;
18611        }
18612        return vert1Builder_;
18613      }
18614
18615      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate vert2_;
18616      private com.google.protobuf.SingleFieldBuilderV3<
18617          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> vert2Builder_;
18618      /**
18619       * <code>.hybridsim.Coordinate vert2 = 9;</code>
18620       * @return Whether the vert2 field is set.
18621       */
18622      public boolean hasVert2() {
18623        return vert2Builder_ != null || vert2_ != null;
18624      }
18625      /**
18626       * <code>.hybridsim.Coordinate vert2 = 9;</code>
18627       * @return The vert2.
18628       */
18629      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getVert2() {
18630        if (vert2Builder_ == null) {
18631          return vert2_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : vert2_;
18632        } else {
18633          return vert2Builder_.getMessage();
18634        }
18635      }
18636      /**
18637       * <code>.hybridsim.Coordinate vert2 = 9;</code>
18638       */
18639      public Builder setVert2(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
18640        if (vert2Builder_ == null) {
18641          if (value == null) {
18642            throw new NullPointerException();
18643          }
18644          vert2_ = value;
18645          onChanged();
18646        } else {
18647          vert2Builder_.setMessage(value);
18648        }
18649
18650        return this;
18651      }
18652      /**
18653       * <code>.hybridsim.Coordinate vert2 = 9;</code>
18654       */
18655      public Builder setVert2(
18656          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder builderForValue) {
18657        if (vert2Builder_ == null) {
18658          vert2_ = builderForValue.build();
18659          onChanged();
18660        } else {
18661          vert2Builder_.setMessage(builderForValue.build());
18662        }
18663
18664        return this;
18665      }
18666      /**
18667       * <code>.hybridsim.Coordinate vert2 = 9;</code>
18668       */
18669      public Builder mergeVert2(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
18670        if (vert2Builder_ == null) {
18671          if (vert2_ != null) {
18672            vert2_ =
18673              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.newBuilder(vert2_).mergeFrom(value).buildPartial();
18674          } else {
18675            vert2_ = value;
18676          }
18677          onChanged();
18678        } else {
18679          vert2Builder_.mergeFrom(value);
18680        }
18681
18682        return this;
18683      }
18684      /**
18685       * <code>.hybridsim.Coordinate vert2 = 9;</code>
18686       */
18687      public Builder clearVert2() {
18688        if (vert2Builder_ == null) {
18689          vert2_ = null;
18690          onChanged();
18691        } else {
18692          vert2_ = null;
18693          vert2Builder_ = null;
18694        }
18695
18696        return this;
18697      }
18698      /**
18699       * <code>.hybridsim.Coordinate vert2 = 9;</code>
18700       */
18701      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder getVert2Builder() {
18702        
18703        onChanged();
18704        return getVert2FieldBuilder().getBuilder();
18705      }
18706      /**
18707       * <code>.hybridsim.Coordinate vert2 = 9;</code>
18708       */
18709      public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getVert2OrBuilder() {
18710        if (vert2Builder_ != null) {
18711          return vert2Builder_.getMessageOrBuilder();
18712        } else {
18713          return vert2_ == null ?
18714              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : vert2_;
18715        }
18716      }
18717      /**
18718       * <code>.hybridsim.Coordinate vert2 = 9;</code>
18719       */
18720      private com.google.protobuf.SingleFieldBuilderV3<
18721          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> 
18722          getVert2FieldBuilder() {
18723        if (vert2Builder_ == null) {
18724          vert2Builder_ = new com.google.protobuf.SingleFieldBuilderV3<
18725              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder>(
18726                  getVert2(),
18727                  getParentForChildren(),
18728                  isClean());
18729          vert2_ = null;
18730        }
18731        return vert2Builder_;
18732      }
18733      @java.lang.Override
18734      public final Builder setUnknownFields(
18735          final com.google.protobuf.UnknownFieldSet unknownFields) {
18736        return super.setUnknownFields(unknownFields);
18737      }
18738
18739      @java.lang.Override
18740      public final Builder mergeUnknownFields(
18741          final com.google.protobuf.UnknownFieldSet unknownFields) {
18742        return super.mergeUnknownFields(unknownFields);
18743      }
18744
18745
18746      // @@protoc_insertion_point(builder_scope:hybridsim.Transition)
18747    }
18748
18749    // @@protoc_insertion_point(class_scope:hybridsim.Transition)
18750    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition DEFAULT_INSTANCE;
18751    static {
18752      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition();
18753    }
18754
18755    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition getDefaultInstance() {
18756      return DEFAULT_INSTANCE;
18757    }
18758
18759    private static final com.google.protobuf.Parser<Transition>
18760        PARSER = new com.google.protobuf.AbstractParser<Transition>() {
18761      @java.lang.Override
18762      public Transition parsePartialFrom(
18763          com.google.protobuf.CodedInputStream input,
18764          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18765          throws com.google.protobuf.InvalidProtocolBufferException {
18766        return new Transition(input, extensionRegistry);
18767      }
18768    };
18769
18770    public static com.google.protobuf.Parser<Transition> parser() {
18771      return PARSER;
18772    }
18773
18774    @java.lang.Override
18775    public com.google.protobuf.Parser<Transition> getParserForType() {
18776      return PARSER;
18777    }
18778
18779    @java.lang.Override
18780    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Transition getDefaultInstanceForType() {
18781      return DEFAULT_INSTANCE;
18782    }
18783
18784  }
18785
18786  public interface RoomOrBuilder extends
18787      // @@protoc_insertion_point(interface_extends:hybridsim.Room)
18788      com.google.protobuf.MessageOrBuilder {
18789
18790    /**
18791     * <code>int32 id = 1;</code>
18792     * @return The id.
18793     */
18794    int getId();
18795
18796    /**
18797     * <code>string caption = 2;</code>
18798     * @return The caption.
18799     */
18800    java.lang.String getCaption();
18801    /**
18802     * <code>string caption = 2;</code>
18803     * @return The bytes for caption.
18804     */
18805    com.google.protobuf.ByteString
18806        getCaptionBytes();
18807
18808    /**
18809     * <code>repeated .hybridsim.Subroom subroom = 3;</code>
18810     */
18811    java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom> 
18812        getSubroomList();
18813    /**
18814     * <code>repeated .hybridsim.Subroom subroom = 3;</code>
18815     */
18816    org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom getSubroom(int index);
18817    /**
18818     * <code>repeated .hybridsim.Subroom subroom = 3;</code>
18819     */
18820    int getSubroomCount();
18821    /**
18822     * <code>repeated .hybridsim.Subroom subroom = 3;</code>
18823     */
18824    java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.SubroomOrBuilder> 
18825        getSubroomOrBuilderList();
18826    /**
18827     * <code>repeated .hybridsim.Subroom subroom = 3;</code>
18828     */
18829    org.matsim.contrib.hybridsim.proto.HybridSimProto.SubroomOrBuilder getSubroomOrBuilder(
18830        int index);
18831  }
18832  /**
18833   * Protobuf type {@code hybridsim.Room}
18834   */
18835  public  static final class Room extends
18836      com.google.protobuf.GeneratedMessageV3 implements
18837      // @@protoc_insertion_point(message_implements:hybridsim.Room)
18838      RoomOrBuilder {
18839  private static final long serialVersionUID = 0L;
18840    // Use Room.newBuilder() to construct.
18841    private Room(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
18842      super(builder);
18843    }
18844    private Room() {
18845      caption_ = "";
18846      subroom_ = java.util.Collections.emptyList();
18847    }
18848
18849    @java.lang.Override
18850    @SuppressWarnings({"unused"})
18851    protected java.lang.Object newInstance(
18852        UnusedPrivateParameter unused) {
18853      return new Room();
18854    }
18855
18856    @java.lang.Override
18857    public final com.google.protobuf.UnknownFieldSet
18858    getUnknownFields() {
18859      return this.unknownFields;
18860    }
18861    private Room(
18862        com.google.protobuf.CodedInputStream input,
18863        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18864        throws com.google.protobuf.InvalidProtocolBufferException {
18865      this();
18866      if (extensionRegistry == null) {
18867        throw new java.lang.NullPointerException();
18868      }
18869      int mutable_bitField0_ = 0;
18870      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
18871          com.google.protobuf.UnknownFieldSet.newBuilder();
18872      try {
18873        boolean done = false;
18874        while (!done) {
18875          int tag = input.readTag();
18876          switch (tag) {
18877            case 0:
18878              done = true;
18879              break;
18880            case 8: {
18881
18882              id_ = input.readInt32();
18883              break;
18884            }
18885            case 18: {
18886              java.lang.String s = input.readStringRequireUtf8();
18887
18888              caption_ = s;
18889              break;
18890            }
18891            case 26: {
18892              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
18893                subroom_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom>();
18894                mutable_bitField0_ |= 0x00000001;
18895              }
18896              subroom_.add(
18897                  input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.parser(), extensionRegistry));
18898              break;
18899            }
18900            default: {
18901              if (!parseUnknownField(
18902                  input, unknownFields, extensionRegistry, tag)) {
18903                done = true;
18904              }
18905              break;
18906            }
18907          }
18908        }
18909      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
18910        throw e.setUnfinishedMessage(this);
18911      } catch (java.io.IOException e) {
18912        throw new com.google.protobuf.InvalidProtocolBufferException(
18913            e).setUnfinishedMessage(this);
18914      } finally {
18915        if (((mutable_bitField0_ & 0x00000001) != 0)) {
18916          subroom_ = java.util.Collections.unmodifiableList(subroom_);
18917        }
18918        this.unknownFields = unknownFields.build();
18919        makeExtensionsImmutable();
18920      }
18921    }
18922    public static final com.google.protobuf.Descriptors.Descriptor
18923        getDescriptor() {
18924      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Room_descriptor;
18925    }
18926
18927    @java.lang.Override
18928    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
18929        internalGetFieldAccessorTable() {
18930      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Room_fieldAccessorTable
18931          .ensureFieldAccessorsInitialized(
18932              org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.Builder.class);
18933    }
18934
18935    public static final int ID_FIELD_NUMBER = 1;
18936    private int id_;
18937    /**
18938     * <code>int32 id = 1;</code>
18939     * @return The id.
18940     */
18941    public int getId() {
18942      return id_;
18943    }
18944
18945    public static final int CAPTION_FIELD_NUMBER = 2;
18946    private volatile java.lang.Object caption_;
18947    /**
18948     * <code>string caption = 2;</code>
18949     * @return The caption.
18950     */
18951    public java.lang.String getCaption() {
18952      java.lang.Object ref = caption_;
18953      if (ref instanceof java.lang.String) {
18954        return (java.lang.String) ref;
18955      } else {
18956        com.google.protobuf.ByteString bs = 
18957            (com.google.protobuf.ByteString) ref;
18958        java.lang.String s = bs.toStringUtf8();
18959        caption_ = s;
18960        return s;
18961      }
18962    }
18963    /**
18964     * <code>string caption = 2;</code>
18965     * @return The bytes for caption.
18966     */
18967    public com.google.protobuf.ByteString
18968        getCaptionBytes() {
18969      java.lang.Object ref = caption_;
18970      if (ref instanceof java.lang.String) {
18971        com.google.protobuf.ByteString b = 
18972            com.google.protobuf.ByteString.copyFromUtf8(
18973                (java.lang.String) ref);
18974        caption_ = b;
18975        return b;
18976      } else {
18977        return (com.google.protobuf.ByteString) ref;
18978      }
18979    }
18980
18981    public static final int SUBROOM_FIELD_NUMBER = 3;
18982    private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom> subroom_;
18983    /**
18984     * <code>repeated .hybridsim.Subroom subroom = 3;</code>
18985     */
18986    public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom> getSubroomList() {
18987      return subroom_;
18988    }
18989    /**
18990     * <code>repeated .hybridsim.Subroom subroom = 3;</code>
18991     */
18992    public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.SubroomOrBuilder> 
18993        getSubroomOrBuilderList() {
18994      return subroom_;
18995    }
18996    /**
18997     * <code>repeated .hybridsim.Subroom subroom = 3;</code>
18998     */
18999    public int getSubroomCount() {
19000      return subroom_.size();
19001    }
19002    /**
19003     * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19004     */
19005    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom getSubroom(int index) {
19006      return subroom_.get(index);
19007    }
19008    /**
19009     * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19010     */
19011    public org.matsim.contrib.hybridsim.proto.HybridSimProto.SubroomOrBuilder getSubroomOrBuilder(
19012        int index) {
19013      return subroom_.get(index);
19014    }
19015
19016    private byte memoizedIsInitialized = -1;
19017    @java.lang.Override
19018    public final boolean isInitialized() {
19019      byte isInitialized = memoizedIsInitialized;
19020      if (isInitialized == 1) return true;
19021      if (isInitialized == 0) return false;
19022
19023      memoizedIsInitialized = 1;
19024      return true;
19025    }
19026
19027    @java.lang.Override
19028    public void writeTo(com.google.protobuf.CodedOutputStream output)
19029                        throws java.io.IOException {
19030      if (id_ != 0) {
19031        output.writeInt32(1, id_);
19032      }
19033      if (!getCaptionBytes().isEmpty()) {
19034        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, caption_);
19035      }
19036      for (int i = 0; i < subroom_.size(); i++) {
19037        output.writeMessage(3, subroom_.get(i));
19038      }
19039      unknownFields.writeTo(output);
19040    }
19041
19042    @java.lang.Override
19043    public int getSerializedSize() {
19044      int size = memoizedSize;
19045      if (size != -1) return size;
19046
19047      size = 0;
19048      if (id_ != 0) {
19049        size += com.google.protobuf.CodedOutputStream
19050          .computeInt32Size(1, id_);
19051      }
19052      if (!getCaptionBytes().isEmpty()) {
19053        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, caption_);
19054      }
19055      for (int i = 0; i < subroom_.size(); i++) {
19056        size += com.google.protobuf.CodedOutputStream
19057          .computeMessageSize(3, subroom_.get(i));
19058      }
19059      size += unknownFields.getSerializedSize();
19060      memoizedSize = size;
19061      return size;
19062    }
19063
19064    @java.lang.Override
19065    public boolean equals(final java.lang.Object obj) {
19066      if (obj == this) {
19067       return true;
19068      }
19069      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Room)) {
19070        return super.equals(obj);
19071      }
19072      org.matsim.contrib.hybridsim.proto.HybridSimProto.Room other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Room) obj;
19073
19074      if (getId()
19075          != other.getId()) return false;
19076      if (!getCaption()
19077          .equals(other.getCaption())) return false;
19078      if (!getSubroomList()
19079          .equals(other.getSubroomList())) return false;
19080      if (!unknownFields.equals(other.unknownFields)) return false;
19081      return true;
19082    }
19083
19084    @java.lang.Override
19085    public int hashCode() {
19086      if (memoizedHashCode != 0) {
19087        return memoizedHashCode;
19088      }
19089      int hash = 41;
19090      hash = (19 * hash) + getDescriptor().hashCode();
19091      hash = (37 * hash) + ID_FIELD_NUMBER;
19092      hash = (53 * hash) + getId();
19093      hash = (37 * hash) + CAPTION_FIELD_NUMBER;
19094      hash = (53 * hash) + getCaption().hashCode();
19095      if (getSubroomCount() > 0) {
19096        hash = (37 * hash) + SUBROOM_FIELD_NUMBER;
19097        hash = (53 * hash) + getSubroomList().hashCode();
19098      }
19099      hash = (29 * hash) + unknownFields.hashCode();
19100      memoizedHashCode = hash;
19101      return hash;
19102    }
19103
19104    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Room parseFrom(
19105        java.nio.ByteBuffer data)
19106        throws com.google.protobuf.InvalidProtocolBufferException {
19107      return PARSER.parseFrom(data);
19108    }
19109    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Room parseFrom(
19110        java.nio.ByteBuffer data,
19111        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
19112        throws com.google.protobuf.InvalidProtocolBufferException {
19113      return PARSER.parseFrom(data, extensionRegistry);
19114    }
19115    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Room parseFrom(
19116        com.google.protobuf.ByteString data)
19117        throws com.google.protobuf.InvalidProtocolBufferException {
19118      return PARSER.parseFrom(data);
19119    }
19120    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Room parseFrom(
19121        com.google.protobuf.ByteString data,
19122        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
19123        throws com.google.protobuf.InvalidProtocolBufferException {
19124      return PARSER.parseFrom(data, extensionRegistry);
19125    }
19126    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Room parseFrom(byte[] data)
19127        throws com.google.protobuf.InvalidProtocolBufferException {
19128      return PARSER.parseFrom(data);
19129    }
19130    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Room parseFrom(
19131        byte[] data,
19132        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
19133        throws com.google.protobuf.InvalidProtocolBufferException {
19134      return PARSER.parseFrom(data, extensionRegistry);
19135    }
19136    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Room parseFrom(java.io.InputStream input)
19137        throws java.io.IOException {
19138      return com.google.protobuf.GeneratedMessageV3
19139          .parseWithIOException(PARSER, input);
19140    }
19141    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Room parseFrom(
19142        java.io.InputStream input,
19143        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
19144        throws java.io.IOException {
19145      return com.google.protobuf.GeneratedMessageV3
19146          .parseWithIOException(PARSER, input, extensionRegistry);
19147    }
19148    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Room parseDelimitedFrom(java.io.InputStream input)
19149        throws java.io.IOException {
19150      return com.google.protobuf.GeneratedMessageV3
19151          .parseDelimitedWithIOException(PARSER, input);
19152    }
19153    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Room parseDelimitedFrom(
19154        java.io.InputStream input,
19155        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
19156        throws java.io.IOException {
19157      return com.google.protobuf.GeneratedMessageV3
19158          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
19159    }
19160    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Room parseFrom(
19161        com.google.protobuf.CodedInputStream input)
19162        throws java.io.IOException {
19163      return com.google.protobuf.GeneratedMessageV3
19164          .parseWithIOException(PARSER, input);
19165    }
19166    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Room parseFrom(
19167        com.google.protobuf.CodedInputStream input,
19168        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
19169        throws java.io.IOException {
19170      return com.google.protobuf.GeneratedMessageV3
19171          .parseWithIOException(PARSER, input, extensionRegistry);
19172    }
19173
19174    @java.lang.Override
19175    public Builder newBuilderForType() { return newBuilder(); }
19176    public static Builder newBuilder() {
19177      return DEFAULT_INSTANCE.toBuilder();
19178    }
19179    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Room prototype) {
19180      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
19181    }
19182    @java.lang.Override
19183    public Builder toBuilder() {
19184      return this == DEFAULT_INSTANCE
19185          ? new Builder() : new Builder().mergeFrom(this);
19186    }
19187
19188    @java.lang.Override
19189    protected Builder newBuilderForType(
19190        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
19191      Builder builder = new Builder(parent);
19192      return builder;
19193    }
19194    /**
19195     * Protobuf type {@code hybridsim.Room}
19196     */
19197    public static final class Builder extends
19198        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
19199        // @@protoc_insertion_point(builder_implements:hybridsim.Room)
19200        org.matsim.contrib.hybridsim.proto.HybridSimProto.RoomOrBuilder {
19201      public static final com.google.protobuf.Descriptors.Descriptor
19202          getDescriptor() {
19203        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Room_descriptor;
19204      }
19205
19206      @java.lang.Override
19207      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
19208          internalGetFieldAccessorTable() {
19209        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Room_fieldAccessorTable
19210            .ensureFieldAccessorsInitialized(
19211                org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.Builder.class);
19212      }
19213
19214      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.newBuilder()
19215      private Builder() {
19216        maybeForceBuilderInitialization();
19217      }
19218
19219      private Builder(
19220          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
19221        super(parent);
19222        maybeForceBuilderInitialization();
19223      }
19224      private void maybeForceBuilderInitialization() {
19225        if (com.google.protobuf.GeneratedMessageV3
19226                .alwaysUseFieldBuilders) {
19227          getSubroomFieldBuilder();
19228        }
19229      }
19230      @java.lang.Override
19231      public Builder clear() {
19232        super.clear();
19233        id_ = 0;
19234
19235        caption_ = "";
19236
19237        if (subroomBuilder_ == null) {
19238          subroom_ = java.util.Collections.emptyList();
19239          bitField0_ = (bitField0_ & ~0x00000001);
19240        } else {
19241          subroomBuilder_.clear();
19242        }
19243        return this;
19244      }
19245
19246      @java.lang.Override
19247      public com.google.protobuf.Descriptors.Descriptor
19248          getDescriptorForType() {
19249        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Room_descriptor;
19250      }
19251
19252      @java.lang.Override
19253      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Room getDefaultInstanceForType() {
19254        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.getDefaultInstance();
19255      }
19256
19257      @java.lang.Override
19258      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Room build() {
19259        org.matsim.contrib.hybridsim.proto.HybridSimProto.Room result = buildPartial();
19260        if (!result.isInitialized()) {
19261          throw newUninitializedMessageException(result);
19262        }
19263        return result;
19264      }
19265
19266      @java.lang.Override
19267      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Room buildPartial() {
19268        org.matsim.contrib.hybridsim.proto.HybridSimProto.Room result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Room(this);
19269        int from_bitField0_ = bitField0_;
19270        result.id_ = id_;
19271        result.caption_ = caption_;
19272        if (subroomBuilder_ == null) {
19273          if (((bitField0_ & 0x00000001) != 0)) {
19274            subroom_ = java.util.Collections.unmodifiableList(subroom_);
19275            bitField0_ = (bitField0_ & ~0x00000001);
19276          }
19277          result.subroom_ = subroom_;
19278        } else {
19279          result.subroom_ = subroomBuilder_.build();
19280        }
19281        onBuilt();
19282        return result;
19283      }
19284
19285      @java.lang.Override
19286      public Builder clone() {
19287        return super.clone();
19288      }
19289      @java.lang.Override
19290      public Builder setField(
19291          com.google.protobuf.Descriptors.FieldDescriptor field,
19292          java.lang.Object value) {
19293        return super.setField(field, value);
19294      }
19295      @java.lang.Override
19296      public Builder clearField(
19297          com.google.protobuf.Descriptors.FieldDescriptor field) {
19298        return super.clearField(field);
19299      }
19300      @java.lang.Override
19301      public Builder clearOneof(
19302          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
19303        return super.clearOneof(oneof);
19304      }
19305      @java.lang.Override
19306      public Builder setRepeatedField(
19307          com.google.protobuf.Descriptors.FieldDescriptor field,
19308          int index, java.lang.Object value) {
19309        return super.setRepeatedField(field, index, value);
19310      }
19311      @java.lang.Override
19312      public Builder addRepeatedField(
19313          com.google.protobuf.Descriptors.FieldDescriptor field,
19314          java.lang.Object value) {
19315        return super.addRepeatedField(field, value);
19316      }
19317      @java.lang.Override
19318      public Builder mergeFrom(com.google.protobuf.Message other) {
19319        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Room) {
19320          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Room)other);
19321        } else {
19322          super.mergeFrom(other);
19323          return this;
19324        }
19325      }
19326
19327      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Room other) {
19328        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Room.getDefaultInstance()) return this;
19329        if (other.getId() != 0) {
19330          setId(other.getId());
19331        }
19332        if (!other.getCaption().isEmpty()) {
19333          caption_ = other.caption_;
19334          onChanged();
19335        }
19336        if (subroomBuilder_ == null) {
19337          if (!other.subroom_.isEmpty()) {
19338            if (subroom_.isEmpty()) {
19339              subroom_ = other.subroom_;
19340              bitField0_ = (bitField0_ & ~0x00000001);
19341            } else {
19342              ensureSubroomIsMutable();
19343              subroom_.addAll(other.subroom_);
19344            }
19345            onChanged();
19346          }
19347        } else {
19348          if (!other.subroom_.isEmpty()) {
19349            if (subroomBuilder_.isEmpty()) {
19350              subroomBuilder_.dispose();
19351              subroomBuilder_ = null;
19352              subroom_ = other.subroom_;
19353              bitField0_ = (bitField0_ & ~0x00000001);
19354              subroomBuilder_ = 
19355                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
19356                   getSubroomFieldBuilder() : null;
19357            } else {
19358              subroomBuilder_.addAllMessages(other.subroom_);
19359            }
19360          }
19361        }
19362        this.mergeUnknownFields(other.unknownFields);
19363        onChanged();
19364        return this;
19365      }
19366
19367      @java.lang.Override
19368      public final boolean isInitialized() {
19369        return true;
19370      }
19371
19372      @java.lang.Override
19373      public Builder mergeFrom(
19374          com.google.protobuf.CodedInputStream input,
19375          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
19376          throws java.io.IOException {
19377        org.matsim.contrib.hybridsim.proto.HybridSimProto.Room parsedMessage = null;
19378        try {
19379          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
19380        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
19381          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Room) e.getUnfinishedMessage();
19382          throw e.unwrapIOException();
19383        } finally {
19384          if (parsedMessage != null) {
19385            mergeFrom(parsedMessage);
19386          }
19387        }
19388        return this;
19389      }
19390      private int bitField0_;
19391
19392      private int id_ ;
19393      /**
19394       * <code>int32 id = 1;</code>
19395       * @return The id.
19396       */
19397      public int getId() {
19398        return id_;
19399      }
19400      /**
19401       * <code>int32 id = 1;</code>
19402       * @param value The id to set.
19403       * @return This builder for chaining.
19404       */
19405      public Builder setId(int value) {
19406        
19407        id_ = value;
19408        onChanged();
19409        return this;
19410      }
19411      /**
19412       * <code>int32 id = 1;</code>
19413       * @return This builder for chaining.
19414       */
19415      public Builder clearId() {
19416        
19417        id_ = 0;
19418        onChanged();
19419        return this;
19420      }
19421
19422      private java.lang.Object caption_ = "";
19423      /**
19424       * <code>string caption = 2;</code>
19425       * @return The caption.
19426       */
19427      public java.lang.String getCaption() {
19428        java.lang.Object ref = caption_;
19429        if (!(ref instanceof java.lang.String)) {
19430          com.google.protobuf.ByteString bs =
19431              (com.google.protobuf.ByteString) ref;
19432          java.lang.String s = bs.toStringUtf8();
19433          caption_ = s;
19434          return s;
19435        } else {
19436          return (java.lang.String) ref;
19437        }
19438      }
19439      /**
19440       * <code>string caption = 2;</code>
19441       * @return The bytes for caption.
19442       */
19443      public com.google.protobuf.ByteString
19444          getCaptionBytes() {
19445        java.lang.Object ref = caption_;
19446        if (ref instanceof String) {
19447          com.google.protobuf.ByteString b = 
19448              com.google.protobuf.ByteString.copyFromUtf8(
19449                  (java.lang.String) ref);
19450          caption_ = b;
19451          return b;
19452        } else {
19453          return (com.google.protobuf.ByteString) ref;
19454        }
19455      }
19456      /**
19457       * <code>string caption = 2;</code>
19458       * @param value The caption to set.
19459       * @return This builder for chaining.
19460       */
19461      public Builder setCaption(
19462          java.lang.String value) {
19463        if (value == null) {
19464    throw new NullPointerException();
19465  }
19466  
19467        caption_ = value;
19468        onChanged();
19469        return this;
19470      }
19471      /**
19472       * <code>string caption = 2;</code>
19473       * @return This builder for chaining.
19474       */
19475      public Builder clearCaption() {
19476        
19477        caption_ = getDefaultInstance().getCaption();
19478        onChanged();
19479        return this;
19480      }
19481      /**
19482       * <code>string caption = 2;</code>
19483       * @param value The bytes for caption to set.
19484       * @return This builder for chaining.
19485       */
19486      public Builder setCaptionBytes(
19487          com.google.protobuf.ByteString value) {
19488        if (value == null) {
19489    throw new NullPointerException();
19490  }
19491  checkByteStringIsUtf8(value);
19492        
19493        caption_ = value;
19494        onChanged();
19495        return this;
19496      }
19497
19498      private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom> subroom_ =
19499        java.util.Collections.emptyList();
19500      private void ensureSubroomIsMutable() {
19501        if (!((bitField0_ & 0x00000001) != 0)) {
19502          subroom_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom>(subroom_);
19503          bitField0_ |= 0x00000001;
19504         }
19505      }
19506
19507      private com.google.protobuf.RepeatedFieldBuilderV3<
19508          org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom, org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.SubroomOrBuilder> subroomBuilder_;
19509
19510      /**
19511       * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19512       */
19513      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom> getSubroomList() {
19514        if (subroomBuilder_ == null) {
19515          return java.util.Collections.unmodifiableList(subroom_);
19516        } else {
19517          return subroomBuilder_.getMessageList();
19518        }
19519      }
19520      /**
19521       * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19522       */
19523      public int getSubroomCount() {
19524        if (subroomBuilder_ == null) {
19525          return subroom_.size();
19526        } else {
19527          return subroomBuilder_.getCount();
19528        }
19529      }
19530      /**
19531       * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19532       */
19533      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom getSubroom(int index) {
19534        if (subroomBuilder_ == null) {
19535          return subroom_.get(index);
19536        } else {
19537          return subroomBuilder_.getMessage(index);
19538        }
19539      }
19540      /**
19541       * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19542       */
19543      public Builder setSubroom(
19544          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom value) {
19545        if (subroomBuilder_ == null) {
19546          if (value == null) {
19547            throw new NullPointerException();
19548          }
19549          ensureSubroomIsMutable();
19550          subroom_.set(index, value);
19551          onChanged();
19552        } else {
19553          subroomBuilder_.setMessage(index, value);
19554        }
19555        return this;
19556      }
19557      /**
19558       * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19559       */
19560      public Builder setSubroom(
19561          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.Builder builderForValue) {
19562        if (subroomBuilder_ == null) {
19563          ensureSubroomIsMutable();
19564          subroom_.set(index, builderForValue.build());
19565          onChanged();
19566        } else {
19567          subroomBuilder_.setMessage(index, builderForValue.build());
19568        }
19569        return this;
19570      }
19571      /**
19572       * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19573       */
19574      public Builder addSubroom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom value) {
19575        if (subroomBuilder_ == null) {
19576          if (value == null) {
19577            throw new NullPointerException();
19578          }
19579          ensureSubroomIsMutable();
19580          subroom_.add(value);
19581          onChanged();
19582        } else {
19583          subroomBuilder_.addMessage(value);
19584        }
19585        return this;
19586      }
19587      /**
19588       * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19589       */
19590      public Builder addSubroom(
19591          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom value) {
19592        if (subroomBuilder_ == null) {
19593          if (value == null) {
19594            throw new NullPointerException();
19595          }
19596          ensureSubroomIsMutable();
19597          subroom_.add(index, value);
19598          onChanged();
19599        } else {
19600          subroomBuilder_.addMessage(index, value);
19601        }
19602        return this;
19603      }
19604      /**
19605       * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19606       */
19607      public Builder addSubroom(
19608          org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.Builder builderForValue) {
19609        if (subroomBuilder_ == null) {
19610          ensureSubroomIsMutable();
19611          subroom_.add(builderForValue.build());
19612          onChanged();
19613        } else {
19614          subroomBuilder_.addMessage(builderForValue.build());
19615        }
19616        return this;
19617      }
19618      /**
19619       * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19620       */
19621      public Builder addSubroom(
19622          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.Builder builderForValue) {
19623        if (subroomBuilder_ == null) {
19624          ensureSubroomIsMutable();
19625          subroom_.add(index, builderForValue.build());
19626          onChanged();
19627        } else {
19628          subroomBuilder_.addMessage(index, builderForValue.build());
19629        }
19630        return this;
19631      }
19632      /**
19633       * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19634       */
19635      public Builder addAllSubroom(
19636          java.lang.Iterable<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom> values) {
19637        if (subroomBuilder_ == null) {
19638          ensureSubroomIsMutable();
19639          com.google.protobuf.AbstractMessageLite.Builder.addAll(
19640              values, subroom_);
19641          onChanged();
19642        } else {
19643          subroomBuilder_.addAllMessages(values);
19644        }
19645        return this;
19646      }
19647      /**
19648       * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19649       */
19650      public Builder clearSubroom() {
19651        if (subroomBuilder_ == null) {
19652          subroom_ = java.util.Collections.emptyList();
19653          bitField0_ = (bitField0_ & ~0x00000001);
19654          onChanged();
19655        } else {
19656          subroomBuilder_.clear();
19657        }
19658        return this;
19659      }
19660      /**
19661       * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19662       */
19663      public Builder removeSubroom(int index) {
19664        if (subroomBuilder_ == null) {
19665          ensureSubroomIsMutable();
19666          subroom_.remove(index);
19667          onChanged();
19668        } else {
19669          subroomBuilder_.remove(index);
19670        }
19671        return this;
19672      }
19673      /**
19674       * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19675       */
19676      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.Builder getSubroomBuilder(
19677          int index) {
19678        return getSubroomFieldBuilder().getBuilder(index);
19679      }
19680      /**
19681       * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19682       */
19683      public org.matsim.contrib.hybridsim.proto.HybridSimProto.SubroomOrBuilder getSubroomOrBuilder(
19684          int index) {
19685        if (subroomBuilder_ == null) {
19686          return subroom_.get(index);  } else {
19687          return subroomBuilder_.getMessageOrBuilder(index);
19688        }
19689      }
19690      /**
19691       * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19692       */
19693      public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.SubroomOrBuilder> 
19694           getSubroomOrBuilderList() {
19695        if (subroomBuilder_ != null) {
19696          return subroomBuilder_.getMessageOrBuilderList();
19697        } else {
19698          return java.util.Collections.unmodifiableList(subroom_);
19699        }
19700      }
19701      /**
19702       * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19703       */
19704      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.Builder addSubroomBuilder() {
19705        return getSubroomFieldBuilder().addBuilder(
19706            org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.getDefaultInstance());
19707      }
19708      /**
19709       * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19710       */
19711      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.Builder addSubroomBuilder(
19712          int index) {
19713        return getSubroomFieldBuilder().addBuilder(
19714            index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.getDefaultInstance());
19715      }
19716      /**
19717       * <code>repeated .hybridsim.Subroom subroom = 3;</code>
19718       */
19719      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.Builder> 
19720           getSubroomBuilderList() {
19721        return getSubroomFieldBuilder().getBuilderList();
19722      }
19723      private com.google.protobuf.RepeatedFieldBuilderV3<
19724          org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom, org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.SubroomOrBuilder> 
19725          getSubroomFieldBuilder() {
19726        if (subroomBuilder_ == null) {
19727          subroomBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
19728              org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom, org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.SubroomOrBuilder>(
19729                  subroom_,
19730                  ((bitField0_ & 0x00000001) != 0),
19731                  getParentForChildren(),
19732                  isClean());
19733          subroom_ = null;
19734        }
19735        return subroomBuilder_;
19736      }
19737      @java.lang.Override
19738      public final Builder setUnknownFields(
19739          final com.google.protobuf.UnknownFieldSet unknownFields) {
19740        return super.setUnknownFields(unknownFields);
19741      }
19742
19743      @java.lang.Override
19744      public final Builder mergeUnknownFields(
19745          final com.google.protobuf.UnknownFieldSet unknownFields) {
19746        return super.mergeUnknownFields(unknownFields);
19747      }
19748
19749
19750      // @@protoc_insertion_point(builder_scope:hybridsim.Room)
19751    }
19752
19753    // @@protoc_insertion_point(class_scope:hybridsim.Room)
19754    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Room DEFAULT_INSTANCE;
19755    static {
19756      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Room();
19757    }
19758
19759    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Room getDefaultInstance() {
19760      return DEFAULT_INSTANCE;
19761    }
19762
19763    private static final com.google.protobuf.Parser<Room>
19764        PARSER = new com.google.protobuf.AbstractParser<Room>() {
19765      @java.lang.Override
19766      public Room parsePartialFrom(
19767          com.google.protobuf.CodedInputStream input,
19768          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
19769          throws com.google.protobuf.InvalidProtocolBufferException {
19770        return new Room(input, extensionRegistry);
19771      }
19772    };
19773
19774    public static com.google.protobuf.Parser<Room> parser() {
19775      return PARSER;
19776    }
19777
19778    @java.lang.Override
19779    public com.google.protobuf.Parser<Room> getParserForType() {
19780      return PARSER;
19781    }
19782
19783    @java.lang.Override
19784    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Room getDefaultInstanceForType() {
19785      return DEFAULT_INSTANCE;
19786    }
19787
19788  }
19789
19790  public interface SubroomOrBuilder extends
19791      // @@protoc_insertion_point(interface_extends:hybridsim.Subroom)
19792      com.google.protobuf.MessageOrBuilder {
19793
19794    /**
19795     * <code>int32 id = 1;</code>
19796     * @return The id.
19797     */
19798    int getId();
19799
19800    /**
19801     * <code>int32 closed = 2;</code>
19802     * @return The closed.
19803     */
19804    int getClosed();
19805
19806    /**
19807     * <code>string class = 3;</code>
19808     * @return The class.
19809     */
19810    java.lang.String getClass_();
19811    /**
19812     * <code>string class = 3;</code>
19813     * @return The bytes for class.
19814     */
19815    com.google.protobuf.ByteString
19816        getClass_Bytes();
19817
19818    /**
19819     * <code>repeated .hybridsim.Polygon polygon = 4;</code>
19820     */
19821    java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon> 
19822        getPolygonList();
19823    /**
19824     * <code>repeated .hybridsim.Polygon polygon = 4;</code>
19825     */
19826    org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon getPolygon(int index);
19827    /**
19828     * <code>repeated .hybridsim.Polygon polygon = 4;</code>
19829     */
19830    int getPolygonCount();
19831    /**
19832     * <code>repeated .hybridsim.Polygon polygon = 4;</code>
19833     */
19834    java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.PolygonOrBuilder> 
19835        getPolygonOrBuilderList();
19836    /**
19837     * <code>repeated .hybridsim.Polygon polygon = 4;</code>
19838     */
19839    org.matsim.contrib.hybridsim.proto.HybridSimProto.PolygonOrBuilder getPolygonOrBuilder(
19840        int index);
19841  }
19842  /**
19843   * Protobuf type {@code hybridsim.Subroom}
19844   */
19845  public  static final class Subroom extends
19846      com.google.protobuf.GeneratedMessageV3 implements
19847      // @@protoc_insertion_point(message_implements:hybridsim.Subroom)
19848      SubroomOrBuilder {
19849  private static final long serialVersionUID = 0L;
19850    // Use Subroom.newBuilder() to construct.
19851    private Subroom(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
19852      super(builder);
19853    }
19854    private Subroom() {
19855      class__ = "";
19856      polygon_ = java.util.Collections.emptyList();
19857    }
19858
19859    @java.lang.Override
19860    @SuppressWarnings({"unused"})
19861    protected java.lang.Object newInstance(
19862        UnusedPrivateParameter unused) {
19863      return new Subroom();
19864    }
19865
19866    @java.lang.Override
19867    public final com.google.protobuf.UnknownFieldSet
19868    getUnknownFields() {
19869      return this.unknownFields;
19870    }
19871    private Subroom(
19872        com.google.protobuf.CodedInputStream input,
19873        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
19874        throws com.google.protobuf.InvalidProtocolBufferException {
19875      this();
19876      if (extensionRegistry == null) {
19877        throw new java.lang.NullPointerException();
19878      }
19879      int mutable_bitField0_ = 0;
19880      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
19881          com.google.protobuf.UnknownFieldSet.newBuilder();
19882      try {
19883        boolean done = false;
19884        while (!done) {
19885          int tag = input.readTag();
19886          switch (tag) {
19887            case 0:
19888              done = true;
19889              break;
19890            case 8: {
19891
19892              id_ = input.readInt32();
19893              break;
19894            }
19895            case 16: {
19896
19897              closed_ = input.readInt32();
19898              break;
19899            }
19900            case 26: {
19901              java.lang.String s = input.readStringRequireUtf8();
19902
19903              class__ = s;
19904              break;
19905            }
19906            case 34: {
19907              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
19908                polygon_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon>();
19909                mutable_bitField0_ |= 0x00000001;
19910              }
19911              polygon_.add(
19912                  input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.parser(), extensionRegistry));
19913              break;
19914            }
19915            default: {
19916              if (!parseUnknownField(
19917                  input, unknownFields, extensionRegistry, tag)) {
19918                done = true;
19919              }
19920              break;
19921            }
19922          }
19923        }
19924      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
19925        throw e.setUnfinishedMessage(this);
19926      } catch (java.io.IOException e) {
19927        throw new com.google.protobuf.InvalidProtocolBufferException(
19928            e).setUnfinishedMessage(this);
19929      } finally {
19930        if (((mutable_bitField0_ & 0x00000001) != 0)) {
19931          polygon_ = java.util.Collections.unmodifiableList(polygon_);
19932        }
19933        this.unknownFields = unknownFields.build();
19934        makeExtensionsImmutable();
19935      }
19936    }
19937    public static final com.google.protobuf.Descriptors.Descriptor
19938        getDescriptor() {
19939      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Subroom_descriptor;
19940    }
19941
19942    @java.lang.Override
19943    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
19944        internalGetFieldAccessorTable() {
19945      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Subroom_fieldAccessorTable
19946          .ensureFieldAccessorsInitialized(
19947              org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.Builder.class);
19948    }
19949
19950    public static final int ID_FIELD_NUMBER = 1;
19951    private int id_;
19952    /**
19953     * <code>int32 id = 1;</code>
19954     * @return The id.
19955     */
19956    public int getId() {
19957      return id_;
19958    }
19959
19960    public static final int CLOSED_FIELD_NUMBER = 2;
19961    private int closed_;
19962    /**
19963     * <code>int32 closed = 2;</code>
19964     * @return The closed.
19965     */
19966    public int getClosed() {
19967      return closed_;
19968    }
19969
19970    public static final int CLASS_FIELD_NUMBER = 3;
19971    private volatile java.lang.Object class__;
19972    /**
19973     * <code>string class = 3;</code>
19974     * @return The class.
19975     */
19976    public java.lang.String getClass_() {
19977      java.lang.Object ref = class__;
19978      if (ref instanceof java.lang.String) {
19979        return (java.lang.String) ref;
19980      } else {
19981        com.google.protobuf.ByteString bs = 
19982            (com.google.protobuf.ByteString) ref;
19983        java.lang.String s = bs.toStringUtf8();
19984        class__ = s;
19985        return s;
19986      }
19987    }
19988    /**
19989     * <code>string class = 3;</code>
19990     * @return The bytes for class.
19991     */
19992    public com.google.protobuf.ByteString
19993        getClass_Bytes() {
19994      java.lang.Object ref = class__;
19995      if (ref instanceof java.lang.String) {
19996        com.google.protobuf.ByteString b = 
19997            com.google.protobuf.ByteString.copyFromUtf8(
19998                (java.lang.String) ref);
19999        class__ = b;
20000        return b;
20001      } else {
20002        return (com.google.protobuf.ByteString) ref;
20003      }
20004    }
20005
20006    public static final int POLYGON_FIELD_NUMBER = 4;
20007    private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon> polygon_;
20008    /**
20009     * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20010     */
20011    public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon> getPolygonList() {
20012      return polygon_;
20013    }
20014    /**
20015     * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20016     */
20017    public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.PolygonOrBuilder> 
20018        getPolygonOrBuilderList() {
20019      return polygon_;
20020    }
20021    /**
20022     * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20023     */
20024    public int getPolygonCount() {
20025      return polygon_.size();
20026    }
20027    /**
20028     * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20029     */
20030    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon getPolygon(int index) {
20031      return polygon_.get(index);
20032    }
20033    /**
20034     * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20035     */
20036    public org.matsim.contrib.hybridsim.proto.HybridSimProto.PolygonOrBuilder getPolygonOrBuilder(
20037        int index) {
20038      return polygon_.get(index);
20039    }
20040
20041    private byte memoizedIsInitialized = -1;
20042    @java.lang.Override
20043    public final boolean isInitialized() {
20044      byte isInitialized = memoizedIsInitialized;
20045      if (isInitialized == 1) return true;
20046      if (isInitialized == 0) return false;
20047
20048      memoizedIsInitialized = 1;
20049      return true;
20050    }
20051
20052    @java.lang.Override
20053    public void writeTo(com.google.protobuf.CodedOutputStream output)
20054                        throws java.io.IOException {
20055      if (id_ != 0) {
20056        output.writeInt32(1, id_);
20057      }
20058      if (closed_ != 0) {
20059        output.writeInt32(2, closed_);
20060      }
20061      if (!getClass_Bytes().isEmpty()) {
20062        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, class__);
20063      }
20064      for (int i = 0; i < polygon_.size(); i++) {
20065        output.writeMessage(4, polygon_.get(i));
20066      }
20067      unknownFields.writeTo(output);
20068    }
20069
20070    @java.lang.Override
20071    public int getSerializedSize() {
20072      int size = memoizedSize;
20073      if (size != -1) return size;
20074
20075      size = 0;
20076      if (id_ != 0) {
20077        size += com.google.protobuf.CodedOutputStream
20078          .computeInt32Size(1, id_);
20079      }
20080      if (closed_ != 0) {
20081        size += com.google.protobuf.CodedOutputStream
20082          .computeInt32Size(2, closed_);
20083      }
20084      if (!getClass_Bytes().isEmpty()) {
20085        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, class__);
20086      }
20087      for (int i = 0; i < polygon_.size(); i++) {
20088        size += com.google.protobuf.CodedOutputStream
20089          .computeMessageSize(4, polygon_.get(i));
20090      }
20091      size += unknownFields.getSerializedSize();
20092      memoizedSize = size;
20093      return size;
20094    }
20095
20096    @java.lang.Override
20097    public boolean equals(final java.lang.Object obj) {
20098      if (obj == this) {
20099       return true;
20100      }
20101      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom)) {
20102        return super.equals(obj);
20103      }
20104      org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom) obj;
20105
20106      if (getId()
20107          != other.getId()) return false;
20108      if (getClosed()
20109          != other.getClosed()) return false;
20110      if (!getClass_()
20111          .equals(other.getClass_())) return false;
20112      if (!getPolygonList()
20113          .equals(other.getPolygonList())) return false;
20114      if (!unknownFields.equals(other.unknownFields)) return false;
20115      return true;
20116    }
20117
20118    @java.lang.Override
20119    public int hashCode() {
20120      if (memoizedHashCode != 0) {
20121        return memoizedHashCode;
20122      }
20123      int hash = 41;
20124      hash = (19 * hash) + getDescriptor().hashCode();
20125      hash = (37 * hash) + ID_FIELD_NUMBER;
20126      hash = (53 * hash) + getId();
20127      hash = (37 * hash) + CLOSED_FIELD_NUMBER;
20128      hash = (53 * hash) + getClosed();
20129      hash = (37 * hash) + CLASS_FIELD_NUMBER;
20130      hash = (53 * hash) + getClass_().hashCode();
20131      if (getPolygonCount() > 0) {
20132        hash = (37 * hash) + POLYGON_FIELD_NUMBER;
20133        hash = (53 * hash) + getPolygonList().hashCode();
20134      }
20135      hash = (29 * hash) + unknownFields.hashCode();
20136      memoizedHashCode = hash;
20137      return hash;
20138    }
20139
20140    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom parseFrom(
20141        java.nio.ByteBuffer data)
20142        throws com.google.protobuf.InvalidProtocolBufferException {
20143      return PARSER.parseFrom(data);
20144    }
20145    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom parseFrom(
20146        java.nio.ByteBuffer data,
20147        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
20148        throws com.google.protobuf.InvalidProtocolBufferException {
20149      return PARSER.parseFrom(data, extensionRegistry);
20150    }
20151    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom parseFrom(
20152        com.google.protobuf.ByteString data)
20153        throws com.google.protobuf.InvalidProtocolBufferException {
20154      return PARSER.parseFrom(data);
20155    }
20156    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom parseFrom(
20157        com.google.protobuf.ByteString data,
20158        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
20159        throws com.google.protobuf.InvalidProtocolBufferException {
20160      return PARSER.parseFrom(data, extensionRegistry);
20161    }
20162    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom parseFrom(byte[] data)
20163        throws com.google.protobuf.InvalidProtocolBufferException {
20164      return PARSER.parseFrom(data);
20165    }
20166    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom parseFrom(
20167        byte[] data,
20168        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
20169        throws com.google.protobuf.InvalidProtocolBufferException {
20170      return PARSER.parseFrom(data, extensionRegistry);
20171    }
20172    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom parseFrom(java.io.InputStream input)
20173        throws java.io.IOException {
20174      return com.google.protobuf.GeneratedMessageV3
20175          .parseWithIOException(PARSER, input);
20176    }
20177    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom parseFrom(
20178        java.io.InputStream input,
20179        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
20180        throws java.io.IOException {
20181      return com.google.protobuf.GeneratedMessageV3
20182          .parseWithIOException(PARSER, input, extensionRegistry);
20183    }
20184    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom parseDelimitedFrom(java.io.InputStream input)
20185        throws java.io.IOException {
20186      return com.google.protobuf.GeneratedMessageV3
20187          .parseDelimitedWithIOException(PARSER, input);
20188    }
20189    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom parseDelimitedFrom(
20190        java.io.InputStream input,
20191        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
20192        throws java.io.IOException {
20193      return com.google.protobuf.GeneratedMessageV3
20194          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
20195    }
20196    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom parseFrom(
20197        com.google.protobuf.CodedInputStream input)
20198        throws java.io.IOException {
20199      return com.google.protobuf.GeneratedMessageV3
20200          .parseWithIOException(PARSER, input);
20201    }
20202    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom parseFrom(
20203        com.google.protobuf.CodedInputStream input,
20204        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
20205        throws java.io.IOException {
20206      return com.google.protobuf.GeneratedMessageV3
20207          .parseWithIOException(PARSER, input, extensionRegistry);
20208    }
20209
20210    @java.lang.Override
20211    public Builder newBuilderForType() { return newBuilder(); }
20212    public static Builder newBuilder() {
20213      return DEFAULT_INSTANCE.toBuilder();
20214    }
20215    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom prototype) {
20216      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
20217    }
20218    @java.lang.Override
20219    public Builder toBuilder() {
20220      return this == DEFAULT_INSTANCE
20221          ? new Builder() : new Builder().mergeFrom(this);
20222    }
20223
20224    @java.lang.Override
20225    protected Builder newBuilderForType(
20226        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
20227      Builder builder = new Builder(parent);
20228      return builder;
20229    }
20230    /**
20231     * Protobuf type {@code hybridsim.Subroom}
20232     */
20233    public static final class Builder extends
20234        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
20235        // @@protoc_insertion_point(builder_implements:hybridsim.Subroom)
20236        org.matsim.contrib.hybridsim.proto.HybridSimProto.SubroomOrBuilder {
20237      public static final com.google.protobuf.Descriptors.Descriptor
20238          getDescriptor() {
20239        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Subroom_descriptor;
20240      }
20241
20242      @java.lang.Override
20243      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
20244          internalGetFieldAccessorTable() {
20245        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Subroom_fieldAccessorTable
20246            .ensureFieldAccessorsInitialized(
20247                org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.Builder.class);
20248      }
20249
20250      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.newBuilder()
20251      private Builder() {
20252        maybeForceBuilderInitialization();
20253      }
20254
20255      private Builder(
20256          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
20257        super(parent);
20258        maybeForceBuilderInitialization();
20259      }
20260      private void maybeForceBuilderInitialization() {
20261        if (com.google.protobuf.GeneratedMessageV3
20262                .alwaysUseFieldBuilders) {
20263          getPolygonFieldBuilder();
20264        }
20265      }
20266      @java.lang.Override
20267      public Builder clear() {
20268        super.clear();
20269        id_ = 0;
20270
20271        closed_ = 0;
20272
20273        class__ = "";
20274
20275        if (polygonBuilder_ == null) {
20276          polygon_ = java.util.Collections.emptyList();
20277          bitField0_ = (bitField0_ & ~0x00000001);
20278        } else {
20279          polygonBuilder_.clear();
20280        }
20281        return this;
20282      }
20283
20284      @java.lang.Override
20285      public com.google.protobuf.Descriptors.Descriptor
20286          getDescriptorForType() {
20287        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Subroom_descriptor;
20288      }
20289
20290      @java.lang.Override
20291      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom getDefaultInstanceForType() {
20292        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.getDefaultInstance();
20293      }
20294
20295      @java.lang.Override
20296      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom build() {
20297        org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom result = buildPartial();
20298        if (!result.isInitialized()) {
20299          throw newUninitializedMessageException(result);
20300        }
20301        return result;
20302      }
20303
20304      @java.lang.Override
20305      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom buildPartial() {
20306        org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom(this);
20307        int from_bitField0_ = bitField0_;
20308        result.id_ = id_;
20309        result.closed_ = closed_;
20310        result.class__ = class__;
20311        if (polygonBuilder_ == null) {
20312          if (((bitField0_ & 0x00000001) != 0)) {
20313            polygon_ = java.util.Collections.unmodifiableList(polygon_);
20314            bitField0_ = (bitField0_ & ~0x00000001);
20315          }
20316          result.polygon_ = polygon_;
20317        } else {
20318          result.polygon_ = polygonBuilder_.build();
20319        }
20320        onBuilt();
20321        return result;
20322      }
20323
20324      @java.lang.Override
20325      public Builder clone() {
20326        return super.clone();
20327      }
20328      @java.lang.Override
20329      public Builder setField(
20330          com.google.protobuf.Descriptors.FieldDescriptor field,
20331          java.lang.Object value) {
20332        return super.setField(field, value);
20333      }
20334      @java.lang.Override
20335      public Builder clearField(
20336          com.google.protobuf.Descriptors.FieldDescriptor field) {
20337        return super.clearField(field);
20338      }
20339      @java.lang.Override
20340      public Builder clearOneof(
20341          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
20342        return super.clearOneof(oneof);
20343      }
20344      @java.lang.Override
20345      public Builder setRepeatedField(
20346          com.google.protobuf.Descriptors.FieldDescriptor field,
20347          int index, java.lang.Object value) {
20348        return super.setRepeatedField(field, index, value);
20349      }
20350      @java.lang.Override
20351      public Builder addRepeatedField(
20352          com.google.protobuf.Descriptors.FieldDescriptor field,
20353          java.lang.Object value) {
20354        return super.addRepeatedField(field, value);
20355      }
20356      @java.lang.Override
20357      public Builder mergeFrom(com.google.protobuf.Message other) {
20358        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom) {
20359          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom)other);
20360        } else {
20361          super.mergeFrom(other);
20362          return this;
20363        }
20364      }
20365
20366      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom other) {
20367        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom.getDefaultInstance()) return this;
20368        if (other.getId() != 0) {
20369          setId(other.getId());
20370        }
20371        if (other.getClosed() != 0) {
20372          setClosed(other.getClosed());
20373        }
20374        if (!other.getClass_().isEmpty()) {
20375          class__ = other.class__;
20376          onChanged();
20377        }
20378        if (polygonBuilder_ == null) {
20379          if (!other.polygon_.isEmpty()) {
20380            if (polygon_.isEmpty()) {
20381              polygon_ = other.polygon_;
20382              bitField0_ = (bitField0_ & ~0x00000001);
20383            } else {
20384              ensurePolygonIsMutable();
20385              polygon_.addAll(other.polygon_);
20386            }
20387            onChanged();
20388          }
20389        } else {
20390          if (!other.polygon_.isEmpty()) {
20391            if (polygonBuilder_.isEmpty()) {
20392              polygonBuilder_.dispose();
20393              polygonBuilder_ = null;
20394              polygon_ = other.polygon_;
20395              bitField0_ = (bitField0_ & ~0x00000001);
20396              polygonBuilder_ = 
20397                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
20398                   getPolygonFieldBuilder() : null;
20399            } else {
20400              polygonBuilder_.addAllMessages(other.polygon_);
20401            }
20402          }
20403        }
20404        this.mergeUnknownFields(other.unknownFields);
20405        onChanged();
20406        return this;
20407      }
20408
20409      @java.lang.Override
20410      public final boolean isInitialized() {
20411        return true;
20412      }
20413
20414      @java.lang.Override
20415      public Builder mergeFrom(
20416          com.google.protobuf.CodedInputStream input,
20417          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
20418          throws java.io.IOException {
20419        org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom parsedMessage = null;
20420        try {
20421          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
20422        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
20423          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom) e.getUnfinishedMessage();
20424          throw e.unwrapIOException();
20425        } finally {
20426          if (parsedMessage != null) {
20427            mergeFrom(parsedMessage);
20428          }
20429        }
20430        return this;
20431      }
20432      private int bitField0_;
20433
20434      private int id_ ;
20435      /**
20436       * <code>int32 id = 1;</code>
20437       * @return The id.
20438       */
20439      public int getId() {
20440        return id_;
20441      }
20442      /**
20443       * <code>int32 id = 1;</code>
20444       * @param value The id to set.
20445       * @return This builder for chaining.
20446       */
20447      public Builder setId(int value) {
20448        
20449        id_ = value;
20450        onChanged();
20451        return this;
20452      }
20453      /**
20454       * <code>int32 id = 1;</code>
20455       * @return This builder for chaining.
20456       */
20457      public Builder clearId() {
20458        
20459        id_ = 0;
20460        onChanged();
20461        return this;
20462      }
20463
20464      private int closed_ ;
20465      /**
20466       * <code>int32 closed = 2;</code>
20467       * @return The closed.
20468       */
20469      public int getClosed() {
20470        return closed_;
20471      }
20472      /**
20473       * <code>int32 closed = 2;</code>
20474       * @param value The closed to set.
20475       * @return This builder for chaining.
20476       */
20477      public Builder setClosed(int value) {
20478        
20479        closed_ = value;
20480        onChanged();
20481        return this;
20482      }
20483      /**
20484       * <code>int32 closed = 2;</code>
20485       * @return This builder for chaining.
20486       */
20487      public Builder clearClosed() {
20488        
20489        closed_ = 0;
20490        onChanged();
20491        return this;
20492      }
20493
20494      private java.lang.Object class__ = "";
20495      /**
20496       * <code>string class = 3;</code>
20497       * @return The class.
20498       */
20499      public java.lang.String getClass_() {
20500        java.lang.Object ref = class__;
20501        if (!(ref instanceof java.lang.String)) {
20502          com.google.protobuf.ByteString bs =
20503              (com.google.protobuf.ByteString) ref;
20504          java.lang.String s = bs.toStringUtf8();
20505          class__ = s;
20506          return s;
20507        } else {
20508          return (java.lang.String) ref;
20509        }
20510      }
20511      /**
20512       * <code>string class = 3;</code>
20513       * @return The bytes for class.
20514       */
20515      public com.google.protobuf.ByteString
20516          getClass_Bytes() {
20517        java.lang.Object ref = class__;
20518        if (ref instanceof String) {
20519          com.google.protobuf.ByteString b = 
20520              com.google.protobuf.ByteString.copyFromUtf8(
20521                  (java.lang.String) ref);
20522          class__ = b;
20523          return b;
20524        } else {
20525          return (com.google.protobuf.ByteString) ref;
20526        }
20527      }
20528      /**
20529       * <code>string class = 3;</code>
20530       * @param value The class to set.
20531       * @return This builder for chaining.
20532       */
20533      public Builder setClass_(
20534          java.lang.String value) {
20535        if (value == null) {
20536    throw new NullPointerException();
20537  }
20538  
20539        class__ = value;
20540        onChanged();
20541        return this;
20542      }
20543      /**
20544       * <code>string class = 3;</code>
20545       * @return This builder for chaining.
20546       */
20547      public Builder clearClass_() {
20548        
20549        class__ = getDefaultInstance().getClass_();
20550        onChanged();
20551        return this;
20552      }
20553      /**
20554       * <code>string class = 3;</code>
20555       * @param value The bytes for class to set.
20556       * @return This builder for chaining.
20557       */
20558      public Builder setClass_Bytes(
20559          com.google.protobuf.ByteString value) {
20560        if (value == null) {
20561    throw new NullPointerException();
20562  }
20563  checkByteStringIsUtf8(value);
20564        
20565        class__ = value;
20566        onChanged();
20567        return this;
20568      }
20569
20570      private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon> polygon_ =
20571        java.util.Collections.emptyList();
20572      private void ensurePolygonIsMutable() {
20573        if (!((bitField0_ & 0x00000001) != 0)) {
20574          polygon_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon>(polygon_);
20575          bitField0_ |= 0x00000001;
20576         }
20577      }
20578
20579      private com.google.protobuf.RepeatedFieldBuilderV3<
20580          org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon, org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.PolygonOrBuilder> polygonBuilder_;
20581
20582      /**
20583       * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20584       */
20585      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon> getPolygonList() {
20586        if (polygonBuilder_ == null) {
20587          return java.util.Collections.unmodifiableList(polygon_);
20588        } else {
20589          return polygonBuilder_.getMessageList();
20590        }
20591      }
20592      /**
20593       * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20594       */
20595      public int getPolygonCount() {
20596        if (polygonBuilder_ == null) {
20597          return polygon_.size();
20598        } else {
20599          return polygonBuilder_.getCount();
20600        }
20601      }
20602      /**
20603       * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20604       */
20605      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon getPolygon(int index) {
20606        if (polygonBuilder_ == null) {
20607          return polygon_.get(index);
20608        } else {
20609          return polygonBuilder_.getMessage(index);
20610        }
20611      }
20612      /**
20613       * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20614       */
20615      public Builder setPolygon(
20616          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon value) {
20617        if (polygonBuilder_ == null) {
20618          if (value == null) {
20619            throw new NullPointerException();
20620          }
20621          ensurePolygonIsMutable();
20622          polygon_.set(index, value);
20623          onChanged();
20624        } else {
20625          polygonBuilder_.setMessage(index, value);
20626        }
20627        return this;
20628      }
20629      /**
20630       * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20631       */
20632      public Builder setPolygon(
20633          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.Builder builderForValue) {
20634        if (polygonBuilder_ == null) {
20635          ensurePolygonIsMutable();
20636          polygon_.set(index, builderForValue.build());
20637          onChanged();
20638        } else {
20639          polygonBuilder_.setMessage(index, builderForValue.build());
20640        }
20641        return this;
20642      }
20643      /**
20644       * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20645       */
20646      public Builder addPolygon(org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon value) {
20647        if (polygonBuilder_ == null) {
20648          if (value == null) {
20649            throw new NullPointerException();
20650          }
20651          ensurePolygonIsMutable();
20652          polygon_.add(value);
20653          onChanged();
20654        } else {
20655          polygonBuilder_.addMessage(value);
20656        }
20657        return this;
20658      }
20659      /**
20660       * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20661       */
20662      public Builder addPolygon(
20663          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon value) {
20664        if (polygonBuilder_ == null) {
20665          if (value == null) {
20666            throw new NullPointerException();
20667          }
20668          ensurePolygonIsMutable();
20669          polygon_.add(index, value);
20670          onChanged();
20671        } else {
20672          polygonBuilder_.addMessage(index, value);
20673        }
20674        return this;
20675      }
20676      /**
20677       * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20678       */
20679      public Builder addPolygon(
20680          org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.Builder builderForValue) {
20681        if (polygonBuilder_ == null) {
20682          ensurePolygonIsMutable();
20683          polygon_.add(builderForValue.build());
20684          onChanged();
20685        } else {
20686          polygonBuilder_.addMessage(builderForValue.build());
20687        }
20688        return this;
20689      }
20690      /**
20691       * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20692       */
20693      public Builder addPolygon(
20694          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.Builder builderForValue) {
20695        if (polygonBuilder_ == null) {
20696          ensurePolygonIsMutable();
20697          polygon_.add(index, builderForValue.build());
20698          onChanged();
20699        } else {
20700          polygonBuilder_.addMessage(index, builderForValue.build());
20701        }
20702        return this;
20703      }
20704      /**
20705       * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20706       */
20707      public Builder addAllPolygon(
20708          java.lang.Iterable<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon> values) {
20709        if (polygonBuilder_ == null) {
20710          ensurePolygonIsMutable();
20711          com.google.protobuf.AbstractMessageLite.Builder.addAll(
20712              values, polygon_);
20713          onChanged();
20714        } else {
20715          polygonBuilder_.addAllMessages(values);
20716        }
20717        return this;
20718      }
20719      /**
20720       * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20721       */
20722      public Builder clearPolygon() {
20723        if (polygonBuilder_ == null) {
20724          polygon_ = java.util.Collections.emptyList();
20725          bitField0_ = (bitField0_ & ~0x00000001);
20726          onChanged();
20727        } else {
20728          polygonBuilder_.clear();
20729        }
20730        return this;
20731      }
20732      /**
20733       * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20734       */
20735      public Builder removePolygon(int index) {
20736        if (polygonBuilder_ == null) {
20737          ensurePolygonIsMutable();
20738          polygon_.remove(index);
20739          onChanged();
20740        } else {
20741          polygonBuilder_.remove(index);
20742        }
20743        return this;
20744      }
20745      /**
20746       * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20747       */
20748      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.Builder getPolygonBuilder(
20749          int index) {
20750        return getPolygonFieldBuilder().getBuilder(index);
20751      }
20752      /**
20753       * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20754       */
20755      public org.matsim.contrib.hybridsim.proto.HybridSimProto.PolygonOrBuilder getPolygonOrBuilder(
20756          int index) {
20757        if (polygonBuilder_ == null) {
20758          return polygon_.get(index);  } else {
20759          return polygonBuilder_.getMessageOrBuilder(index);
20760        }
20761      }
20762      /**
20763       * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20764       */
20765      public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.PolygonOrBuilder> 
20766           getPolygonOrBuilderList() {
20767        if (polygonBuilder_ != null) {
20768          return polygonBuilder_.getMessageOrBuilderList();
20769        } else {
20770          return java.util.Collections.unmodifiableList(polygon_);
20771        }
20772      }
20773      /**
20774       * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20775       */
20776      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.Builder addPolygonBuilder() {
20777        return getPolygonFieldBuilder().addBuilder(
20778            org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.getDefaultInstance());
20779      }
20780      /**
20781       * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20782       */
20783      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.Builder addPolygonBuilder(
20784          int index) {
20785        return getPolygonFieldBuilder().addBuilder(
20786            index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.getDefaultInstance());
20787      }
20788      /**
20789       * <code>repeated .hybridsim.Polygon polygon = 4;</code>
20790       */
20791      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.Builder> 
20792           getPolygonBuilderList() {
20793        return getPolygonFieldBuilder().getBuilderList();
20794      }
20795      private com.google.protobuf.RepeatedFieldBuilderV3<
20796          org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon, org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.PolygonOrBuilder> 
20797          getPolygonFieldBuilder() {
20798        if (polygonBuilder_ == null) {
20799          polygonBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
20800              org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon, org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.PolygonOrBuilder>(
20801                  polygon_,
20802                  ((bitField0_ & 0x00000001) != 0),
20803                  getParentForChildren(),
20804                  isClean());
20805          polygon_ = null;
20806        }
20807        return polygonBuilder_;
20808      }
20809      @java.lang.Override
20810      public final Builder setUnknownFields(
20811          final com.google.protobuf.UnknownFieldSet unknownFields) {
20812        return super.setUnknownFields(unknownFields);
20813      }
20814
20815      @java.lang.Override
20816      public final Builder mergeUnknownFields(
20817          final com.google.protobuf.UnknownFieldSet unknownFields) {
20818        return super.mergeUnknownFields(unknownFields);
20819      }
20820
20821
20822      // @@protoc_insertion_point(builder_scope:hybridsim.Subroom)
20823    }
20824
20825    // @@protoc_insertion_point(class_scope:hybridsim.Subroom)
20826    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom DEFAULT_INSTANCE;
20827    static {
20828      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom();
20829    }
20830
20831    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom getDefaultInstance() {
20832      return DEFAULT_INSTANCE;
20833    }
20834
20835    private static final com.google.protobuf.Parser<Subroom>
20836        PARSER = new com.google.protobuf.AbstractParser<Subroom>() {
20837      @java.lang.Override
20838      public Subroom parsePartialFrom(
20839          com.google.protobuf.CodedInputStream input,
20840          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
20841          throws com.google.protobuf.InvalidProtocolBufferException {
20842        return new Subroom(input, extensionRegistry);
20843      }
20844    };
20845
20846    public static com.google.protobuf.Parser<Subroom> parser() {
20847      return PARSER;
20848    }
20849
20850    @java.lang.Override
20851    public com.google.protobuf.Parser<Subroom> getParserForType() {
20852      return PARSER;
20853    }
20854
20855    @java.lang.Override
20856    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Subroom getDefaultInstanceForType() {
20857      return DEFAULT_INSTANCE;
20858    }
20859
20860  }
20861
20862  public interface PolygonOrBuilder extends
20863      // @@protoc_insertion_point(interface_extends:hybridsim.Polygon)
20864      com.google.protobuf.MessageOrBuilder {
20865
20866    /**
20867     * <code>string caption = 1;</code>
20868     * @return The caption.
20869     */
20870    java.lang.String getCaption();
20871    /**
20872     * <code>string caption = 1;</code>
20873     * @return The bytes for caption.
20874     */
20875    com.google.protobuf.ByteString
20876        getCaptionBytes();
20877
20878    /**
20879     * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
20880     */
20881    java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate> 
20882        getCoordinateList();
20883    /**
20884     * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
20885     */
20886    org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getCoordinate(int index);
20887    /**
20888     * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
20889     */
20890    int getCoordinateCount();
20891    /**
20892     * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
20893     */
20894    java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> 
20895        getCoordinateOrBuilderList();
20896    /**
20897     * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
20898     */
20899    org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getCoordinateOrBuilder(
20900        int index);
20901  }
20902  /**
20903   * Protobuf type {@code hybridsim.Polygon}
20904   */
20905  public  static final class Polygon extends
20906      com.google.protobuf.GeneratedMessageV3 implements
20907      // @@protoc_insertion_point(message_implements:hybridsim.Polygon)
20908      PolygonOrBuilder {
20909  private static final long serialVersionUID = 0L;
20910    // Use Polygon.newBuilder() to construct.
20911    private Polygon(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
20912      super(builder);
20913    }
20914    private Polygon() {
20915      caption_ = "";
20916      coordinate_ = java.util.Collections.emptyList();
20917    }
20918
20919    @java.lang.Override
20920    @SuppressWarnings({"unused"})
20921    protected java.lang.Object newInstance(
20922        UnusedPrivateParameter unused) {
20923      return new Polygon();
20924    }
20925
20926    @java.lang.Override
20927    public final com.google.protobuf.UnknownFieldSet
20928    getUnknownFields() {
20929      return this.unknownFields;
20930    }
20931    private Polygon(
20932        com.google.protobuf.CodedInputStream input,
20933        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
20934        throws com.google.protobuf.InvalidProtocolBufferException {
20935      this();
20936      if (extensionRegistry == null) {
20937        throw new java.lang.NullPointerException();
20938      }
20939      int mutable_bitField0_ = 0;
20940      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
20941          com.google.protobuf.UnknownFieldSet.newBuilder();
20942      try {
20943        boolean done = false;
20944        while (!done) {
20945          int tag = input.readTag();
20946          switch (tag) {
20947            case 0:
20948              done = true;
20949              break;
20950            case 10: {
20951              java.lang.String s = input.readStringRequireUtf8();
20952
20953              caption_ = s;
20954              break;
20955            }
20956            case 18: {
20957              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
20958                coordinate_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate>();
20959                mutable_bitField0_ |= 0x00000001;
20960              }
20961              coordinate_.add(
20962                  input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.parser(), extensionRegistry));
20963              break;
20964            }
20965            default: {
20966              if (!parseUnknownField(
20967                  input, unknownFields, extensionRegistry, tag)) {
20968                done = true;
20969              }
20970              break;
20971            }
20972          }
20973        }
20974      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
20975        throw e.setUnfinishedMessage(this);
20976      } catch (java.io.IOException e) {
20977        throw new com.google.protobuf.InvalidProtocolBufferException(
20978            e).setUnfinishedMessage(this);
20979      } finally {
20980        if (((mutable_bitField0_ & 0x00000001) != 0)) {
20981          coordinate_ = java.util.Collections.unmodifiableList(coordinate_);
20982        }
20983        this.unknownFields = unknownFields.build();
20984        makeExtensionsImmutable();
20985      }
20986    }
20987    public static final com.google.protobuf.Descriptors.Descriptor
20988        getDescriptor() {
20989      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Polygon_descriptor;
20990    }
20991
20992    @java.lang.Override
20993    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
20994        internalGetFieldAccessorTable() {
20995      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Polygon_fieldAccessorTable
20996          .ensureFieldAccessorsInitialized(
20997              org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.Builder.class);
20998    }
20999
21000    public static final int CAPTION_FIELD_NUMBER = 1;
21001    private volatile java.lang.Object caption_;
21002    /**
21003     * <code>string caption = 1;</code>
21004     * @return The caption.
21005     */
21006    public java.lang.String getCaption() {
21007      java.lang.Object ref = caption_;
21008      if (ref instanceof java.lang.String) {
21009        return (java.lang.String) ref;
21010      } else {
21011        com.google.protobuf.ByteString bs = 
21012            (com.google.protobuf.ByteString) ref;
21013        java.lang.String s = bs.toStringUtf8();
21014        caption_ = s;
21015        return s;
21016      }
21017    }
21018    /**
21019     * <code>string caption = 1;</code>
21020     * @return The bytes for caption.
21021     */
21022    public com.google.protobuf.ByteString
21023        getCaptionBytes() {
21024      java.lang.Object ref = caption_;
21025      if (ref instanceof java.lang.String) {
21026        com.google.protobuf.ByteString b = 
21027            com.google.protobuf.ByteString.copyFromUtf8(
21028                (java.lang.String) ref);
21029        caption_ = b;
21030        return b;
21031      } else {
21032        return (com.google.protobuf.ByteString) ref;
21033      }
21034    }
21035
21036    public static final int COORDINATE_FIELD_NUMBER = 2;
21037    private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate> coordinate_;
21038    /**
21039     * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21040     */
21041    public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate> getCoordinateList() {
21042      return coordinate_;
21043    }
21044    /**
21045     * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21046     */
21047    public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> 
21048        getCoordinateOrBuilderList() {
21049      return coordinate_;
21050    }
21051    /**
21052     * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21053     */
21054    public int getCoordinateCount() {
21055      return coordinate_.size();
21056    }
21057    /**
21058     * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21059     */
21060    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getCoordinate(int index) {
21061      return coordinate_.get(index);
21062    }
21063    /**
21064     * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21065     */
21066    public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getCoordinateOrBuilder(
21067        int index) {
21068      return coordinate_.get(index);
21069    }
21070
21071    private byte memoizedIsInitialized = -1;
21072    @java.lang.Override
21073    public final boolean isInitialized() {
21074      byte isInitialized = memoizedIsInitialized;
21075      if (isInitialized == 1) return true;
21076      if (isInitialized == 0) return false;
21077
21078      memoizedIsInitialized = 1;
21079      return true;
21080    }
21081
21082    @java.lang.Override
21083    public void writeTo(com.google.protobuf.CodedOutputStream output)
21084                        throws java.io.IOException {
21085      if (!getCaptionBytes().isEmpty()) {
21086        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, caption_);
21087      }
21088      for (int i = 0; i < coordinate_.size(); i++) {
21089        output.writeMessage(2, coordinate_.get(i));
21090      }
21091      unknownFields.writeTo(output);
21092    }
21093
21094    @java.lang.Override
21095    public int getSerializedSize() {
21096      int size = memoizedSize;
21097      if (size != -1) return size;
21098
21099      size = 0;
21100      if (!getCaptionBytes().isEmpty()) {
21101        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, caption_);
21102      }
21103      for (int i = 0; i < coordinate_.size(); i++) {
21104        size += com.google.protobuf.CodedOutputStream
21105          .computeMessageSize(2, coordinate_.get(i));
21106      }
21107      size += unknownFields.getSerializedSize();
21108      memoizedSize = size;
21109      return size;
21110    }
21111
21112    @java.lang.Override
21113    public boolean equals(final java.lang.Object obj) {
21114      if (obj == this) {
21115       return true;
21116      }
21117      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon)) {
21118        return super.equals(obj);
21119      }
21120      org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon) obj;
21121
21122      if (!getCaption()
21123          .equals(other.getCaption())) return false;
21124      if (!getCoordinateList()
21125          .equals(other.getCoordinateList())) return false;
21126      if (!unknownFields.equals(other.unknownFields)) return false;
21127      return true;
21128    }
21129
21130    @java.lang.Override
21131    public int hashCode() {
21132      if (memoizedHashCode != 0) {
21133        return memoizedHashCode;
21134      }
21135      int hash = 41;
21136      hash = (19 * hash) + getDescriptor().hashCode();
21137      hash = (37 * hash) + CAPTION_FIELD_NUMBER;
21138      hash = (53 * hash) + getCaption().hashCode();
21139      if (getCoordinateCount() > 0) {
21140        hash = (37 * hash) + COORDINATE_FIELD_NUMBER;
21141        hash = (53 * hash) + getCoordinateList().hashCode();
21142      }
21143      hash = (29 * hash) + unknownFields.hashCode();
21144      memoizedHashCode = hash;
21145      return hash;
21146    }
21147
21148    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon parseFrom(
21149        java.nio.ByteBuffer data)
21150        throws com.google.protobuf.InvalidProtocolBufferException {
21151      return PARSER.parseFrom(data);
21152    }
21153    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon parseFrom(
21154        java.nio.ByteBuffer data,
21155        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
21156        throws com.google.protobuf.InvalidProtocolBufferException {
21157      return PARSER.parseFrom(data, extensionRegistry);
21158    }
21159    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon parseFrom(
21160        com.google.protobuf.ByteString data)
21161        throws com.google.protobuf.InvalidProtocolBufferException {
21162      return PARSER.parseFrom(data);
21163    }
21164    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon parseFrom(
21165        com.google.protobuf.ByteString data,
21166        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
21167        throws com.google.protobuf.InvalidProtocolBufferException {
21168      return PARSER.parseFrom(data, extensionRegistry);
21169    }
21170    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon parseFrom(byte[] data)
21171        throws com.google.protobuf.InvalidProtocolBufferException {
21172      return PARSER.parseFrom(data);
21173    }
21174    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon parseFrom(
21175        byte[] data,
21176        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
21177        throws com.google.protobuf.InvalidProtocolBufferException {
21178      return PARSER.parseFrom(data, extensionRegistry);
21179    }
21180    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon parseFrom(java.io.InputStream input)
21181        throws java.io.IOException {
21182      return com.google.protobuf.GeneratedMessageV3
21183          .parseWithIOException(PARSER, input);
21184    }
21185    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon parseFrom(
21186        java.io.InputStream input,
21187        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
21188        throws java.io.IOException {
21189      return com.google.protobuf.GeneratedMessageV3
21190          .parseWithIOException(PARSER, input, extensionRegistry);
21191    }
21192    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon parseDelimitedFrom(java.io.InputStream input)
21193        throws java.io.IOException {
21194      return com.google.protobuf.GeneratedMessageV3
21195          .parseDelimitedWithIOException(PARSER, input);
21196    }
21197    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon parseDelimitedFrom(
21198        java.io.InputStream input,
21199        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
21200        throws java.io.IOException {
21201      return com.google.protobuf.GeneratedMessageV3
21202          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
21203    }
21204    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon parseFrom(
21205        com.google.protobuf.CodedInputStream input)
21206        throws java.io.IOException {
21207      return com.google.protobuf.GeneratedMessageV3
21208          .parseWithIOException(PARSER, input);
21209    }
21210    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon parseFrom(
21211        com.google.protobuf.CodedInputStream input,
21212        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
21213        throws java.io.IOException {
21214      return com.google.protobuf.GeneratedMessageV3
21215          .parseWithIOException(PARSER, input, extensionRegistry);
21216    }
21217
21218    @java.lang.Override
21219    public Builder newBuilderForType() { return newBuilder(); }
21220    public static Builder newBuilder() {
21221      return DEFAULT_INSTANCE.toBuilder();
21222    }
21223    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon prototype) {
21224      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
21225    }
21226    @java.lang.Override
21227    public Builder toBuilder() {
21228      return this == DEFAULT_INSTANCE
21229          ? new Builder() : new Builder().mergeFrom(this);
21230    }
21231
21232    @java.lang.Override
21233    protected Builder newBuilderForType(
21234        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
21235      Builder builder = new Builder(parent);
21236      return builder;
21237    }
21238    /**
21239     * Protobuf type {@code hybridsim.Polygon}
21240     */
21241    public static final class Builder extends
21242        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
21243        // @@protoc_insertion_point(builder_implements:hybridsim.Polygon)
21244        org.matsim.contrib.hybridsim.proto.HybridSimProto.PolygonOrBuilder {
21245      public static final com.google.protobuf.Descriptors.Descriptor
21246          getDescriptor() {
21247        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Polygon_descriptor;
21248      }
21249
21250      @java.lang.Override
21251      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
21252          internalGetFieldAccessorTable() {
21253        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Polygon_fieldAccessorTable
21254            .ensureFieldAccessorsInitialized(
21255                org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.Builder.class);
21256      }
21257
21258      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.newBuilder()
21259      private Builder() {
21260        maybeForceBuilderInitialization();
21261      }
21262
21263      private Builder(
21264          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
21265        super(parent);
21266        maybeForceBuilderInitialization();
21267      }
21268      private void maybeForceBuilderInitialization() {
21269        if (com.google.protobuf.GeneratedMessageV3
21270                .alwaysUseFieldBuilders) {
21271          getCoordinateFieldBuilder();
21272        }
21273      }
21274      @java.lang.Override
21275      public Builder clear() {
21276        super.clear();
21277        caption_ = "";
21278
21279        if (coordinateBuilder_ == null) {
21280          coordinate_ = java.util.Collections.emptyList();
21281          bitField0_ = (bitField0_ & ~0x00000001);
21282        } else {
21283          coordinateBuilder_.clear();
21284        }
21285        return this;
21286      }
21287
21288      @java.lang.Override
21289      public com.google.protobuf.Descriptors.Descriptor
21290          getDescriptorForType() {
21291        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Polygon_descriptor;
21292      }
21293
21294      @java.lang.Override
21295      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon getDefaultInstanceForType() {
21296        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.getDefaultInstance();
21297      }
21298
21299      @java.lang.Override
21300      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon build() {
21301        org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon result = buildPartial();
21302        if (!result.isInitialized()) {
21303          throw newUninitializedMessageException(result);
21304        }
21305        return result;
21306      }
21307
21308      @java.lang.Override
21309      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon buildPartial() {
21310        org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon(this);
21311        int from_bitField0_ = bitField0_;
21312        result.caption_ = caption_;
21313        if (coordinateBuilder_ == null) {
21314          if (((bitField0_ & 0x00000001) != 0)) {
21315            coordinate_ = java.util.Collections.unmodifiableList(coordinate_);
21316            bitField0_ = (bitField0_ & ~0x00000001);
21317          }
21318          result.coordinate_ = coordinate_;
21319        } else {
21320          result.coordinate_ = coordinateBuilder_.build();
21321        }
21322        onBuilt();
21323        return result;
21324      }
21325
21326      @java.lang.Override
21327      public Builder clone() {
21328        return super.clone();
21329      }
21330      @java.lang.Override
21331      public Builder setField(
21332          com.google.protobuf.Descriptors.FieldDescriptor field,
21333          java.lang.Object value) {
21334        return super.setField(field, value);
21335      }
21336      @java.lang.Override
21337      public Builder clearField(
21338          com.google.protobuf.Descriptors.FieldDescriptor field) {
21339        return super.clearField(field);
21340      }
21341      @java.lang.Override
21342      public Builder clearOneof(
21343          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
21344        return super.clearOneof(oneof);
21345      }
21346      @java.lang.Override
21347      public Builder setRepeatedField(
21348          com.google.protobuf.Descriptors.FieldDescriptor field,
21349          int index, java.lang.Object value) {
21350        return super.setRepeatedField(field, index, value);
21351      }
21352      @java.lang.Override
21353      public Builder addRepeatedField(
21354          com.google.protobuf.Descriptors.FieldDescriptor field,
21355          java.lang.Object value) {
21356        return super.addRepeatedField(field, value);
21357      }
21358      @java.lang.Override
21359      public Builder mergeFrom(com.google.protobuf.Message other) {
21360        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon) {
21361          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon)other);
21362        } else {
21363          super.mergeFrom(other);
21364          return this;
21365        }
21366      }
21367
21368      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon other) {
21369        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon.getDefaultInstance()) return this;
21370        if (!other.getCaption().isEmpty()) {
21371          caption_ = other.caption_;
21372          onChanged();
21373        }
21374        if (coordinateBuilder_ == null) {
21375          if (!other.coordinate_.isEmpty()) {
21376            if (coordinate_.isEmpty()) {
21377              coordinate_ = other.coordinate_;
21378              bitField0_ = (bitField0_ & ~0x00000001);
21379            } else {
21380              ensureCoordinateIsMutable();
21381              coordinate_.addAll(other.coordinate_);
21382            }
21383            onChanged();
21384          }
21385        } else {
21386          if (!other.coordinate_.isEmpty()) {
21387            if (coordinateBuilder_.isEmpty()) {
21388              coordinateBuilder_.dispose();
21389              coordinateBuilder_ = null;
21390              coordinate_ = other.coordinate_;
21391              bitField0_ = (bitField0_ & ~0x00000001);
21392              coordinateBuilder_ = 
21393                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
21394                   getCoordinateFieldBuilder() : null;
21395            } else {
21396              coordinateBuilder_.addAllMessages(other.coordinate_);
21397            }
21398          }
21399        }
21400        this.mergeUnknownFields(other.unknownFields);
21401        onChanged();
21402        return this;
21403      }
21404
21405      @java.lang.Override
21406      public final boolean isInitialized() {
21407        return true;
21408      }
21409
21410      @java.lang.Override
21411      public Builder mergeFrom(
21412          com.google.protobuf.CodedInputStream input,
21413          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
21414          throws java.io.IOException {
21415        org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon parsedMessage = null;
21416        try {
21417          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
21418        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
21419          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon) e.getUnfinishedMessage();
21420          throw e.unwrapIOException();
21421        } finally {
21422          if (parsedMessage != null) {
21423            mergeFrom(parsedMessage);
21424          }
21425        }
21426        return this;
21427      }
21428      private int bitField0_;
21429
21430      private java.lang.Object caption_ = "";
21431      /**
21432       * <code>string caption = 1;</code>
21433       * @return The caption.
21434       */
21435      public java.lang.String getCaption() {
21436        java.lang.Object ref = caption_;
21437        if (!(ref instanceof java.lang.String)) {
21438          com.google.protobuf.ByteString bs =
21439              (com.google.protobuf.ByteString) ref;
21440          java.lang.String s = bs.toStringUtf8();
21441          caption_ = s;
21442          return s;
21443        } else {
21444          return (java.lang.String) ref;
21445        }
21446      }
21447      /**
21448       * <code>string caption = 1;</code>
21449       * @return The bytes for caption.
21450       */
21451      public com.google.protobuf.ByteString
21452          getCaptionBytes() {
21453        java.lang.Object ref = caption_;
21454        if (ref instanceof String) {
21455          com.google.protobuf.ByteString b = 
21456              com.google.protobuf.ByteString.copyFromUtf8(
21457                  (java.lang.String) ref);
21458          caption_ = b;
21459          return b;
21460        } else {
21461          return (com.google.protobuf.ByteString) ref;
21462        }
21463      }
21464      /**
21465       * <code>string caption = 1;</code>
21466       * @param value The caption to set.
21467       * @return This builder for chaining.
21468       */
21469      public Builder setCaption(
21470          java.lang.String value) {
21471        if (value == null) {
21472    throw new NullPointerException();
21473  }
21474  
21475        caption_ = value;
21476        onChanged();
21477        return this;
21478      }
21479      /**
21480       * <code>string caption = 1;</code>
21481       * @return This builder for chaining.
21482       */
21483      public Builder clearCaption() {
21484        
21485        caption_ = getDefaultInstance().getCaption();
21486        onChanged();
21487        return this;
21488      }
21489      /**
21490       * <code>string caption = 1;</code>
21491       * @param value The bytes for caption to set.
21492       * @return This builder for chaining.
21493       */
21494      public Builder setCaptionBytes(
21495          com.google.protobuf.ByteString value) {
21496        if (value == null) {
21497    throw new NullPointerException();
21498  }
21499  checkByteStringIsUtf8(value);
21500        
21501        caption_ = value;
21502        onChanged();
21503        return this;
21504      }
21505
21506      private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate> coordinate_ =
21507        java.util.Collections.emptyList();
21508      private void ensureCoordinateIsMutable() {
21509        if (!((bitField0_ & 0x00000001) != 0)) {
21510          coordinate_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate>(coordinate_);
21511          bitField0_ |= 0x00000001;
21512         }
21513      }
21514
21515      private com.google.protobuf.RepeatedFieldBuilderV3<
21516          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> coordinateBuilder_;
21517
21518      /**
21519       * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21520       */
21521      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate> getCoordinateList() {
21522        if (coordinateBuilder_ == null) {
21523          return java.util.Collections.unmodifiableList(coordinate_);
21524        } else {
21525          return coordinateBuilder_.getMessageList();
21526        }
21527      }
21528      /**
21529       * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21530       */
21531      public int getCoordinateCount() {
21532        if (coordinateBuilder_ == null) {
21533          return coordinate_.size();
21534        } else {
21535          return coordinateBuilder_.getCount();
21536        }
21537      }
21538      /**
21539       * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21540       */
21541      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getCoordinate(int index) {
21542        if (coordinateBuilder_ == null) {
21543          return coordinate_.get(index);
21544        } else {
21545          return coordinateBuilder_.getMessage(index);
21546        }
21547      }
21548      /**
21549       * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21550       */
21551      public Builder setCoordinate(
21552          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
21553        if (coordinateBuilder_ == null) {
21554          if (value == null) {
21555            throw new NullPointerException();
21556          }
21557          ensureCoordinateIsMutable();
21558          coordinate_.set(index, value);
21559          onChanged();
21560        } else {
21561          coordinateBuilder_.setMessage(index, value);
21562        }
21563        return this;
21564      }
21565      /**
21566       * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21567       */
21568      public Builder setCoordinate(
21569          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder builderForValue) {
21570        if (coordinateBuilder_ == null) {
21571          ensureCoordinateIsMutable();
21572          coordinate_.set(index, builderForValue.build());
21573          onChanged();
21574        } else {
21575          coordinateBuilder_.setMessage(index, builderForValue.build());
21576        }
21577        return this;
21578      }
21579      /**
21580       * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21581       */
21582      public Builder addCoordinate(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
21583        if (coordinateBuilder_ == null) {
21584          if (value == null) {
21585            throw new NullPointerException();
21586          }
21587          ensureCoordinateIsMutable();
21588          coordinate_.add(value);
21589          onChanged();
21590        } else {
21591          coordinateBuilder_.addMessage(value);
21592        }
21593        return this;
21594      }
21595      /**
21596       * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21597       */
21598      public Builder addCoordinate(
21599          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
21600        if (coordinateBuilder_ == null) {
21601          if (value == null) {
21602            throw new NullPointerException();
21603          }
21604          ensureCoordinateIsMutable();
21605          coordinate_.add(index, value);
21606          onChanged();
21607        } else {
21608          coordinateBuilder_.addMessage(index, value);
21609        }
21610        return this;
21611      }
21612      /**
21613       * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21614       */
21615      public Builder addCoordinate(
21616          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder builderForValue) {
21617        if (coordinateBuilder_ == null) {
21618          ensureCoordinateIsMutable();
21619          coordinate_.add(builderForValue.build());
21620          onChanged();
21621        } else {
21622          coordinateBuilder_.addMessage(builderForValue.build());
21623        }
21624        return this;
21625      }
21626      /**
21627       * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21628       */
21629      public Builder addCoordinate(
21630          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder builderForValue) {
21631        if (coordinateBuilder_ == null) {
21632          ensureCoordinateIsMutable();
21633          coordinate_.add(index, builderForValue.build());
21634          onChanged();
21635        } else {
21636          coordinateBuilder_.addMessage(index, builderForValue.build());
21637        }
21638        return this;
21639      }
21640      /**
21641       * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21642       */
21643      public Builder addAllCoordinate(
21644          java.lang.Iterable<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate> values) {
21645        if (coordinateBuilder_ == null) {
21646          ensureCoordinateIsMutable();
21647          com.google.protobuf.AbstractMessageLite.Builder.addAll(
21648              values, coordinate_);
21649          onChanged();
21650        } else {
21651          coordinateBuilder_.addAllMessages(values);
21652        }
21653        return this;
21654      }
21655      /**
21656       * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21657       */
21658      public Builder clearCoordinate() {
21659        if (coordinateBuilder_ == null) {
21660          coordinate_ = java.util.Collections.emptyList();
21661          bitField0_ = (bitField0_ & ~0x00000001);
21662          onChanged();
21663        } else {
21664          coordinateBuilder_.clear();
21665        }
21666        return this;
21667      }
21668      /**
21669       * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21670       */
21671      public Builder removeCoordinate(int index) {
21672        if (coordinateBuilder_ == null) {
21673          ensureCoordinateIsMutable();
21674          coordinate_.remove(index);
21675          onChanged();
21676        } else {
21677          coordinateBuilder_.remove(index);
21678        }
21679        return this;
21680      }
21681      /**
21682       * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21683       */
21684      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder getCoordinateBuilder(
21685          int index) {
21686        return getCoordinateFieldBuilder().getBuilder(index);
21687      }
21688      /**
21689       * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21690       */
21691      public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getCoordinateOrBuilder(
21692          int index) {
21693        if (coordinateBuilder_ == null) {
21694          return coordinate_.get(index);  } else {
21695          return coordinateBuilder_.getMessageOrBuilder(index);
21696        }
21697      }
21698      /**
21699       * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21700       */
21701      public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> 
21702           getCoordinateOrBuilderList() {
21703        if (coordinateBuilder_ != null) {
21704          return coordinateBuilder_.getMessageOrBuilderList();
21705        } else {
21706          return java.util.Collections.unmodifiableList(coordinate_);
21707        }
21708      }
21709      /**
21710       * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21711       */
21712      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder addCoordinateBuilder() {
21713        return getCoordinateFieldBuilder().addBuilder(
21714            org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance());
21715      }
21716      /**
21717       * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21718       */
21719      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder addCoordinateBuilder(
21720          int index) {
21721        return getCoordinateFieldBuilder().addBuilder(
21722            index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance());
21723      }
21724      /**
21725       * <code>repeated .hybridsim.Coordinate coordinate = 2;</code>
21726       */
21727      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder> 
21728           getCoordinateBuilderList() {
21729        return getCoordinateFieldBuilder().getBuilderList();
21730      }
21731      private com.google.protobuf.RepeatedFieldBuilderV3<
21732          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> 
21733          getCoordinateFieldBuilder() {
21734        if (coordinateBuilder_ == null) {
21735          coordinateBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
21736              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder>(
21737                  coordinate_,
21738                  ((bitField0_ & 0x00000001) != 0),
21739                  getParentForChildren(),
21740                  isClean());
21741          coordinate_ = null;
21742        }
21743        return coordinateBuilder_;
21744      }
21745      @java.lang.Override
21746      public final Builder setUnknownFields(
21747          final com.google.protobuf.UnknownFieldSet unknownFields) {
21748        return super.setUnknownFields(unknownFields);
21749      }
21750
21751      @java.lang.Override
21752      public final Builder mergeUnknownFields(
21753          final com.google.protobuf.UnknownFieldSet unknownFields) {
21754        return super.mergeUnknownFields(unknownFields);
21755      }
21756
21757
21758      // @@protoc_insertion_point(builder_scope:hybridsim.Polygon)
21759    }
21760
21761    // @@protoc_insertion_point(class_scope:hybridsim.Polygon)
21762    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon DEFAULT_INSTANCE;
21763    static {
21764      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon();
21765    }
21766
21767    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon getDefaultInstance() {
21768      return DEFAULT_INSTANCE;
21769    }
21770
21771    private static final com.google.protobuf.Parser<Polygon>
21772        PARSER = new com.google.protobuf.AbstractParser<Polygon>() {
21773      @java.lang.Override
21774      public Polygon parsePartialFrom(
21775          com.google.protobuf.CodedInputStream input,
21776          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
21777          throws com.google.protobuf.InvalidProtocolBufferException {
21778        return new Polygon(input, extensionRegistry);
21779      }
21780    };
21781
21782    public static com.google.protobuf.Parser<Polygon> parser() {
21783      return PARSER;
21784    }
21785
21786    @java.lang.Override
21787    public com.google.protobuf.Parser<Polygon> getParserForType() {
21788      return PARSER;
21789    }
21790
21791    @java.lang.Override
21792    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Polygon getDefaultInstanceForType() {
21793      return DEFAULT_INSTANCE;
21794    }
21795
21796  }
21797
21798  public interface LeftClosedRightOpenTimeIntervalOrBuilder extends
21799      // @@protoc_insertion_point(interface_extends:hybridsim.LeftClosedRightOpenTimeInterval)
21800      com.google.protobuf.MessageOrBuilder {
21801
21802    /**
21803     * <code>double fromTimeIncluding = 1;</code>
21804     * @return The fromTimeIncluding.
21805     */
21806    double getFromTimeIncluding();
21807
21808    /**
21809     * <code>double toTimeExcluding = 2;</code>
21810     * @return The toTimeExcluding.
21811     */
21812    double getToTimeExcluding();
21813  }
21814  /**
21815   * Protobuf type {@code hybridsim.LeftClosedRightOpenTimeInterval}
21816   */
21817  public  static final class LeftClosedRightOpenTimeInterval extends
21818      com.google.protobuf.GeneratedMessageV3 implements
21819      // @@protoc_insertion_point(message_implements:hybridsim.LeftClosedRightOpenTimeInterval)
21820      LeftClosedRightOpenTimeIntervalOrBuilder {
21821  private static final long serialVersionUID = 0L;
21822    // Use LeftClosedRightOpenTimeInterval.newBuilder() to construct.
21823    private LeftClosedRightOpenTimeInterval(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
21824      super(builder);
21825    }
21826    private LeftClosedRightOpenTimeInterval() {
21827    }
21828
21829    @java.lang.Override
21830    @SuppressWarnings({"unused"})
21831    protected java.lang.Object newInstance(
21832        UnusedPrivateParameter unused) {
21833      return new LeftClosedRightOpenTimeInterval();
21834    }
21835
21836    @java.lang.Override
21837    public final com.google.protobuf.UnknownFieldSet
21838    getUnknownFields() {
21839      return this.unknownFields;
21840    }
21841    private LeftClosedRightOpenTimeInterval(
21842        com.google.protobuf.CodedInputStream input,
21843        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
21844        throws com.google.protobuf.InvalidProtocolBufferException {
21845      this();
21846      if (extensionRegistry == null) {
21847        throw new java.lang.NullPointerException();
21848      }
21849      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
21850          com.google.protobuf.UnknownFieldSet.newBuilder();
21851      try {
21852        boolean done = false;
21853        while (!done) {
21854          int tag = input.readTag();
21855          switch (tag) {
21856            case 0:
21857              done = true;
21858              break;
21859            case 9: {
21860
21861              fromTimeIncluding_ = input.readDouble();
21862              break;
21863            }
21864            case 17: {
21865
21866              toTimeExcluding_ = input.readDouble();
21867              break;
21868            }
21869            default: {
21870              if (!parseUnknownField(
21871                  input, unknownFields, extensionRegistry, tag)) {
21872                done = true;
21873              }
21874              break;
21875            }
21876          }
21877        }
21878      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
21879        throw e.setUnfinishedMessage(this);
21880      } catch (java.io.IOException e) {
21881        throw new com.google.protobuf.InvalidProtocolBufferException(
21882            e).setUnfinishedMessage(this);
21883      } finally {
21884        this.unknownFields = unknownFields.build();
21885        makeExtensionsImmutable();
21886      }
21887    }
21888    public static final com.google.protobuf.Descriptors.Descriptor
21889        getDescriptor() {
21890      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_LeftClosedRightOpenTimeInterval_descriptor;
21891    }
21892
21893    @java.lang.Override
21894    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
21895        internalGetFieldAccessorTable() {
21896      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_LeftClosedRightOpenTimeInterval_fieldAccessorTable
21897          .ensureFieldAccessorsInitialized(
21898              org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval.Builder.class);
21899    }
21900
21901    public static final int FROMTIMEINCLUDING_FIELD_NUMBER = 1;
21902    private double fromTimeIncluding_;
21903    /**
21904     * <code>double fromTimeIncluding = 1;</code>
21905     * @return The fromTimeIncluding.
21906     */
21907    public double getFromTimeIncluding() {
21908      return fromTimeIncluding_;
21909    }
21910
21911    public static final int TOTIMEEXCLUDING_FIELD_NUMBER = 2;
21912    private double toTimeExcluding_;
21913    /**
21914     * <code>double toTimeExcluding = 2;</code>
21915     * @return The toTimeExcluding.
21916     */
21917    public double getToTimeExcluding() {
21918      return toTimeExcluding_;
21919    }
21920
21921    private byte memoizedIsInitialized = -1;
21922    @java.lang.Override
21923    public final boolean isInitialized() {
21924      byte isInitialized = memoizedIsInitialized;
21925      if (isInitialized == 1) return true;
21926      if (isInitialized == 0) return false;
21927
21928      memoizedIsInitialized = 1;
21929      return true;
21930    }
21931
21932    @java.lang.Override
21933    public void writeTo(com.google.protobuf.CodedOutputStream output)
21934                        throws java.io.IOException {
21935      if (fromTimeIncluding_ != 0D) {
21936        output.writeDouble(1, fromTimeIncluding_);
21937      }
21938      if (toTimeExcluding_ != 0D) {
21939        output.writeDouble(2, toTimeExcluding_);
21940      }
21941      unknownFields.writeTo(output);
21942    }
21943
21944    @java.lang.Override
21945    public int getSerializedSize() {
21946      int size = memoizedSize;
21947      if (size != -1) return size;
21948
21949      size = 0;
21950      if (fromTimeIncluding_ != 0D) {
21951        size += com.google.protobuf.CodedOutputStream
21952          .computeDoubleSize(1, fromTimeIncluding_);
21953      }
21954      if (toTimeExcluding_ != 0D) {
21955        size += com.google.protobuf.CodedOutputStream
21956          .computeDoubleSize(2, toTimeExcluding_);
21957      }
21958      size += unknownFields.getSerializedSize();
21959      memoizedSize = size;
21960      return size;
21961    }
21962
21963    @java.lang.Override
21964    public boolean equals(final java.lang.Object obj) {
21965      if (obj == this) {
21966       return true;
21967      }
21968      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval)) {
21969        return super.equals(obj);
21970      }
21971      org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval) obj;
21972
21973      if (java.lang.Double.doubleToLongBits(getFromTimeIncluding())
21974          != java.lang.Double.doubleToLongBits(
21975              other.getFromTimeIncluding())) return false;
21976      if (java.lang.Double.doubleToLongBits(getToTimeExcluding())
21977          != java.lang.Double.doubleToLongBits(
21978              other.getToTimeExcluding())) return false;
21979      if (!unknownFields.equals(other.unknownFields)) return false;
21980      return true;
21981    }
21982
21983    @java.lang.Override
21984    public int hashCode() {
21985      if (memoizedHashCode != 0) {
21986        return memoizedHashCode;
21987      }
21988      int hash = 41;
21989      hash = (19 * hash) + getDescriptor().hashCode();
21990      hash = (37 * hash) + FROMTIMEINCLUDING_FIELD_NUMBER;
21991      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
21992          java.lang.Double.doubleToLongBits(getFromTimeIncluding()));
21993      hash = (37 * hash) + TOTIMEEXCLUDING_FIELD_NUMBER;
21994      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
21995          java.lang.Double.doubleToLongBits(getToTimeExcluding()));
21996      hash = (29 * hash) + unknownFields.hashCode();
21997      memoizedHashCode = hash;
21998      return hash;
21999    }
22000
22001    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval parseFrom(
22002        java.nio.ByteBuffer data)
22003        throws com.google.protobuf.InvalidProtocolBufferException {
22004      return PARSER.parseFrom(data);
22005    }
22006    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval parseFrom(
22007        java.nio.ByteBuffer data,
22008        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22009        throws com.google.protobuf.InvalidProtocolBufferException {
22010      return PARSER.parseFrom(data, extensionRegistry);
22011    }
22012    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval parseFrom(
22013        com.google.protobuf.ByteString data)
22014        throws com.google.protobuf.InvalidProtocolBufferException {
22015      return PARSER.parseFrom(data);
22016    }
22017    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval parseFrom(
22018        com.google.protobuf.ByteString data,
22019        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22020        throws com.google.protobuf.InvalidProtocolBufferException {
22021      return PARSER.parseFrom(data, extensionRegistry);
22022    }
22023    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval parseFrom(byte[] data)
22024        throws com.google.protobuf.InvalidProtocolBufferException {
22025      return PARSER.parseFrom(data);
22026    }
22027    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval parseFrom(
22028        byte[] data,
22029        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22030        throws com.google.protobuf.InvalidProtocolBufferException {
22031      return PARSER.parseFrom(data, extensionRegistry);
22032    }
22033    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval parseFrom(java.io.InputStream input)
22034        throws java.io.IOException {
22035      return com.google.protobuf.GeneratedMessageV3
22036          .parseWithIOException(PARSER, input);
22037    }
22038    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval parseFrom(
22039        java.io.InputStream input,
22040        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22041        throws java.io.IOException {
22042      return com.google.protobuf.GeneratedMessageV3
22043          .parseWithIOException(PARSER, input, extensionRegistry);
22044    }
22045    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval parseDelimitedFrom(java.io.InputStream input)
22046        throws java.io.IOException {
22047      return com.google.protobuf.GeneratedMessageV3
22048          .parseDelimitedWithIOException(PARSER, input);
22049    }
22050    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval parseDelimitedFrom(
22051        java.io.InputStream input,
22052        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22053        throws java.io.IOException {
22054      return com.google.protobuf.GeneratedMessageV3
22055          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
22056    }
22057    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval parseFrom(
22058        com.google.protobuf.CodedInputStream input)
22059        throws java.io.IOException {
22060      return com.google.protobuf.GeneratedMessageV3
22061          .parseWithIOException(PARSER, input);
22062    }
22063    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval parseFrom(
22064        com.google.protobuf.CodedInputStream input,
22065        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22066        throws java.io.IOException {
22067      return com.google.protobuf.GeneratedMessageV3
22068          .parseWithIOException(PARSER, input, extensionRegistry);
22069    }
22070
22071    @java.lang.Override
22072    public Builder newBuilderForType() { return newBuilder(); }
22073    public static Builder newBuilder() {
22074      return DEFAULT_INSTANCE.toBuilder();
22075    }
22076    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval prototype) {
22077      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
22078    }
22079    @java.lang.Override
22080    public Builder toBuilder() {
22081      return this == DEFAULT_INSTANCE
22082          ? new Builder() : new Builder().mergeFrom(this);
22083    }
22084
22085    @java.lang.Override
22086    protected Builder newBuilderForType(
22087        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
22088      Builder builder = new Builder(parent);
22089      return builder;
22090    }
22091    /**
22092     * Protobuf type {@code hybridsim.LeftClosedRightOpenTimeInterval}
22093     */
22094    public static final class Builder extends
22095        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
22096        // @@protoc_insertion_point(builder_implements:hybridsim.LeftClosedRightOpenTimeInterval)
22097        org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeIntervalOrBuilder {
22098      public static final com.google.protobuf.Descriptors.Descriptor
22099          getDescriptor() {
22100        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_LeftClosedRightOpenTimeInterval_descriptor;
22101      }
22102
22103      @java.lang.Override
22104      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
22105          internalGetFieldAccessorTable() {
22106        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_LeftClosedRightOpenTimeInterval_fieldAccessorTable
22107            .ensureFieldAccessorsInitialized(
22108                org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval.Builder.class);
22109      }
22110
22111      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval.newBuilder()
22112      private Builder() {
22113        maybeForceBuilderInitialization();
22114      }
22115
22116      private Builder(
22117          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
22118        super(parent);
22119        maybeForceBuilderInitialization();
22120      }
22121      private void maybeForceBuilderInitialization() {
22122        if (com.google.protobuf.GeneratedMessageV3
22123                .alwaysUseFieldBuilders) {
22124        }
22125      }
22126      @java.lang.Override
22127      public Builder clear() {
22128        super.clear();
22129        fromTimeIncluding_ = 0D;
22130
22131        toTimeExcluding_ = 0D;
22132
22133        return this;
22134      }
22135
22136      @java.lang.Override
22137      public com.google.protobuf.Descriptors.Descriptor
22138          getDescriptorForType() {
22139        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_LeftClosedRightOpenTimeInterval_descriptor;
22140      }
22141
22142      @java.lang.Override
22143      public org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval getDefaultInstanceForType() {
22144        return org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval.getDefaultInstance();
22145      }
22146
22147      @java.lang.Override
22148      public org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval build() {
22149        org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval result = buildPartial();
22150        if (!result.isInitialized()) {
22151          throw newUninitializedMessageException(result);
22152        }
22153        return result;
22154      }
22155
22156      @java.lang.Override
22157      public org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval buildPartial() {
22158        org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval(this);
22159        result.fromTimeIncluding_ = fromTimeIncluding_;
22160        result.toTimeExcluding_ = toTimeExcluding_;
22161        onBuilt();
22162        return result;
22163      }
22164
22165      @java.lang.Override
22166      public Builder clone() {
22167        return super.clone();
22168      }
22169      @java.lang.Override
22170      public Builder setField(
22171          com.google.protobuf.Descriptors.FieldDescriptor field,
22172          java.lang.Object value) {
22173        return super.setField(field, value);
22174      }
22175      @java.lang.Override
22176      public Builder clearField(
22177          com.google.protobuf.Descriptors.FieldDescriptor field) {
22178        return super.clearField(field);
22179      }
22180      @java.lang.Override
22181      public Builder clearOneof(
22182          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
22183        return super.clearOneof(oneof);
22184      }
22185      @java.lang.Override
22186      public Builder setRepeatedField(
22187          com.google.protobuf.Descriptors.FieldDescriptor field,
22188          int index, java.lang.Object value) {
22189        return super.setRepeatedField(field, index, value);
22190      }
22191      @java.lang.Override
22192      public Builder addRepeatedField(
22193          com.google.protobuf.Descriptors.FieldDescriptor field,
22194          java.lang.Object value) {
22195        return super.addRepeatedField(field, value);
22196      }
22197      @java.lang.Override
22198      public Builder mergeFrom(com.google.protobuf.Message other) {
22199        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval) {
22200          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval)other);
22201        } else {
22202          super.mergeFrom(other);
22203          return this;
22204        }
22205      }
22206
22207      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval other) {
22208        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval.getDefaultInstance()) return this;
22209        if (other.getFromTimeIncluding() != 0D) {
22210          setFromTimeIncluding(other.getFromTimeIncluding());
22211        }
22212        if (other.getToTimeExcluding() != 0D) {
22213          setToTimeExcluding(other.getToTimeExcluding());
22214        }
22215        this.mergeUnknownFields(other.unknownFields);
22216        onChanged();
22217        return this;
22218      }
22219
22220      @java.lang.Override
22221      public final boolean isInitialized() {
22222        return true;
22223      }
22224
22225      @java.lang.Override
22226      public Builder mergeFrom(
22227          com.google.protobuf.CodedInputStream input,
22228          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22229          throws java.io.IOException {
22230        org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval parsedMessage = null;
22231        try {
22232          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
22233        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
22234          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval) e.getUnfinishedMessage();
22235          throw e.unwrapIOException();
22236        } finally {
22237          if (parsedMessage != null) {
22238            mergeFrom(parsedMessage);
22239          }
22240        }
22241        return this;
22242      }
22243
22244      private double fromTimeIncluding_ ;
22245      /**
22246       * <code>double fromTimeIncluding = 1;</code>
22247       * @return The fromTimeIncluding.
22248       */
22249      public double getFromTimeIncluding() {
22250        return fromTimeIncluding_;
22251      }
22252      /**
22253       * <code>double fromTimeIncluding = 1;</code>
22254       * @param value The fromTimeIncluding to set.
22255       * @return This builder for chaining.
22256       */
22257      public Builder setFromTimeIncluding(double value) {
22258        
22259        fromTimeIncluding_ = value;
22260        onChanged();
22261        return this;
22262      }
22263      /**
22264       * <code>double fromTimeIncluding = 1;</code>
22265       * @return This builder for chaining.
22266       */
22267      public Builder clearFromTimeIncluding() {
22268        
22269        fromTimeIncluding_ = 0D;
22270        onChanged();
22271        return this;
22272      }
22273
22274      private double toTimeExcluding_ ;
22275      /**
22276       * <code>double toTimeExcluding = 2;</code>
22277       * @return The toTimeExcluding.
22278       */
22279      public double getToTimeExcluding() {
22280        return toTimeExcluding_;
22281      }
22282      /**
22283       * <code>double toTimeExcluding = 2;</code>
22284       * @param value The toTimeExcluding to set.
22285       * @return This builder for chaining.
22286       */
22287      public Builder setToTimeExcluding(double value) {
22288        
22289        toTimeExcluding_ = value;
22290        onChanged();
22291        return this;
22292      }
22293      /**
22294       * <code>double toTimeExcluding = 2;</code>
22295       * @return This builder for chaining.
22296       */
22297      public Builder clearToTimeExcluding() {
22298        
22299        toTimeExcluding_ = 0D;
22300        onChanged();
22301        return this;
22302      }
22303      @java.lang.Override
22304      public final Builder setUnknownFields(
22305          final com.google.protobuf.UnknownFieldSet unknownFields) {
22306        return super.setUnknownFields(unknownFields);
22307      }
22308
22309      @java.lang.Override
22310      public final Builder mergeUnknownFields(
22311          final com.google.protobuf.UnknownFieldSet unknownFields) {
22312        return super.mergeUnknownFields(unknownFields);
22313      }
22314
22315
22316      // @@protoc_insertion_point(builder_scope:hybridsim.LeftClosedRightOpenTimeInterval)
22317    }
22318
22319    // @@protoc_insertion_point(class_scope:hybridsim.LeftClosedRightOpenTimeInterval)
22320    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval DEFAULT_INSTANCE;
22321    static {
22322      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval();
22323    }
22324
22325    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval getDefaultInstance() {
22326      return DEFAULT_INSTANCE;
22327    }
22328
22329    private static final com.google.protobuf.Parser<LeftClosedRightOpenTimeInterval>
22330        PARSER = new com.google.protobuf.AbstractParser<LeftClosedRightOpenTimeInterval>() {
22331      @java.lang.Override
22332      public LeftClosedRightOpenTimeInterval parsePartialFrom(
22333          com.google.protobuf.CodedInputStream input,
22334          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22335          throws com.google.protobuf.InvalidProtocolBufferException {
22336        return new LeftClosedRightOpenTimeInterval(input, extensionRegistry);
22337      }
22338    };
22339
22340    public static com.google.protobuf.Parser<LeftClosedRightOpenTimeInterval> parser() {
22341      return PARSER;
22342    }
22343
22344    @java.lang.Override
22345    public com.google.protobuf.Parser<LeftClosedRightOpenTimeInterval> getParserForType() {
22346      return PARSER;
22347    }
22348
22349    @java.lang.Override
22350    public org.matsim.contrib.hybridsim.proto.HybridSimProto.LeftClosedRightOpenTimeInterval getDefaultInstanceForType() {
22351      return DEFAULT_INSTANCE;
22352    }
22353
22354  }
22355
22356  public interface EmptyOrBuilder extends
22357      // @@protoc_insertion_point(interface_extends:hybridsim.Empty)
22358      com.google.protobuf.MessageOrBuilder {
22359  }
22360  /**
22361   * Protobuf type {@code hybridsim.Empty}
22362   */
22363  public  static final class Empty extends
22364      com.google.protobuf.GeneratedMessageV3 implements
22365      // @@protoc_insertion_point(message_implements:hybridsim.Empty)
22366      EmptyOrBuilder {
22367  private static final long serialVersionUID = 0L;
22368    // Use Empty.newBuilder() to construct.
22369    private Empty(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
22370      super(builder);
22371    }
22372    private Empty() {
22373    }
22374
22375    @java.lang.Override
22376    @SuppressWarnings({"unused"})
22377    protected java.lang.Object newInstance(
22378        UnusedPrivateParameter unused) {
22379      return new Empty();
22380    }
22381
22382    @java.lang.Override
22383    public final com.google.protobuf.UnknownFieldSet
22384    getUnknownFields() {
22385      return this.unknownFields;
22386    }
22387    private Empty(
22388        com.google.protobuf.CodedInputStream input,
22389        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22390        throws com.google.protobuf.InvalidProtocolBufferException {
22391      this();
22392      if (extensionRegistry == null) {
22393        throw new java.lang.NullPointerException();
22394      }
22395      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
22396          com.google.protobuf.UnknownFieldSet.newBuilder();
22397      try {
22398        boolean done = false;
22399        while (!done) {
22400          int tag = input.readTag();
22401          switch (tag) {
22402            case 0:
22403              done = true;
22404              break;
22405            default: {
22406              if (!parseUnknownField(
22407                  input, unknownFields, extensionRegistry, tag)) {
22408                done = true;
22409              }
22410              break;
22411            }
22412          }
22413        }
22414      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
22415        throw e.setUnfinishedMessage(this);
22416      } catch (java.io.IOException e) {
22417        throw new com.google.protobuf.InvalidProtocolBufferException(
22418            e).setUnfinishedMessage(this);
22419      } finally {
22420        this.unknownFields = unknownFields.build();
22421        makeExtensionsImmutable();
22422      }
22423    }
22424    public static final com.google.protobuf.Descriptors.Descriptor
22425        getDescriptor() {
22426      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Empty_descriptor;
22427    }
22428
22429    @java.lang.Override
22430    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
22431        internalGetFieldAccessorTable() {
22432      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Empty_fieldAccessorTable
22433          .ensureFieldAccessorsInitialized(
22434              org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty.Builder.class);
22435    }
22436
22437    private byte memoizedIsInitialized = -1;
22438    @java.lang.Override
22439    public final boolean isInitialized() {
22440      byte isInitialized = memoizedIsInitialized;
22441      if (isInitialized == 1) return true;
22442      if (isInitialized == 0) return false;
22443
22444      memoizedIsInitialized = 1;
22445      return true;
22446    }
22447
22448    @java.lang.Override
22449    public void writeTo(com.google.protobuf.CodedOutputStream output)
22450                        throws java.io.IOException {
22451      unknownFields.writeTo(output);
22452    }
22453
22454    @java.lang.Override
22455    public int getSerializedSize() {
22456      int size = memoizedSize;
22457      if (size != -1) return size;
22458
22459      size = 0;
22460      size += unknownFields.getSerializedSize();
22461      memoizedSize = size;
22462      return size;
22463    }
22464
22465    @java.lang.Override
22466    public boolean equals(final java.lang.Object obj) {
22467      if (obj == this) {
22468       return true;
22469      }
22470      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty)) {
22471        return super.equals(obj);
22472      }
22473      org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty) obj;
22474
22475      if (!unknownFields.equals(other.unknownFields)) return false;
22476      return true;
22477    }
22478
22479    @java.lang.Override
22480    public int hashCode() {
22481      if (memoizedHashCode != 0) {
22482        return memoizedHashCode;
22483      }
22484      int hash = 41;
22485      hash = (19 * hash) + getDescriptor().hashCode();
22486      hash = (29 * hash) + unknownFields.hashCode();
22487      memoizedHashCode = hash;
22488      return hash;
22489    }
22490
22491    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty parseFrom(
22492        java.nio.ByteBuffer data)
22493        throws com.google.protobuf.InvalidProtocolBufferException {
22494      return PARSER.parseFrom(data);
22495    }
22496    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty parseFrom(
22497        java.nio.ByteBuffer data,
22498        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22499        throws com.google.protobuf.InvalidProtocolBufferException {
22500      return PARSER.parseFrom(data, extensionRegistry);
22501    }
22502    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty parseFrom(
22503        com.google.protobuf.ByteString data)
22504        throws com.google.protobuf.InvalidProtocolBufferException {
22505      return PARSER.parseFrom(data);
22506    }
22507    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty parseFrom(
22508        com.google.protobuf.ByteString data,
22509        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22510        throws com.google.protobuf.InvalidProtocolBufferException {
22511      return PARSER.parseFrom(data, extensionRegistry);
22512    }
22513    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty parseFrom(byte[] data)
22514        throws com.google.protobuf.InvalidProtocolBufferException {
22515      return PARSER.parseFrom(data);
22516    }
22517    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty parseFrom(
22518        byte[] data,
22519        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22520        throws com.google.protobuf.InvalidProtocolBufferException {
22521      return PARSER.parseFrom(data, extensionRegistry);
22522    }
22523    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty parseFrom(java.io.InputStream input)
22524        throws java.io.IOException {
22525      return com.google.protobuf.GeneratedMessageV3
22526          .parseWithIOException(PARSER, input);
22527    }
22528    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty parseFrom(
22529        java.io.InputStream input,
22530        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22531        throws java.io.IOException {
22532      return com.google.protobuf.GeneratedMessageV3
22533          .parseWithIOException(PARSER, input, extensionRegistry);
22534    }
22535    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty parseDelimitedFrom(java.io.InputStream input)
22536        throws java.io.IOException {
22537      return com.google.protobuf.GeneratedMessageV3
22538          .parseDelimitedWithIOException(PARSER, input);
22539    }
22540    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty parseDelimitedFrom(
22541        java.io.InputStream input,
22542        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22543        throws java.io.IOException {
22544      return com.google.protobuf.GeneratedMessageV3
22545          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
22546    }
22547    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty parseFrom(
22548        com.google.protobuf.CodedInputStream input)
22549        throws java.io.IOException {
22550      return com.google.protobuf.GeneratedMessageV3
22551          .parseWithIOException(PARSER, input);
22552    }
22553    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty parseFrom(
22554        com.google.protobuf.CodedInputStream input,
22555        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22556        throws java.io.IOException {
22557      return com.google.protobuf.GeneratedMessageV3
22558          .parseWithIOException(PARSER, input, extensionRegistry);
22559    }
22560
22561    @java.lang.Override
22562    public Builder newBuilderForType() { return newBuilder(); }
22563    public static Builder newBuilder() {
22564      return DEFAULT_INSTANCE.toBuilder();
22565    }
22566    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty prototype) {
22567      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
22568    }
22569    @java.lang.Override
22570    public Builder toBuilder() {
22571      return this == DEFAULT_INSTANCE
22572          ? new Builder() : new Builder().mergeFrom(this);
22573    }
22574
22575    @java.lang.Override
22576    protected Builder newBuilderForType(
22577        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
22578      Builder builder = new Builder(parent);
22579      return builder;
22580    }
22581    /**
22582     * Protobuf type {@code hybridsim.Empty}
22583     */
22584    public static final class Builder extends
22585        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
22586        // @@protoc_insertion_point(builder_implements:hybridsim.Empty)
22587        org.matsim.contrib.hybridsim.proto.HybridSimProto.EmptyOrBuilder {
22588      public static final com.google.protobuf.Descriptors.Descriptor
22589          getDescriptor() {
22590        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Empty_descriptor;
22591      }
22592
22593      @java.lang.Override
22594      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
22595          internalGetFieldAccessorTable() {
22596        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Empty_fieldAccessorTable
22597            .ensureFieldAccessorsInitialized(
22598                org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty.Builder.class);
22599      }
22600
22601      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty.newBuilder()
22602      private Builder() {
22603        maybeForceBuilderInitialization();
22604      }
22605
22606      private Builder(
22607          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
22608        super(parent);
22609        maybeForceBuilderInitialization();
22610      }
22611      private void maybeForceBuilderInitialization() {
22612        if (com.google.protobuf.GeneratedMessageV3
22613                .alwaysUseFieldBuilders) {
22614        }
22615      }
22616      @java.lang.Override
22617      public Builder clear() {
22618        super.clear();
22619        return this;
22620      }
22621
22622      @java.lang.Override
22623      public com.google.protobuf.Descriptors.Descriptor
22624          getDescriptorForType() {
22625        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Empty_descriptor;
22626      }
22627
22628      @java.lang.Override
22629      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty getDefaultInstanceForType() {
22630        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty.getDefaultInstance();
22631      }
22632
22633      @java.lang.Override
22634      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty build() {
22635        org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty result = buildPartial();
22636        if (!result.isInitialized()) {
22637          throw newUninitializedMessageException(result);
22638        }
22639        return result;
22640      }
22641
22642      @java.lang.Override
22643      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty buildPartial() {
22644        org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty(this);
22645        onBuilt();
22646        return result;
22647      }
22648
22649      @java.lang.Override
22650      public Builder clone() {
22651        return super.clone();
22652      }
22653      @java.lang.Override
22654      public Builder setField(
22655          com.google.protobuf.Descriptors.FieldDescriptor field,
22656          java.lang.Object value) {
22657        return super.setField(field, value);
22658      }
22659      @java.lang.Override
22660      public Builder clearField(
22661          com.google.protobuf.Descriptors.FieldDescriptor field) {
22662        return super.clearField(field);
22663      }
22664      @java.lang.Override
22665      public Builder clearOneof(
22666          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
22667        return super.clearOneof(oneof);
22668      }
22669      @java.lang.Override
22670      public Builder setRepeatedField(
22671          com.google.protobuf.Descriptors.FieldDescriptor field,
22672          int index, java.lang.Object value) {
22673        return super.setRepeatedField(field, index, value);
22674      }
22675      @java.lang.Override
22676      public Builder addRepeatedField(
22677          com.google.protobuf.Descriptors.FieldDescriptor field,
22678          java.lang.Object value) {
22679        return super.addRepeatedField(field, value);
22680      }
22681      @java.lang.Override
22682      public Builder mergeFrom(com.google.protobuf.Message other) {
22683        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty) {
22684          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty)other);
22685        } else {
22686          super.mergeFrom(other);
22687          return this;
22688        }
22689      }
22690
22691      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty other) {
22692        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty.getDefaultInstance()) return this;
22693        this.mergeUnknownFields(other.unknownFields);
22694        onChanged();
22695        return this;
22696      }
22697
22698      @java.lang.Override
22699      public final boolean isInitialized() {
22700        return true;
22701      }
22702
22703      @java.lang.Override
22704      public Builder mergeFrom(
22705          com.google.protobuf.CodedInputStream input,
22706          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22707          throws java.io.IOException {
22708        org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty parsedMessage = null;
22709        try {
22710          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
22711        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
22712          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty) e.getUnfinishedMessage();
22713          throw e.unwrapIOException();
22714        } finally {
22715          if (parsedMessage != null) {
22716            mergeFrom(parsedMessage);
22717          }
22718        }
22719        return this;
22720      }
22721      @java.lang.Override
22722      public final Builder setUnknownFields(
22723          final com.google.protobuf.UnknownFieldSet unknownFields) {
22724        return super.setUnknownFields(unknownFields);
22725      }
22726
22727      @java.lang.Override
22728      public final Builder mergeUnknownFields(
22729          final com.google.protobuf.UnknownFieldSet unknownFields) {
22730        return super.mergeUnknownFields(unknownFields);
22731      }
22732
22733
22734      // @@protoc_insertion_point(builder_scope:hybridsim.Empty)
22735    }
22736
22737    // @@protoc_insertion_point(class_scope:hybridsim.Empty)
22738    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty DEFAULT_INSTANCE;
22739    static {
22740      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty();
22741    }
22742
22743    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty getDefaultInstance() {
22744      return DEFAULT_INSTANCE;
22745    }
22746
22747    private static final com.google.protobuf.Parser<Empty>
22748        PARSER = new com.google.protobuf.AbstractParser<Empty>() {
22749      @java.lang.Override
22750      public Empty parsePartialFrom(
22751          com.google.protobuf.CodedInputStream input,
22752          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22753          throws com.google.protobuf.InvalidProtocolBufferException {
22754        return new Empty(input, extensionRegistry);
22755      }
22756    };
22757
22758    public static com.google.protobuf.Parser<Empty> parser() {
22759      return PARSER;
22760    }
22761
22762    @java.lang.Override
22763    public com.google.protobuf.Parser<Empty> getParserForType() {
22764      return PARSER;
22765    }
22766
22767    @java.lang.Override
22768    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Empty getDefaultInstanceForType() {
22769      return DEFAULT_INSTANCE;
22770    }
22771
22772  }
22773
22774  public interface BooleanOrBuilder extends
22775      // @@protoc_insertion_point(interface_extends:hybridsim.Boolean)
22776      com.google.protobuf.MessageOrBuilder {
22777
22778    /**
22779     * <code>bool val = 1;</code>
22780     * @return The val.
22781     */
22782    boolean getVal();
22783  }
22784  /**
22785   * Protobuf type {@code hybridsim.Boolean}
22786   */
22787  public  static final class Boolean extends
22788      com.google.protobuf.GeneratedMessageV3 implements
22789      // @@protoc_insertion_point(message_implements:hybridsim.Boolean)
22790      BooleanOrBuilder {
22791  private static final long serialVersionUID = 0L;
22792    // Use Boolean.newBuilder() to construct.
22793    private Boolean(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
22794      super(builder);
22795    }
22796    private Boolean() {
22797    }
22798
22799    @java.lang.Override
22800    @SuppressWarnings({"unused"})
22801    protected java.lang.Object newInstance(
22802        UnusedPrivateParameter unused) {
22803      return new Boolean();
22804    }
22805
22806    @java.lang.Override
22807    public final com.google.protobuf.UnknownFieldSet
22808    getUnknownFields() {
22809      return this.unknownFields;
22810    }
22811    private Boolean(
22812        com.google.protobuf.CodedInputStream input,
22813        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22814        throws com.google.protobuf.InvalidProtocolBufferException {
22815      this();
22816      if (extensionRegistry == null) {
22817        throw new java.lang.NullPointerException();
22818      }
22819      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
22820          com.google.protobuf.UnknownFieldSet.newBuilder();
22821      try {
22822        boolean done = false;
22823        while (!done) {
22824          int tag = input.readTag();
22825          switch (tag) {
22826            case 0:
22827              done = true;
22828              break;
22829            case 8: {
22830
22831              val_ = input.readBool();
22832              break;
22833            }
22834            default: {
22835              if (!parseUnknownField(
22836                  input, unknownFields, extensionRegistry, tag)) {
22837                done = true;
22838              }
22839              break;
22840            }
22841          }
22842        }
22843      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
22844        throw e.setUnfinishedMessage(this);
22845      } catch (java.io.IOException e) {
22846        throw new com.google.protobuf.InvalidProtocolBufferException(
22847            e).setUnfinishedMessage(this);
22848      } finally {
22849        this.unknownFields = unknownFields.build();
22850        makeExtensionsImmutable();
22851      }
22852    }
22853    public static final com.google.protobuf.Descriptors.Descriptor
22854        getDescriptor() {
22855      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Boolean_descriptor;
22856    }
22857
22858    @java.lang.Override
22859    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
22860        internalGetFieldAccessorTable() {
22861      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Boolean_fieldAccessorTable
22862          .ensureFieldAccessorsInitialized(
22863              org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean.Builder.class);
22864    }
22865
22866    public static final int VAL_FIELD_NUMBER = 1;
22867    private boolean val_;
22868    /**
22869     * <code>bool val = 1;</code>
22870     * @return The val.
22871     */
22872    public boolean getVal() {
22873      return val_;
22874    }
22875
22876    private byte memoizedIsInitialized = -1;
22877    @java.lang.Override
22878    public final boolean isInitialized() {
22879      byte isInitialized = memoizedIsInitialized;
22880      if (isInitialized == 1) return true;
22881      if (isInitialized == 0) return false;
22882
22883      memoizedIsInitialized = 1;
22884      return true;
22885    }
22886
22887    @java.lang.Override
22888    public void writeTo(com.google.protobuf.CodedOutputStream output)
22889                        throws java.io.IOException {
22890      if (val_ != false) {
22891        output.writeBool(1, val_);
22892      }
22893      unknownFields.writeTo(output);
22894    }
22895
22896    @java.lang.Override
22897    public int getSerializedSize() {
22898      int size = memoizedSize;
22899      if (size != -1) return size;
22900
22901      size = 0;
22902      if (val_ != false) {
22903        size += com.google.protobuf.CodedOutputStream
22904          .computeBoolSize(1, val_);
22905      }
22906      size += unknownFields.getSerializedSize();
22907      memoizedSize = size;
22908      return size;
22909    }
22910
22911    @java.lang.Override
22912    public boolean equals(final java.lang.Object obj) {
22913      if (obj == this) {
22914       return true;
22915      }
22916      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean)) {
22917        return super.equals(obj);
22918      }
22919      org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean) obj;
22920
22921      if (getVal()
22922          != other.getVal()) return false;
22923      if (!unknownFields.equals(other.unknownFields)) return false;
22924      return true;
22925    }
22926
22927    @java.lang.Override
22928    public int hashCode() {
22929      if (memoizedHashCode != 0) {
22930        return memoizedHashCode;
22931      }
22932      int hash = 41;
22933      hash = (19 * hash) + getDescriptor().hashCode();
22934      hash = (37 * hash) + VAL_FIELD_NUMBER;
22935      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
22936          getVal());
22937      hash = (29 * hash) + unknownFields.hashCode();
22938      memoizedHashCode = hash;
22939      return hash;
22940    }
22941
22942    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean parseFrom(
22943        java.nio.ByteBuffer data)
22944        throws com.google.protobuf.InvalidProtocolBufferException {
22945      return PARSER.parseFrom(data);
22946    }
22947    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean parseFrom(
22948        java.nio.ByteBuffer data,
22949        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22950        throws com.google.protobuf.InvalidProtocolBufferException {
22951      return PARSER.parseFrom(data, extensionRegistry);
22952    }
22953    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean parseFrom(
22954        com.google.protobuf.ByteString data)
22955        throws com.google.protobuf.InvalidProtocolBufferException {
22956      return PARSER.parseFrom(data);
22957    }
22958    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean parseFrom(
22959        com.google.protobuf.ByteString data,
22960        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22961        throws com.google.protobuf.InvalidProtocolBufferException {
22962      return PARSER.parseFrom(data, extensionRegistry);
22963    }
22964    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean parseFrom(byte[] data)
22965        throws com.google.protobuf.InvalidProtocolBufferException {
22966      return PARSER.parseFrom(data);
22967    }
22968    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean parseFrom(
22969        byte[] data,
22970        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22971        throws com.google.protobuf.InvalidProtocolBufferException {
22972      return PARSER.parseFrom(data, extensionRegistry);
22973    }
22974    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean parseFrom(java.io.InputStream input)
22975        throws java.io.IOException {
22976      return com.google.protobuf.GeneratedMessageV3
22977          .parseWithIOException(PARSER, input);
22978    }
22979    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean parseFrom(
22980        java.io.InputStream input,
22981        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22982        throws java.io.IOException {
22983      return com.google.protobuf.GeneratedMessageV3
22984          .parseWithIOException(PARSER, input, extensionRegistry);
22985    }
22986    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean parseDelimitedFrom(java.io.InputStream input)
22987        throws java.io.IOException {
22988      return com.google.protobuf.GeneratedMessageV3
22989          .parseDelimitedWithIOException(PARSER, input);
22990    }
22991    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean parseDelimitedFrom(
22992        java.io.InputStream input,
22993        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
22994        throws java.io.IOException {
22995      return com.google.protobuf.GeneratedMessageV3
22996          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
22997    }
22998    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean parseFrom(
22999        com.google.protobuf.CodedInputStream input)
23000        throws java.io.IOException {
23001      return com.google.protobuf.GeneratedMessageV3
23002          .parseWithIOException(PARSER, input);
23003    }
23004    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean parseFrom(
23005        com.google.protobuf.CodedInputStream input,
23006        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
23007        throws java.io.IOException {
23008      return com.google.protobuf.GeneratedMessageV3
23009          .parseWithIOException(PARSER, input, extensionRegistry);
23010    }
23011
23012    @java.lang.Override
23013    public Builder newBuilderForType() { return newBuilder(); }
23014    public static Builder newBuilder() {
23015      return DEFAULT_INSTANCE.toBuilder();
23016    }
23017    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean prototype) {
23018      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
23019    }
23020    @java.lang.Override
23021    public Builder toBuilder() {
23022      return this == DEFAULT_INSTANCE
23023          ? new Builder() : new Builder().mergeFrom(this);
23024    }
23025
23026    @java.lang.Override
23027    protected Builder newBuilderForType(
23028        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
23029      Builder builder = new Builder(parent);
23030      return builder;
23031    }
23032    /**
23033     * Protobuf type {@code hybridsim.Boolean}
23034     */
23035    public static final class Builder extends
23036        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
23037        // @@protoc_insertion_point(builder_implements:hybridsim.Boolean)
23038        org.matsim.contrib.hybridsim.proto.HybridSimProto.BooleanOrBuilder {
23039      public static final com.google.protobuf.Descriptors.Descriptor
23040          getDescriptor() {
23041        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Boolean_descriptor;
23042      }
23043
23044      @java.lang.Override
23045      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
23046          internalGetFieldAccessorTable() {
23047        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Boolean_fieldAccessorTable
23048            .ensureFieldAccessorsInitialized(
23049                org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean.Builder.class);
23050      }
23051
23052      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean.newBuilder()
23053      private Builder() {
23054        maybeForceBuilderInitialization();
23055      }
23056
23057      private Builder(
23058          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
23059        super(parent);
23060        maybeForceBuilderInitialization();
23061      }
23062      private void maybeForceBuilderInitialization() {
23063        if (com.google.protobuf.GeneratedMessageV3
23064                .alwaysUseFieldBuilders) {
23065        }
23066      }
23067      @java.lang.Override
23068      public Builder clear() {
23069        super.clear();
23070        val_ = false;
23071
23072        return this;
23073      }
23074
23075      @java.lang.Override
23076      public com.google.protobuf.Descriptors.Descriptor
23077          getDescriptorForType() {
23078        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Boolean_descriptor;
23079      }
23080
23081      @java.lang.Override
23082      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean getDefaultInstanceForType() {
23083        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean.getDefaultInstance();
23084      }
23085
23086      @java.lang.Override
23087      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean build() {
23088        org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean result = buildPartial();
23089        if (!result.isInitialized()) {
23090          throw newUninitializedMessageException(result);
23091        }
23092        return result;
23093      }
23094
23095      @java.lang.Override
23096      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean buildPartial() {
23097        org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean(this);
23098        result.val_ = val_;
23099        onBuilt();
23100        return result;
23101      }
23102
23103      @java.lang.Override
23104      public Builder clone() {
23105        return super.clone();
23106      }
23107      @java.lang.Override
23108      public Builder setField(
23109          com.google.protobuf.Descriptors.FieldDescriptor field,
23110          java.lang.Object value) {
23111        return super.setField(field, value);
23112      }
23113      @java.lang.Override
23114      public Builder clearField(
23115          com.google.protobuf.Descriptors.FieldDescriptor field) {
23116        return super.clearField(field);
23117      }
23118      @java.lang.Override
23119      public Builder clearOneof(
23120          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
23121        return super.clearOneof(oneof);
23122      }
23123      @java.lang.Override
23124      public Builder setRepeatedField(
23125          com.google.protobuf.Descriptors.FieldDescriptor field,
23126          int index, java.lang.Object value) {
23127        return super.setRepeatedField(field, index, value);
23128      }
23129      @java.lang.Override
23130      public Builder addRepeatedField(
23131          com.google.protobuf.Descriptors.FieldDescriptor field,
23132          java.lang.Object value) {
23133        return super.addRepeatedField(field, value);
23134      }
23135      @java.lang.Override
23136      public Builder mergeFrom(com.google.protobuf.Message other) {
23137        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean) {
23138          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean)other);
23139        } else {
23140          super.mergeFrom(other);
23141          return this;
23142        }
23143      }
23144
23145      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean other) {
23146        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean.getDefaultInstance()) return this;
23147        if (other.getVal() != false) {
23148          setVal(other.getVal());
23149        }
23150        this.mergeUnknownFields(other.unknownFields);
23151        onChanged();
23152        return this;
23153      }
23154
23155      @java.lang.Override
23156      public final boolean isInitialized() {
23157        return true;
23158      }
23159
23160      @java.lang.Override
23161      public Builder mergeFrom(
23162          com.google.protobuf.CodedInputStream input,
23163          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
23164          throws java.io.IOException {
23165        org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean parsedMessage = null;
23166        try {
23167          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
23168        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
23169          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean) e.getUnfinishedMessage();
23170          throw e.unwrapIOException();
23171        } finally {
23172          if (parsedMessage != null) {
23173            mergeFrom(parsedMessage);
23174          }
23175        }
23176        return this;
23177      }
23178
23179      private boolean val_ ;
23180      /**
23181       * <code>bool val = 1;</code>
23182       * @return The val.
23183       */
23184      public boolean getVal() {
23185        return val_;
23186      }
23187      /**
23188       * <code>bool val = 1;</code>
23189       * @param value The val to set.
23190       * @return This builder for chaining.
23191       */
23192      public Builder setVal(boolean value) {
23193        
23194        val_ = value;
23195        onChanged();
23196        return this;
23197      }
23198      /**
23199       * <code>bool val = 1;</code>
23200       * @return This builder for chaining.
23201       */
23202      public Builder clearVal() {
23203        
23204        val_ = false;
23205        onChanged();
23206        return this;
23207      }
23208      @java.lang.Override
23209      public final Builder setUnknownFields(
23210          final com.google.protobuf.UnknownFieldSet unknownFields) {
23211        return super.setUnknownFields(unknownFields);
23212      }
23213
23214      @java.lang.Override
23215      public final Builder mergeUnknownFields(
23216          final com.google.protobuf.UnknownFieldSet unknownFields) {
23217        return super.mergeUnknownFields(unknownFields);
23218      }
23219
23220
23221      // @@protoc_insertion_point(builder_scope:hybridsim.Boolean)
23222    }
23223
23224    // @@protoc_insertion_point(class_scope:hybridsim.Boolean)
23225    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean DEFAULT_INSTANCE;
23226    static {
23227      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean();
23228    }
23229
23230    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean getDefaultInstance() {
23231      return DEFAULT_INSTANCE;
23232    }
23233
23234    private static final com.google.protobuf.Parser<Boolean>
23235        PARSER = new com.google.protobuf.AbstractParser<Boolean>() {
23236      @java.lang.Override
23237      public Boolean parsePartialFrom(
23238          com.google.protobuf.CodedInputStream input,
23239          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
23240          throws com.google.protobuf.InvalidProtocolBufferException {
23241        return new Boolean(input, extensionRegistry);
23242      }
23243    };
23244
23245    public static com.google.protobuf.Parser<Boolean> parser() {
23246      return PARSER;
23247    }
23248
23249    @java.lang.Override
23250    public com.google.protobuf.Parser<Boolean> getParserForType() {
23251      return PARSER;
23252    }
23253
23254    @java.lang.Override
23255    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Boolean getDefaultInstanceForType() {
23256      return DEFAULT_INSTANCE;
23257    }
23258
23259  }
23260
23261  public interface AgentOrBuilder extends
23262      // @@protoc_insertion_point(interface_extends:hybridsim.Agent)
23263      com.google.protobuf.MessageOrBuilder {
23264
23265    /**
23266     * <code>string id = 1;</code>
23267     * @return The id.
23268     */
23269    java.lang.String getId();
23270    /**
23271     * <code>string id = 1;</code>
23272     * @return The bytes for id.
23273     */
23274    com.google.protobuf.ByteString
23275        getIdBytes();
23276
23277    /**
23278     * <code>.hybridsim.Coordinate enterLocation = 2;</code>
23279     * @return Whether the enterLocation field is set.
23280     */
23281    boolean hasEnterLocation();
23282    /**
23283     * <code>.hybridsim.Coordinate enterLocation = 2;</code>
23284     * @return The enterLocation.
23285     */
23286    org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getEnterLocation();
23287    /**
23288     * <code>.hybridsim.Coordinate enterLocation = 2;</code>
23289     */
23290    org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getEnterLocationOrBuilder();
23291
23292    /**
23293     * <code>.hybridsim.Coordinate leaveLocation = 3;</code>
23294     * @return Whether the leaveLocation field is set.
23295     */
23296    boolean hasLeaveLocation();
23297    /**
23298     * <code>.hybridsim.Coordinate leaveLocation = 3;</code>
23299     * @return The leaveLocation.
23300     */
23301    org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getLeaveLocation();
23302    /**
23303     * <code>.hybridsim.Coordinate leaveLocation = 3;</code>
23304     */
23305    org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getLeaveLocationOrBuilder();
23306
23307    /**
23308     * <code>double x = 4;</code>
23309     * @return The x.
23310     */
23311    double getX();
23312
23313    /**
23314     * <code>double y = 5;</code>
23315     * @return The y.
23316     */
23317    double getY();
23318
23319    /**
23320     * <code>.hybridsim.Leg leg = 6;</code>
23321     * @return Whether the leg field is set.
23322     */
23323    boolean hasLeg();
23324    /**
23325     * <code>.hybridsim.Leg leg = 6;</code>
23326     * @return The leg.
23327     */
23328    org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg getLeg();
23329    /**
23330     * <code>.hybridsim.Leg leg = 6;</code>
23331     */
23332    org.matsim.contrib.hybridsim.proto.HybridSimProto.LegOrBuilder getLegOrBuilder();
23333  }
23334  /**
23335   * Protobuf type {@code hybridsim.Agent}
23336   */
23337  public  static final class Agent extends
23338      com.google.protobuf.GeneratedMessageV3 implements
23339      // @@protoc_insertion_point(message_implements:hybridsim.Agent)
23340      AgentOrBuilder {
23341  private static final long serialVersionUID = 0L;
23342    // Use Agent.newBuilder() to construct.
23343    private Agent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
23344      super(builder);
23345    }
23346    private Agent() {
23347      id_ = "";
23348    }
23349
23350    @java.lang.Override
23351    @SuppressWarnings({"unused"})
23352    protected java.lang.Object newInstance(
23353        UnusedPrivateParameter unused) {
23354      return new Agent();
23355    }
23356
23357    @java.lang.Override
23358    public final com.google.protobuf.UnknownFieldSet
23359    getUnknownFields() {
23360      return this.unknownFields;
23361    }
23362    private Agent(
23363        com.google.protobuf.CodedInputStream input,
23364        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
23365        throws com.google.protobuf.InvalidProtocolBufferException {
23366      this();
23367      if (extensionRegistry == null) {
23368        throw new java.lang.NullPointerException();
23369      }
23370      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
23371          com.google.protobuf.UnknownFieldSet.newBuilder();
23372      try {
23373        boolean done = false;
23374        while (!done) {
23375          int tag = input.readTag();
23376          switch (tag) {
23377            case 0:
23378              done = true;
23379              break;
23380            case 10: {
23381              java.lang.String s = input.readStringRequireUtf8();
23382
23383              id_ = s;
23384              break;
23385            }
23386            case 18: {
23387              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder subBuilder = null;
23388              if (enterLocation_ != null) {
23389                subBuilder = enterLocation_.toBuilder();
23390              }
23391              enterLocation_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.parser(), extensionRegistry);
23392              if (subBuilder != null) {
23393                subBuilder.mergeFrom(enterLocation_);
23394                enterLocation_ = subBuilder.buildPartial();
23395              }
23396
23397              break;
23398            }
23399            case 26: {
23400              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder subBuilder = null;
23401              if (leaveLocation_ != null) {
23402                subBuilder = leaveLocation_.toBuilder();
23403              }
23404              leaveLocation_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.parser(), extensionRegistry);
23405              if (subBuilder != null) {
23406                subBuilder.mergeFrom(leaveLocation_);
23407                leaveLocation_ = subBuilder.buildPartial();
23408              }
23409
23410              break;
23411            }
23412            case 33: {
23413
23414              x_ = input.readDouble();
23415              break;
23416            }
23417            case 41: {
23418
23419              y_ = input.readDouble();
23420              break;
23421            }
23422            case 50: {
23423              org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg.Builder subBuilder = null;
23424              if (leg_ != null) {
23425                subBuilder = leg_.toBuilder();
23426              }
23427              leg_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg.parser(), extensionRegistry);
23428              if (subBuilder != null) {
23429                subBuilder.mergeFrom(leg_);
23430                leg_ = subBuilder.buildPartial();
23431              }
23432
23433              break;
23434            }
23435            default: {
23436              if (!parseUnknownField(
23437                  input, unknownFields, extensionRegistry, tag)) {
23438                done = true;
23439              }
23440              break;
23441            }
23442          }
23443        }
23444      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
23445        throw e.setUnfinishedMessage(this);
23446      } catch (java.io.IOException e) {
23447        throw new com.google.protobuf.InvalidProtocolBufferException(
23448            e).setUnfinishedMessage(this);
23449      } finally {
23450        this.unknownFields = unknownFields.build();
23451        makeExtensionsImmutable();
23452      }
23453    }
23454    public static final com.google.protobuf.Descriptors.Descriptor
23455        getDescriptor() {
23456      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Agent_descriptor;
23457    }
23458
23459    @java.lang.Override
23460    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
23461        internalGetFieldAccessorTable() {
23462      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Agent_fieldAccessorTable
23463          .ensureFieldAccessorsInitialized(
23464              org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.Builder.class);
23465    }
23466
23467    public static final int ID_FIELD_NUMBER = 1;
23468    private volatile java.lang.Object id_;
23469    /**
23470     * <code>string id = 1;</code>
23471     * @return The id.
23472     */
23473    public java.lang.String getId() {
23474      java.lang.Object ref = id_;
23475      if (ref instanceof java.lang.String) {
23476        return (java.lang.String) ref;
23477      } else {
23478        com.google.protobuf.ByteString bs = 
23479            (com.google.protobuf.ByteString) ref;
23480        java.lang.String s = bs.toStringUtf8();
23481        id_ = s;
23482        return s;
23483      }
23484    }
23485    /**
23486     * <code>string id = 1;</code>
23487     * @return The bytes for id.
23488     */
23489    public com.google.protobuf.ByteString
23490        getIdBytes() {
23491      java.lang.Object ref = id_;
23492      if (ref instanceof java.lang.String) {
23493        com.google.protobuf.ByteString b = 
23494            com.google.protobuf.ByteString.copyFromUtf8(
23495                (java.lang.String) ref);
23496        id_ = b;
23497        return b;
23498      } else {
23499        return (com.google.protobuf.ByteString) ref;
23500      }
23501    }
23502
23503    public static final int ENTERLOCATION_FIELD_NUMBER = 2;
23504    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate enterLocation_;
23505    /**
23506     * <code>.hybridsim.Coordinate enterLocation = 2;</code>
23507     * @return Whether the enterLocation field is set.
23508     */
23509    public boolean hasEnterLocation() {
23510      return enterLocation_ != null;
23511    }
23512    /**
23513     * <code>.hybridsim.Coordinate enterLocation = 2;</code>
23514     * @return The enterLocation.
23515     */
23516    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getEnterLocation() {
23517      return enterLocation_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : enterLocation_;
23518    }
23519    /**
23520     * <code>.hybridsim.Coordinate enterLocation = 2;</code>
23521     */
23522    public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getEnterLocationOrBuilder() {
23523      return getEnterLocation();
23524    }
23525
23526    public static final int LEAVELOCATION_FIELD_NUMBER = 3;
23527    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate leaveLocation_;
23528    /**
23529     * <code>.hybridsim.Coordinate leaveLocation = 3;</code>
23530     * @return Whether the leaveLocation field is set.
23531     */
23532    public boolean hasLeaveLocation() {
23533      return leaveLocation_ != null;
23534    }
23535    /**
23536     * <code>.hybridsim.Coordinate leaveLocation = 3;</code>
23537     * @return The leaveLocation.
23538     */
23539    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getLeaveLocation() {
23540      return leaveLocation_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : leaveLocation_;
23541    }
23542    /**
23543     * <code>.hybridsim.Coordinate leaveLocation = 3;</code>
23544     */
23545    public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getLeaveLocationOrBuilder() {
23546      return getLeaveLocation();
23547    }
23548
23549    public static final int X_FIELD_NUMBER = 4;
23550    private double x_;
23551    /**
23552     * <code>double x = 4;</code>
23553     * @return The x.
23554     */
23555    public double getX() {
23556      return x_;
23557    }
23558
23559    public static final int Y_FIELD_NUMBER = 5;
23560    private double y_;
23561    /**
23562     * <code>double y = 5;</code>
23563     * @return The y.
23564     */
23565    public double getY() {
23566      return y_;
23567    }
23568
23569    public static final int LEG_FIELD_NUMBER = 6;
23570    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg leg_;
23571    /**
23572     * <code>.hybridsim.Leg leg = 6;</code>
23573     * @return Whether the leg field is set.
23574     */
23575    public boolean hasLeg() {
23576      return leg_ != null;
23577    }
23578    /**
23579     * <code>.hybridsim.Leg leg = 6;</code>
23580     * @return The leg.
23581     */
23582    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg getLeg() {
23583      return leg_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg.getDefaultInstance() : leg_;
23584    }
23585    /**
23586     * <code>.hybridsim.Leg leg = 6;</code>
23587     */
23588    public org.matsim.contrib.hybridsim.proto.HybridSimProto.LegOrBuilder getLegOrBuilder() {
23589      return getLeg();
23590    }
23591
23592    private byte memoizedIsInitialized = -1;
23593    @java.lang.Override
23594    public final boolean isInitialized() {
23595      byte isInitialized = memoizedIsInitialized;
23596      if (isInitialized == 1) return true;
23597      if (isInitialized == 0) return false;
23598
23599      memoizedIsInitialized = 1;
23600      return true;
23601    }
23602
23603    @java.lang.Override
23604    public void writeTo(com.google.protobuf.CodedOutputStream output)
23605                        throws java.io.IOException {
23606      if (!getIdBytes().isEmpty()) {
23607        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
23608      }
23609      if (enterLocation_ != null) {
23610        output.writeMessage(2, getEnterLocation());
23611      }
23612      if (leaveLocation_ != null) {
23613        output.writeMessage(3, getLeaveLocation());
23614      }
23615      if (x_ != 0D) {
23616        output.writeDouble(4, x_);
23617      }
23618      if (y_ != 0D) {
23619        output.writeDouble(5, y_);
23620      }
23621      if (leg_ != null) {
23622        output.writeMessage(6, getLeg());
23623      }
23624      unknownFields.writeTo(output);
23625    }
23626
23627    @java.lang.Override
23628    public int getSerializedSize() {
23629      int size = memoizedSize;
23630      if (size != -1) return size;
23631
23632      size = 0;
23633      if (!getIdBytes().isEmpty()) {
23634        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
23635      }
23636      if (enterLocation_ != null) {
23637        size += com.google.protobuf.CodedOutputStream
23638          .computeMessageSize(2, getEnterLocation());
23639      }
23640      if (leaveLocation_ != null) {
23641        size += com.google.protobuf.CodedOutputStream
23642          .computeMessageSize(3, getLeaveLocation());
23643      }
23644      if (x_ != 0D) {
23645        size += com.google.protobuf.CodedOutputStream
23646          .computeDoubleSize(4, x_);
23647      }
23648      if (y_ != 0D) {
23649        size += com.google.protobuf.CodedOutputStream
23650          .computeDoubleSize(5, y_);
23651      }
23652      if (leg_ != null) {
23653        size += com.google.protobuf.CodedOutputStream
23654          .computeMessageSize(6, getLeg());
23655      }
23656      size += unknownFields.getSerializedSize();
23657      memoizedSize = size;
23658      return size;
23659    }
23660
23661    @java.lang.Override
23662    public boolean equals(final java.lang.Object obj) {
23663      if (obj == this) {
23664       return true;
23665      }
23666      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent)) {
23667        return super.equals(obj);
23668      }
23669      org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent) obj;
23670
23671      if (!getId()
23672          .equals(other.getId())) return false;
23673      if (hasEnterLocation() != other.hasEnterLocation()) return false;
23674      if (hasEnterLocation()) {
23675        if (!getEnterLocation()
23676            .equals(other.getEnterLocation())) return false;
23677      }
23678      if (hasLeaveLocation() != other.hasLeaveLocation()) return false;
23679      if (hasLeaveLocation()) {
23680        if (!getLeaveLocation()
23681            .equals(other.getLeaveLocation())) return false;
23682      }
23683      if (java.lang.Double.doubleToLongBits(getX())
23684          != java.lang.Double.doubleToLongBits(
23685              other.getX())) return false;
23686      if (java.lang.Double.doubleToLongBits(getY())
23687          != java.lang.Double.doubleToLongBits(
23688              other.getY())) return false;
23689      if (hasLeg() != other.hasLeg()) return false;
23690      if (hasLeg()) {
23691        if (!getLeg()
23692            .equals(other.getLeg())) return false;
23693      }
23694      if (!unknownFields.equals(other.unknownFields)) return false;
23695      return true;
23696    }
23697
23698    @java.lang.Override
23699    public int hashCode() {
23700      if (memoizedHashCode != 0) {
23701        return memoizedHashCode;
23702      }
23703      int hash = 41;
23704      hash = (19 * hash) + getDescriptor().hashCode();
23705      hash = (37 * hash) + ID_FIELD_NUMBER;
23706      hash = (53 * hash) + getId().hashCode();
23707      if (hasEnterLocation()) {
23708        hash = (37 * hash) + ENTERLOCATION_FIELD_NUMBER;
23709        hash = (53 * hash) + getEnterLocation().hashCode();
23710      }
23711      if (hasLeaveLocation()) {
23712        hash = (37 * hash) + LEAVELOCATION_FIELD_NUMBER;
23713        hash = (53 * hash) + getLeaveLocation().hashCode();
23714      }
23715      hash = (37 * hash) + X_FIELD_NUMBER;
23716      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
23717          java.lang.Double.doubleToLongBits(getX()));
23718      hash = (37 * hash) + Y_FIELD_NUMBER;
23719      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
23720          java.lang.Double.doubleToLongBits(getY()));
23721      if (hasLeg()) {
23722        hash = (37 * hash) + LEG_FIELD_NUMBER;
23723        hash = (53 * hash) + getLeg().hashCode();
23724      }
23725      hash = (29 * hash) + unknownFields.hashCode();
23726      memoizedHashCode = hash;
23727      return hash;
23728    }
23729
23730    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent parseFrom(
23731        java.nio.ByteBuffer data)
23732        throws com.google.protobuf.InvalidProtocolBufferException {
23733      return PARSER.parseFrom(data);
23734    }
23735    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent parseFrom(
23736        java.nio.ByteBuffer data,
23737        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
23738        throws com.google.protobuf.InvalidProtocolBufferException {
23739      return PARSER.parseFrom(data, extensionRegistry);
23740    }
23741    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent parseFrom(
23742        com.google.protobuf.ByteString data)
23743        throws com.google.protobuf.InvalidProtocolBufferException {
23744      return PARSER.parseFrom(data);
23745    }
23746    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent parseFrom(
23747        com.google.protobuf.ByteString data,
23748        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
23749        throws com.google.protobuf.InvalidProtocolBufferException {
23750      return PARSER.parseFrom(data, extensionRegistry);
23751    }
23752    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent parseFrom(byte[] data)
23753        throws com.google.protobuf.InvalidProtocolBufferException {
23754      return PARSER.parseFrom(data);
23755    }
23756    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent parseFrom(
23757        byte[] data,
23758        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
23759        throws com.google.protobuf.InvalidProtocolBufferException {
23760      return PARSER.parseFrom(data, extensionRegistry);
23761    }
23762    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent parseFrom(java.io.InputStream input)
23763        throws java.io.IOException {
23764      return com.google.protobuf.GeneratedMessageV3
23765          .parseWithIOException(PARSER, input);
23766    }
23767    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent parseFrom(
23768        java.io.InputStream input,
23769        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
23770        throws java.io.IOException {
23771      return com.google.protobuf.GeneratedMessageV3
23772          .parseWithIOException(PARSER, input, extensionRegistry);
23773    }
23774    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent parseDelimitedFrom(java.io.InputStream input)
23775        throws java.io.IOException {
23776      return com.google.protobuf.GeneratedMessageV3
23777          .parseDelimitedWithIOException(PARSER, input);
23778    }
23779    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent parseDelimitedFrom(
23780        java.io.InputStream input,
23781        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
23782        throws java.io.IOException {
23783      return com.google.protobuf.GeneratedMessageV3
23784          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
23785    }
23786    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent parseFrom(
23787        com.google.protobuf.CodedInputStream input)
23788        throws java.io.IOException {
23789      return com.google.protobuf.GeneratedMessageV3
23790          .parseWithIOException(PARSER, input);
23791    }
23792    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent parseFrom(
23793        com.google.protobuf.CodedInputStream input,
23794        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
23795        throws java.io.IOException {
23796      return com.google.protobuf.GeneratedMessageV3
23797          .parseWithIOException(PARSER, input, extensionRegistry);
23798    }
23799
23800    @java.lang.Override
23801    public Builder newBuilderForType() { return newBuilder(); }
23802    public static Builder newBuilder() {
23803      return DEFAULT_INSTANCE.toBuilder();
23804    }
23805    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent prototype) {
23806      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
23807    }
23808    @java.lang.Override
23809    public Builder toBuilder() {
23810      return this == DEFAULT_INSTANCE
23811          ? new Builder() : new Builder().mergeFrom(this);
23812    }
23813
23814    @java.lang.Override
23815    protected Builder newBuilderForType(
23816        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
23817      Builder builder = new Builder(parent);
23818      return builder;
23819    }
23820    /**
23821     * Protobuf type {@code hybridsim.Agent}
23822     */
23823    public static final class Builder extends
23824        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
23825        // @@protoc_insertion_point(builder_implements:hybridsim.Agent)
23826        org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentOrBuilder {
23827      public static final com.google.protobuf.Descriptors.Descriptor
23828          getDescriptor() {
23829        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Agent_descriptor;
23830      }
23831
23832      @java.lang.Override
23833      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
23834          internalGetFieldAccessorTable() {
23835        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Agent_fieldAccessorTable
23836            .ensureFieldAccessorsInitialized(
23837                org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.Builder.class);
23838      }
23839
23840      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.newBuilder()
23841      private Builder() {
23842        maybeForceBuilderInitialization();
23843      }
23844
23845      private Builder(
23846          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
23847        super(parent);
23848        maybeForceBuilderInitialization();
23849      }
23850      private void maybeForceBuilderInitialization() {
23851        if (com.google.protobuf.GeneratedMessageV3
23852                .alwaysUseFieldBuilders) {
23853        }
23854      }
23855      @java.lang.Override
23856      public Builder clear() {
23857        super.clear();
23858        id_ = "";
23859
23860        if (enterLocationBuilder_ == null) {
23861          enterLocation_ = null;
23862        } else {
23863          enterLocation_ = null;
23864          enterLocationBuilder_ = null;
23865        }
23866        if (leaveLocationBuilder_ == null) {
23867          leaveLocation_ = null;
23868        } else {
23869          leaveLocation_ = null;
23870          leaveLocationBuilder_ = null;
23871        }
23872        x_ = 0D;
23873
23874        y_ = 0D;
23875
23876        if (legBuilder_ == null) {
23877          leg_ = null;
23878        } else {
23879          leg_ = null;
23880          legBuilder_ = null;
23881        }
23882        return this;
23883      }
23884
23885      @java.lang.Override
23886      public com.google.protobuf.Descriptors.Descriptor
23887          getDescriptorForType() {
23888        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Agent_descriptor;
23889      }
23890
23891      @java.lang.Override
23892      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent getDefaultInstanceForType() {
23893        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.getDefaultInstance();
23894      }
23895
23896      @java.lang.Override
23897      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent build() {
23898        org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent result = buildPartial();
23899        if (!result.isInitialized()) {
23900          throw newUninitializedMessageException(result);
23901        }
23902        return result;
23903      }
23904
23905      @java.lang.Override
23906      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent buildPartial() {
23907        org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent(this);
23908        result.id_ = id_;
23909        if (enterLocationBuilder_ == null) {
23910          result.enterLocation_ = enterLocation_;
23911        } else {
23912          result.enterLocation_ = enterLocationBuilder_.build();
23913        }
23914        if (leaveLocationBuilder_ == null) {
23915          result.leaveLocation_ = leaveLocation_;
23916        } else {
23917          result.leaveLocation_ = leaveLocationBuilder_.build();
23918        }
23919        result.x_ = x_;
23920        result.y_ = y_;
23921        if (legBuilder_ == null) {
23922          result.leg_ = leg_;
23923        } else {
23924          result.leg_ = legBuilder_.build();
23925        }
23926        onBuilt();
23927        return result;
23928      }
23929
23930      @java.lang.Override
23931      public Builder clone() {
23932        return super.clone();
23933      }
23934      @java.lang.Override
23935      public Builder setField(
23936          com.google.protobuf.Descriptors.FieldDescriptor field,
23937          java.lang.Object value) {
23938        return super.setField(field, value);
23939      }
23940      @java.lang.Override
23941      public Builder clearField(
23942          com.google.protobuf.Descriptors.FieldDescriptor field) {
23943        return super.clearField(field);
23944      }
23945      @java.lang.Override
23946      public Builder clearOneof(
23947          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
23948        return super.clearOneof(oneof);
23949      }
23950      @java.lang.Override
23951      public Builder setRepeatedField(
23952          com.google.protobuf.Descriptors.FieldDescriptor field,
23953          int index, java.lang.Object value) {
23954        return super.setRepeatedField(field, index, value);
23955      }
23956      @java.lang.Override
23957      public Builder addRepeatedField(
23958          com.google.protobuf.Descriptors.FieldDescriptor field,
23959          java.lang.Object value) {
23960        return super.addRepeatedField(field, value);
23961      }
23962      @java.lang.Override
23963      public Builder mergeFrom(com.google.protobuf.Message other) {
23964        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent) {
23965          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent)other);
23966        } else {
23967          super.mergeFrom(other);
23968          return this;
23969        }
23970      }
23971
23972      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent other) {
23973        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.getDefaultInstance()) return this;
23974        if (!other.getId().isEmpty()) {
23975          id_ = other.id_;
23976          onChanged();
23977        }
23978        if (other.hasEnterLocation()) {
23979          mergeEnterLocation(other.getEnterLocation());
23980        }
23981        if (other.hasLeaveLocation()) {
23982          mergeLeaveLocation(other.getLeaveLocation());
23983        }
23984        if (other.getX() != 0D) {
23985          setX(other.getX());
23986        }
23987        if (other.getY() != 0D) {
23988          setY(other.getY());
23989        }
23990        if (other.hasLeg()) {
23991          mergeLeg(other.getLeg());
23992        }
23993        this.mergeUnknownFields(other.unknownFields);
23994        onChanged();
23995        return this;
23996      }
23997
23998      @java.lang.Override
23999      public final boolean isInitialized() {
24000        return true;
24001      }
24002
24003      @java.lang.Override
24004      public Builder mergeFrom(
24005          com.google.protobuf.CodedInputStream input,
24006          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
24007          throws java.io.IOException {
24008        org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent parsedMessage = null;
24009        try {
24010          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
24011        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
24012          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent) e.getUnfinishedMessage();
24013          throw e.unwrapIOException();
24014        } finally {
24015          if (parsedMessage != null) {
24016            mergeFrom(parsedMessage);
24017          }
24018        }
24019        return this;
24020      }
24021
24022      private java.lang.Object id_ = "";
24023      /**
24024       * <code>string id = 1;</code>
24025       * @return The id.
24026       */
24027      public java.lang.String getId() {
24028        java.lang.Object ref = id_;
24029        if (!(ref instanceof java.lang.String)) {
24030          com.google.protobuf.ByteString bs =
24031              (com.google.protobuf.ByteString) ref;
24032          java.lang.String s = bs.toStringUtf8();
24033          id_ = s;
24034          return s;
24035        } else {
24036          return (java.lang.String) ref;
24037        }
24038      }
24039      /**
24040       * <code>string id = 1;</code>
24041       * @return The bytes for id.
24042       */
24043      public com.google.protobuf.ByteString
24044          getIdBytes() {
24045        java.lang.Object ref = id_;
24046        if (ref instanceof String) {
24047          com.google.protobuf.ByteString b = 
24048              com.google.protobuf.ByteString.copyFromUtf8(
24049                  (java.lang.String) ref);
24050          id_ = b;
24051          return b;
24052        } else {
24053          return (com.google.protobuf.ByteString) ref;
24054        }
24055      }
24056      /**
24057       * <code>string id = 1;</code>
24058       * @param value The id to set.
24059       * @return This builder for chaining.
24060       */
24061      public Builder setId(
24062          java.lang.String value) {
24063        if (value == null) {
24064    throw new NullPointerException();
24065  }
24066  
24067        id_ = value;
24068        onChanged();
24069        return this;
24070      }
24071      /**
24072       * <code>string id = 1;</code>
24073       * @return This builder for chaining.
24074       */
24075      public Builder clearId() {
24076        
24077        id_ = getDefaultInstance().getId();
24078        onChanged();
24079        return this;
24080      }
24081      /**
24082       * <code>string id = 1;</code>
24083       * @param value The bytes for id to set.
24084       * @return This builder for chaining.
24085       */
24086      public Builder setIdBytes(
24087          com.google.protobuf.ByteString value) {
24088        if (value == null) {
24089    throw new NullPointerException();
24090  }
24091  checkByteStringIsUtf8(value);
24092        
24093        id_ = value;
24094        onChanged();
24095        return this;
24096      }
24097
24098      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate enterLocation_;
24099      private com.google.protobuf.SingleFieldBuilderV3<
24100          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> enterLocationBuilder_;
24101      /**
24102       * <code>.hybridsim.Coordinate enterLocation = 2;</code>
24103       * @return Whether the enterLocation field is set.
24104       */
24105      public boolean hasEnterLocation() {
24106        return enterLocationBuilder_ != null || enterLocation_ != null;
24107      }
24108      /**
24109       * <code>.hybridsim.Coordinate enterLocation = 2;</code>
24110       * @return The enterLocation.
24111       */
24112      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getEnterLocation() {
24113        if (enterLocationBuilder_ == null) {
24114          return enterLocation_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : enterLocation_;
24115        } else {
24116          return enterLocationBuilder_.getMessage();
24117        }
24118      }
24119      /**
24120       * <code>.hybridsim.Coordinate enterLocation = 2;</code>
24121       */
24122      public Builder setEnterLocation(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
24123        if (enterLocationBuilder_ == null) {
24124          if (value == null) {
24125            throw new NullPointerException();
24126          }
24127          enterLocation_ = value;
24128          onChanged();
24129        } else {
24130          enterLocationBuilder_.setMessage(value);
24131        }
24132
24133        return this;
24134      }
24135      /**
24136       * <code>.hybridsim.Coordinate enterLocation = 2;</code>
24137       */
24138      public Builder setEnterLocation(
24139          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder builderForValue) {
24140        if (enterLocationBuilder_ == null) {
24141          enterLocation_ = builderForValue.build();
24142          onChanged();
24143        } else {
24144          enterLocationBuilder_.setMessage(builderForValue.build());
24145        }
24146
24147        return this;
24148      }
24149      /**
24150       * <code>.hybridsim.Coordinate enterLocation = 2;</code>
24151       */
24152      public Builder mergeEnterLocation(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
24153        if (enterLocationBuilder_ == null) {
24154          if (enterLocation_ != null) {
24155            enterLocation_ =
24156              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.newBuilder(enterLocation_).mergeFrom(value).buildPartial();
24157          } else {
24158            enterLocation_ = value;
24159          }
24160          onChanged();
24161        } else {
24162          enterLocationBuilder_.mergeFrom(value);
24163        }
24164
24165        return this;
24166      }
24167      /**
24168       * <code>.hybridsim.Coordinate enterLocation = 2;</code>
24169       */
24170      public Builder clearEnterLocation() {
24171        if (enterLocationBuilder_ == null) {
24172          enterLocation_ = null;
24173          onChanged();
24174        } else {
24175          enterLocation_ = null;
24176          enterLocationBuilder_ = null;
24177        }
24178
24179        return this;
24180      }
24181      /**
24182       * <code>.hybridsim.Coordinate enterLocation = 2;</code>
24183       */
24184      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder getEnterLocationBuilder() {
24185        
24186        onChanged();
24187        return getEnterLocationFieldBuilder().getBuilder();
24188      }
24189      /**
24190       * <code>.hybridsim.Coordinate enterLocation = 2;</code>
24191       */
24192      public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getEnterLocationOrBuilder() {
24193        if (enterLocationBuilder_ != null) {
24194          return enterLocationBuilder_.getMessageOrBuilder();
24195        } else {
24196          return enterLocation_ == null ?
24197              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : enterLocation_;
24198        }
24199      }
24200      /**
24201       * <code>.hybridsim.Coordinate enterLocation = 2;</code>
24202       */
24203      private com.google.protobuf.SingleFieldBuilderV3<
24204          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> 
24205          getEnterLocationFieldBuilder() {
24206        if (enterLocationBuilder_ == null) {
24207          enterLocationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
24208              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder>(
24209                  getEnterLocation(),
24210                  getParentForChildren(),
24211                  isClean());
24212          enterLocation_ = null;
24213        }
24214        return enterLocationBuilder_;
24215      }
24216
24217      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate leaveLocation_;
24218      private com.google.protobuf.SingleFieldBuilderV3<
24219          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> leaveLocationBuilder_;
24220      /**
24221       * <code>.hybridsim.Coordinate leaveLocation = 3;</code>
24222       * @return Whether the leaveLocation field is set.
24223       */
24224      public boolean hasLeaveLocation() {
24225        return leaveLocationBuilder_ != null || leaveLocation_ != null;
24226      }
24227      /**
24228       * <code>.hybridsim.Coordinate leaveLocation = 3;</code>
24229       * @return The leaveLocation.
24230       */
24231      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getLeaveLocation() {
24232        if (leaveLocationBuilder_ == null) {
24233          return leaveLocation_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : leaveLocation_;
24234        } else {
24235          return leaveLocationBuilder_.getMessage();
24236        }
24237      }
24238      /**
24239       * <code>.hybridsim.Coordinate leaveLocation = 3;</code>
24240       */
24241      public Builder setLeaveLocation(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
24242        if (leaveLocationBuilder_ == null) {
24243          if (value == null) {
24244            throw new NullPointerException();
24245          }
24246          leaveLocation_ = value;
24247          onChanged();
24248        } else {
24249          leaveLocationBuilder_.setMessage(value);
24250        }
24251
24252        return this;
24253      }
24254      /**
24255       * <code>.hybridsim.Coordinate leaveLocation = 3;</code>
24256       */
24257      public Builder setLeaveLocation(
24258          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder builderForValue) {
24259        if (leaveLocationBuilder_ == null) {
24260          leaveLocation_ = builderForValue.build();
24261          onChanged();
24262        } else {
24263          leaveLocationBuilder_.setMessage(builderForValue.build());
24264        }
24265
24266        return this;
24267      }
24268      /**
24269       * <code>.hybridsim.Coordinate leaveLocation = 3;</code>
24270       */
24271      public Builder mergeLeaveLocation(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
24272        if (leaveLocationBuilder_ == null) {
24273          if (leaveLocation_ != null) {
24274            leaveLocation_ =
24275              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.newBuilder(leaveLocation_).mergeFrom(value).buildPartial();
24276          } else {
24277            leaveLocation_ = value;
24278          }
24279          onChanged();
24280        } else {
24281          leaveLocationBuilder_.mergeFrom(value);
24282        }
24283
24284        return this;
24285      }
24286      /**
24287       * <code>.hybridsim.Coordinate leaveLocation = 3;</code>
24288       */
24289      public Builder clearLeaveLocation() {
24290        if (leaveLocationBuilder_ == null) {
24291          leaveLocation_ = null;
24292          onChanged();
24293        } else {
24294          leaveLocation_ = null;
24295          leaveLocationBuilder_ = null;
24296        }
24297
24298        return this;
24299      }
24300      /**
24301       * <code>.hybridsim.Coordinate leaveLocation = 3;</code>
24302       */
24303      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder getLeaveLocationBuilder() {
24304        
24305        onChanged();
24306        return getLeaveLocationFieldBuilder().getBuilder();
24307      }
24308      /**
24309       * <code>.hybridsim.Coordinate leaveLocation = 3;</code>
24310       */
24311      public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getLeaveLocationOrBuilder() {
24312        if (leaveLocationBuilder_ != null) {
24313          return leaveLocationBuilder_.getMessageOrBuilder();
24314        } else {
24315          return leaveLocation_ == null ?
24316              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : leaveLocation_;
24317        }
24318      }
24319      /**
24320       * <code>.hybridsim.Coordinate leaveLocation = 3;</code>
24321       */
24322      private com.google.protobuf.SingleFieldBuilderV3<
24323          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> 
24324          getLeaveLocationFieldBuilder() {
24325        if (leaveLocationBuilder_ == null) {
24326          leaveLocationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
24327              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder>(
24328                  getLeaveLocation(),
24329                  getParentForChildren(),
24330                  isClean());
24331          leaveLocation_ = null;
24332        }
24333        return leaveLocationBuilder_;
24334      }
24335
24336      private double x_ ;
24337      /**
24338       * <code>double x = 4;</code>
24339       * @return The x.
24340       */
24341      public double getX() {
24342        return x_;
24343      }
24344      /**
24345       * <code>double x = 4;</code>
24346       * @param value The x to set.
24347       * @return This builder for chaining.
24348       */
24349      public Builder setX(double value) {
24350        
24351        x_ = value;
24352        onChanged();
24353        return this;
24354      }
24355      /**
24356       * <code>double x = 4;</code>
24357       * @return This builder for chaining.
24358       */
24359      public Builder clearX() {
24360        
24361        x_ = 0D;
24362        onChanged();
24363        return this;
24364      }
24365
24366      private double y_ ;
24367      /**
24368       * <code>double y = 5;</code>
24369       * @return The y.
24370       */
24371      public double getY() {
24372        return y_;
24373      }
24374      /**
24375       * <code>double y = 5;</code>
24376       * @param value The y to set.
24377       * @return This builder for chaining.
24378       */
24379      public Builder setY(double value) {
24380        
24381        y_ = value;
24382        onChanged();
24383        return this;
24384      }
24385      /**
24386       * <code>double y = 5;</code>
24387       * @return This builder for chaining.
24388       */
24389      public Builder clearY() {
24390        
24391        y_ = 0D;
24392        onChanged();
24393        return this;
24394      }
24395
24396      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg leg_;
24397      private com.google.protobuf.SingleFieldBuilderV3<
24398          org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg, org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.LegOrBuilder> legBuilder_;
24399      /**
24400       * <code>.hybridsim.Leg leg = 6;</code>
24401       * @return Whether the leg field is set.
24402       */
24403      public boolean hasLeg() {
24404        return legBuilder_ != null || leg_ != null;
24405      }
24406      /**
24407       * <code>.hybridsim.Leg leg = 6;</code>
24408       * @return The leg.
24409       */
24410      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg getLeg() {
24411        if (legBuilder_ == null) {
24412          return leg_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg.getDefaultInstance() : leg_;
24413        } else {
24414          return legBuilder_.getMessage();
24415        }
24416      }
24417      /**
24418       * <code>.hybridsim.Leg leg = 6;</code>
24419       */
24420      public Builder setLeg(org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg value) {
24421        if (legBuilder_ == null) {
24422          if (value == null) {
24423            throw new NullPointerException();
24424          }
24425          leg_ = value;
24426          onChanged();
24427        } else {
24428          legBuilder_.setMessage(value);
24429        }
24430
24431        return this;
24432      }
24433      /**
24434       * <code>.hybridsim.Leg leg = 6;</code>
24435       */
24436      public Builder setLeg(
24437          org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg.Builder builderForValue) {
24438        if (legBuilder_ == null) {
24439          leg_ = builderForValue.build();
24440          onChanged();
24441        } else {
24442          legBuilder_.setMessage(builderForValue.build());
24443        }
24444
24445        return this;
24446      }
24447      /**
24448       * <code>.hybridsim.Leg leg = 6;</code>
24449       */
24450      public Builder mergeLeg(org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg value) {
24451        if (legBuilder_ == null) {
24452          if (leg_ != null) {
24453            leg_ =
24454              org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg.newBuilder(leg_).mergeFrom(value).buildPartial();
24455          } else {
24456            leg_ = value;
24457          }
24458          onChanged();
24459        } else {
24460          legBuilder_.mergeFrom(value);
24461        }
24462
24463        return this;
24464      }
24465      /**
24466       * <code>.hybridsim.Leg leg = 6;</code>
24467       */
24468      public Builder clearLeg() {
24469        if (legBuilder_ == null) {
24470          leg_ = null;
24471          onChanged();
24472        } else {
24473          leg_ = null;
24474          legBuilder_ = null;
24475        }
24476
24477        return this;
24478      }
24479      /**
24480       * <code>.hybridsim.Leg leg = 6;</code>
24481       */
24482      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg.Builder getLegBuilder() {
24483        
24484        onChanged();
24485        return getLegFieldBuilder().getBuilder();
24486      }
24487      /**
24488       * <code>.hybridsim.Leg leg = 6;</code>
24489       */
24490      public org.matsim.contrib.hybridsim.proto.HybridSimProto.LegOrBuilder getLegOrBuilder() {
24491        if (legBuilder_ != null) {
24492          return legBuilder_.getMessageOrBuilder();
24493        } else {
24494          return leg_ == null ?
24495              org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg.getDefaultInstance() : leg_;
24496        }
24497      }
24498      /**
24499       * <code>.hybridsim.Leg leg = 6;</code>
24500       */
24501      private com.google.protobuf.SingleFieldBuilderV3<
24502          org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg, org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.LegOrBuilder> 
24503          getLegFieldBuilder() {
24504        if (legBuilder_ == null) {
24505          legBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
24506              org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg, org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.LegOrBuilder>(
24507                  getLeg(),
24508                  getParentForChildren(),
24509                  isClean());
24510          leg_ = null;
24511        }
24512        return legBuilder_;
24513      }
24514      @java.lang.Override
24515      public final Builder setUnknownFields(
24516          final com.google.protobuf.UnknownFieldSet unknownFields) {
24517        return super.setUnknownFields(unknownFields);
24518      }
24519
24520      @java.lang.Override
24521      public final Builder mergeUnknownFields(
24522          final com.google.protobuf.UnknownFieldSet unknownFields) {
24523        return super.mergeUnknownFields(unknownFields);
24524      }
24525
24526
24527      // @@protoc_insertion_point(builder_scope:hybridsim.Agent)
24528    }
24529
24530    // @@protoc_insertion_point(class_scope:hybridsim.Agent)
24531    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent DEFAULT_INSTANCE;
24532    static {
24533      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent();
24534    }
24535
24536    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent getDefaultInstance() {
24537      return DEFAULT_INSTANCE;
24538    }
24539
24540    private static final com.google.protobuf.Parser<Agent>
24541        PARSER = new com.google.protobuf.AbstractParser<Agent>() {
24542      @java.lang.Override
24543      public Agent parsePartialFrom(
24544          com.google.protobuf.CodedInputStream input,
24545          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
24546          throws com.google.protobuf.InvalidProtocolBufferException {
24547        return new Agent(input, extensionRegistry);
24548      }
24549    };
24550
24551    public static com.google.protobuf.Parser<Agent> parser() {
24552      return PARSER;
24553    }
24554
24555    @java.lang.Override
24556    public com.google.protobuf.Parser<Agent> getParserForType() {
24557      return PARSER;
24558    }
24559
24560    @java.lang.Override
24561    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent getDefaultInstanceForType() {
24562      return DEFAULT_INSTANCE;
24563    }
24564
24565  }
24566
24567  public interface LegOrBuilder extends
24568      // @@protoc_insertion_point(interface_extends:hybridsim.Leg)
24569      com.google.protobuf.MessageOrBuilder {
24570
24571    /**
24572     * <code>repeated .hybridsim.Link link = 15;</code>
24573     */
24574    java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Link> 
24575        getLinkList();
24576    /**
24577     * <code>repeated .hybridsim.Link link = 15;</code>
24578     */
24579    org.matsim.contrib.hybridsim.proto.HybridSimProto.Link getLink(int index);
24580    /**
24581     * <code>repeated .hybridsim.Link link = 15;</code>
24582     */
24583    int getLinkCount();
24584    /**
24585     * <code>repeated .hybridsim.Link link = 15;</code>
24586     */
24587    java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.LinkOrBuilder> 
24588        getLinkOrBuilderList();
24589    /**
24590     * <code>repeated .hybridsim.Link link = 15;</code>
24591     */
24592    org.matsim.contrib.hybridsim.proto.HybridSimProto.LinkOrBuilder getLinkOrBuilder(
24593        int index);
24594  }
24595  /**
24596   * Protobuf type {@code hybridsim.Leg}
24597   */
24598  public  static final class Leg extends
24599      com.google.protobuf.GeneratedMessageV3 implements
24600      // @@protoc_insertion_point(message_implements:hybridsim.Leg)
24601      LegOrBuilder {
24602  private static final long serialVersionUID = 0L;
24603    // Use Leg.newBuilder() to construct.
24604    private Leg(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
24605      super(builder);
24606    }
24607    private Leg() {
24608      link_ = java.util.Collections.emptyList();
24609    }
24610
24611    @java.lang.Override
24612    @SuppressWarnings({"unused"})
24613    protected java.lang.Object newInstance(
24614        UnusedPrivateParameter unused) {
24615      return new Leg();
24616    }
24617
24618    @java.lang.Override
24619    public final com.google.protobuf.UnknownFieldSet
24620    getUnknownFields() {
24621      return this.unknownFields;
24622    }
24623    private Leg(
24624        com.google.protobuf.CodedInputStream input,
24625        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
24626        throws com.google.protobuf.InvalidProtocolBufferException {
24627      this();
24628      if (extensionRegistry == null) {
24629        throw new java.lang.NullPointerException();
24630      }
24631      int mutable_bitField0_ = 0;
24632      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
24633          com.google.protobuf.UnknownFieldSet.newBuilder();
24634      try {
24635        boolean done = false;
24636        while (!done) {
24637          int tag = input.readTag();
24638          switch (tag) {
24639            case 0:
24640              done = true;
24641              break;
24642            case 122: {
24643              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
24644                link_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Link>();
24645                mutable_bitField0_ |= 0x00000001;
24646              }
24647              link_.add(
24648                  input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.parser(), extensionRegistry));
24649              break;
24650            }
24651            default: {
24652              if (!parseUnknownField(
24653                  input, unknownFields, extensionRegistry, tag)) {
24654                done = true;
24655              }
24656              break;
24657            }
24658          }
24659        }
24660      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
24661        throw e.setUnfinishedMessage(this);
24662      } catch (java.io.IOException e) {
24663        throw new com.google.protobuf.InvalidProtocolBufferException(
24664            e).setUnfinishedMessage(this);
24665      } finally {
24666        if (((mutable_bitField0_ & 0x00000001) != 0)) {
24667          link_ = java.util.Collections.unmodifiableList(link_);
24668        }
24669        this.unknownFields = unknownFields.build();
24670        makeExtensionsImmutable();
24671      }
24672    }
24673    public static final com.google.protobuf.Descriptors.Descriptor
24674        getDescriptor() {
24675      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Leg_descriptor;
24676    }
24677
24678    @java.lang.Override
24679    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
24680        internalGetFieldAccessorTable() {
24681      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Leg_fieldAccessorTable
24682          .ensureFieldAccessorsInitialized(
24683              org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg.Builder.class);
24684    }
24685
24686    public static final int LINK_FIELD_NUMBER = 15;
24687    private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Link> link_;
24688    /**
24689     * <code>repeated .hybridsim.Link link = 15;</code>
24690     */
24691    public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Link> getLinkList() {
24692      return link_;
24693    }
24694    /**
24695     * <code>repeated .hybridsim.Link link = 15;</code>
24696     */
24697    public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.LinkOrBuilder> 
24698        getLinkOrBuilderList() {
24699      return link_;
24700    }
24701    /**
24702     * <code>repeated .hybridsim.Link link = 15;</code>
24703     */
24704    public int getLinkCount() {
24705      return link_.size();
24706    }
24707    /**
24708     * <code>repeated .hybridsim.Link link = 15;</code>
24709     */
24710    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Link getLink(int index) {
24711      return link_.get(index);
24712    }
24713    /**
24714     * <code>repeated .hybridsim.Link link = 15;</code>
24715     */
24716    public org.matsim.contrib.hybridsim.proto.HybridSimProto.LinkOrBuilder getLinkOrBuilder(
24717        int index) {
24718      return link_.get(index);
24719    }
24720
24721    private byte memoizedIsInitialized = -1;
24722    @java.lang.Override
24723    public final boolean isInitialized() {
24724      byte isInitialized = memoizedIsInitialized;
24725      if (isInitialized == 1) return true;
24726      if (isInitialized == 0) return false;
24727
24728      memoizedIsInitialized = 1;
24729      return true;
24730    }
24731
24732    @java.lang.Override
24733    public void writeTo(com.google.protobuf.CodedOutputStream output)
24734                        throws java.io.IOException {
24735      for (int i = 0; i < link_.size(); i++) {
24736        output.writeMessage(15, link_.get(i));
24737      }
24738      unknownFields.writeTo(output);
24739    }
24740
24741    @java.lang.Override
24742    public int getSerializedSize() {
24743      int size = memoizedSize;
24744      if (size != -1) return size;
24745
24746      size = 0;
24747      for (int i = 0; i < link_.size(); i++) {
24748        size += com.google.protobuf.CodedOutputStream
24749          .computeMessageSize(15, link_.get(i));
24750      }
24751      size += unknownFields.getSerializedSize();
24752      memoizedSize = size;
24753      return size;
24754    }
24755
24756    @java.lang.Override
24757    public boolean equals(final java.lang.Object obj) {
24758      if (obj == this) {
24759       return true;
24760      }
24761      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg)) {
24762        return super.equals(obj);
24763      }
24764      org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg) obj;
24765
24766      if (!getLinkList()
24767          .equals(other.getLinkList())) return false;
24768      if (!unknownFields.equals(other.unknownFields)) return false;
24769      return true;
24770    }
24771
24772    @java.lang.Override
24773    public int hashCode() {
24774      if (memoizedHashCode != 0) {
24775        return memoizedHashCode;
24776      }
24777      int hash = 41;
24778      hash = (19 * hash) + getDescriptor().hashCode();
24779      if (getLinkCount() > 0) {
24780        hash = (37 * hash) + LINK_FIELD_NUMBER;
24781        hash = (53 * hash) + getLinkList().hashCode();
24782      }
24783      hash = (29 * hash) + unknownFields.hashCode();
24784      memoizedHashCode = hash;
24785      return hash;
24786    }
24787
24788    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg parseFrom(
24789        java.nio.ByteBuffer data)
24790        throws com.google.protobuf.InvalidProtocolBufferException {
24791      return PARSER.parseFrom(data);
24792    }
24793    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg parseFrom(
24794        java.nio.ByteBuffer data,
24795        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
24796        throws com.google.protobuf.InvalidProtocolBufferException {
24797      return PARSER.parseFrom(data, extensionRegistry);
24798    }
24799    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg parseFrom(
24800        com.google.protobuf.ByteString data)
24801        throws com.google.protobuf.InvalidProtocolBufferException {
24802      return PARSER.parseFrom(data);
24803    }
24804    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg parseFrom(
24805        com.google.protobuf.ByteString data,
24806        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
24807        throws com.google.protobuf.InvalidProtocolBufferException {
24808      return PARSER.parseFrom(data, extensionRegistry);
24809    }
24810    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg parseFrom(byte[] data)
24811        throws com.google.protobuf.InvalidProtocolBufferException {
24812      return PARSER.parseFrom(data);
24813    }
24814    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg parseFrom(
24815        byte[] data,
24816        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
24817        throws com.google.protobuf.InvalidProtocolBufferException {
24818      return PARSER.parseFrom(data, extensionRegistry);
24819    }
24820    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg parseFrom(java.io.InputStream input)
24821        throws java.io.IOException {
24822      return com.google.protobuf.GeneratedMessageV3
24823          .parseWithIOException(PARSER, input);
24824    }
24825    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg parseFrom(
24826        java.io.InputStream input,
24827        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
24828        throws java.io.IOException {
24829      return com.google.protobuf.GeneratedMessageV3
24830          .parseWithIOException(PARSER, input, extensionRegistry);
24831    }
24832    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg parseDelimitedFrom(java.io.InputStream input)
24833        throws java.io.IOException {
24834      return com.google.protobuf.GeneratedMessageV3
24835          .parseDelimitedWithIOException(PARSER, input);
24836    }
24837    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg parseDelimitedFrom(
24838        java.io.InputStream input,
24839        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
24840        throws java.io.IOException {
24841      return com.google.protobuf.GeneratedMessageV3
24842          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
24843    }
24844    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg parseFrom(
24845        com.google.protobuf.CodedInputStream input)
24846        throws java.io.IOException {
24847      return com.google.protobuf.GeneratedMessageV3
24848          .parseWithIOException(PARSER, input);
24849    }
24850    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg parseFrom(
24851        com.google.protobuf.CodedInputStream input,
24852        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
24853        throws java.io.IOException {
24854      return com.google.protobuf.GeneratedMessageV3
24855          .parseWithIOException(PARSER, input, extensionRegistry);
24856    }
24857
24858    @java.lang.Override
24859    public Builder newBuilderForType() { return newBuilder(); }
24860    public static Builder newBuilder() {
24861      return DEFAULT_INSTANCE.toBuilder();
24862    }
24863    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg prototype) {
24864      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
24865    }
24866    @java.lang.Override
24867    public Builder toBuilder() {
24868      return this == DEFAULT_INSTANCE
24869          ? new Builder() : new Builder().mergeFrom(this);
24870    }
24871
24872    @java.lang.Override
24873    protected Builder newBuilderForType(
24874        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
24875      Builder builder = new Builder(parent);
24876      return builder;
24877    }
24878    /**
24879     * Protobuf type {@code hybridsim.Leg}
24880     */
24881    public static final class Builder extends
24882        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
24883        // @@protoc_insertion_point(builder_implements:hybridsim.Leg)
24884        org.matsim.contrib.hybridsim.proto.HybridSimProto.LegOrBuilder {
24885      public static final com.google.protobuf.Descriptors.Descriptor
24886          getDescriptor() {
24887        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Leg_descriptor;
24888      }
24889
24890      @java.lang.Override
24891      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
24892          internalGetFieldAccessorTable() {
24893        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Leg_fieldAccessorTable
24894            .ensureFieldAccessorsInitialized(
24895                org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg.Builder.class);
24896      }
24897
24898      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg.newBuilder()
24899      private Builder() {
24900        maybeForceBuilderInitialization();
24901      }
24902
24903      private Builder(
24904          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
24905        super(parent);
24906        maybeForceBuilderInitialization();
24907      }
24908      private void maybeForceBuilderInitialization() {
24909        if (com.google.protobuf.GeneratedMessageV3
24910                .alwaysUseFieldBuilders) {
24911          getLinkFieldBuilder();
24912        }
24913      }
24914      @java.lang.Override
24915      public Builder clear() {
24916        super.clear();
24917        if (linkBuilder_ == null) {
24918          link_ = java.util.Collections.emptyList();
24919          bitField0_ = (bitField0_ & ~0x00000001);
24920        } else {
24921          linkBuilder_.clear();
24922        }
24923        return this;
24924      }
24925
24926      @java.lang.Override
24927      public com.google.protobuf.Descriptors.Descriptor
24928          getDescriptorForType() {
24929        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Leg_descriptor;
24930      }
24931
24932      @java.lang.Override
24933      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg getDefaultInstanceForType() {
24934        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg.getDefaultInstance();
24935      }
24936
24937      @java.lang.Override
24938      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg build() {
24939        org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg result = buildPartial();
24940        if (!result.isInitialized()) {
24941          throw newUninitializedMessageException(result);
24942        }
24943        return result;
24944      }
24945
24946      @java.lang.Override
24947      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg buildPartial() {
24948        org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg(this);
24949        int from_bitField0_ = bitField0_;
24950        if (linkBuilder_ == null) {
24951          if (((bitField0_ & 0x00000001) != 0)) {
24952            link_ = java.util.Collections.unmodifiableList(link_);
24953            bitField0_ = (bitField0_ & ~0x00000001);
24954          }
24955          result.link_ = link_;
24956        } else {
24957          result.link_ = linkBuilder_.build();
24958        }
24959        onBuilt();
24960        return result;
24961      }
24962
24963      @java.lang.Override
24964      public Builder clone() {
24965        return super.clone();
24966      }
24967      @java.lang.Override
24968      public Builder setField(
24969          com.google.protobuf.Descriptors.FieldDescriptor field,
24970          java.lang.Object value) {
24971        return super.setField(field, value);
24972      }
24973      @java.lang.Override
24974      public Builder clearField(
24975          com.google.protobuf.Descriptors.FieldDescriptor field) {
24976        return super.clearField(field);
24977      }
24978      @java.lang.Override
24979      public Builder clearOneof(
24980          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
24981        return super.clearOneof(oneof);
24982      }
24983      @java.lang.Override
24984      public Builder setRepeatedField(
24985          com.google.protobuf.Descriptors.FieldDescriptor field,
24986          int index, java.lang.Object value) {
24987        return super.setRepeatedField(field, index, value);
24988      }
24989      @java.lang.Override
24990      public Builder addRepeatedField(
24991          com.google.protobuf.Descriptors.FieldDescriptor field,
24992          java.lang.Object value) {
24993        return super.addRepeatedField(field, value);
24994      }
24995      @java.lang.Override
24996      public Builder mergeFrom(com.google.protobuf.Message other) {
24997        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg) {
24998          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg)other);
24999        } else {
25000          super.mergeFrom(other);
25001          return this;
25002        }
25003      }
25004
25005      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg other) {
25006        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg.getDefaultInstance()) return this;
25007        if (linkBuilder_ == null) {
25008          if (!other.link_.isEmpty()) {
25009            if (link_.isEmpty()) {
25010              link_ = other.link_;
25011              bitField0_ = (bitField0_ & ~0x00000001);
25012            } else {
25013              ensureLinkIsMutable();
25014              link_.addAll(other.link_);
25015            }
25016            onChanged();
25017          }
25018        } else {
25019          if (!other.link_.isEmpty()) {
25020            if (linkBuilder_.isEmpty()) {
25021              linkBuilder_.dispose();
25022              linkBuilder_ = null;
25023              link_ = other.link_;
25024              bitField0_ = (bitField0_ & ~0x00000001);
25025              linkBuilder_ = 
25026                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
25027                   getLinkFieldBuilder() : null;
25028            } else {
25029              linkBuilder_.addAllMessages(other.link_);
25030            }
25031          }
25032        }
25033        this.mergeUnknownFields(other.unknownFields);
25034        onChanged();
25035        return this;
25036      }
25037
25038      @java.lang.Override
25039      public final boolean isInitialized() {
25040        return true;
25041      }
25042
25043      @java.lang.Override
25044      public Builder mergeFrom(
25045          com.google.protobuf.CodedInputStream input,
25046          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
25047          throws java.io.IOException {
25048        org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg parsedMessage = null;
25049        try {
25050          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
25051        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
25052          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg) e.getUnfinishedMessage();
25053          throw e.unwrapIOException();
25054        } finally {
25055          if (parsedMessage != null) {
25056            mergeFrom(parsedMessage);
25057          }
25058        }
25059        return this;
25060      }
25061      private int bitField0_;
25062
25063      private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Link> link_ =
25064        java.util.Collections.emptyList();
25065      private void ensureLinkIsMutable() {
25066        if (!((bitField0_ & 0x00000001) != 0)) {
25067          link_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Link>(link_);
25068          bitField0_ |= 0x00000001;
25069         }
25070      }
25071
25072      private com.google.protobuf.RepeatedFieldBuilderV3<
25073          org.matsim.contrib.hybridsim.proto.HybridSimProto.Link, org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.LinkOrBuilder> linkBuilder_;
25074
25075      /**
25076       * <code>repeated .hybridsim.Link link = 15;</code>
25077       */
25078      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Link> getLinkList() {
25079        if (linkBuilder_ == null) {
25080          return java.util.Collections.unmodifiableList(link_);
25081        } else {
25082          return linkBuilder_.getMessageList();
25083        }
25084      }
25085      /**
25086       * <code>repeated .hybridsim.Link link = 15;</code>
25087       */
25088      public int getLinkCount() {
25089        if (linkBuilder_ == null) {
25090          return link_.size();
25091        } else {
25092          return linkBuilder_.getCount();
25093        }
25094      }
25095      /**
25096       * <code>repeated .hybridsim.Link link = 15;</code>
25097       */
25098      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Link getLink(int index) {
25099        if (linkBuilder_ == null) {
25100          return link_.get(index);
25101        } else {
25102          return linkBuilder_.getMessage(index);
25103        }
25104      }
25105      /**
25106       * <code>repeated .hybridsim.Link link = 15;</code>
25107       */
25108      public Builder setLink(
25109          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Link value) {
25110        if (linkBuilder_ == null) {
25111          if (value == null) {
25112            throw new NullPointerException();
25113          }
25114          ensureLinkIsMutable();
25115          link_.set(index, value);
25116          onChanged();
25117        } else {
25118          linkBuilder_.setMessage(index, value);
25119        }
25120        return this;
25121      }
25122      /**
25123       * <code>repeated .hybridsim.Link link = 15;</code>
25124       */
25125      public Builder setLink(
25126          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.Builder builderForValue) {
25127        if (linkBuilder_ == null) {
25128          ensureLinkIsMutable();
25129          link_.set(index, builderForValue.build());
25130          onChanged();
25131        } else {
25132          linkBuilder_.setMessage(index, builderForValue.build());
25133        }
25134        return this;
25135      }
25136      /**
25137       * <code>repeated .hybridsim.Link link = 15;</code>
25138       */
25139      public Builder addLink(org.matsim.contrib.hybridsim.proto.HybridSimProto.Link value) {
25140        if (linkBuilder_ == null) {
25141          if (value == null) {
25142            throw new NullPointerException();
25143          }
25144          ensureLinkIsMutable();
25145          link_.add(value);
25146          onChanged();
25147        } else {
25148          linkBuilder_.addMessage(value);
25149        }
25150        return this;
25151      }
25152      /**
25153       * <code>repeated .hybridsim.Link link = 15;</code>
25154       */
25155      public Builder addLink(
25156          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Link value) {
25157        if (linkBuilder_ == null) {
25158          if (value == null) {
25159            throw new NullPointerException();
25160          }
25161          ensureLinkIsMutable();
25162          link_.add(index, value);
25163          onChanged();
25164        } else {
25165          linkBuilder_.addMessage(index, value);
25166        }
25167        return this;
25168      }
25169      /**
25170       * <code>repeated .hybridsim.Link link = 15;</code>
25171       */
25172      public Builder addLink(
25173          org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.Builder builderForValue) {
25174        if (linkBuilder_ == null) {
25175          ensureLinkIsMutable();
25176          link_.add(builderForValue.build());
25177          onChanged();
25178        } else {
25179          linkBuilder_.addMessage(builderForValue.build());
25180        }
25181        return this;
25182      }
25183      /**
25184       * <code>repeated .hybridsim.Link link = 15;</code>
25185       */
25186      public Builder addLink(
25187          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.Builder builderForValue) {
25188        if (linkBuilder_ == null) {
25189          ensureLinkIsMutable();
25190          link_.add(index, builderForValue.build());
25191          onChanged();
25192        } else {
25193          linkBuilder_.addMessage(index, builderForValue.build());
25194        }
25195        return this;
25196      }
25197      /**
25198       * <code>repeated .hybridsim.Link link = 15;</code>
25199       */
25200      public Builder addAllLink(
25201          java.lang.Iterable<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.Link> values) {
25202        if (linkBuilder_ == null) {
25203          ensureLinkIsMutable();
25204          com.google.protobuf.AbstractMessageLite.Builder.addAll(
25205              values, link_);
25206          onChanged();
25207        } else {
25208          linkBuilder_.addAllMessages(values);
25209        }
25210        return this;
25211      }
25212      /**
25213       * <code>repeated .hybridsim.Link link = 15;</code>
25214       */
25215      public Builder clearLink() {
25216        if (linkBuilder_ == null) {
25217          link_ = java.util.Collections.emptyList();
25218          bitField0_ = (bitField0_ & ~0x00000001);
25219          onChanged();
25220        } else {
25221          linkBuilder_.clear();
25222        }
25223        return this;
25224      }
25225      /**
25226       * <code>repeated .hybridsim.Link link = 15;</code>
25227       */
25228      public Builder removeLink(int index) {
25229        if (linkBuilder_ == null) {
25230          ensureLinkIsMutable();
25231          link_.remove(index);
25232          onChanged();
25233        } else {
25234          linkBuilder_.remove(index);
25235        }
25236        return this;
25237      }
25238      /**
25239       * <code>repeated .hybridsim.Link link = 15;</code>
25240       */
25241      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.Builder getLinkBuilder(
25242          int index) {
25243        return getLinkFieldBuilder().getBuilder(index);
25244      }
25245      /**
25246       * <code>repeated .hybridsim.Link link = 15;</code>
25247       */
25248      public org.matsim.contrib.hybridsim.proto.HybridSimProto.LinkOrBuilder getLinkOrBuilder(
25249          int index) {
25250        if (linkBuilder_ == null) {
25251          return link_.get(index);  } else {
25252          return linkBuilder_.getMessageOrBuilder(index);
25253        }
25254      }
25255      /**
25256       * <code>repeated .hybridsim.Link link = 15;</code>
25257       */
25258      public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.LinkOrBuilder> 
25259           getLinkOrBuilderList() {
25260        if (linkBuilder_ != null) {
25261          return linkBuilder_.getMessageOrBuilderList();
25262        } else {
25263          return java.util.Collections.unmodifiableList(link_);
25264        }
25265      }
25266      /**
25267       * <code>repeated .hybridsim.Link link = 15;</code>
25268       */
25269      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.Builder addLinkBuilder() {
25270        return getLinkFieldBuilder().addBuilder(
25271            org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.getDefaultInstance());
25272      }
25273      /**
25274       * <code>repeated .hybridsim.Link link = 15;</code>
25275       */
25276      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.Builder addLinkBuilder(
25277          int index) {
25278        return getLinkFieldBuilder().addBuilder(
25279            index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.getDefaultInstance());
25280      }
25281      /**
25282       * <code>repeated .hybridsim.Link link = 15;</code>
25283       */
25284      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.Builder> 
25285           getLinkBuilderList() {
25286        return getLinkFieldBuilder().getBuilderList();
25287      }
25288      private com.google.protobuf.RepeatedFieldBuilderV3<
25289          org.matsim.contrib.hybridsim.proto.HybridSimProto.Link, org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.LinkOrBuilder> 
25290          getLinkFieldBuilder() {
25291        if (linkBuilder_ == null) {
25292          linkBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
25293              org.matsim.contrib.hybridsim.proto.HybridSimProto.Link, org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.LinkOrBuilder>(
25294                  link_,
25295                  ((bitField0_ & 0x00000001) != 0),
25296                  getParentForChildren(),
25297                  isClean());
25298          link_ = null;
25299        }
25300        return linkBuilder_;
25301      }
25302      @java.lang.Override
25303      public final Builder setUnknownFields(
25304          final com.google.protobuf.UnknownFieldSet unknownFields) {
25305        return super.setUnknownFields(unknownFields);
25306      }
25307
25308      @java.lang.Override
25309      public final Builder mergeUnknownFields(
25310          final com.google.protobuf.UnknownFieldSet unknownFields) {
25311        return super.mergeUnknownFields(unknownFields);
25312      }
25313
25314
25315      // @@protoc_insertion_point(builder_scope:hybridsim.Leg)
25316    }
25317
25318    // @@protoc_insertion_point(class_scope:hybridsim.Leg)
25319    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg DEFAULT_INSTANCE;
25320    static {
25321      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg();
25322    }
25323
25324    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg getDefaultInstance() {
25325      return DEFAULT_INSTANCE;
25326    }
25327
25328    private static final com.google.protobuf.Parser<Leg>
25329        PARSER = new com.google.protobuf.AbstractParser<Leg>() {
25330      @java.lang.Override
25331      public Leg parsePartialFrom(
25332          com.google.protobuf.CodedInputStream input,
25333          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
25334          throws com.google.protobuf.InvalidProtocolBufferException {
25335        return new Leg(input, extensionRegistry);
25336      }
25337    };
25338
25339    public static com.google.protobuf.Parser<Leg> parser() {
25340      return PARSER;
25341    }
25342
25343    @java.lang.Override
25344    public com.google.protobuf.Parser<Leg> getParserForType() {
25345      return PARSER;
25346    }
25347
25348    @java.lang.Override
25349    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Leg getDefaultInstanceForType() {
25350      return DEFAULT_INSTANCE;
25351    }
25352
25353  }
25354
25355  public interface LinkOrBuilder extends
25356      // @@protoc_insertion_point(interface_extends:hybridsim.Link)
25357      com.google.protobuf.MessageOrBuilder {
25358
25359    /**
25360     * <pre>
25361     *TODO: rename! In SUMO those links correspond to edges that are not necessarily convex
25362     * </pre>
25363     *
25364     * <code>.hybridsim.Coordinate centroid = 1;</code>
25365     * @return Whether the centroid field is set.
25366     */
25367    boolean hasCentroid();
25368    /**
25369     * <pre>
25370     *TODO: rename! In SUMO those links correspond to edges that are not necessarily convex
25371     * </pre>
25372     *
25373     * <code>.hybridsim.Coordinate centroid = 1;</code>
25374     * @return The centroid.
25375     */
25376    org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getCentroid();
25377    /**
25378     * <pre>
25379     *TODO: rename! In SUMO those links correspond to edges that are not necessarily convex
25380     * </pre>
25381     *
25382     * <code>.hybridsim.Coordinate centroid = 1;</code>
25383     */
25384    org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getCentroidOrBuilder();
25385
25386    /**
25387     * <code>int32 id = 2;</code>
25388     * @return The id.
25389     */
25390    int getId();
25391  }
25392  /**
25393   * Protobuf type {@code hybridsim.Link}
25394   */
25395  public  static final class Link extends
25396      com.google.protobuf.GeneratedMessageV3 implements
25397      // @@protoc_insertion_point(message_implements:hybridsim.Link)
25398      LinkOrBuilder {
25399  private static final long serialVersionUID = 0L;
25400    // Use Link.newBuilder() to construct.
25401    private Link(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
25402      super(builder);
25403    }
25404    private Link() {
25405    }
25406
25407    @java.lang.Override
25408    @SuppressWarnings({"unused"})
25409    protected java.lang.Object newInstance(
25410        UnusedPrivateParameter unused) {
25411      return new Link();
25412    }
25413
25414    @java.lang.Override
25415    public final com.google.protobuf.UnknownFieldSet
25416    getUnknownFields() {
25417      return this.unknownFields;
25418    }
25419    private Link(
25420        com.google.protobuf.CodedInputStream input,
25421        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
25422        throws com.google.protobuf.InvalidProtocolBufferException {
25423      this();
25424      if (extensionRegistry == null) {
25425        throw new java.lang.NullPointerException();
25426      }
25427      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
25428          com.google.protobuf.UnknownFieldSet.newBuilder();
25429      try {
25430        boolean done = false;
25431        while (!done) {
25432          int tag = input.readTag();
25433          switch (tag) {
25434            case 0:
25435              done = true;
25436              break;
25437            case 10: {
25438              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder subBuilder = null;
25439              if (centroid_ != null) {
25440                subBuilder = centroid_.toBuilder();
25441              }
25442              centroid_ = input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.parser(), extensionRegistry);
25443              if (subBuilder != null) {
25444                subBuilder.mergeFrom(centroid_);
25445                centroid_ = subBuilder.buildPartial();
25446              }
25447
25448              break;
25449            }
25450            case 16: {
25451
25452              id_ = input.readInt32();
25453              break;
25454            }
25455            default: {
25456              if (!parseUnknownField(
25457                  input, unknownFields, extensionRegistry, tag)) {
25458                done = true;
25459              }
25460              break;
25461            }
25462          }
25463        }
25464      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
25465        throw e.setUnfinishedMessage(this);
25466      } catch (java.io.IOException e) {
25467        throw new com.google.protobuf.InvalidProtocolBufferException(
25468            e).setUnfinishedMessage(this);
25469      } finally {
25470        this.unknownFields = unknownFields.build();
25471        makeExtensionsImmutable();
25472      }
25473    }
25474    public static final com.google.protobuf.Descriptors.Descriptor
25475        getDescriptor() {
25476      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Link_descriptor;
25477    }
25478
25479    @java.lang.Override
25480    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
25481        internalGetFieldAccessorTable() {
25482      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Link_fieldAccessorTable
25483          .ensureFieldAccessorsInitialized(
25484              org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.Builder.class);
25485    }
25486
25487    public static final int CENTROID_FIELD_NUMBER = 1;
25488    private org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate centroid_;
25489    /**
25490     * <pre>
25491     *TODO: rename! In SUMO those links correspond to edges that are not necessarily convex
25492     * </pre>
25493     *
25494     * <code>.hybridsim.Coordinate centroid = 1;</code>
25495     * @return Whether the centroid field is set.
25496     */
25497    public boolean hasCentroid() {
25498      return centroid_ != null;
25499    }
25500    /**
25501     * <pre>
25502     *TODO: rename! In SUMO those links correspond to edges that are not necessarily convex
25503     * </pre>
25504     *
25505     * <code>.hybridsim.Coordinate centroid = 1;</code>
25506     * @return The centroid.
25507     */
25508    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getCentroid() {
25509      return centroid_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : centroid_;
25510    }
25511    /**
25512     * <pre>
25513     *TODO: rename! In SUMO those links correspond to edges that are not necessarily convex
25514     * </pre>
25515     *
25516     * <code>.hybridsim.Coordinate centroid = 1;</code>
25517     */
25518    public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getCentroidOrBuilder() {
25519      return getCentroid();
25520    }
25521
25522    public static final int ID_FIELD_NUMBER = 2;
25523    private int id_;
25524    /**
25525     * <code>int32 id = 2;</code>
25526     * @return The id.
25527     */
25528    public int getId() {
25529      return id_;
25530    }
25531
25532    private byte memoizedIsInitialized = -1;
25533    @java.lang.Override
25534    public final boolean isInitialized() {
25535      byte isInitialized = memoizedIsInitialized;
25536      if (isInitialized == 1) return true;
25537      if (isInitialized == 0) return false;
25538
25539      memoizedIsInitialized = 1;
25540      return true;
25541    }
25542
25543    @java.lang.Override
25544    public void writeTo(com.google.protobuf.CodedOutputStream output)
25545                        throws java.io.IOException {
25546      if (centroid_ != null) {
25547        output.writeMessage(1, getCentroid());
25548      }
25549      if (id_ != 0) {
25550        output.writeInt32(2, id_);
25551      }
25552      unknownFields.writeTo(output);
25553    }
25554
25555    @java.lang.Override
25556    public int getSerializedSize() {
25557      int size = memoizedSize;
25558      if (size != -1) return size;
25559
25560      size = 0;
25561      if (centroid_ != null) {
25562        size += com.google.protobuf.CodedOutputStream
25563          .computeMessageSize(1, getCentroid());
25564      }
25565      if (id_ != 0) {
25566        size += com.google.protobuf.CodedOutputStream
25567          .computeInt32Size(2, id_);
25568      }
25569      size += unknownFields.getSerializedSize();
25570      memoizedSize = size;
25571      return size;
25572    }
25573
25574    @java.lang.Override
25575    public boolean equals(final java.lang.Object obj) {
25576      if (obj == this) {
25577       return true;
25578      }
25579      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Link)) {
25580        return super.equals(obj);
25581      }
25582      org.matsim.contrib.hybridsim.proto.HybridSimProto.Link other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Link) obj;
25583
25584      if (hasCentroid() != other.hasCentroid()) return false;
25585      if (hasCentroid()) {
25586        if (!getCentroid()
25587            .equals(other.getCentroid())) return false;
25588      }
25589      if (getId()
25590          != other.getId()) return false;
25591      if (!unknownFields.equals(other.unknownFields)) return false;
25592      return true;
25593    }
25594
25595    @java.lang.Override
25596    public int hashCode() {
25597      if (memoizedHashCode != 0) {
25598        return memoizedHashCode;
25599      }
25600      int hash = 41;
25601      hash = (19 * hash) + getDescriptor().hashCode();
25602      if (hasCentroid()) {
25603        hash = (37 * hash) + CENTROID_FIELD_NUMBER;
25604        hash = (53 * hash) + getCentroid().hashCode();
25605      }
25606      hash = (37 * hash) + ID_FIELD_NUMBER;
25607      hash = (53 * hash) + getId();
25608      hash = (29 * hash) + unknownFields.hashCode();
25609      memoizedHashCode = hash;
25610      return hash;
25611    }
25612
25613    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Link parseFrom(
25614        java.nio.ByteBuffer data)
25615        throws com.google.protobuf.InvalidProtocolBufferException {
25616      return PARSER.parseFrom(data);
25617    }
25618    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Link parseFrom(
25619        java.nio.ByteBuffer data,
25620        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
25621        throws com.google.protobuf.InvalidProtocolBufferException {
25622      return PARSER.parseFrom(data, extensionRegistry);
25623    }
25624    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Link parseFrom(
25625        com.google.protobuf.ByteString data)
25626        throws com.google.protobuf.InvalidProtocolBufferException {
25627      return PARSER.parseFrom(data);
25628    }
25629    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Link parseFrom(
25630        com.google.protobuf.ByteString data,
25631        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
25632        throws com.google.protobuf.InvalidProtocolBufferException {
25633      return PARSER.parseFrom(data, extensionRegistry);
25634    }
25635    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Link parseFrom(byte[] data)
25636        throws com.google.protobuf.InvalidProtocolBufferException {
25637      return PARSER.parseFrom(data);
25638    }
25639    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Link parseFrom(
25640        byte[] data,
25641        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
25642        throws com.google.protobuf.InvalidProtocolBufferException {
25643      return PARSER.parseFrom(data, extensionRegistry);
25644    }
25645    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Link parseFrom(java.io.InputStream input)
25646        throws java.io.IOException {
25647      return com.google.protobuf.GeneratedMessageV3
25648          .parseWithIOException(PARSER, input);
25649    }
25650    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Link parseFrom(
25651        java.io.InputStream input,
25652        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
25653        throws java.io.IOException {
25654      return com.google.protobuf.GeneratedMessageV3
25655          .parseWithIOException(PARSER, input, extensionRegistry);
25656    }
25657    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Link parseDelimitedFrom(java.io.InputStream input)
25658        throws java.io.IOException {
25659      return com.google.protobuf.GeneratedMessageV3
25660          .parseDelimitedWithIOException(PARSER, input);
25661    }
25662    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Link parseDelimitedFrom(
25663        java.io.InputStream input,
25664        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
25665        throws java.io.IOException {
25666      return com.google.protobuf.GeneratedMessageV3
25667          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
25668    }
25669    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Link parseFrom(
25670        com.google.protobuf.CodedInputStream input)
25671        throws java.io.IOException {
25672      return com.google.protobuf.GeneratedMessageV3
25673          .parseWithIOException(PARSER, input);
25674    }
25675    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Link parseFrom(
25676        com.google.protobuf.CodedInputStream input,
25677        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
25678        throws java.io.IOException {
25679      return com.google.protobuf.GeneratedMessageV3
25680          .parseWithIOException(PARSER, input, extensionRegistry);
25681    }
25682
25683    @java.lang.Override
25684    public Builder newBuilderForType() { return newBuilder(); }
25685    public static Builder newBuilder() {
25686      return DEFAULT_INSTANCE.toBuilder();
25687    }
25688    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Link prototype) {
25689      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
25690    }
25691    @java.lang.Override
25692    public Builder toBuilder() {
25693      return this == DEFAULT_INSTANCE
25694          ? new Builder() : new Builder().mergeFrom(this);
25695    }
25696
25697    @java.lang.Override
25698    protected Builder newBuilderForType(
25699        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
25700      Builder builder = new Builder(parent);
25701      return builder;
25702    }
25703    /**
25704     * Protobuf type {@code hybridsim.Link}
25705     */
25706    public static final class Builder extends
25707        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
25708        // @@protoc_insertion_point(builder_implements:hybridsim.Link)
25709        org.matsim.contrib.hybridsim.proto.HybridSimProto.LinkOrBuilder {
25710      public static final com.google.protobuf.Descriptors.Descriptor
25711          getDescriptor() {
25712        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Link_descriptor;
25713      }
25714
25715      @java.lang.Override
25716      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
25717          internalGetFieldAccessorTable() {
25718        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Link_fieldAccessorTable
25719            .ensureFieldAccessorsInitialized(
25720                org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.Builder.class);
25721      }
25722
25723      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.newBuilder()
25724      private Builder() {
25725        maybeForceBuilderInitialization();
25726      }
25727
25728      private Builder(
25729          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
25730        super(parent);
25731        maybeForceBuilderInitialization();
25732      }
25733      private void maybeForceBuilderInitialization() {
25734        if (com.google.protobuf.GeneratedMessageV3
25735                .alwaysUseFieldBuilders) {
25736        }
25737      }
25738      @java.lang.Override
25739      public Builder clear() {
25740        super.clear();
25741        if (centroidBuilder_ == null) {
25742          centroid_ = null;
25743        } else {
25744          centroid_ = null;
25745          centroidBuilder_ = null;
25746        }
25747        id_ = 0;
25748
25749        return this;
25750      }
25751
25752      @java.lang.Override
25753      public com.google.protobuf.Descriptors.Descriptor
25754          getDescriptorForType() {
25755        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Link_descriptor;
25756      }
25757
25758      @java.lang.Override
25759      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Link getDefaultInstanceForType() {
25760        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.getDefaultInstance();
25761      }
25762
25763      @java.lang.Override
25764      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Link build() {
25765        org.matsim.contrib.hybridsim.proto.HybridSimProto.Link result = buildPartial();
25766        if (!result.isInitialized()) {
25767          throw newUninitializedMessageException(result);
25768        }
25769        return result;
25770      }
25771
25772      @java.lang.Override
25773      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Link buildPartial() {
25774        org.matsim.contrib.hybridsim.proto.HybridSimProto.Link result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Link(this);
25775        if (centroidBuilder_ == null) {
25776          result.centroid_ = centroid_;
25777        } else {
25778          result.centroid_ = centroidBuilder_.build();
25779        }
25780        result.id_ = id_;
25781        onBuilt();
25782        return result;
25783      }
25784
25785      @java.lang.Override
25786      public Builder clone() {
25787        return super.clone();
25788      }
25789      @java.lang.Override
25790      public Builder setField(
25791          com.google.protobuf.Descriptors.FieldDescriptor field,
25792          java.lang.Object value) {
25793        return super.setField(field, value);
25794      }
25795      @java.lang.Override
25796      public Builder clearField(
25797          com.google.protobuf.Descriptors.FieldDescriptor field) {
25798        return super.clearField(field);
25799      }
25800      @java.lang.Override
25801      public Builder clearOneof(
25802          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
25803        return super.clearOneof(oneof);
25804      }
25805      @java.lang.Override
25806      public Builder setRepeatedField(
25807          com.google.protobuf.Descriptors.FieldDescriptor field,
25808          int index, java.lang.Object value) {
25809        return super.setRepeatedField(field, index, value);
25810      }
25811      @java.lang.Override
25812      public Builder addRepeatedField(
25813          com.google.protobuf.Descriptors.FieldDescriptor field,
25814          java.lang.Object value) {
25815        return super.addRepeatedField(field, value);
25816      }
25817      @java.lang.Override
25818      public Builder mergeFrom(com.google.protobuf.Message other) {
25819        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Link) {
25820          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Link)other);
25821        } else {
25822          super.mergeFrom(other);
25823          return this;
25824        }
25825      }
25826
25827      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Link other) {
25828        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Link.getDefaultInstance()) return this;
25829        if (other.hasCentroid()) {
25830          mergeCentroid(other.getCentroid());
25831        }
25832        if (other.getId() != 0) {
25833          setId(other.getId());
25834        }
25835        this.mergeUnknownFields(other.unknownFields);
25836        onChanged();
25837        return this;
25838      }
25839
25840      @java.lang.Override
25841      public final boolean isInitialized() {
25842        return true;
25843      }
25844
25845      @java.lang.Override
25846      public Builder mergeFrom(
25847          com.google.protobuf.CodedInputStream input,
25848          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
25849          throws java.io.IOException {
25850        org.matsim.contrib.hybridsim.proto.HybridSimProto.Link parsedMessage = null;
25851        try {
25852          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
25853        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
25854          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Link) e.getUnfinishedMessage();
25855          throw e.unwrapIOException();
25856        } finally {
25857          if (parsedMessage != null) {
25858            mergeFrom(parsedMessage);
25859          }
25860        }
25861        return this;
25862      }
25863
25864      private org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate centroid_;
25865      private com.google.protobuf.SingleFieldBuilderV3<
25866          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> centroidBuilder_;
25867      /**
25868       * <pre>
25869       *TODO: rename! In SUMO those links correspond to edges that are not necessarily convex
25870       * </pre>
25871       *
25872       * <code>.hybridsim.Coordinate centroid = 1;</code>
25873       * @return Whether the centroid field is set.
25874       */
25875      public boolean hasCentroid() {
25876        return centroidBuilder_ != null || centroid_ != null;
25877      }
25878      /**
25879       * <pre>
25880       *TODO: rename! In SUMO those links correspond to edges that are not necessarily convex
25881       * </pre>
25882       *
25883       * <code>.hybridsim.Coordinate centroid = 1;</code>
25884       * @return The centroid.
25885       */
25886      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getCentroid() {
25887        if (centroidBuilder_ == null) {
25888          return centroid_ == null ? org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : centroid_;
25889        } else {
25890          return centroidBuilder_.getMessage();
25891        }
25892      }
25893      /**
25894       * <pre>
25895       *TODO: rename! In SUMO those links correspond to edges that are not necessarily convex
25896       * </pre>
25897       *
25898       * <code>.hybridsim.Coordinate centroid = 1;</code>
25899       */
25900      public Builder setCentroid(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
25901        if (centroidBuilder_ == null) {
25902          if (value == null) {
25903            throw new NullPointerException();
25904          }
25905          centroid_ = value;
25906          onChanged();
25907        } else {
25908          centroidBuilder_.setMessage(value);
25909        }
25910
25911        return this;
25912      }
25913      /**
25914       * <pre>
25915       *TODO: rename! In SUMO those links correspond to edges that are not necessarily convex
25916       * </pre>
25917       *
25918       * <code>.hybridsim.Coordinate centroid = 1;</code>
25919       */
25920      public Builder setCentroid(
25921          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder builderForValue) {
25922        if (centroidBuilder_ == null) {
25923          centroid_ = builderForValue.build();
25924          onChanged();
25925        } else {
25926          centroidBuilder_.setMessage(builderForValue.build());
25927        }
25928
25929        return this;
25930      }
25931      /**
25932       * <pre>
25933       *TODO: rename! In SUMO those links correspond to edges that are not necessarily convex
25934       * </pre>
25935       *
25936       * <code>.hybridsim.Coordinate centroid = 1;</code>
25937       */
25938      public Builder mergeCentroid(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate value) {
25939        if (centroidBuilder_ == null) {
25940          if (centroid_ != null) {
25941            centroid_ =
25942              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.newBuilder(centroid_).mergeFrom(value).buildPartial();
25943          } else {
25944            centroid_ = value;
25945          }
25946          onChanged();
25947        } else {
25948          centroidBuilder_.mergeFrom(value);
25949        }
25950
25951        return this;
25952      }
25953      /**
25954       * <pre>
25955       *TODO: rename! In SUMO those links correspond to edges that are not necessarily convex
25956       * </pre>
25957       *
25958       * <code>.hybridsim.Coordinate centroid = 1;</code>
25959       */
25960      public Builder clearCentroid() {
25961        if (centroidBuilder_ == null) {
25962          centroid_ = null;
25963          onChanged();
25964        } else {
25965          centroid_ = null;
25966          centroidBuilder_ = null;
25967        }
25968
25969        return this;
25970      }
25971      /**
25972       * <pre>
25973       *TODO: rename! In SUMO those links correspond to edges that are not necessarily convex
25974       * </pre>
25975       *
25976       * <code>.hybridsim.Coordinate centroid = 1;</code>
25977       */
25978      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder getCentroidBuilder() {
25979        
25980        onChanged();
25981        return getCentroidFieldBuilder().getBuilder();
25982      }
25983      /**
25984       * <pre>
25985       *TODO: rename! In SUMO those links correspond to edges that are not necessarily convex
25986       * </pre>
25987       *
25988       * <code>.hybridsim.Coordinate centroid = 1;</code>
25989       */
25990      public org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder getCentroidOrBuilder() {
25991        if (centroidBuilder_ != null) {
25992          return centroidBuilder_.getMessageOrBuilder();
25993        } else {
25994          return centroid_ == null ?
25995              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance() : centroid_;
25996        }
25997      }
25998      /**
25999       * <pre>
26000       *TODO: rename! In SUMO those links correspond to edges that are not necessarily convex
26001       * </pre>
26002       *
26003       * <code>.hybridsim.Coordinate centroid = 1;</code>
26004       */
26005      private com.google.protobuf.SingleFieldBuilderV3<
26006          org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder> 
26007          getCentroidFieldBuilder() {
26008        if (centroidBuilder_ == null) {
26009          centroidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
26010              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder>(
26011                  getCentroid(),
26012                  getParentForChildren(),
26013                  isClean());
26014          centroid_ = null;
26015        }
26016        return centroidBuilder_;
26017      }
26018
26019      private int id_ ;
26020      /**
26021       * <code>int32 id = 2;</code>
26022       * @return The id.
26023       */
26024      public int getId() {
26025        return id_;
26026      }
26027      /**
26028       * <code>int32 id = 2;</code>
26029       * @param value The id to set.
26030       * @return This builder for chaining.
26031       */
26032      public Builder setId(int value) {
26033        
26034        id_ = value;
26035        onChanged();
26036        return this;
26037      }
26038      /**
26039       * <code>int32 id = 2;</code>
26040       * @return This builder for chaining.
26041       */
26042      public Builder clearId() {
26043        
26044        id_ = 0;
26045        onChanged();
26046        return this;
26047      }
26048      @java.lang.Override
26049      public final Builder setUnknownFields(
26050          final com.google.protobuf.UnknownFieldSet unknownFields) {
26051        return super.setUnknownFields(unknownFields);
26052      }
26053
26054      @java.lang.Override
26055      public final Builder mergeUnknownFields(
26056          final com.google.protobuf.UnknownFieldSet unknownFields) {
26057        return super.mergeUnknownFields(unknownFields);
26058      }
26059
26060
26061      // @@protoc_insertion_point(builder_scope:hybridsim.Link)
26062    }
26063
26064    // @@protoc_insertion_point(class_scope:hybridsim.Link)
26065    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Link DEFAULT_INSTANCE;
26066    static {
26067      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Link();
26068    }
26069
26070    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Link getDefaultInstance() {
26071      return DEFAULT_INSTANCE;
26072    }
26073
26074    private static final com.google.protobuf.Parser<Link>
26075        PARSER = new com.google.protobuf.AbstractParser<Link>() {
26076      @java.lang.Override
26077      public Link parsePartialFrom(
26078          com.google.protobuf.CodedInputStream input,
26079          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
26080          throws com.google.protobuf.InvalidProtocolBufferException {
26081        return new Link(input, extensionRegistry);
26082      }
26083    };
26084
26085    public static com.google.protobuf.Parser<Link> parser() {
26086      return PARSER;
26087    }
26088
26089    @java.lang.Override
26090    public com.google.protobuf.Parser<Link> getParserForType() {
26091      return PARSER;
26092    }
26093
26094    @java.lang.Override
26095    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Link getDefaultInstanceForType() {
26096      return DEFAULT_INSTANCE;
26097    }
26098
26099  }
26100
26101  public interface CoordinateOrBuilder extends
26102      // @@protoc_insertion_point(interface_extends:hybridsim.Coordinate)
26103      com.google.protobuf.MessageOrBuilder {
26104
26105    /**
26106     * <code>double x = 1;</code>
26107     * @return The x.
26108     */
26109    double getX();
26110
26111    /**
26112     * <code>double y = 2;</code>
26113     * @return The y.
26114     */
26115    double getY();
26116  }
26117  /**
26118   * Protobuf type {@code hybridsim.Coordinate}
26119   */
26120  public  static final class Coordinate extends
26121      com.google.protobuf.GeneratedMessageV3 implements
26122      // @@protoc_insertion_point(message_implements:hybridsim.Coordinate)
26123      CoordinateOrBuilder {
26124  private static final long serialVersionUID = 0L;
26125    // Use Coordinate.newBuilder() to construct.
26126    private Coordinate(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
26127      super(builder);
26128    }
26129    private Coordinate() {
26130    }
26131
26132    @java.lang.Override
26133    @SuppressWarnings({"unused"})
26134    protected java.lang.Object newInstance(
26135        UnusedPrivateParameter unused) {
26136      return new Coordinate();
26137    }
26138
26139    @java.lang.Override
26140    public final com.google.protobuf.UnknownFieldSet
26141    getUnknownFields() {
26142      return this.unknownFields;
26143    }
26144    private Coordinate(
26145        com.google.protobuf.CodedInputStream input,
26146        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
26147        throws com.google.protobuf.InvalidProtocolBufferException {
26148      this();
26149      if (extensionRegistry == null) {
26150        throw new java.lang.NullPointerException();
26151      }
26152      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
26153          com.google.protobuf.UnknownFieldSet.newBuilder();
26154      try {
26155        boolean done = false;
26156        while (!done) {
26157          int tag = input.readTag();
26158          switch (tag) {
26159            case 0:
26160              done = true;
26161              break;
26162            case 9: {
26163
26164              x_ = input.readDouble();
26165              break;
26166            }
26167            case 17: {
26168
26169              y_ = input.readDouble();
26170              break;
26171            }
26172            default: {
26173              if (!parseUnknownField(
26174                  input, unknownFields, extensionRegistry, tag)) {
26175                done = true;
26176              }
26177              break;
26178            }
26179          }
26180        }
26181      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
26182        throw e.setUnfinishedMessage(this);
26183      } catch (java.io.IOException e) {
26184        throw new com.google.protobuf.InvalidProtocolBufferException(
26185            e).setUnfinishedMessage(this);
26186      } finally {
26187        this.unknownFields = unknownFields.build();
26188        makeExtensionsImmutable();
26189      }
26190    }
26191    public static final com.google.protobuf.Descriptors.Descriptor
26192        getDescriptor() {
26193      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Coordinate_descriptor;
26194    }
26195
26196    @java.lang.Override
26197    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
26198        internalGetFieldAccessorTable() {
26199      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Coordinate_fieldAccessorTable
26200          .ensureFieldAccessorsInitialized(
26201              org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder.class);
26202    }
26203
26204    public static final int X_FIELD_NUMBER = 1;
26205    private double x_;
26206    /**
26207     * <code>double x = 1;</code>
26208     * @return The x.
26209     */
26210    public double getX() {
26211      return x_;
26212    }
26213
26214    public static final int Y_FIELD_NUMBER = 2;
26215    private double y_;
26216    /**
26217     * <code>double y = 2;</code>
26218     * @return The y.
26219     */
26220    public double getY() {
26221      return y_;
26222    }
26223
26224    private byte memoizedIsInitialized = -1;
26225    @java.lang.Override
26226    public final boolean isInitialized() {
26227      byte isInitialized = memoizedIsInitialized;
26228      if (isInitialized == 1) return true;
26229      if (isInitialized == 0) return false;
26230
26231      memoizedIsInitialized = 1;
26232      return true;
26233    }
26234
26235    @java.lang.Override
26236    public void writeTo(com.google.protobuf.CodedOutputStream output)
26237                        throws java.io.IOException {
26238      if (x_ != 0D) {
26239        output.writeDouble(1, x_);
26240      }
26241      if (y_ != 0D) {
26242        output.writeDouble(2, y_);
26243      }
26244      unknownFields.writeTo(output);
26245    }
26246
26247    @java.lang.Override
26248    public int getSerializedSize() {
26249      int size = memoizedSize;
26250      if (size != -1) return size;
26251
26252      size = 0;
26253      if (x_ != 0D) {
26254        size += com.google.protobuf.CodedOutputStream
26255          .computeDoubleSize(1, x_);
26256      }
26257      if (y_ != 0D) {
26258        size += com.google.protobuf.CodedOutputStream
26259          .computeDoubleSize(2, y_);
26260      }
26261      size += unknownFields.getSerializedSize();
26262      memoizedSize = size;
26263      return size;
26264    }
26265
26266    @java.lang.Override
26267    public boolean equals(final java.lang.Object obj) {
26268      if (obj == this) {
26269       return true;
26270      }
26271      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate)) {
26272        return super.equals(obj);
26273      }
26274      org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate) obj;
26275
26276      if (java.lang.Double.doubleToLongBits(getX())
26277          != java.lang.Double.doubleToLongBits(
26278              other.getX())) return false;
26279      if (java.lang.Double.doubleToLongBits(getY())
26280          != java.lang.Double.doubleToLongBits(
26281              other.getY())) return false;
26282      if (!unknownFields.equals(other.unknownFields)) return false;
26283      return true;
26284    }
26285
26286    @java.lang.Override
26287    public int hashCode() {
26288      if (memoizedHashCode != 0) {
26289        return memoizedHashCode;
26290      }
26291      int hash = 41;
26292      hash = (19 * hash) + getDescriptor().hashCode();
26293      hash = (37 * hash) + X_FIELD_NUMBER;
26294      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
26295          java.lang.Double.doubleToLongBits(getX()));
26296      hash = (37 * hash) + Y_FIELD_NUMBER;
26297      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
26298          java.lang.Double.doubleToLongBits(getY()));
26299      hash = (29 * hash) + unknownFields.hashCode();
26300      memoizedHashCode = hash;
26301      return hash;
26302    }
26303
26304    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate parseFrom(
26305        java.nio.ByteBuffer data)
26306        throws com.google.protobuf.InvalidProtocolBufferException {
26307      return PARSER.parseFrom(data);
26308    }
26309    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate parseFrom(
26310        java.nio.ByteBuffer data,
26311        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
26312        throws com.google.protobuf.InvalidProtocolBufferException {
26313      return PARSER.parseFrom(data, extensionRegistry);
26314    }
26315    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate parseFrom(
26316        com.google.protobuf.ByteString data)
26317        throws com.google.protobuf.InvalidProtocolBufferException {
26318      return PARSER.parseFrom(data);
26319    }
26320    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate parseFrom(
26321        com.google.protobuf.ByteString data,
26322        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
26323        throws com.google.protobuf.InvalidProtocolBufferException {
26324      return PARSER.parseFrom(data, extensionRegistry);
26325    }
26326    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate parseFrom(byte[] data)
26327        throws com.google.protobuf.InvalidProtocolBufferException {
26328      return PARSER.parseFrom(data);
26329    }
26330    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate parseFrom(
26331        byte[] data,
26332        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
26333        throws com.google.protobuf.InvalidProtocolBufferException {
26334      return PARSER.parseFrom(data, extensionRegistry);
26335    }
26336    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate parseFrom(java.io.InputStream input)
26337        throws java.io.IOException {
26338      return com.google.protobuf.GeneratedMessageV3
26339          .parseWithIOException(PARSER, input);
26340    }
26341    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate parseFrom(
26342        java.io.InputStream input,
26343        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
26344        throws java.io.IOException {
26345      return com.google.protobuf.GeneratedMessageV3
26346          .parseWithIOException(PARSER, input, extensionRegistry);
26347    }
26348    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate parseDelimitedFrom(java.io.InputStream input)
26349        throws java.io.IOException {
26350      return com.google.protobuf.GeneratedMessageV3
26351          .parseDelimitedWithIOException(PARSER, input);
26352    }
26353    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate parseDelimitedFrom(
26354        java.io.InputStream input,
26355        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
26356        throws java.io.IOException {
26357      return com.google.protobuf.GeneratedMessageV3
26358          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
26359    }
26360    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate parseFrom(
26361        com.google.protobuf.CodedInputStream input)
26362        throws java.io.IOException {
26363      return com.google.protobuf.GeneratedMessageV3
26364          .parseWithIOException(PARSER, input);
26365    }
26366    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate parseFrom(
26367        com.google.protobuf.CodedInputStream input,
26368        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
26369        throws java.io.IOException {
26370      return com.google.protobuf.GeneratedMessageV3
26371          .parseWithIOException(PARSER, input, extensionRegistry);
26372    }
26373
26374    @java.lang.Override
26375    public Builder newBuilderForType() { return newBuilder(); }
26376    public static Builder newBuilder() {
26377      return DEFAULT_INSTANCE.toBuilder();
26378    }
26379    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate prototype) {
26380      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
26381    }
26382    @java.lang.Override
26383    public Builder toBuilder() {
26384      return this == DEFAULT_INSTANCE
26385          ? new Builder() : new Builder().mergeFrom(this);
26386    }
26387
26388    @java.lang.Override
26389    protected Builder newBuilderForType(
26390        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
26391      Builder builder = new Builder(parent);
26392      return builder;
26393    }
26394    /**
26395     * Protobuf type {@code hybridsim.Coordinate}
26396     */
26397    public static final class Builder extends
26398        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
26399        // @@protoc_insertion_point(builder_implements:hybridsim.Coordinate)
26400        org.matsim.contrib.hybridsim.proto.HybridSimProto.CoordinateOrBuilder {
26401      public static final com.google.protobuf.Descriptors.Descriptor
26402          getDescriptor() {
26403        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Coordinate_descriptor;
26404      }
26405
26406      @java.lang.Override
26407      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
26408          internalGetFieldAccessorTable() {
26409        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Coordinate_fieldAccessorTable
26410            .ensureFieldAccessorsInitialized(
26411                org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.Builder.class);
26412      }
26413
26414      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.newBuilder()
26415      private Builder() {
26416        maybeForceBuilderInitialization();
26417      }
26418
26419      private Builder(
26420          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
26421        super(parent);
26422        maybeForceBuilderInitialization();
26423      }
26424      private void maybeForceBuilderInitialization() {
26425        if (com.google.protobuf.GeneratedMessageV3
26426                .alwaysUseFieldBuilders) {
26427        }
26428      }
26429      @java.lang.Override
26430      public Builder clear() {
26431        super.clear();
26432        x_ = 0D;
26433
26434        y_ = 0D;
26435
26436        return this;
26437      }
26438
26439      @java.lang.Override
26440      public com.google.protobuf.Descriptors.Descriptor
26441          getDescriptorForType() {
26442        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Coordinate_descriptor;
26443      }
26444
26445      @java.lang.Override
26446      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getDefaultInstanceForType() {
26447        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance();
26448      }
26449
26450      @java.lang.Override
26451      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate build() {
26452        org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate result = buildPartial();
26453        if (!result.isInitialized()) {
26454          throw newUninitializedMessageException(result);
26455        }
26456        return result;
26457      }
26458
26459      @java.lang.Override
26460      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate buildPartial() {
26461        org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate(this);
26462        result.x_ = x_;
26463        result.y_ = y_;
26464        onBuilt();
26465        return result;
26466      }
26467
26468      @java.lang.Override
26469      public Builder clone() {
26470        return super.clone();
26471      }
26472      @java.lang.Override
26473      public Builder setField(
26474          com.google.protobuf.Descriptors.FieldDescriptor field,
26475          java.lang.Object value) {
26476        return super.setField(field, value);
26477      }
26478      @java.lang.Override
26479      public Builder clearField(
26480          com.google.protobuf.Descriptors.FieldDescriptor field) {
26481        return super.clearField(field);
26482      }
26483      @java.lang.Override
26484      public Builder clearOneof(
26485          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
26486        return super.clearOneof(oneof);
26487      }
26488      @java.lang.Override
26489      public Builder setRepeatedField(
26490          com.google.protobuf.Descriptors.FieldDescriptor field,
26491          int index, java.lang.Object value) {
26492        return super.setRepeatedField(field, index, value);
26493      }
26494      @java.lang.Override
26495      public Builder addRepeatedField(
26496          com.google.protobuf.Descriptors.FieldDescriptor field,
26497          java.lang.Object value) {
26498        return super.addRepeatedField(field, value);
26499      }
26500      @java.lang.Override
26501      public Builder mergeFrom(com.google.protobuf.Message other) {
26502        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate) {
26503          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate)other);
26504        } else {
26505          super.mergeFrom(other);
26506          return this;
26507        }
26508      }
26509
26510      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate other) {
26511        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate.getDefaultInstance()) return this;
26512        if (other.getX() != 0D) {
26513          setX(other.getX());
26514        }
26515        if (other.getY() != 0D) {
26516          setY(other.getY());
26517        }
26518        this.mergeUnknownFields(other.unknownFields);
26519        onChanged();
26520        return this;
26521      }
26522
26523      @java.lang.Override
26524      public final boolean isInitialized() {
26525        return true;
26526      }
26527
26528      @java.lang.Override
26529      public Builder mergeFrom(
26530          com.google.protobuf.CodedInputStream input,
26531          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
26532          throws java.io.IOException {
26533        org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate parsedMessage = null;
26534        try {
26535          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
26536        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
26537          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate) e.getUnfinishedMessage();
26538          throw e.unwrapIOException();
26539        } finally {
26540          if (parsedMessage != null) {
26541            mergeFrom(parsedMessage);
26542          }
26543        }
26544        return this;
26545      }
26546
26547      private double x_ ;
26548      /**
26549       * <code>double x = 1;</code>
26550       * @return The x.
26551       */
26552      public double getX() {
26553        return x_;
26554      }
26555      /**
26556       * <code>double x = 1;</code>
26557       * @param value The x to set.
26558       * @return This builder for chaining.
26559       */
26560      public Builder setX(double value) {
26561        
26562        x_ = value;
26563        onChanged();
26564        return this;
26565      }
26566      /**
26567       * <code>double x = 1;</code>
26568       * @return This builder for chaining.
26569       */
26570      public Builder clearX() {
26571        
26572        x_ = 0D;
26573        onChanged();
26574        return this;
26575      }
26576
26577      private double y_ ;
26578      /**
26579       * <code>double y = 2;</code>
26580       * @return The y.
26581       */
26582      public double getY() {
26583        return y_;
26584      }
26585      /**
26586       * <code>double y = 2;</code>
26587       * @param value The y to set.
26588       * @return This builder for chaining.
26589       */
26590      public Builder setY(double value) {
26591        
26592        y_ = value;
26593        onChanged();
26594        return this;
26595      }
26596      /**
26597       * <code>double y = 2;</code>
26598       * @return This builder for chaining.
26599       */
26600      public Builder clearY() {
26601        
26602        y_ = 0D;
26603        onChanged();
26604        return this;
26605      }
26606      @java.lang.Override
26607      public final Builder setUnknownFields(
26608          final com.google.protobuf.UnknownFieldSet unknownFields) {
26609        return super.setUnknownFields(unknownFields);
26610      }
26611
26612      @java.lang.Override
26613      public final Builder mergeUnknownFields(
26614          final com.google.protobuf.UnknownFieldSet unknownFields) {
26615        return super.mergeUnknownFields(unknownFields);
26616      }
26617
26618
26619      // @@protoc_insertion_point(builder_scope:hybridsim.Coordinate)
26620    }
26621
26622    // @@protoc_insertion_point(class_scope:hybridsim.Coordinate)
26623    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate DEFAULT_INSTANCE;
26624    static {
26625      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate();
26626    }
26627
26628    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getDefaultInstance() {
26629      return DEFAULT_INSTANCE;
26630    }
26631
26632    private static final com.google.protobuf.Parser<Coordinate>
26633        PARSER = new com.google.protobuf.AbstractParser<Coordinate>() {
26634      @java.lang.Override
26635      public Coordinate parsePartialFrom(
26636          com.google.protobuf.CodedInputStream input,
26637          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
26638          throws com.google.protobuf.InvalidProtocolBufferException {
26639        return new Coordinate(input, extensionRegistry);
26640      }
26641    };
26642
26643    public static com.google.protobuf.Parser<Coordinate> parser() {
26644      return PARSER;
26645    }
26646
26647    @java.lang.Override
26648    public com.google.protobuf.Parser<Coordinate> getParserForType() {
26649      return PARSER;
26650    }
26651
26652    @java.lang.Override
26653    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Coordinate getDefaultInstanceForType() {
26654      return DEFAULT_INSTANCE;
26655    }
26656
26657  }
26658
26659  public interface AgentsOrBuilder extends
26660      // @@protoc_insertion_point(interface_extends:hybridsim.Agents)
26661      com.google.protobuf.MessageOrBuilder {
26662
26663    /**
26664     * <code>repeated .hybridsim.Agent agents = 1;</code>
26665     */
26666    java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent> 
26667        getAgentsList();
26668    /**
26669     * <code>repeated .hybridsim.Agent agents = 1;</code>
26670     */
26671    org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent getAgents(int index);
26672    /**
26673     * <code>repeated .hybridsim.Agent agents = 1;</code>
26674     */
26675    int getAgentsCount();
26676    /**
26677     * <code>repeated .hybridsim.Agent agents = 1;</code>
26678     */
26679    java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentOrBuilder> 
26680        getAgentsOrBuilderList();
26681    /**
26682     * <code>repeated .hybridsim.Agent agents = 1;</code>
26683     */
26684    org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentOrBuilder getAgentsOrBuilder(
26685        int index);
26686  }
26687  /**
26688   * Protobuf type {@code hybridsim.Agents}
26689   */
26690  public  static final class Agents extends
26691      com.google.protobuf.GeneratedMessageV3 implements
26692      // @@protoc_insertion_point(message_implements:hybridsim.Agents)
26693      AgentsOrBuilder {
26694  private static final long serialVersionUID = 0L;
26695    // Use Agents.newBuilder() to construct.
26696    private Agents(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
26697      super(builder);
26698    }
26699    private Agents() {
26700      agents_ = java.util.Collections.emptyList();
26701    }
26702
26703    @java.lang.Override
26704    @SuppressWarnings({"unused"})
26705    protected java.lang.Object newInstance(
26706        UnusedPrivateParameter unused) {
26707      return new Agents();
26708    }
26709
26710    @java.lang.Override
26711    public final com.google.protobuf.UnknownFieldSet
26712    getUnknownFields() {
26713      return this.unknownFields;
26714    }
26715    private Agents(
26716        com.google.protobuf.CodedInputStream input,
26717        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
26718        throws com.google.protobuf.InvalidProtocolBufferException {
26719      this();
26720      if (extensionRegistry == null) {
26721        throw new java.lang.NullPointerException();
26722      }
26723      int mutable_bitField0_ = 0;
26724      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
26725          com.google.protobuf.UnknownFieldSet.newBuilder();
26726      try {
26727        boolean done = false;
26728        while (!done) {
26729          int tag = input.readTag();
26730          switch (tag) {
26731            case 0:
26732              done = true;
26733              break;
26734            case 10: {
26735              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
26736                agents_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent>();
26737                mutable_bitField0_ |= 0x00000001;
26738              }
26739              agents_.add(
26740                  input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.parser(), extensionRegistry));
26741              break;
26742            }
26743            default: {
26744              if (!parseUnknownField(
26745                  input, unknownFields, extensionRegistry, tag)) {
26746                done = true;
26747              }
26748              break;
26749            }
26750          }
26751        }
26752      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
26753        throw e.setUnfinishedMessage(this);
26754      } catch (java.io.IOException e) {
26755        throw new com.google.protobuf.InvalidProtocolBufferException(
26756            e).setUnfinishedMessage(this);
26757      } finally {
26758        if (((mutable_bitField0_ & 0x00000001) != 0)) {
26759          agents_ = java.util.Collections.unmodifiableList(agents_);
26760        }
26761        this.unknownFields = unknownFields.build();
26762        makeExtensionsImmutable();
26763      }
26764    }
26765    public static final com.google.protobuf.Descriptors.Descriptor
26766        getDescriptor() {
26767      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Agents_descriptor;
26768    }
26769
26770    @java.lang.Override
26771    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
26772        internalGetFieldAccessorTable() {
26773      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Agents_fieldAccessorTable
26774          .ensureFieldAccessorsInitialized(
26775              org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents.Builder.class);
26776    }
26777
26778    public static final int AGENTS_FIELD_NUMBER = 1;
26779    private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent> agents_;
26780    /**
26781     * <code>repeated .hybridsim.Agent agents = 1;</code>
26782     */
26783    public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent> getAgentsList() {
26784      return agents_;
26785    }
26786    /**
26787     * <code>repeated .hybridsim.Agent agents = 1;</code>
26788     */
26789    public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentOrBuilder> 
26790        getAgentsOrBuilderList() {
26791      return agents_;
26792    }
26793    /**
26794     * <code>repeated .hybridsim.Agent agents = 1;</code>
26795     */
26796    public int getAgentsCount() {
26797      return agents_.size();
26798    }
26799    /**
26800     * <code>repeated .hybridsim.Agent agents = 1;</code>
26801     */
26802    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent getAgents(int index) {
26803      return agents_.get(index);
26804    }
26805    /**
26806     * <code>repeated .hybridsim.Agent agents = 1;</code>
26807     */
26808    public org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentOrBuilder getAgentsOrBuilder(
26809        int index) {
26810      return agents_.get(index);
26811    }
26812
26813    private byte memoizedIsInitialized = -1;
26814    @java.lang.Override
26815    public final boolean isInitialized() {
26816      byte isInitialized = memoizedIsInitialized;
26817      if (isInitialized == 1) return true;
26818      if (isInitialized == 0) return false;
26819
26820      memoizedIsInitialized = 1;
26821      return true;
26822    }
26823
26824    @java.lang.Override
26825    public void writeTo(com.google.protobuf.CodedOutputStream output)
26826                        throws java.io.IOException {
26827      for (int i = 0; i < agents_.size(); i++) {
26828        output.writeMessage(1, agents_.get(i));
26829      }
26830      unknownFields.writeTo(output);
26831    }
26832
26833    @java.lang.Override
26834    public int getSerializedSize() {
26835      int size = memoizedSize;
26836      if (size != -1) return size;
26837
26838      size = 0;
26839      for (int i = 0; i < agents_.size(); i++) {
26840        size += com.google.protobuf.CodedOutputStream
26841          .computeMessageSize(1, agents_.get(i));
26842      }
26843      size += unknownFields.getSerializedSize();
26844      memoizedSize = size;
26845      return size;
26846    }
26847
26848    @java.lang.Override
26849    public boolean equals(final java.lang.Object obj) {
26850      if (obj == this) {
26851       return true;
26852      }
26853      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents)) {
26854        return super.equals(obj);
26855      }
26856      org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents) obj;
26857
26858      if (!getAgentsList()
26859          .equals(other.getAgentsList())) return false;
26860      if (!unknownFields.equals(other.unknownFields)) return false;
26861      return true;
26862    }
26863
26864    @java.lang.Override
26865    public int hashCode() {
26866      if (memoizedHashCode != 0) {
26867        return memoizedHashCode;
26868      }
26869      int hash = 41;
26870      hash = (19 * hash) + getDescriptor().hashCode();
26871      if (getAgentsCount() > 0) {
26872        hash = (37 * hash) + AGENTS_FIELD_NUMBER;
26873        hash = (53 * hash) + getAgentsList().hashCode();
26874      }
26875      hash = (29 * hash) + unknownFields.hashCode();
26876      memoizedHashCode = hash;
26877      return hash;
26878    }
26879
26880    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents parseFrom(
26881        java.nio.ByteBuffer data)
26882        throws com.google.protobuf.InvalidProtocolBufferException {
26883      return PARSER.parseFrom(data);
26884    }
26885    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents parseFrom(
26886        java.nio.ByteBuffer data,
26887        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
26888        throws com.google.protobuf.InvalidProtocolBufferException {
26889      return PARSER.parseFrom(data, extensionRegistry);
26890    }
26891    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents parseFrom(
26892        com.google.protobuf.ByteString data)
26893        throws com.google.protobuf.InvalidProtocolBufferException {
26894      return PARSER.parseFrom(data);
26895    }
26896    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents parseFrom(
26897        com.google.protobuf.ByteString data,
26898        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
26899        throws com.google.protobuf.InvalidProtocolBufferException {
26900      return PARSER.parseFrom(data, extensionRegistry);
26901    }
26902    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents parseFrom(byte[] data)
26903        throws com.google.protobuf.InvalidProtocolBufferException {
26904      return PARSER.parseFrom(data);
26905    }
26906    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents parseFrom(
26907        byte[] data,
26908        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
26909        throws com.google.protobuf.InvalidProtocolBufferException {
26910      return PARSER.parseFrom(data, extensionRegistry);
26911    }
26912    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents parseFrom(java.io.InputStream input)
26913        throws java.io.IOException {
26914      return com.google.protobuf.GeneratedMessageV3
26915          .parseWithIOException(PARSER, input);
26916    }
26917    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents parseFrom(
26918        java.io.InputStream input,
26919        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
26920        throws java.io.IOException {
26921      return com.google.protobuf.GeneratedMessageV3
26922          .parseWithIOException(PARSER, input, extensionRegistry);
26923    }
26924    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents parseDelimitedFrom(java.io.InputStream input)
26925        throws java.io.IOException {
26926      return com.google.protobuf.GeneratedMessageV3
26927          .parseDelimitedWithIOException(PARSER, input);
26928    }
26929    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents parseDelimitedFrom(
26930        java.io.InputStream input,
26931        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
26932        throws java.io.IOException {
26933      return com.google.protobuf.GeneratedMessageV3
26934          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
26935    }
26936    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents parseFrom(
26937        com.google.protobuf.CodedInputStream input)
26938        throws java.io.IOException {
26939      return com.google.protobuf.GeneratedMessageV3
26940          .parseWithIOException(PARSER, input);
26941    }
26942    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents parseFrom(
26943        com.google.protobuf.CodedInputStream input,
26944        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
26945        throws java.io.IOException {
26946      return com.google.protobuf.GeneratedMessageV3
26947          .parseWithIOException(PARSER, input, extensionRegistry);
26948    }
26949
26950    @java.lang.Override
26951    public Builder newBuilderForType() { return newBuilder(); }
26952    public static Builder newBuilder() {
26953      return DEFAULT_INSTANCE.toBuilder();
26954    }
26955    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents prototype) {
26956      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
26957    }
26958    @java.lang.Override
26959    public Builder toBuilder() {
26960      return this == DEFAULT_INSTANCE
26961          ? new Builder() : new Builder().mergeFrom(this);
26962    }
26963
26964    @java.lang.Override
26965    protected Builder newBuilderForType(
26966        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
26967      Builder builder = new Builder(parent);
26968      return builder;
26969    }
26970    /**
26971     * Protobuf type {@code hybridsim.Agents}
26972     */
26973    public static final class Builder extends
26974        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
26975        // @@protoc_insertion_point(builder_implements:hybridsim.Agents)
26976        org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentsOrBuilder {
26977      public static final com.google.protobuf.Descriptors.Descriptor
26978          getDescriptor() {
26979        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Agents_descriptor;
26980      }
26981
26982      @java.lang.Override
26983      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
26984          internalGetFieldAccessorTable() {
26985        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Agents_fieldAccessorTable
26986            .ensureFieldAccessorsInitialized(
26987                org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents.Builder.class);
26988      }
26989
26990      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents.newBuilder()
26991      private Builder() {
26992        maybeForceBuilderInitialization();
26993      }
26994
26995      private Builder(
26996          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
26997        super(parent);
26998        maybeForceBuilderInitialization();
26999      }
27000      private void maybeForceBuilderInitialization() {
27001        if (com.google.protobuf.GeneratedMessageV3
27002                .alwaysUseFieldBuilders) {
27003          getAgentsFieldBuilder();
27004        }
27005      }
27006      @java.lang.Override
27007      public Builder clear() {
27008        super.clear();
27009        if (agentsBuilder_ == null) {
27010          agents_ = java.util.Collections.emptyList();
27011          bitField0_ = (bitField0_ & ~0x00000001);
27012        } else {
27013          agentsBuilder_.clear();
27014        }
27015        return this;
27016      }
27017
27018      @java.lang.Override
27019      public com.google.protobuf.Descriptors.Descriptor
27020          getDescriptorForType() {
27021        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Agents_descriptor;
27022      }
27023
27024      @java.lang.Override
27025      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents getDefaultInstanceForType() {
27026        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents.getDefaultInstance();
27027      }
27028
27029      @java.lang.Override
27030      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents build() {
27031        org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents result = buildPartial();
27032        if (!result.isInitialized()) {
27033          throw newUninitializedMessageException(result);
27034        }
27035        return result;
27036      }
27037
27038      @java.lang.Override
27039      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents buildPartial() {
27040        org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents(this);
27041        int from_bitField0_ = bitField0_;
27042        if (agentsBuilder_ == null) {
27043          if (((bitField0_ & 0x00000001) != 0)) {
27044            agents_ = java.util.Collections.unmodifiableList(agents_);
27045            bitField0_ = (bitField0_ & ~0x00000001);
27046          }
27047          result.agents_ = agents_;
27048        } else {
27049          result.agents_ = agentsBuilder_.build();
27050        }
27051        onBuilt();
27052        return result;
27053      }
27054
27055      @java.lang.Override
27056      public Builder clone() {
27057        return super.clone();
27058      }
27059      @java.lang.Override
27060      public Builder setField(
27061          com.google.protobuf.Descriptors.FieldDescriptor field,
27062          java.lang.Object value) {
27063        return super.setField(field, value);
27064      }
27065      @java.lang.Override
27066      public Builder clearField(
27067          com.google.protobuf.Descriptors.FieldDescriptor field) {
27068        return super.clearField(field);
27069      }
27070      @java.lang.Override
27071      public Builder clearOneof(
27072          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
27073        return super.clearOneof(oneof);
27074      }
27075      @java.lang.Override
27076      public Builder setRepeatedField(
27077          com.google.protobuf.Descriptors.FieldDescriptor field,
27078          int index, java.lang.Object value) {
27079        return super.setRepeatedField(field, index, value);
27080      }
27081      @java.lang.Override
27082      public Builder addRepeatedField(
27083          com.google.protobuf.Descriptors.FieldDescriptor field,
27084          java.lang.Object value) {
27085        return super.addRepeatedField(field, value);
27086      }
27087      @java.lang.Override
27088      public Builder mergeFrom(com.google.protobuf.Message other) {
27089        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents) {
27090          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents)other);
27091        } else {
27092          super.mergeFrom(other);
27093          return this;
27094        }
27095      }
27096
27097      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents other) {
27098        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents.getDefaultInstance()) return this;
27099        if (agentsBuilder_ == null) {
27100          if (!other.agents_.isEmpty()) {
27101            if (agents_.isEmpty()) {
27102              agents_ = other.agents_;
27103              bitField0_ = (bitField0_ & ~0x00000001);
27104            } else {
27105              ensureAgentsIsMutable();
27106              agents_.addAll(other.agents_);
27107            }
27108            onChanged();
27109          }
27110        } else {
27111          if (!other.agents_.isEmpty()) {
27112            if (agentsBuilder_.isEmpty()) {
27113              agentsBuilder_.dispose();
27114              agentsBuilder_ = null;
27115              agents_ = other.agents_;
27116              bitField0_ = (bitField0_ & ~0x00000001);
27117              agentsBuilder_ = 
27118                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
27119                   getAgentsFieldBuilder() : null;
27120            } else {
27121              agentsBuilder_.addAllMessages(other.agents_);
27122            }
27123          }
27124        }
27125        this.mergeUnknownFields(other.unknownFields);
27126        onChanged();
27127        return this;
27128      }
27129
27130      @java.lang.Override
27131      public final boolean isInitialized() {
27132        return true;
27133      }
27134
27135      @java.lang.Override
27136      public Builder mergeFrom(
27137          com.google.protobuf.CodedInputStream input,
27138          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
27139          throws java.io.IOException {
27140        org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents parsedMessage = null;
27141        try {
27142          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
27143        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
27144          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents) e.getUnfinishedMessage();
27145          throw e.unwrapIOException();
27146        } finally {
27147          if (parsedMessage != null) {
27148            mergeFrom(parsedMessage);
27149          }
27150        }
27151        return this;
27152      }
27153      private int bitField0_;
27154
27155      private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent> agents_ =
27156        java.util.Collections.emptyList();
27157      private void ensureAgentsIsMutable() {
27158        if (!((bitField0_ & 0x00000001) != 0)) {
27159          agents_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent>(agents_);
27160          bitField0_ |= 0x00000001;
27161         }
27162      }
27163
27164      private com.google.protobuf.RepeatedFieldBuilderV3<
27165          org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent, org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentOrBuilder> agentsBuilder_;
27166
27167      /**
27168       * <code>repeated .hybridsim.Agent agents = 1;</code>
27169       */
27170      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent> getAgentsList() {
27171        if (agentsBuilder_ == null) {
27172          return java.util.Collections.unmodifiableList(agents_);
27173        } else {
27174          return agentsBuilder_.getMessageList();
27175        }
27176      }
27177      /**
27178       * <code>repeated .hybridsim.Agent agents = 1;</code>
27179       */
27180      public int getAgentsCount() {
27181        if (agentsBuilder_ == null) {
27182          return agents_.size();
27183        } else {
27184          return agentsBuilder_.getCount();
27185        }
27186      }
27187      /**
27188       * <code>repeated .hybridsim.Agent agents = 1;</code>
27189       */
27190      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent getAgents(int index) {
27191        if (agentsBuilder_ == null) {
27192          return agents_.get(index);
27193        } else {
27194          return agentsBuilder_.getMessage(index);
27195        }
27196      }
27197      /**
27198       * <code>repeated .hybridsim.Agent agents = 1;</code>
27199       */
27200      public Builder setAgents(
27201          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent value) {
27202        if (agentsBuilder_ == null) {
27203          if (value == null) {
27204            throw new NullPointerException();
27205          }
27206          ensureAgentsIsMutable();
27207          agents_.set(index, value);
27208          onChanged();
27209        } else {
27210          agentsBuilder_.setMessage(index, value);
27211        }
27212        return this;
27213      }
27214      /**
27215       * <code>repeated .hybridsim.Agent agents = 1;</code>
27216       */
27217      public Builder setAgents(
27218          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.Builder builderForValue) {
27219        if (agentsBuilder_ == null) {
27220          ensureAgentsIsMutable();
27221          agents_.set(index, builderForValue.build());
27222          onChanged();
27223        } else {
27224          agentsBuilder_.setMessage(index, builderForValue.build());
27225        }
27226        return this;
27227      }
27228      /**
27229       * <code>repeated .hybridsim.Agent agents = 1;</code>
27230       */
27231      public Builder addAgents(org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent value) {
27232        if (agentsBuilder_ == null) {
27233          if (value == null) {
27234            throw new NullPointerException();
27235          }
27236          ensureAgentsIsMutable();
27237          agents_.add(value);
27238          onChanged();
27239        } else {
27240          agentsBuilder_.addMessage(value);
27241        }
27242        return this;
27243      }
27244      /**
27245       * <code>repeated .hybridsim.Agent agents = 1;</code>
27246       */
27247      public Builder addAgents(
27248          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent value) {
27249        if (agentsBuilder_ == null) {
27250          if (value == null) {
27251            throw new NullPointerException();
27252          }
27253          ensureAgentsIsMutable();
27254          agents_.add(index, value);
27255          onChanged();
27256        } else {
27257          agentsBuilder_.addMessage(index, value);
27258        }
27259        return this;
27260      }
27261      /**
27262       * <code>repeated .hybridsim.Agent agents = 1;</code>
27263       */
27264      public Builder addAgents(
27265          org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.Builder builderForValue) {
27266        if (agentsBuilder_ == null) {
27267          ensureAgentsIsMutable();
27268          agents_.add(builderForValue.build());
27269          onChanged();
27270        } else {
27271          agentsBuilder_.addMessage(builderForValue.build());
27272        }
27273        return this;
27274      }
27275      /**
27276       * <code>repeated .hybridsim.Agent agents = 1;</code>
27277       */
27278      public Builder addAgents(
27279          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.Builder builderForValue) {
27280        if (agentsBuilder_ == null) {
27281          ensureAgentsIsMutable();
27282          agents_.add(index, builderForValue.build());
27283          onChanged();
27284        } else {
27285          agentsBuilder_.addMessage(index, builderForValue.build());
27286        }
27287        return this;
27288      }
27289      /**
27290       * <code>repeated .hybridsim.Agent agents = 1;</code>
27291       */
27292      public Builder addAllAgents(
27293          java.lang.Iterable<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent> values) {
27294        if (agentsBuilder_ == null) {
27295          ensureAgentsIsMutable();
27296          com.google.protobuf.AbstractMessageLite.Builder.addAll(
27297              values, agents_);
27298          onChanged();
27299        } else {
27300          agentsBuilder_.addAllMessages(values);
27301        }
27302        return this;
27303      }
27304      /**
27305       * <code>repeated .hybridsim.Agent agents = 1;</code>
27306       */
27307      public Builder clearAgents() {
27308        if (agentsBuilder_ == null) {
27309          agents_ = java.util.Collections.emptyList();
27310          bitField0_ = (bitField0_ & ~0x00000001);
27311          onChanged();
27312        } else {
27313          agentsBuilder_.clear();
27314        }
27315        return this;
27316      }
27317      /**
27318       * <code>repeated .hybridsim.Agent agents = 1;</code>
27319       */
27320      public Builder removeAgents(int index) {
27321        if (agentsBuilder_ == null) {
27322          ensureAgentsIsMutable();
27323          agents_.remove(index);
27324          onChanged();
27325        } else {
27326          agentsBuilder_.remove(index);
27327        }
27328        return this;
27329      }
27330      /**
27331       * <code>repeated .hybridsim.Agent agents = 1;</code>
27332       */
27333      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.Builder getAgentsBuilder(
27334          int index) {
27335        return getAgentsFieldBuilder().getBuilder(index);
27336      }
27337      /**
27338       * <code>repeated .hybridsim.Agent agents = 1;</code>
27339       */
27340      public org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentOrBuilder getAgentsOrBuilder(
27341          int index) {
27342        if (agentsBuilder_ == null) {
27343          return agents_.get(index);  } else {
27344          return agentsBuilder_.getMessageOrBuilder(index);
27345        }
27346      }
27347      /**
27348       * <code>repeated .hybridsim.Agent agents = 1;</code>
27349       */
27350      public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentOrBuilder> 
27351           getAgentsOrBuilderList() {
27352        if (agentsBuilder_ != null) {
27353          return agentsBuilder_.getMessageOrBuilderList();
27354        } else {
27355          return java.util.Collections.unmodifiableList(agents_);
27356        }
27357      }
27358      /**
27359       * <code>repeated .hybridsim.Agent agents = 1;</code>
27360       */
27361      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.Builder addAgentsBuilder() {
27362        return getAgentsFieldBuilder().addBuilder(
27363            org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.getDefaultInstance());
27364      }
27365      /**
27366       * <code>repeated .hybridsim.Agent agents = 1;</code>
27367       */
27368      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.Builder addAgentsBuilder(
27369          int index) {
27370        return getAgentsFieldBuilder().addBuilder(
27371            index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.getDefaultInstance());
27372      }
27373      /**
27374       * <code>repeated .hybridsim.Agent agents = 1;</code>
27375       */
27376      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.Builder> 
27377           getAgentsBuilderList() {
27378        return getAgentsFieldBuilder().getBuilderList();
27379      }
27380      private com.google.protobuf.RepeatedFieldBuilderV3<
27381          org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent, org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentOrBuilder> 
27382          getAgentsFieldBuilder() {
27383        if (agentsBuilder_ == null) {
27384          agentsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
27385              org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent, org.matsim.contrib.hybridsim.proto.HybridSimProto.Agent.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.AgentOrBuilder>(
27386                  agents_,
27387                  ((bitField0_ & 0x00000001) != 0),
27388                  getParentForChildren(),
27389                  isClean());
27390          agents_ = null;
27391        }
27392        return agentsBuilder_;
27393      }
27394      @java.lang.Override
27395      public final Builder setUnknownFields(
27396          final com.google.protobuf.UnknownFieldSet unknownFields) {
27397        return super.setUnknownFields(unknownFields);
27398      }
27399
27400      @java.lang.Override
27401      public final Builder mergeUnknownFields(
27402          final com.google.protobuf.UnknownFieldSet unknownFields) {
27403        return super.mergeUnknownFields(unknownFields);
27404      }
27405
27406
27407      // @@protoc_insertion_point(builder_scope:hybridsim.Agents)
27408    }
27409
27410    // @@protoc_insertion_point(class_scope:hybridsim.Agents)
27411    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents DEFAULT_INSTANCE;
27412    static {
27413      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents();
27414    }
27415
27416    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents getDefaultInstance() {
27417      return DEFAULT_INSTANCE;
27418    }
27419
27420    private static final com.google.protobuf.Parser<Agents>
27421        PARSER = new com.google.protobuf.AbstractParser<Agents>() {
27422      @java.lang.Override
27423      public Agents parsePartialFrom(
27424          com.google.protobuf.CodedInputStream input,
27425          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
27426          throws com.google.protobuf.InvalidProtocolBufferException {
27427        return new Agents(input, extensionRegistry);
27428      }
27429    };
27430
27431    public static com.google.protobuf.Parser<Agents> parser() {
27432      return PARSER;
27433    }
27434
27435    @java.lang.Override
27436    public com.google.protobuf.Parser<Agents> getParserForType() {
27437      return PARSER;
27438    }
27439
27440    @java.lang.Override
27441    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Agents getDefaultInstanceForType() {
27442      return DEFAULT_INSTANCE;
27443    }
27444
27445  }
27446
27447  public interface TrajectoryOrBuilder extends
27448      // @@protoc_insertion_point(interface_extends:hybridsim.Trajectory)
27449      com.google.protobuf.MessageOrBuilder {
27450
27451    /**
27452     * <code>string id = 1;</code>
27453     * @return The id.
27454     */
27455    java.lang.String getId();
27456    /**
27457     * <code>string id = 1;</code>
27458     * @return The bytes for id.
27459     */
27460    com.google.protobuf.ByteString
27461        getIdBytes();
27462
27463    /**
27464     * <code>double x = 2;</code>
27465     * @return The x.
27466     */
27467    double getX();
27468
27469    /**
27470     * <code>double y = 3;</code>
27471     * @return The y.
27472     */
27473    double getY();
27474
27475    /**
27476     * <code>double spd = 4;</code>
27477     * @return The spd.
27478     */
27479    double getSpd();
27480
27481    /**
27482     * <pre>
27483     *TODO: report vx / vy instead of spd and phi
27484     * </pre>
27485     *
27486     * <code>double phi = 5;</code>
27487     * @return The phi.
27488     */
27489    double getPhi();
27490
27491    /**
27492     * <code>int32 linkId = 6;</code>
27493     * @return The linkId.
27494     */
27495    int getLinkId();
27496
27497    /**
27498     * <code>double vx = 7;</code>
27499     * @return The vx.
27500     */
27501    double getVx();
27502
27503    /**
27504     * <code>double vy = 8;</code>
27505     * @return The vy.
27506     */
27507    double getVy();
27508  }
27509  /**
27510   * Protobuf type {@code hybridsim.Trajectory}
27511   */
27512  public  static final class Trajectory extends
27513      com.google.protobuf.GeneratedMessageV3 implements
27514      // @@protoc_insertion_point(message_implements:hybridsim.Trajectory)
27515      TrajectoryOrBuilder {
27516  private static final long serialVersionUID = 0L;
27517    // Use Trajectory.newBuilder() to construct.
27518    private Trajectory(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
27519      super(builder);
27520    }
27521    private Trajectory() {
27522      id_ = "";
27523    }
27524
27525    @java.lang.Override
27526    @SuppressWarnings({"unused"})
27527    protected java.lang.Object newInstance(
27528        UnusedPrivateParameter unused) {
27529      return new Trajectory();
27530    }
27531
27532    @java.lang.Override
27533    public final com.google.protobuf.UnknownFieldSet
27534    getUnknownFields() {
27535      return this.unknownFields;
27536    }
27537    private Trajectory(
27538        com.google.protobuf.CodedInputStream input,
27539        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
27540        throws com.google.protobuf.InvalidProtocolBufferException {
27541      this();
27542      if (extensionRegistry == null) {
27543        throw new java.lang.NullPointerException();
27544      }
27545      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
27546          com.google.protobuf.UnknownFieldSet.newBuilder();
27547      try {
27548        boolean done = false;
27549        while (!done) {
27550          int tag = input.readTag();
27551          switch (tag) {
27552            case 0:
27553              done = true;
27554              break;
27555            case 10: {
27556              java.lang.String s = input.readStringRequireUtf8();
27557
27558              id_ = s;
27559              break;
27560            }
27561            case 17: {
27562
27563              x_ = input.readDouble();
27564              break;
27565            }
27566            case 25: {
27567
27568              y_ = input.readDouble();
27569              break;
27570            }
27571            case 33: {
27572
27573              spd_ = input.readDouble();
27574              break;
27575            }
27576            case 41: {
27577
27578              phi_ = input.readDouble();
27579              break;
27580            }
27581            case 48: {
27582
27583              linkId_ = input.readInt32();
27584              break;
27585            }
27586            case 57: {
27587
27588              vx_ = input.readDouble();
27589              break;
27590            }
27591            case 65: {
27592
27593              vy_ = input.readDouble();
27594              break;
27595            }
27596            default: {
27597              if (!parseUnknownField(
27598                  input, unknownFields, extensionRegistry, tag)) {
27599                done = true;
27600              }
27601              break;
27602            }
27603          }
27604        }
27605      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
27606        throw e.setUnfinishedMessage(this);
27607      } catch (java.io.IOException e) {
27608        throw new com.google.protobuf.InvalidProtocolBufferException(
27609            e).setUnfinishedMessage(this);
27610      } finally {
27611        this.unknownFields = unknownFields.build();
27612        makeExtensionsImmutable();
27613      }
27614    }
27615    public static final com.google.protobuf.Descriptors.Descriptor
27616        getDescriptor() {
27617      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Trajectory_descriptor;
27618    }
27619
27620    @java.lang.Override
27621    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
27622        internalGetFieldAccessorTable() {
27623      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Trajectory_fieldAccessorTable
27624          .ensureFieldAccessorsInitialized(
27625              org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.Builder.class);
27626    }
27627
27628    public static final int ID_FIELD_NUMBER = 1;
27629    private volatile java.lang.Object id_;
27630    /**
27631     * <code>string id = 1;</code>
27632     * @return The id.
27633     */
27634    public java.lang.String getId() {
27635      java.lang.Object ref = id_;
27636      if (ref instanceof java.lang.String) {
27637        return (java.lang.String) ref;
27638      } else {
27639        com.google.protobuf.ByteString bs = 
27640            (com.google.protobuf.ByteString) ref;
27641        java.lang.String s = bs.toStringUtf8();
27642        id_ = s;
27643        return s;
27644      }
27645    }
27646    /**
27647     * <code>string id = 1;</code>
27648     * @return The bytes for id.
27649     */
27650    public com.google.protobuf.ByteString
27651        getIdBytes() {
27652      java.lang.Object ref = id_;
27653      if (ref instanceof java.lang.String) {
27654        com.google.protobuf.ByteString b = 
27655            com.google.protobuf.ByteString.copyFromUtf8(
27656                (java.lang.String) ref);
27657        id_ = b;
27658        return b;
27659      } else {
27660        return (com.google.protobuf.ByteString) ref;
27661      }
27662    }
27663
27664    public static final int X_FIELD_NUMBER = 2;
27665    private double x_;
27666    /**
27667     * <code>double x = 2;</code>
27668     * @return The x.
27669     */
27670    public double getX() {
27671      return x_;
27672    }
27673
27674    public static final int Y_FIELD_NUMBER = 3;
27675    private double y_;
27676    /**
27677     * <code>double y = 3;</code>
27678     * @return The y.
27679     */
27680    public double getY() {
27681      return y_;
27682    }
27683
27684    public static final int SPD_FIELD_NUMBER = 4;
27685    private double spd_;
27686    /**
27687     * <code>double spd = 4;</code>
27688     * @return The spd.
27689     */
27690    public double getSpd() {
27691      return spd_;
27692    }
27693
27694    public static final int PHI_FIELD_NUMBER = 5;
27695    private double phi_;
27696    /**
27697     * <pre>
27698     *TODO: report vx / vy instead of spd and phi
27699     * </pre>
27700     *
27701     * <code>double phi = 5;</code>
27702     * @return The phi.
27703     */
27704    public double getPhi() {
27705      return phi_;
27706    }
27707
27708    public static final int LINKID_FIELD_NUMBER = 6;
27709    private int linkId_;
27710    /**
27711     * <code>int32 linkId = 6;</code>
27712     * @return The linkId.
27713     */
27714    public int getLinkId() {
27715      return linkId_;
27716    }
27717
27718    public static final int VX_FIELD_NUMBER = 7;
27719    private double vx_;
27720    /**
27721     * <code>double vx = 7;</code>
27722     * @return The vx.
27723     */
27724    public double getVx() {
27725      return vx_;
27726    }
27727
27728    public static final int VY_FIELD_NUMBER = 8;
27729    private double vy_;
27730    /**
27731     * <code>double vy = 8;</code>
27732     * @return The vy.
27733     */
27734    public double getVy() {
27735      return vy_;
27736    }
27737
27738    private byte memoizedIsInitialized = -1;
27739    @java.lang.Override
27740    public final boolean isInitialized() {
27741      byte isInitialized = memoizedIsInitialized;
27742      if (isInitialized == 1) return true;
27743      if (isInitialized == 0) return false;
27744
27745      memoizedIsInitialized = 1;
27746      return true;
27747    }
27748
27749    @java.lang.Override
27750    public void writeTo(com.google.protobuf.CodedOutputStream output)
27751                        throws java.io.IOException {
27752      if (!getIdBytes().isEmpty()) {
27753        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
27754      }
27755      if (x_ != 0D) {
27756        output.writeDouble(2, x_);
27757      }
27758      if (y_ != 0D) {
27759        output.writeDouble(3, y_);
27760      }
27761      if (spd_ != 0D) {
27762        output.writeDouble(4, spd_);
27763      }
27764      if (phi_ != 0D) {
27765        output.writeDouble(5, phi_);
27766      }
27767      if (linkId_ != 0) {
27768        output.writeInt32(6, linkId_);
27769      }
27770      if (vx_ != 0D) {
27771        output.writeDouble(7, vx_);
27772      }
27773      if (vy_ != 0D) {
27774        output.writeDouble(8, vy_);
27775      }
27776      unknownFields.writeTo(output);
27777    }
27778
27779    @java.lang.Override
27780    public int getSerializedSize() {
27781      int size = memoizedSize;
27782      if (size != -1) return size;
27783
27784      size = 0;
27785      if (!getIdBytes().isEmpty()) {
27786        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
27787      }
27788      if (x_ != 0D) {
27789        size += com.google.protobuf.CodedOutputStream
27790          .computeDoubleSize(2, x_);
27791      }
27792      if (y_ != 0D) {
27793        size += com.google.protobuf.CodedOutputStream
27794          .computeDoubleSize(3, y_);
27795      }
27796      if (spd_ != 0D) {
27797        size += com.google.protobuf.CodedOutputStream
27798          .computeDoubleSize(4, spd_);
27799      }
27800      if (phi_ != 0D) {
27801        size += com.google.protobuf.CodedOutputStream
27802          .computeDoubleSize(5, phi_);
27803      }
27804      if (linkId_ != 0) {
27805        size += com.google.protobuf.CodedOutputStream
27806          .computeInt32Size(6, linkId_);
27807      }
27808      if (vx_ != 0D) {
27809        size += com.google.protobuf.CodedOutputStream
27810          .computeDoubleSize(7, vx_);
27811      }
27812      if (vy_ != 0D) {
27813        size += com.google.protobuf.CodedOutputStream
27814          .computeDoubleSize(8, vy_);
27815      }
27816      size += unknownFields.getSerializedSize();
27817      memoizedSize = size;
27818      return size;
27819    }
27820
27821    @java.lang.Override
27822    public boolean equals(final java.lang.Object obj) {
27823      if (obj == this) {
27824       return true;
27825      }
27826      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory)) {
27827        return super.equals(obj);
27828      }
27829      org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory) obj;
27830
27831      if (!getId()
27832          .equals(other.getId())) return false;
27833      if (java.lang.Double.doubleToLongBits(getX())
27834          != java.lang.Double.doubleToLongBits(
27835              other.getX())) return false;
27836      if (java.lang.Double.doubleToLongBits(getY())
27837          != java.lang.Double.doubleToLongBits(
27838              other.getY())) return false;
27839      if (java.lang.Double.doubleToLongBits(getSpd())
27840          != java.lang.Double.doubleToLongBits(
27841              other.getSpd())) return false;
27842      if (java.lang.Double.doubleToLongBits(getPhi())
27843          != java.lang.Double.doubleToLongBits(
27844              other.getPhi())) return false;
27845      if (getLinkId()
27846          != other.getLinkId()) return false;
27847      if (java.lang.Double.doubleToLongBits(getVx())
27848          != java.lang.Double.doubleToLongBits(
27849              other.getVx())) return false;
27850      if (java.lang.Double.doubleToLongBits(getVy())
27851          != java.lang.Double.doubleToLongBits(
27852              other.getVy())) return false;
27853      if (!unknownFields.equals(other.unknownFields)) return false;
27854      return true;
27855    }
27856
27857    @java.lang.Override
27858    public int hashCode() {
27859      if (memoizedHashCode != 0) {
27860        return memoizedHashCode;
27861      }
27862      int hash = 41;
27863      hash = (19 * hash) + getDescriptor().hashCode();
27864      hash = (37 * hash) + ID_FIELD_NUMBER;
27865      hash = (53 * hash) + getId().hashCode();
27866      hash = (37 * hash) + X_FIELD_NUMBER;
27867      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
27868          java.lang.Double.doubleToLongBits(getX()));
27869      hash = (37 * hash) + Y_FIELD_NUMBER;
27870      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
27871          java.lang.Double.doubleToLongBits(getY()));
27872      hash = (37 * hash) + SPD_FIELD_NUMBER;
27873      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
27874          java.lang.Double.doubleToLongBits(getSpd()));
27875      hash = (37 * hash) + PHI_FIELD_NUMBER;
27876      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
27877          java.lang.Double.doubleToLongBits(getPhi()));
27878      hash = (37 * hash) + LINKID_FIELD_NUMBER;
27879      hash = (53 * hash) + getLinkId();
27880      hash = (37 * hash) + VX_FIELD_NUMBER;
27881      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
27882          java.lang.Double.doubleToLongBits(getVx()));
27883      hash = (37 * hash) + VY_FIELD_NUMBER;
27884      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
27885          java.lang.Double.doubleToLongBits(getVy()));
27886      hash = (29 * hash) + unknownFields.hashCode();
27887      memoizedHashCode = hash;
27888      return hash;
27889    }
27890
27891    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory parseFrom(
27892        java.nio.ByteBuffer data)
27893        throws com.google.protobuf.InvalidProtocolBufferException {
27894      return PARSER.parseFrom(data);
27895    }
27896    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory parseFrom(
27897        java.nio.ByteBuffer data,
27898        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
27899        throws com.google.protobuf.InvalidProtocolBufferException {
27900      return PARSER.parseFrom(data, extensionRegistry);
27901    }
27902    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory parseFrom(
27903        com.google.protobuf.ByteString data)
27904        throws com.google.protobuf.InvalidProtocolBufferException {
27905      return PARSER.parseFrom(data);
27906    }
27907    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory parseFrom(
27908        com.google.protobuf.ByteString data,
27909        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
27910        throws com.google.protobuf.InvalidProtocolBufferException {
27911      return PARSER.parseFrom(data, extensionRegistry);
27912    }
27913    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory parseFrom(byte[] data)
27914        throws com.google.protobuf.InvalidProtocolBufferException {
27915      return PARSER.parseFrom(data);
27916    }
27917    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory parseFrom(
27918        byte[] data,
27919        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
27920        throws com.google.protobuf.InvalidProtocolBufferException {
27921      return PARSER.parseFrom(data, extensionRegistry);
27922    }
27923    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory parseFrom(java.io.InputStream input)
27924        throws java.io.IOException {
27925      return com.google.protobuf.GeneratedMessageV3
27926          .parseWithIOException(PARSER, input);
27927    }
27928    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory parseFrom(
27929        java.io.InputStream input,
27930        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
27931        throws java.io.IOException {
27932      return com.google.protobuf.GeneratedMessageV3
27933          .parseWithIOException(PARSER, input, extensionRegistry);
27934    }
27935    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory parseDelimitedFrom(java.io.InputStream input)
27936        throws java.io.IOException {
27937      return com.google.protobuf.GeneratedMessageV3
27938          .parseDelimitedWithIOException(PARSER, input);
27939    }
27940    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory parseDelimitedFrom(
27941        java.io.InputStream input,
27942        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
27943        throws java.io.IOException {
27944      return com.google.protobuf.GeneratedMessageV3
27945          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
27946    }
27947    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory parseFrom(
27948        com.google.protobuf.CodedInputStream input)
27949        throws java.io.IOException {
27950      return com.google.protobuf.GeneratedMessageV3
27951          .parseWithIOException(PARSER, input);
27952    }
27953    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory parseFrom(
27954        com.google.protobuf.CodedInputStream input,
27955        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
27956        throws java.io.IOException {
27957      return com.google.protobuf.GeneratedMessageV3
27958          .parseWithIOException(PARSER, input, extensionRegistry);
27959    }
27960
27961    @java.lang.Override
27962    public Builder newBuilderForType() { return newBuilder(); }
27963    public static Builder newBuilder() {
27964      return DEFAULT_INSTANCE.toBuilder();
27965    }
27966    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory prototype) {
27967      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
27968    }
27969    @java.lang.Override
27970    public Builder toBuilder() {
27971      return this == DEFAULT_INSTANCE
27972          ? new Builder() : new Builder().mergeFrom(this);
27973    }
27974
27975    @java.lang.Override
27976    protected Builder newBuilderForType(
27977        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
27978      Builder builder = new Builder(parent);
27979      return builder;
27980    }
27981    /**
27982     * Protobuf type {@code hybridsim.Trajectory}
27983     */
27984    public static final class Builder extends
27985        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
27986        // @@protoc_insertion_point(builder_implements:hybridsim.Trajectory)
27987        org.matsim.contrib.hybridsim.proto.HybridSimProto.TrajectoryOrBuilder {
27988      public static final com.google.protobuf.Descriptors.Descriptor
27989          getDescriptor() {
27990        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Trajectory_descriptor;
27991      }
27992
27993      @java.lang.Override
27994      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
27995          internalGetFieldAccessorTable() {
27996        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Trajectory_fieldAccessorTable
27997            .ensureFieldAccessorsInitialized(
27998                org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.Builder.class);
27999      }
28000
28001      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.newBuilder()
28002      private Builder() {
28003        maybeForceBuilderInitialization();
28004      }
28005
28006      private Builder(
28007          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
28008        super(parent);
28009        maybeForceBuilderInitialization();
28010      }
28011      private void maybeForceBuilderInitialization() {
28012        if (com.google.protobuf.GeneratedMessageV3
28013                .alwaysUseFieldBuilders) {
28014        }
28015      }
28016      @java.lang.Override
28017      public Builder clear() {
28018        super.clear();
28019        id_ = "";
28020
28021        x_ = 0D;
28022
28023        y_ = 0D;
28024
28025        spd_ = 0D;
28026
28027        phi_ = 0D;
28028
28029        linkId_ = 0;
28030
28031        vx_ = 0D;
28032
28033        vy_ = 0D;
28034
28035        return this;
28036      }
28037
28038      @java.lang.Override
28039      public com.google.protobuf.Descriptors.Descriptor
28040          getDescriptorForType() {
28041        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Trajectory_descriptor;
28042      }
28043
28044      @java.lang.Override
28045      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory getDefaultInstanceForType() {
28046        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.getDefaultInstance();
28047      }
28048
28049      @java.lang.Override
28050      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory build() {
28051        org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory result = buildPartial();
28052        if (!result.isInitialized()) {
28053          throw newUninitializedMessageException(result);
28054        }
28055        return result;
28056      }
28057
28058      @java.lang.Override
28059      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory buildPartial() {
28060        org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory(this);
28061        result.id_ = id_;
28062        result.x_ = x_;
28063        result.y_ = y_;
28064        result.spd_ = spd_;
28065        result.phi_ = phi_;
28066        result.linkId_ = linkId_;
28067        result.vx_ = vx_;
28068        result.vy_ = vy_;
28069        onBuilt();
28070        return result;
28071      }
28072
28073      @java.lang.Override
28074      public Builder clone() {
28075        return super.clone();
28076      }
28077      @java.lang.Override
28078      public Builder setField(
28079          com.google.protobuf.Descriptors.FieldDescriptor field,
28080          java.lang.Object value) {
28081        return super.setField(field, value);
28082      }
28083      @java.lang.Override
28084      public Builder clearField(
28085          com.google.protobuf.Descriptors.FieldDescriptor field) {
28086        return super.clearField(field);
28087      }
28088      @java.lang.Override
28089      public Builder clearOneof(
28090          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
28091        return super.clearOneof(oneof);
28092      }
28093      @java.lang.Override
28094      public Builder setRepeatedField(
28095          com.google.protobuf.Descriptors.FieldDescriptor field,
28096          int index, java.lang.Object value) {
28097        return super.setRepeatedField(field, index, value);
28098      }
28099      @java.lang.Override
28100      public Builder addRepeatedField(
28101          com.google.protobuf.Descriptors.FieldDescriptor field,
28102          java.lang.Object value) {
28103        return super.addRepeatedField(field, value);
28104      }
28105      @java.lang.Override
28106      public Builder mergeFrom(com.google.protobuf.Message other) {
28107        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory) {
28108          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory)other);
28109        } else {
28110          super.mergeFrom(other);
28111          return this;
28112        }
28113      }
28114
28115      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory other) {
28116        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.getDefaultInstance()) return this;
28117        if (!other.getId().isEmpty()) {
28118          id_ = other.id_;
28119          onChanged();
28120        }
28121        if (other.getX() != 0D) {
28122          setX(other.getX());
28123        }
28124        if (other.getY() != 0D) {
28125          setY(other.getY());
28126        }
28127        if (other.getSpd() != 0D) {
28128          setSpd(other.getSpd());
28129        }
28130        if (other.getPhi() != 0D) {
28131          setPhi(other.getPhi());
28132        }
28133        if (other.getLinkId() != 0) {
28134          setLinkId(other.getLinkId());
28135        }
28136        if (other.getVx() != 0D) {
28137          setVx(other.getVx());
28138        }
28139        if (other.getVy() != 0D) {
28140          setVy(other.getVy());
28141        }
28142        this.mergeUnknownFields(other.unknownFields);
28143        onChanged();
28144        return this;
28145      }
28146
28147      @java.lang.Override
28148      public final boolean isInitialized() {
28149        return true;
28150      }
28151
28152      @java.lang.Override
28153      public Builder mergeFrom(
28154          com.google.protobuf.CodedInputStream input,
28155          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
28156          throws java.io.IOException {
28157        org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory parsedMessage = null;
28158        try {
28159          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
28160        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
28161          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory) e.getUnfinishedMessage();
28162          throw e.unwrapIOException();
28163        } finally {
28164          if (parsedMessage != null) {
28165            mergeFrom(parsedMessage);
28166          }
28167        }
28168        return this;
28169      }
28170
28171      private java.lang.Object id_ = "";
28172      /**
28173       * <code>string id = 1;</code>
28174       * @return The id.
28175       */
28176      public java.lang.String getId() {
28177        java.lang.Object ref = id_;
28178        if (!(ref instanceof java.lang.String)) {
28179          com.google.protobuf.ByteString bs =
28180              (com.google.protobuf.ByteString) ref;
28181          java.lang.String s = bs.toStringUtf8();
28182          id_ = s;
28183          return s;
28184        } else {
28185          return (java.lang.String) ref;
28186        }
28187      }
28188      /**
28189       * <code>string id = 1;</code>
28190       * @return The bytes for id.
28191       */
28192      public com.google.protobuf.ByteString
28193          getIdBytes() {
28194        java.lang.Object ref = id_;
28195        if (ref instanceof String) {
28196          com.google.protobuf.ByteString b = 
28197              com.google.protobuf.ByteString.copyFromUtf8(
28198                  (java.lang.String) ref);
28199          id_ = b;
28200          return b;
28201        } else {
28202          return (com.google.protobuf.ByteString) ref;
28203        }
28204      }
28205      /**
28206       * <code>string id = 1;</code>
28207       * @param value The id to set.
28208       * @return This builder for chaining.
28209       */
28210      public Builder setId(
28211          java.lang.String value) {
28212        if (value == null) {
28213    throw new NullPointerException();
28214  }
28215  
28216        id_ = value;
28217        onChanged();
28218        return this;
28219      }
28220      /**
28221       * <code>string id = 1;</code>
28222       * @return This builder for chaining.
28223       */
28224      public Builder clearId() {
28225        
28226        id_ = getDefaultInstance().getId();
28227        onChanged();
28228        return this;
28229      }
28230      /**
28231       * <code>string id = 1;</code>
28232       * @param value The bytes for id to set.
28233       * @return This builder for chaining.
28234       */
28235      public Builder setIdBytes(
28236          com.google.protobuf.ByteString value) {
28237        if (value == null) {
28238    throw new NullPointerException();
28239  }
28240  checkByteStringIsUtf8(value);
28241        
28242        id_ = value;
28243        onChanged();
28244        return this;
28245      }
28246
28247      private double x_ ;
28248      /**
28249       * <code>double x = 2;</code>
28250       * @return The x.
28251       */
28252      public double getX() {
28253        return x_;
28254      }
28255      /**
28256       * <code>double x = 2;</code>
28257       * @param value The x to set.
28258       * @return This builder for chaining.
28259       */
28260      public Builder setX(double value) {
28261        
28262        x_ = value;
28263        onChanged();
28264        return this;
28265      }
28266      /**
28267       * <code>double x = 2;</code>
28268       * @return This builder for chaining.
28269       */
28270      public Builder clearX() {
28271        
28272        x_ = 0D;
28273        onChanged();
28274        return this;
28275      }
28276
28277      private double y_ ;
28278      /**
28279       * <code>double y = 3;</code>
28280       * @return The y.
28281       */
28282      public double getY() {
28283        return y_;
28284      }
28285      /**
28286       * <code>double y = 3;</code>
28287       * @param value The y to set.
28288       * @return This builder for chaining.
28289       */
28290      public Builder setY(double value) {
28291        
28292        y_ = value;
28293        onChanged();
28294        return this;
28295      }
28296      /**
28297       * <code>double y = 3;</code>
28298       * @return This builder for chaining.
28299       */
28300      public Builder clearY() {
28301        
28302        y_ = 0D;
28303        onChanged();
28304        return this;
28305      }
28306
28307      private double spd_ ;
28308      /**
28309       * <code>double spd = 4;</code>
28310       * @return The spd.
28311       */
28312      public double getSpd() {
28313        return spd_;
28314      }
28315      /**
28316       * <code>double spd = 4;</code>
28317       * @param value The spd to set.
28318       * @return This builder for chaining.
28319       */
28320      public Builder setSpd(double value) {
28321        
28322        spd_ = value;
28323        onChanged();
28324        return this;
28325      }
28326      /**
28327       * <code>double spd = 4;</code>
28328       * @return This builder for chaining.
28329       */
28330      public Builder clearSpd() {
28331        
28332        spd_ = 0D;
28333        onChanged();
28334        return this;
28335      }
28336
28337      private double phi_ ;
28338      /**
28339       * <pre>
28340       *TODO: report vx / vy instead of spd and phi
28341       * </pre>
28342       *
28343       * <code>double phi = 5;</code>
28344       * @return The phi.
28345       */
28346      public double getPhi() {
28347        return phi_;
28348      }
28349      /**
28350       * <pre>
28351       *TODO: report vx / vy instead of spd and phi
28352       * </pre>
28353       *
28354       * <code>double phi = 5;</code>
28355       * @param value The phi to set.
28356       * @return This builder for chaining.
28357       */
28358      public Builder setPhi(double value) {
28359        
28360        phi_ = value;
28361        onChanged();
28362        return this;
28363      }
28364      /**
28365       * <pre>
28366       *TODO: report vx / vy instead of spd and phi
28367       * </pre>
28368       *
28369       * <code>double phi = 5;</code>
28370       * @return This builder for chaining.
28371       */
28372      public Builder clearPhi() {
28373        
28374        phi_ = 0D;
28375        onChanged();
28376        return this;
28377      }
28378
28379      private int linkId_ ;
28380      /**
28381       * <code>int32 linkId = 6;</code>
28382       * @return The linkId.
28383       */
28384      public int getLinkId() {
28385        return linkId_;
28386      }
28387      /**
28388       * <code>int32 linkId = 6;</code>
28389       * @param value The linkId to set.
28390       * @return This builder for chaining.
28391       */
28392      public Builder setLinkId(int value) {
28393        
28394        linkId_ = value;
28395        onChanged();
28396        return this;
28397      }
28398      /**
28399       * <code>int32 linkId = 6;</code>
28400       * @return This builder for chaining.
28401       */
28402      public Builder clearLinkId() {
28403        
28404        linkId_ = 0;
28405        onChanged();
28406        return this;
28407      }
28408
28409      private double vx_ ;
28410      /**
28411       * <code>double vx = 7;</code>
28412       * @return The vx.
28413       */
28414      public double getVx() {
28415        return vx_;
28416      }
28417      /**
28418       * <code>double vx = 7;</code>
28419       * @param value The vx to set.
28420       * @return This builder for chaining.
28421       */
28422      public Builder setVx(double value) {
28423        
28424        vx_ = value;
28425        onChanged();
28426        return this;
28427      }
28428      /**
28429       * <code>double vx = 7;</code>
28430       * @return This builder for chaining.
28431       */
28432      public Builder clearVx() {
28433        
28434        vx_ = 0D;
28435        onChanged();
28436        return this;
28437      }
28438
28439      private double vy_ ;
28440      /**
28441       * <code>double vy = 8;</code>
28442       * @return The vy.
28443       */
28444      public double getVy() {
28445        return vy_;
28446      }
28447      /**
28448       * <code>double vy = 8;</code>
28449       * @param value The vy to set.
28450       * @return This builder for chaining.
28451       */
28452      public Builder setVy(double value) {
28453        
28454        vy_ = value;
28455        onChanged();
28456        return this;
28457      }
28458      /**
28459       * <code>double vy = 8;</code>
28460       * @return This builder for chaining.
28461       */
28462      public Builder clearVy() {
28463        
28464        vy_ = 0D;
28465        onChanged();
28466        return this;
28467      }
28468      @java.lang.Override
28469      public final Builder setUnknownFields(
28470          final com.google.protobuf.UnknownFieldSet unknownFields) {
28471        return super.setUnknownFields(unknownFields);
28472      }
28473
28474      @java.lang.Override
28475      public final Builder mergeUnknownFields(
28476          final com.google.protobuf.UnknownFieldSet unknownFields) {
28477        return super.mergeUnknownFields(unknownFields);
28478      }
28479
28480
28481      // @@protoc_insertion_point(builder_scope:hybridsim.Trajectory)
28482    }
28483
28484    // @@protoc_insertion_point(class_scope:hybridsim.Trajectory)
28485    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory DEFAULT_INSTANCE;
28486    static {
28487      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory();
28488    }
28489
28490    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory getDefaultInstance() {
28491      return DEFAULT_INSTANCE;
28492    }
28493
28494    private static final com.google.protobuf.Parser<Trajectory>
28495        PARSER = new com.google.protobuf.AbstractParser<Trajectory>() {
28496      @java.lang.Override
28497      public Trajectory parsePartialFrom(
28498          com.google.protobuf.CodedInputStream input,
28499          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
28500          throws com.google.protobuf.InvalidProtocolBufferException {
28501        return new Trajectory(input, extensionRegistry);
28502      }
28503    };
28504
28505    public static com.google.protobuf.Parser<Trajectory> parser() {
28506      return PARSER;
28507    }
28508
28509    @java.lang.Override
28510    public com.google.protobuf.Parser<Trajectory> getParserForType() {
28511      return PARSER;
28512    }
28513
28514    @java.lang.Override
28515    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory getDefaultInstanceForType() {
28516      return DEFAULT_INSTANCE;
28517    }
28518
28519  }
28520
28521  public interface TrajectoriesOrBuilder extends
28522      // @@protoc_insertion_point(interface_extends:hybridsim.Trajectories)
28523      com.google.protobuf.MessageOrBuilder {
28524
28525    /**
28526     * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
28527     */
28528    java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory> 
28529        getTrajectoriesList();
28530    /**
28531     * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
28532     */
28533    org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory getTrajectories(int index);
28534    /**
28535     * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
28536     */
28537    int getTrajectoriesCount();
28538    /**
28539     * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
28540     */
28541    java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.TrajectoryOrBuilder> 
28542        getTrajectoriesOrBuilderList();
28543    /**
28544     * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
28545     */
28546    org.matsim.contrib.hybridsim.proto.HybridSimProto.TrajectoryOrBuilder getTrajectoriesOrBuilder(
28547        int index);
28548  }
28549  /**
28550   * Protobuf type {@code hybridsim.Trajectories}
28551   */
28552  public  static final class Trajectories extends
28553      com.google.protobuf.GeneratedMessageV3 implements
28554      // @@protoc_insertion_point(message_implements:hybridsim.Trajectories)
28555      TrajectoriesOrBuilder {
28556  private static final long serialVersionUID = 0L;
28557    // Use Trajectories.newBuilder() to construct.
28558    private Trajectories(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
28559      super(builder);
28560    }
28561    private Trajectories() {
28562      trajectories_ = java.util.Collections.emptyList();
28563    }
28564
28565    @java.lang.Override
28566    @SuppressWarnings({"unused"})
28567    protected java.lang.Object newInstance(
28568        UnusedPrivateParameter unused) {
28569      return new Trajectories();
28570    }
28571
28572    @java.lang.Override
28573    public final com.google.protobuf.UnknownFieldSet
28574    getUnknownFields() {
28575      return this.unknownFields;
28576    }
28577    private Trajectories(
28578        com.google.protobuf.CodedInputStream input,
28579        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
28580        throws com.google.protobuf.InvalidProtocolBufferException {
28581      this();
28582      if (extensionRegistry == null) {
28583        throw new java.lang.NullPointerException();
28584      }
28585      int mutable_bitField0_ = 0;
28586      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
28587          com.google.protobuf.UnknownFieldSet.newBuilder();
28588      try {
28589        boolean done = false;
28590        while (!done) {
28591          int tag = input.readTag();
28592          switch (tag) {
28593            case 0:
28594              done = true;
28595              break;
28596            case 10: {
28597              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
28598                trajectories_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory>();
28599                mutable_bitField0_ |= 0x00000001;
28600              }
28601              trajectories_.add(
28602                  input.readMessage(org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.parser(), extensionRegistry));
28603              break;
28604            }
28605            default: {
28606              if (!parseUnknownField(
28607                  input, unknownFields, extensionRegistry, tag)) {
28608                done = true;
28609              }
28610              break;
28611            }
28612          }
28613        }
28614      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
28615        throw e.setUnfinishedMessage(this);
28616      } catch (java.io.IOException e) {
28617        throw new com.google.protobuf.InvalidProtocolBufferException(
28618            e).setUnfinishedMessage(this);
28619      } finally {
28620        if (((mutable_bitField0_ & 0x00000001) != 0)) {
28621          trajectories_ = java.util.Collections.unmodifiableList(trajectories_);
28622        }
28623        this.unknownFields = unknownFields.build();
28624        makeExtensionsImmutable();
28625      }
28626    }
28627    public static final com.google.protobuf.Descriptors.Descriptor
28628        getDescriptor() {
28629      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Trajectories_descriptor;
28630    }
28631
28632    @java.lang.Override
28633    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
28634        internalGetFieldAccessorTable() {
28635      return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Trajectories_fieldAccessorTable
28636          .ensureFieldAccessorsInitialized(
28637              org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories.Builder.class);
28638    }
28639
28640    public static final int TRAJECTORIES_FIELD_NUMBER = 1;
28641    private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory> trajectories_;
28642    /**
28643     * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
28644     */
28645    public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory> getTrajectoriesList() {
28646      return trajectories_;
28647    }
28648    /**
28649     * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
28650     */
28651    public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.TrajectoryOrBuilder> 
28652        getTrajectoriesOrBuilderList() {
28653      return trajectories_;
28654    }
28655    /**
28656     * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
28657     */
28658    public int getTrajectoriesCount() {
28659      return trajectories_.size();
28660    }
28661    /**
28662     * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
28663     */
28664    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory getTrajectories(int index) {
28665      return trajectories_.get(index);
28666    }
28667    /**
28668     * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
28669     */
28670    public org.matsim.contrib.hybridsim.proto.HybridSimProto.TrajectoryOrBuilder getTrajectoriesOrBuilder(
28671        int index) {
28672      return trajectories_.get(index);
28673    }
28674
28675    private byte memoizedIsInitialized = -1;
28676    @java.lang.Override
28677    public final boolean isInitialized() {
28678      byte isInitialized = memoizedIsInitialized;
28679      if (isInitialized == 1) return true;
28680      if (isInitialized == 0) return false;
28681
28682      memoizedIsInitialized = 1;
28683      return true;
28684    }
28685
28686    @java.lang.Override
28687    public void writeTo(com.google.protobuf.CodedOutputStream output)
28688                        throws java.io.IOException {
28689      for (int i = 0; i < trajectories_.size(); i++) {
28690        output.writeMessage(1, trajectories_.get(i));
28691      }
28692      unknownFields.writeTo(output);
28693    }
28694
28695    @java.lang.Override
28696    public int getSerializedSize() {
28697      int size = memoizedSize;
28698      if (size != -1) return size;
28699
28700      size = 0;
28701      for (int i = 0; i < trajectories_.size(); i++) {
28702        size += com.google.protobuf.CodedOutputStream
28703          .computeMessageSize(1, trajectories_.get(i));
28704      }
28705      size += unknownFields.getSerializedSize();
28706      memoizedSize = size;
28707      return size;
28708    }
28709
28710    @java.lang.Override
28711    public boolean equals(final java.lang.Object obj) {
28712      if (obj == this) {
28713       return true;
28714      }
28715      if (!(obj instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories)) {
28716        return super.equals(obj);
28717      }
28718      org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories other = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories) obj;
28719
28720      if (!getTrajectoriesList()
28721          .equals(other.getTrajectoriesList())) return false;
28722      if (!unknownFields.equals(other.unknownFields)) return false;
28723      return true;
28724    }
28725
28726    @java.lang.Override
28727    public int hashCode() {
28728      if (memoizedHashCode != 0) {
28729        return memoizedHashCode;
28730      }
28731      int hash = 41;
28732      hash = (19 * hash) + getDescriptor().hashCode();
28733      if (getTrajectoriesCount() > 0) {
28734        hash = (37 * hash) + TRAJECTORIES_FIELD_NUMBER;
28735        hash = (53 * hash) + getTrajectoriesList().hashCode();
28736      }
28737      hash = (29 * hash) + unknownFields.hashCode();
28738      memoizedHashCode = hash;
28739      return hash;
28740    }
28741
28742    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories parseFrom(
28743        java.nio.ByteBuffer data)
28744        throws com.google.protobuf.InvalidProtocolBufferException {
28745      return PARSER.parseFrom(data);
28746    }
28747    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories parseFrom(
28748        java.nio.ByteBuffer data,
28749        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
28750        throws com.google.protobuf.InvalidProtocolBufferException {
28751      return PARSER.parseFrom(data, extensionRegistry);
28752    }
28753    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories parseFrom(
28754        com.google.protobuf.ByteString data)
28755        throws com.google.protobuf.InvalidProtocolBufferException {
28756      return PARSER.parseFrom(data);
28757    }
28758    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories parseFrom(
28759        com.google.protobuf.ByteString data,
28760        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
28761        throws com.google.protobuf.InvalidProtocolBufferException {
28762      return PARSER.parseFrom(data, extensionRegistry);
28763    }
28764    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories parseFrom(byte[] data)
28765        throws com.google.protobuf.InvalidProtocolBufferException {
28766      return PARSER.parseFrom(data);
28767    }
28768    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories parseFrom(
28769        byte[] data,
28770        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
28771        throws com.google.protobuf.InvalidProtocolBufferException {
28772      return PARSER.parseFrom(data, extensionRegistry);
28773    }
28774    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories parseFrom(java.io.InputStream input)
28775        throws java.io.IOException {
28776      return com.google.protobuf.GeneratedMessageV3
28777          .parseWithIOException(PARSER, input);
28778    }
28779    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories parseFrom(
28780        java.io.InputStream input,
28781        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
28782        throws java.io.IOException {
28783      return com.google.protobuf.GeneratedMessageV3
28784          .parseWithIOException(PARSER, input, extensionRegistry);
28785    }
28786    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories parseDelimitedFrom(java.io.InputStream input)
28787        throws java.io.IOException {
28788      return com.google.protobuf.GeneratedMessageV3
28789          .parseDelimitedWithIOException(PARSER, input);
28790    }
28791    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories parseDelimitedFrom(
28792        java.io.InputStream input,
28793        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
28794        throws java.io.IOException {
28795      return com.google.protobuf.GeneratedMessageV3
28796          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
28797    }
28798    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories parseFrom(
28799        com.google.protobuf.CodedInputStream input)
28800        throws java.io.IOException {
28801      return com.google.protobuf.GeneratedMessageV3
28802          .parseWithIOException(PARSER, input);
28803    }
28804    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories parseFrom(
28805        com.google.protobuf.CodedInputStream input,
28806        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
28807        throws java.io.IOException {
28808      return com.google.protobuf.GeneratedMessageV3
28809          .parseWithIOException(PARSER, input, extensionRegistry);
28810    }
28811
28812    @java.lang.Override
28813    public Builder newBuilderForType() { return newBuilder(); }
28814    public static Builder newBuilder() {
28815      return DEFAULT_INSTANCE.toBuilder();
28816    }
28817    public static Builder newBuilder(org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories prototype) {
28818      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
28819    }
28820    @java.lang.Override
28821    public Builder toBuilder() {
28822      return this == DEFAULT_INSTANCE
28823          ? new Builder() : new Builder().mergeFrom(this);
28824    }
28825
28826    @java.lang.Override
28827    protected Builder newBuilderForType(
28828        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
28829      Builder builder = new Builder(parent);
28830      return builder;
28831    }
28832    /**
28833     * Protobuf type {@code hybridsim.Trajectories}
28834     */
28835    public static final class Builder extends
28836        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
28837        // @@protoc_insertion_point(builder_implements:hybridsim.Trajectories)
28838        org.matsim.contrib.hybridsim.proto.HybridSimProto.TrajectoriesOrBuilder {
28839      public static final com.google.protobuf.Descriptors.Descriptor
28840          getDescriptor() {
28841        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Trajectories_descriptor;
28842      }
28843
28844      @java.lang.Override
28845      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
28846          internalGetFieldAccessorTable() {
28847        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Trajectories_fieldAccessorTable
28848            .ensureFieldAccessorsInitialized(
28849                org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories.class, org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories.Builder.class);
28850      }
28851
28852      // Construct using org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories.newBuilder()
28853      private Builder() {
28854        maybeForceBuilderInitialization();
28855      }
28856
28857      private Builder(
28858          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
28859        super(parent);
28860        maybeForceBuilderInitialization();
28861      }
28862      private void maybeForceBuilderInitialization() {
28863        if (com.google.protobuf.GeneratedMessageV3
28864                .alwaysUseFieldBuilders) {
28865          getTrajectoriesFieldBuilder();
28866        }
28867      }
28868      @java.lang.Override
28869      public Builder clear() {
28870        super.clear();
28871        if (trajectoriesBuilder_ == null) {
28872          trajectories_ = java.util.Collections.emptyList();
28873          bitField0_ = (bitField0_ & ~0x00000001);
28874        } else {
28875          trajectoriesBuilder_.clear();
28876        }
28877        return this;
28878      }
28879
28880      @java.lang.Override
28881      public com.google.protobuf.Descriptors.Descriptor
28882          getDescriptorForType() {
28883        return org.matsim.contrib.hybridsim.proto.HybridSimProto.internal_static_hybridsim_Trajectories_descriptor;
28884      }
28885
28886      @java.lang.Override
28887      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories getDefaultInstanceForType() {
28888        return org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories.getDefaultInstance();
28889      }
28890
28891      @java.lang.Override
28892      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories build() {
28893        org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories result = buildPartial();
28894        if (!result.isInitialized()) {
28895          throw newUninitializedMessageException(result);
28896        }
28897        return result;
28898      }
28899
28900      @java.lang.Override
28901      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories buildPartial() {
28902        org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories result = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories(this);
28903        int from_bitField0_ = bitField0_;
28904        if (trajectoriesBuilder_ == null) {
28905          if (((bitField0_ & 0x00000001) != 0)) {
28906            trajectories_ = java.util.Collections.unmodifiableList(trajectories_);
28907            bitField0_ = (bitField0_ & ~0x00000001);
28908          }
28909          result.trajectories_ = trajectories_;
28910        } else {
28911          result.trajectories_ = trajectoriesBuilder_.build();
28912        }
28913        onBuilt();
28914        return result;
28915      }
28916
28917      @java.lang.Override
28918      public Builder clone() {
28919        return super.clone();
28920      }
28921      @java.lang.Override
28922      public Builder setField(
28923          com.google.protobuf.Descriptors.FieldDescriptor field,
28924          java.lang.Object value) {
28925        return super.setField(field, value);
28926      }
28927      @java.lang.Override
28928      public Builder clearField(
28929          com.google.protobuf.Descriptors.FieldDescriptor field) {
28930        return super.clearField(field);
28931      }
28932      @java.lang.Override
28933      public Builder clearOneof(
28934          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
28935        return super.clearOneof(oneof);
28936      }
28937      @java.lang.Override
28938      public Builder setRepeatedField(
28939          com.google.protobuf.Descriptors.FieldDescriptor field,
28940          int index, java.lang.Object value) {
28941        return super.setRepeatedField(field, index, value);
28942      }
28943      @java.lang.Override
28944      public Builder addRepeatedField(
28945          com.google.protobuf.Descriptors.FieldDescriptor field,
28946          java.lang.Object value) {
28947        return super.addRepeatedField(field, value);
28948      }
28949      @java.lang.Override
28950      public Builder mergeFrom(com.google.protobuf.Message other) {
28951        if (other instanceof org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories) {
28952          return mergeFrom((org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories)other);
28953        } else {
28954          super.mergeFrom(other);
28955          return this;
28956        }
28957      }
28958
28959      public Builder mergeFrom(org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories other) {
28960        if (other == org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories.getDefaultInstance()) return this;
28961        if (trajectoriesBuilder_ == null) {
28962          if (!other.trajectories_.isEmpty()) {
28963            if (trajectories_.isEmpty()) {
28964              trajectories_ = other.trajectories_;
28965              bitField0_ = (bitField0_ & ~0x00000001);
28966            } else {
28967              ensureTrajectoriesIsMutable();
28968              trajectories_.addAll(other.trajectories_);
28969            }
28970            onChanged();
28971          }
28972        } else {
28973          if (!other.trajectories_.isEmpty()) {
28974            if (trajectoriesBuilder_.isEmpty()) {
28975              trajectoriesBuilder_.dispose();
28976              trajectoriesBuilder_ = null;
28977              trajectories_ = other.trajectories_;
28978              bitField0_ = (bitField0_ & ~0x00000001);
28979              trajectoriesBuilder_ = 
28980                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
28981                   getTrajectoriesFieldBuilder() : null;
28982            } else {
28983              trajectoriesBuilder_.addAllMessages(other.trajectories_);
28984            }
28985          }
28986        }
28987        this.mergeUnknownFields(other.unknownFields);
28988        onChanged();
28989        return this;
28990      }
28991
28992      @java.lang.Override
28993      public final boolean isInitialized() {
28994        return true;
28995      }
28996
28997      @java.lang.Override
28998      public Builder mergeFrom(
28999          com.google.protobuf.CodedInputStream input,
29000          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
29001          throws java.io.IOException {
29002        org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories parsedMessage = null;
29003        try {
29004          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
29005        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
29006          parsedMessage = (org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories) e.getUnfinishedMessage();
29007          throw e.unwrapIOException();
29008        } finally {
29009          if (parsedMessage != null) {
29010            mergeFrom(parsedMessage);
29011          }
29012        }
29013        return this;
29014      }
29015      private int bitField0_;
29016
29017      private java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory> trajectories_ =
29018        java.util.Collections.emptyList();
29019      private void ensureTrajectoriesIsMutable() {
29020        if (!((bitField0_ & 0x00000001) != 0)) {
29021          trajectories_ = new java.util.ArrayList<org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory>(trajectories_);
29022          bitField0_ |= 0x00000001;
29023         }
29024      }
29025
29026      private com.google.protobuf.RepeatedFieldBuilderV3<
29027          org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory, org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.TrajectoryOrBuilder> trajectoriesBuilder_;
29028
29029      /**
29030       * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
29031       */
29032      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory> getTrajectoriesList() {
29033        if (trajectoriesBuilder_ == null) {
29034          return java.util.Collections.unmodifiableList(trajectories_);
29035        } else {
29036          return trajectoriesBuilder_.getMessageList();
29037        }
29038      }
29039      /**
29040       * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
29041       */
29042      public int getTrajectoriesCount() {
29043        if (trajectoriesBuilder_ == null) {
29044          return trajectories_.size();
29045        } else {
29046          return trajectoriesBuilder_.getCount();
29047        }
29048      }
29049      /**
29050       * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
29051       */
29052      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory getTrajectories(int index) {
29053        if (trajectoriesBuilder_ == null) {
29054          return trajectories_.get(index);
29055        } else {
29056          return trajectoriesBuilder_.getMessage(index);
29057        }
29058      }
29059      /**
29060       * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
29061       */
29062      public Builder setTrajectories(
29063          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory value) {
29064        if (trajectoriesBuilder_ == null) {
29065          if (value == null) {
29066            throw new NullPointerException();
29067          }
29068          ensureTrajectoriesIsMutable();
29069          trajectories_.set(index, value);
29070          onChanged();
29071        } else {
29072          trajectoriesBuilder_.setMessage(index, value);
29073        }
29074        return this;
29075      }
29076      /**
29077       * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
29078       */
29079      public Builder setTrajectories(
29080          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.Builder builderForValue) {
29081        if (trajectoriesBuilder_ == null) {
29082          ensureTrajectoriesIsMutable();
29083          trajectories_.set(index, builderForValue.build());
29084          onChanged();
29085        } else {
29086          trajectoriesBuilder_.setMessage(index, builderForValue.build());
29087        }
29088        return this;
29089      }
29090      /**
29091       * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
29092       */
29093      public Builder addTrajectories(org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory value) {
29094        if (trajectoriesBuilder_ == null) {
29095          if (value == null) {
29096            throw new NullPointerException();
29097          }
29098          ensureTrajectoriesIsMutable();
29099          trajectories_.add(value);
29100          onChanged();
29101        } else {
29102          trajectoriesBuilder_.addMessage(value);
29103        }
29104        return this;
29105      }
29106      /**
29107       * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
29108       */
29109      public Builder addTrajectories(
29110          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory value) {
29111        if (trajectoriesBuilder_ == null) {
29112          if (value == null) {
29113            throw new NullPointerException();
29114          }
29115          ensureTrajectoriesIsMutable();
29116          trajectories_.add(index, value);
29117          onChanged();
29118        } else {
29119          trajectoriesBuilder_.addMessage(index, value);
29120        }
29121        return this;
29122      }
29123      /**
29124       * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
29125       */
29126      public Builder addTrajectories(
29127          org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.Builder builderForValue) {
29128        if (trajectoriesBuilder_ == null) {
29129          ensureTrajectoriesIsMutable();
29130          trajectories_.add(builderForValue.build());
29131          onChanged();
29132        } else {
29133          trajectoriesBuilder_.addMessage(builderForValue.build());
29134        }
29135        return this;
29136      }
29137      /**
29138       * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
29139       */
29140      public Builder addTrajectories(
29141          int index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.Builder builderForValue) {
29142        if (trajectoriesBuilder_ == null) {
29143          ensureTrajectoriesIsMutable();
29144          trajectories_.add(index, builderForValue.build());
29145          onChanged();
29146        } else {
29147          trajectoriesBuilder_.addMessage(index, builderForValue.build());
29148        }
29149        return this;
29150      }
29151      /**
29152       * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
29153       */
29154      public Builder addAllTrajectories(
29155          java.lang.Iterable<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory> values) {
29156        if (trajectoriesBuilder_ == null) {
29157          ensureTrajectoriesIsMutable();
29158          com.google.protobuf.AbstractMessageLite.Builder.addAll(
29159              values, trajectories_);
29160          onChanged();
29161        } else {
29162          trajectoriesBuilder_.addAllMessages(values);
29163        }
29164        return this;
29165      }
29166      /**
29167       * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
29168       */
29169      public Builder clearTrajectories() {
29170        if (trajectoriesBuilder_ == null) {
29171          trajectories_ = java.util.Collections.emptyList();
29172          bitField0_ = (bitField0_ & ~0x00000001);
29173          onChanged();
29174        } else {
29175          trajectoriesBuilder_.clear();
29176        }
29177        return this;
29178      }
29179      /**
29180       * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
29181       */
29182      public Builder removeTrajectories(int index) {
29183        if (trajectoriesBuilder_ == null) {
29184          ensureTrajectoriesIsMutable();
29185          trajectories_.remove(index);
29186          onChanged();
29187        } else {
29188          trajectoriesBuilder_.remove(index);
29189        }
29190        return this;
29191      }
29192      /**
29193       * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
29194       */
29195      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.Builder getTrajectoriesBuilder(
29196          int index) {
29197        return getTrajectoriesFieldBuilder().getBuilder(index);
29198      }
29199      /**
29200       * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
29201       */
29202      public org.matsim.contrib.hybridsim.proto.HybridSimProto.TrajectoryOrBuilder getTrajectoriesOrBuilder(
29203          int index) {
29204        if (trajectoriesBuilder_ == null) {
29205          return trajectories_.get(index);  } else {
29206          return trajectoriesBuilder_.getMessageOrBuilder(index);
29207        }
29208      }
29209      /**
29210       * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
29211       */
29212      public java.util.List<? extends org.matsim.contrib.hybridsim.proto.HybridSimProto.TrajectoryOrBuilder> 
29213           getTrajectoriesOrBuilderList() {
29214        if (trajectoriesBuilder_ != null) {
29215          return trajectoriesBuilder_.getMessageOrBuilderList();
29216        } else {
29217          return java.util.Collections.unmodifiableList(trajectories_);
29218        }
29219      }
29220      /**
29221       * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
29222       */
29223      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.Builder addTrajectoriesBuilder() {
29224        return getTrajectoriesFieldBuilder().addBuilder(
29225            org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.getDefaultInstance());
29226      }
29227      /**
29228       * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
29229       */
29230      public org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.Builder addTrajectoriesBuilder(
29231          int index) {
29232        return getTrajectoriesFieldBuilder().addBuilder(
29233            index, org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.getDefaultInstance());
29234      }
29235      /**
29236       * <code>repeated .hybridsim.Trajectory trajectories = 1;</code>
29237       */
29238      public java.util.List<org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.Builder> 
29239           getTrajectoriesBuilderList() {
29240        return getTrajectoriesFieldBuilder().getBuilderList();
29241      }
29242      private com.google.protobuf.RepeatedFieldBuilderV3<
29243          org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory, org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.TrajectoryOrBuilder> 
29244          getTrajectoriesFieldBuilder() {
29245        if (trajectoriesBuilder_ == null) {
29246          trajectoriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
29247              org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory, org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectory.Builder, org.matsim.contrib.hybridsim.proto.HybridSimProto.TrajectoryOrBuilder>(
29248                  trajectories_,
29249                  ((bitField0_ & 0x00000001) != 0),
29250                  getParentForChildren(),
29251                  isClean());
29252          trajectories_ = null;
29253        }
29254        return trajectoriesBuilder_;
29255      }
29256      @java.lang.Override
29257      public final Builder setUnknownFields(
29258          final com.google.protobuf.UnknownFieldSet unknownFields) {
29259        return super.setUnknownFields(unknownFields);
29260      }
29261
29262      @java.lang.Override
29263      public final Builder mergeUnknownFields(
29264          final com.google.protobuf.UnknownFieldSet unknownFields) {
29265        return super.mergeUnknownFields(unknownFields);
29266      }
29267
29268
29269      // @@protoc_insertion_point(builder_scope:hybridsim.Trajectories)
29270    }
29271
29272    // @@protoc_insertion_point(class_scope:hybridsim.Trajectories)
29273    private static final org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories DEFAULT_INSTANCE;
29274    static {
29275      DEFAULT_INSTANCE = new org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories();
29276    }
29277
29278    public static org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories getDefaultInstance() {
29279      return DEFAULT_INSTANCE;
29280    }
29281
29282    private static final com.google.protobuf.Parser<Trajectories>
29283        PARSER = new com.google.protobuf.AbstractParser<Trajectories>() {
29284      @java.lang.Override
29285      public Trajectories parsePartialFrom(
29286          com.google.protobuf.CodedInputStream input,
29287          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
29288          throws com.google.protobuf.InvalidProtocolBufferException {
29289        return new Trajectories(input, extensionRegistry);
29290      }
29291    };
29292
29293    public static com.google.protobuf.Parser<Trajectories> parser() {
29294      return PARSER;
29295    }
29296
29297    @java.lang.Override
29298    public com.google.protobuf.Parser<Trajectories> getParserForType() {
29299      return PARSER;
29300    }
29301
29302    @java.lang.Override
29303    public org.matsim.contrib.hybridsim.proto.HybridSimProto.Trajectories getDefaultInstanceForType() {
29304      return DEFAULT_INSTANCE;
29305    }
29306
29307  }
29308
29309  private static final com.google.protobuf.Descriptors.Descriptor
29310    internal_static_hybridsim_Scenario_descriptor;
29311  private static final 
29312    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29313      internal_static_hybridsim_Scenario_fieldAccessorTable;
29314  private static final com.google.protobuf.Descriptors.Descriptor
29315    internal_static_hybridsim_Hline_descriptor;
29316  private static final 
29317    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29318      internal_static_hybridsim_Hline_fieldAccessorTable;
29319  private static final com.google.protobuf.Descriptors.Descriptor
29320    internal_static_hybridsim_Router_descriptor;
29321  private static final 
29322    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29323      internal_static_hybridsim_Router_fieldAccessorTable;
29324  private static final com.google.protobuf.Descriptors.Descriptor
29325    internal_static_hybridsim_Model_descriptor;
29326  private static final 
29327    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29328      internal_static_hybridsim_Model_fieldAccessorTable;
29329  private static final com.google.protobuf.Descriptors.Descriptor
29330    internal_static_hybridsim_Gompertz_descriptor;
29331  private static final 
29332    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29333      internal_static_hybridsim_Gompertz_fieldAccessorTable;
29334  private static final com.google.protobuf.Descriptors.Descriptor
29335    internal_static_hybridsim_Tordeux2015_descriptor;
29336  private static final 
29337    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29338      internal_static_hybridsim_Tordeux2015_fieldAccessorTable;
29339  private static final com.google.protobuf.Descriptors.Descriptor
29340    internal_static_hybridsim_AgentParams_descriptor;
29341  private static final 
29342    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29343      internal_static_hybridsim_AgentParams_fieldAccessorTable;
29344  private static final com.google.protobuf.Descriptors.Descriptor
29345    internal_static_hybridsim_Distribution_descriptor;
29346  private static final 
29347    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29348      internal_static_hybridsim_Distribution_fieldAccessorTable;
29349  private static final com.google.protobuf.Descriptors.Descriptor
29350    internal_static_hybridsim_Force_descriptor;
29351  private static final 
29352    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29353      internal_static_hybridsim_Force_fieldAccessorTable;
29354  private static final com.google.protobuf.Descriptors.Descriptor
29355    internal_static_hybridsim_Tordeux2015Force_descriptor;
29356  private static final 
29357    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29358      internal_static_hybridsim_Tordeux2015Force_fieldAccessorTable;
29359  private static final com.google.protobuf.Descriptors.Descriptor
29360    internal_static_hybridsim_Group_descriptor;
29361  private static final 
29362    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29363      internal_static_hybridsim_Group_fieldAccessorTable;
29364  private static final com.google.protobuf.Descriptors.Descriptor
29365    internal_static_hybridsim_Source_descriptor;
29366  private static final 
29367    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29368      internal_static_hybridsim_Source_fieldAccessorTable;
29369  private static final com.google.protobuf.Descriptors.Descriptor
29370    internal_static_hybridsim_Goal_descriptor;
29371  private static final 
29372    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29373      internal_static_hybridsim_Goal_fieldAccessorTable;
29374  private static final com.google.protobuf.Descriptors.Descriptor
29375    internal_static_hybridsim_Environment_descriptor;
29376  private static final 
29377    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29378      internal_static_hybridsim_Environment_fieldAccessorTable;
29379  private static final com.google.protobuf.Descriptors.Descriptor
29380    internal_static_hybridsim_Transition_descriptor;
29381  private static final 
29382    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29383      internal_static_hybridsim_Transition_fieldAccessorTable;
29384  private static final com.google.protobuf.Descriptors.Descriptor
29385    internal_static_hybridsim_Room_descriptor;
29386  private static final 
29387    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29388      internal_static_hybridsim_Room_fieldAccessorTable;
29389  private static final com.google.protobuf.Descriptors.Descriptor
29390    internal_static_hybridsim_Subroom_descriptor;
29391  private static final 
29392    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29393      internal_static_hybridsim_Subroom_fieldAccessorTable;
29394  private static final com.google.protobuf.Descriptors.Descriptor
29395    internal_static_hybridsim_Polygon_descriptor;
29396  private static final 
29397    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29398      internal_static_hybridsim_Polygon_fieldAccessorTable;
29399  private static final com.google.protobuf.Descriptors.Descriptor
29400    internal_static_hybridsim_LeftClosedRightOpenTimeInterval_descriptor;
29401  private static final 
29402    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29403      internal_static_hybridsim_LeftClosedRightOpenTimeInterval_fieldAccessorTable;
29404  private static final com.google.protobuf.Descriptors.Descriptor
29405    internal_static_hybridsim_Empty_descriptor;
29406  private static final 
29407    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29408      internal_static_hybridsim_Empty_fieldAccessorTable;
29409  private static final com.google.protobuf.Descriptors.Descriptor
29410    internal_static_hybridsim_Boolean_descriptor;
29411  private static final 
29412    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29413      internal_static_hybridsim_Boolean_fieldAccessorTable;
29414  private static final com.google.protobuf.Descriptors.Descriptor
29415    internal_static_hybridsim_Agent_descriptor;
29416  private static final 
29417    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29418      internal_static_hybridsim_Agent_fieldAccessorTable;
29419  private static final com.google.protobuf.Descriptors.Descriptor
29420    internal_static_hybridsim_Leg_descriptor;
29421  private static final 
29422    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29423      internal_static_hybridsim_Leg_fieldAccessorTable;
29424  private static final com.google.protobuf.Descriptors.Descriptor
29425    internal_static_hybridsim_Link_descriptor;
29426  private static final 
29427    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29428      internal_static_hybridsim_Link_fieldAccessorTable;
29429  private static final com.google.protobuf.Descriptors.Descriptor
29430    internal_static_hybridsim_Coordinate_descriptor;
29431  private static final 
29432    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29433      internal_static_hybridsim_Coordinate_fieldAccessorTable;
29434  private static final com.google.protobuf.Descriptors.Descriptor
29435    internal_static_hybridsim_Agents_descriptor;
29436  private static final 
29437    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29438      internal_static_hybridsim_Agents_fieldAccessorTable;
29439  private static final com.google.protobuf.Descriptors.Descriptor
29440    internal_static_hybridsim_Trajectory_descriptor;
29441  private static final 
29442    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29443      internal_static_hybridsim_Trajectory_fieldAccessorTable;
29444  private static final com.google.protobuf.Descriptors.Descriptor
29445    internal_static_hybridsim_Trajectories_descriptor;
29446  private static final 
29447    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
29448      internal_static_hybridsim_Trajectories_fieldAccessorTable;
29449
29450  public static com.google.protobuf.Descriptors.FileDescriptor
29451      getDescriptor() {
29452    return descriptor;
29453  }
29454  private static  com.google.protobuf.Descriptors.FileDescriptor
29455      descriptor;
29456  static {
29457    java.lang.String[] descriptorData = {
29458      "\n\017hybridsim.proto\022\thybridsim\"\354\001\n\010Scenari" +
29459      "o\022\014\n\004seed\030\001 \001(\r\022+\n\013environment\030\002 \001(\0132\026.h" +
29460      "ybridsim.Environment\022\035\n\004goal\030\003 \003(\0132\017.hyb" +
29461      "ridsim.Goal\022\037\n\005group\030\004 \003(\0132\020.hybridsim.G" +
29462      "roup\022!\n\006source\030\005 \003(\0132\021.hybridsim.Source\022" +
29463      "\037\n\005model\030\006 \001(\0132\020.hybridsim.Model\022!\n\006rout" +
29464      "er\030\007 \003(\0132\021.hybridsim.Router\"\204\001\n\005Hline\022\n\n" +
29465      "\002id\030\001 \001(\005\022\017\n\007room_id\030\002 \001(\005\022\022\n\nsubroom_id" +
29466      "\030\003 \001(\005\022$\n\005vert1\030\004 \001(\0132\025.hybridsim.Coordi" +
29467      "nate\022$\n\005vert2\030\005 \001(\0132\025.hybridsim.Coordina" +
29468      "te\"0\n\006Router\022\021\n\trouter_id\030\001 \001(\005\022\023\n\013descr" +
29469      "iption\030\002 \001(\t\"\247\001\n\005Model\022#\n\004type\030\001 \001(\0162\025.h" +
29470      "ybridsim.Model.Type\022%\n\010gompertz\030\002 \001(\0132\023." +
29471      "hybridsim.Gompertz\022+\n\013tordeux2015\030\003 \001(\0132" +
29472      "\026.hybridsim.Tordeux2015\"%\n\004Type\022\014\n\010Gompe" +
29473      "rtz\020\000\022\017\n\013Tordeux2015\020\001\"\366\001\n\010Gompertz\022\016\n\006s" +
29474      "olver\030\001 \001(\t\022\020\n\010stepsize\030\002 \001(\001\022\036\n\026exit_cr" +
29475      "ossing_strategy\030\003 \001(\005\022\034\n\024linked_cells_en" +
29476      "abled\030\004 \001(\010\022\021\n\tcell_size\030\005 \001(\001\022#\n\tforce_" +
29477      "ped\030\006 \001(\0132\020.hybridsim.Force\022$\n\nforce_wal" +
29478      "l\030\007 \001(\0132\020.hybridsim.Force\022,\n\014agent_param" +
29479      "s\030\010 \001(\0132\026.hybridsim.AgentParams\"\241\002\n\013Tord" +
29480      "eux2015\022\016\n\006solver\030\001 \001(\t\022\020\n\010stepsize\030\002 \001(" +
29481      "\001\022\036\n\026exit_crossing_strategy\030\003 \001(\005\022\034\n\024lin" +
29482      "ked_cells_enabled\030\004 \001(\010\022\021\n\tcell_size\030\005 \001" +
29483      "(\001\022.\n\tforce_ped\030\006 \001(\0132\033.hybridsim.Tordeu" +
29484      "x2015Force\022/\n\nforce_wall\030\007 \001(\0132\033.hybrids" +
29485      "im.Tordeux2015Force\022,\n\014agent_params\030\010 \001(" +
29486      "\0132\026.hybridsim.AgentParams\022\020\n\010periodic\030\t " +
29487      "\001(\005\"\317\004\n\013AgentParams\022#\n\002v0\030\001 \001(\0132\027.hybrid" +
29488      "sim.Distribution\022&\n\005b_max\030\002 \001(\0132\027.hybrid" +
29489      "sim.Distribution\022&\n\005b_min\030\003 \001(\0132\027.hybrid" +
29490      "sim.Distribution\022&\n\005a_min\030\004 \001(\0132\027.hybrid" +
29491      "sim.Distribution\022$\n\003tau\030\005 \001(\0132\027.hybridsi" +
29492      "m.Distribution\022%\n\004atau\030\006 \001(\0132\027.hybridsim" +
29493      ".Distribution\022,\n\013v0_upstairs\030\007 \001(\0132\027.hyb" +
29494      "ridsim.Distribution\022.\n\rv0_downstairs\030\010 \001" +
29495      "(\0132\027.hybridsim.Distribution\0220\n\017v0_escala" +
29496      "tor_up\030\t \001(\0132\027.hybridsim.Distribution\0222\n" +
29497      "\021v0_escalator_down\030\n \001(\0132\027.hybridsim.Dis" +
29498      "tribution\0225\n\024v0_idle_escalator_up\030\013 \001(\0132" +
29499      "\027.hybridsim.Distribution\0227\n\026v0_idle_esca" +
29500      "lator_down\030\014 \001(\0132\027.hybridsim.Distributio" +
29501      "n\022\"\n\001T\030\r \001(\0132\027.hybridsim.Distribution\")\n" +
29502      "\014Distribution\022\n\n\002mu\030\001 \001(\001\022\r\n\005sigma\030\002 \001(\001" +
29503      "\"4\n\005Force\022\n\n\002nu\030\001 \001(\001\022\t\n\001a\030\002 \001(\001\022\t\n\001b\030\003 " +
29504      "\001(\001\022\t\n\001c\030\004 \001(\001\"(\n\020Tordeux2015Force\022\t\n\001a\030" +
29505      "\001 \001(\001\022\t\n\001D\030\002 \001(\001\"\315\001\n\005Group\022\020\n\010group_id\030\001" +
29506      " \001(\005\022\017\n\007room_id\030\002 \001(\005\022\022\n\nsubroom_id\030\003 \001(" +
29507      "\005\022\016\n\006number\030\004 \001(\005\022\021\n\trouter_id\030\005 \001(\005\022\032\n\022" +
29508      "agent_parameter_id\030\006 \001(\005\022&\n\007min_x_y\030\007 \001(" +
29509      "\0132\025.hybridsim.Coordinate\022&\n\007max_x_y\030\010 \001(" +
29510      "\0132\025.hybridsim.Coordinate\"^\n\006Source\022\n\n\002id" +
29511      "\030\001 \001(\005\022\021\n\tfrequency\030\002 \001(\005\022\022\n\nmax_agents\030" +
29512      "\003 \001(\005\022\020\n\010group_id\030\004 \001(\005\022\017\n\007caption\030\005 \001(\t" +
29513      "\"Q\n\004Goal\022\n\n\002id\030\001 \001(\005\022\r\n\005final\030\002 \001(\010\022\017\n\007c" +
29514      "aption\030\003 \001(\t\022\035\n\001p\030\004 \001(\0132\022.hybridsim.Poly" +
29515      "gon\"x\n\013Environment\022\035\n\004room\030\001 \003(\0132\017.hybri" +
29516      "dsim.Room\022)\n\ntransition\030\002 \003(\0132\025.hybridsi" +
29517      "m.Transition\022\037\n\005hline\030\003 \003(\0132\020.hybridsim." +
29518      "Hline\"\321\001\n\nTransition\022\n\n\002id\030\001 \001(\005\022\017\n\007capt" +
29519      "ion\030\002 \001(\t\022\014\n\004type\030\003 \001(\t\022\020\n\010room1_id\030\004 \001(" +
29520      "\005\022\023\n\013subroom1_id\030\005 \001(\005\022\020\n\010room2_id\030\006 \001(\005" +
29521      "\022\023\n\013subroom2_id\030\007 \001(\005\022$\n\005vert1\030\010 \001(\0132\025.h" +
29522      "ybridsim.Coordinate\022$\n\005vert2\030\t \001(\0132\025.hyb" +
29523      "ridsim.Coordinate\"H\n\004Room\022\n\n\002id\030\001 \001(\005\022\017\n" +
29524      "\007caption\030\002 \001(\t\022#\n\007subroom\030\003 \003(\0132\022.hybrid" +
29525      "sim.Subroom\"Y\n\007Subroom\022\n\n\002id\030\001 \001(\005\022\016\n\006cl" +
29526      "osed\030\002 \001(\005\022\r\n\005class\030\003 \001(\t\022#\n\007polygon\030\004 \003" +
29527      "(\0132\022.hybridsim.Polygon\"E\n\007Polygon\022\017\n\007cap" +
29528      "tion\030\001 \001(\t\022)\n\ncoordinate\030\002 \003(\0132\025.hybrids" +
29529      "im.Coordinate\"U\n\037LeftClosedRightOpenTime" +
29530      "Interval\022\031\n\021fromTimeIncluding\030\001 \001(\001\022\027\n\017t" +
29531      "oTimeExcluding\030\002 \001(\001\"\007\n\005Empty\"\026\n\007Boolean" +
29532      "\022\013\n\003val\030\001 \001(\010\"\242\001\n\005Agent\022\n\n\002id\030\001 \001(\t\022,\n\re" +
29533      "nterLocation\030\002 \001(\0132\025.hybridsim.Coordinat" +
29534      "e\022,\n\rleaveLocation\030\003 \001(\0132\025.hybridsim.Coo" +
29535      "rdinate\022\t\n\001x\030\004 \001(\001\022\t\n\001y\030\005 \001(\001\022\033\n\003leg\030\006 \001" +
29536      "(\0132\016.hybridsim.Leg\"$\n\003Leg\022\035\n\004link\030\017 \003(\0132" +
29537      "\017.hybridsim.Link\";\n\004Link\022\'\n\010centroid\030\001 \001" +
29538      "(\0132\025.hybridsim.Coordinate\022\n\n\002id\030\002 \001(\005\"\"\n" +
29539      "\nCoordinate\022\t\n\001x\030\001 \001(\001\022\t\n\001y\030\002 \001(\001\"*\n\006Age" +
29540      "nts\022 \n\006agents\030\001 \003(\0132\020.hybridsim.Agent\"p\n" +
29541      "\nTrajectory\022\n\n\002id\030\001 \001(\t\022\t\n\001x\030\002 \001(\001\022\t\n\001y\030" +
29542      "\003 \001(\001\022\013\n\003spd\030\004 \001(\001\022\013\n\003phi\030\005 \001(\001\022\016\n\006linkI" +
29543      "d\030\006 \001(\005\022\n\n\002vx\030\007 \001(\001\022\n\n\002vy\030\010 \001(\001\";\n\014Traje" +
29544      "ctories\022+\n\014trajectories\030\001 \003(\0132\025.hybridsi" +
29545      "m.Trajectory2\213\003\n\020HybridSimulation\022V\n\024sim" +
29546      "ulatedTimeInerval\022*.hybridsim.LeftClosed" +
29547      "RightOpenTimeInterval\032\020.hybridsim.Empty\"" +
29548      "\000\0227\n\rtransferAgent\022\020.hybridsim.Agent\032\022.h" +
29549      "ybridsim.Boolean\"\000\022B\n\023receiveTrajectorie" +
29550      "s\022\020.hybridsim.Empty\032\027.hybridsim.Trajecto" +
29551      "ries\"\000\0227\n\016retrieveAgents\022\020.hybridsim.Emp" +
29552      "ty\032\021.hybridsim.Agents\"\000\0220\n\010shutdown\022\020.hy" +
29553      "bridsim.Empty\032\020.hybridsim.Empty\"\000\0227\n\014ini" +
29554      "tScenario\022\023.hybridsim.Scenario\032\020.hybrids" +
29555      "im.Empty\"\000B6\n\"org.matsim.contrib.hybrids" +
29556      "im.protoB\016HybridSimProtoP\000b\006proto3"
29557    };
29558    descriptor = com.google.protobuf.Descriptors.FileDescriptor
29559      .internalBuildGeneratedFileFrom(descriptorData,
29560        new com.google.protobuf.Descriptors.FileDescriptor[] {
29561        });
29562    internal_static_hybridsim_Scenario_descriptor =
29563      getDescriptor().getMessageTypes().get(0);
29564    internal_static_hybridsim_Scenario_fieldAccessorTable = new
29565      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29566        internal_static_hybridsim_Scenario_descriptor,
29567        new java.lang.String[] { "Seed", "Environment", "Goal", "Group", "Source", "Model", "Router", });
29568    internal_static_hybridsim_Hline_descriptor =
29569      getDescriptor().getMessageTypes().get(1);
29570    internal_static_hybridsim_Hline_fieldAccessorTable = new
29571      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29572        internal_static_hybridsim_Hline_descriptor,
29573        new java.lang.String[] { "Id", "RoomId", "SubroomId", "Vert1", "Vert2", });
29574    internal_static_hybridsim_Router_descriptor =
29575      getDescriptor().getMessageTypes().get(2);
29576    internal_static_hybridsim_Router_fieldAccessorTable = new
29577      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29578        internal_static_hybridsim_Router_descriptor,
29579        new java.lang.String[] { "RouterId", "Description", });
29580    internal_static_hybridsim_Model_descriptor =
29581      getDescriptor().getMessageTypes().get(3);
29582    internal_static_hybridsim_Model_fieldAccessorTable = new
29583      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29584        internal_static_hybridsim_Model_descriptor,
29585        new java.lang.String[] { "Type", "Gompertz", "Tordeux2015", });
29586    internal_static_hybridsim_Gompertz_descriptor =
29587      getDescriptor().getMessageTypes().get(4);
29588    internal_static_hybridsim_Gompertz_fieldAccessorTable = new
29589      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29590        internal_static_hybridsim_Gompertz_descriptor,
29591        new java.lang.String[] { "Solver", "Stepsize", "ExitCrossingStrategy", "LinkedCellsEnabled", "CellSize", "ForcePed", "ForceWall", "AgentParams", });
29592    internal_static_hybridsim_Tordeux2015_descriptor =
29593      getDescriptor().getMessageTypes().get(5);
29594    internal_static_hybridsim_Tordeux2015_fieldAccessorTable = new
29595      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29596        internal_static_hybridsim_Tordeux2015_descriptor,
29597        new java.lang.String[] { "Solver", "Stepsize", "ExitCrossingStrategy", "LinkedCellsEnabled", "CellSize", "ForcePed", "ForceWall", "AgentParams", "Periodic", });
29598    internal_static_hybridsim_AgentParams_descriptor =
29599      getDescriptor().getMessageTypes().get(6);
29600    internal_static_hybridsim_AgentParams_fieldAccessorTable = new
29601      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29602        internal_static_hybridsim_AgentParams_descriptor,
29603        new java.lang.String[] { "V0", "BMax", "BMin", "AMin", "Tau", "Atau", "V0Upstairs", "V0Downstairs", "V0EscalatorUp", "V0EscalatorDown", "V0IdleEscalatorUp", "V0IdleEscalatorDown", "T", });
29604    internal_static_hybridsim_Distribution_descriptor =
29605      getDescriptor().getMessageTypes().get(7);
29606    internal_static_hybridsim_Distribution_fieldAccessorTable = new
29607      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29608        internal_static_hybridsim_Distribution_descriptor,
29609        new java.lang.String[] { "Mu", "Sigma", });
29610    internal_static_hybridsim_Force_descriptor =
29611      getDescriptor().getMessageTypes().get(8);
29612    internal_static_hybridsim_Force_fieldAccessorTable = new
29613      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29614        internal_static_hybridsim_Force_descriptor,
29615        new java.lang.String[] { "Nu", "A", "B", "C", });
29616    internal_static_hybridsim_Tordeux2015Force_descriptor =
29617      getDescriptor().getMessageTypes().get(9);
29618    internal_static_hybridsim_Tordeux2015Force_fieldAccessorTable = new
29619      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29620        internal_static_hybridsim_Tordeux2015Force_descriptor,
29621        new java.lang.String[] { "A", "D", });
29622    internal_static_hybridsim_Group_descriptor =
29623      getDescriptor().getMessageTypes().get(10);
29624    internal_static_hybridsim_Group_fieldAccessorTable = new
29625      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29626        internal_static_hybridsim_Group_descriptor,
29627        new java.lang.String[] { "GroupId", "RoomId", "SubroomId", "Number", "RouterId", "AgentParameterId", "MinXY", "MaxXY", });
29628    internal_static_hybridsim_Source_descriptor =
29629      getDescriptor().getMessageTypes().get(11);
29630    internal_static_hybridsim_Source_fieldAccessorTable = new
29631      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29632        internal_static_hybridsim_Source_descriptor,
29633        new java.lang.String[] { "Id", "Frequency", "MaxAgents", "GroupId", "Caption", });
29634    internal_static_hybridsim_Goal_descriptor =
29635      getDescriptor().getMessageTypes().get(12);
29636    internal_static_hybridsim_Goal_fieldAccessorTable = new
29637      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29638        internal_static_hybridsim_Goal_descriptor,
29639        new java.lang.String[] { "Id", "Final", "Caption", "P", });
29640    internal_static_hybridsim_Environment_descriptor =
29641      getDescriptor().getMessageTypes().get(13);
29642    internal_static_hybridsim_Environment_fieldAccessorTable = new
29643      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29644        internal_static_hybridsim_Environment_descriptor,
29645        new java.lang.String[] { "Room", "Transition", "Hline", });
29646    internal_static_hybridsim_Transition_descriptor =
29647      getDescriptor().getMessageTypes().get(14);
29648    internal_static_hybridsim_Transition_fieldAccessorTable = new
29649      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29650        internal_static_hybridsim_Transition_descriptor,
29651        new java.lang.String[] { "Id", "Caption", "Type", "Room1Id", "Subroom1Id", "Room2Id", "Subroom2Id", "Vert1", "Vert2", });
29652    internal_static_hybridsim_Room_descriptor =
29653      getDescriptor().getMessageTypes().get(15);
29654    internal_static_hybridsim_Room_fieldAccessorTable = new
29655      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29656        internal_static_hybridsim_Room_descriptor,
29657        new java.lang.String[] { "Id", "Caption", "Subroom", });
29658    internal_static_hybridsim_Subroom_descriptor =
29659      getDescriptor().getMessageTypes().get(16);
29660    internal_static_hybridsim_Subroom_fieldAccessorTable = new
29661      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29662        internal_static_hybridsim_Subroom_descriptor,
29663        new java.lang.String[] { "Id", "Closed", "Class_", "Polygon", });
29664    internal_static_hybridsim_Polygon_descriptor =
29665      getDescriptor().getMessageTypes().get(17);
29666    internal_static_hybridsim_Polygon_fieldAccessorTable = new
29667      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29668        internal_static_hybridsim_Polygon_descriptor,
29669        new java.lang.String[] { "Caption", "Coordinate", });
29670    internal_static_hybridsim_LeftClosedRightOpenTimeInterval_descriptor =
29671      getDescriptor().getMessageTypes().get(18);
29672    internal_static_hybridsim_LeftClosedRightOpenTimeInterval_fieldAccessorTable = new
29673      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29674        internal_static_hybridsim_LeftClosedRightOpenTimeInterval_descriptor,
29675        new java.lang.String[] { "FromTimeIncluding", "ToTimeExcluding", });
29676    internal_static_hybridsim_Empty_descriptor =
29677      getDescriptor().getMessageTypes().get(19);
29678    internal_static_hybridsim_Empty_fieldAccessorTable = new
29679      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29680        internal_static_hybridsim_Empty_descriptor,
29681        new java.lang.String[] { });
29682    internal_static_hybridsim_Boolean_descriptor =
29683      getDescriptor().getMessageTypes().get(20);
29684    internal_static_hybridsim_Boolean_fieldAccessorTable = new
29685      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29686        internal_static_hybridsim_Boolean_descriptor,
29687        new java.lang.String[] { "Val", });
29688    internal_static_hybridsim_Agent_descriptor =
29689      getDescriptor().getMessageTypes().get(21);
29690    internal_static_hybridsim_Agent_fieldAccessorTable = new
29691      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29692        internal_static_hybridsim_Agent_descriptor,
29693        new java.lang.String[] { "Id", "EnterLocation", "LeaveLocation", "X", "Y", "Leg", });
29694    internal_static_hybridsim_Leg_descriptor =
29695      getDescriptor().getMessageTypes().get(22);
29696    internal_static_hybridsim_Leg_fieldAccessorTable = new
29697      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29698        internal_static_hybridsim_Leg_descriptor,
29699        new java.lang.String[] { "Link", });
29700    internal_static_hybridsim_Link_descriptor =
29701      getDescriptor().getMessageTypes().get(23);
29702    internal_static_hybridsim_Link_fieldAccessorTable = new
29703      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29704        internal_static_hybridsim_Link_descriptor,
29705        new java.lang.String[] { "Centroid", "Id", });
29706    internal_static_hybridsim_Coordinate_descriptor =
29707      getDescriptor().getMessageTypes().get(24);
29708    internal_static_hybridsim_Coordinate_fieldAccessorTable = new
29709      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29710        internal_static_hybridsim_Coordinate_descriptor,
29711        new java.lang.String[] { "X", "Y", });
29712    internal_static_hybridsim_Agents_descriptor =
29713      getDescriptor().getMessageTypes().get(25);
29714    internal_static_hybridsim_Agents_fieldAccessorTable = new
29715      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29716        internal_static_hybridsim_Agents_descriptor,
29717        new java.lang.String[] { "Agents", });
29718    internal_static_hybridsim_Trajectory_descriptor =
29719      getDescriptor().getMessageTypes().get(26);
29720    internal_static_hybridsim_Trajectory_fieldAccessorTable = new
29721      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29722        internal_static_hybridsim_Trajectory_descriptor,
29723        new java.lang.String[] { "Id", "X", "Y", "Spd", "Phi", "LinkId", "Vx", "Vy", });
29724    internal_static_hybridsim_Trajectories_descriptor =
29725      getDescriptor().getMessageTypes().get(27);
29726    internal_static_hybridsim_Trajectories_fieldAccessorTable = new
29727      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
29728        internal_static_hybridsim_Trajectories_descriptor,
29729        new java.lang.String[] { "Trajectories", });
29730  }
29731
29732  // @@protoc_insertion_point(outer_class_scope)
29733}