/*
 * Copyright 2013 The Netty Project
 *
 * The Netty Project licenses this file to you under the Apache License,
 * version 2.0 (the "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at:
 *
 *   https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: src/main/java/io/netty/example/worldclock/WorldClockProtocol.proto

package io.netty.example.worldclock;

import static io.netty.util.internal.ObjectUtil.checkNotNull;

@SuppressWarnings("all")
public final class WorldClockProtocol {
  private WorldClockProtocol() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  /**
   * Protobuf enum {@code io.netty.example.worldclock.Continent}
   */
  public enum Continent
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>AFRICA = 0;</code>
     */
    AFRICA(0, 0),
    /**
     * <code>AMERICA = 1;</code>
     */
    AMERICA(1, 1),
    /**
     * <code>ANTARCTICA = 2;</code>
     */
    ANTARCTICA(2, 2),
    /**
     * <code>ARCTIC = 3;</code>
     */
    ARCTIC(3, 3),
    /**
     * <code>ASIA = 4;</code>
     */
    ASIA(4, 4),
    /**
     * <code>ATLANTIC = 5;</code>
     */
    ATLANTIC(5, 5),
    /**
     * <code>AUSTRALIA = 6;</code>
     */
    AUSTRALIA(6, 6),
    /**
     * <code>EUROPE = 7;</code>
     */
    EUROPE(7, 7),
    /**
     * <code>INDIAN = 8;</code>
     */
    INDIAN(8, 8),
    /**
     * <code>MIDEAST = 9;</code>
     */
    MIDEAST(9, 9),
    /**
     * <code>PACIFIC = 10;</code>
     */
    PACIFIC(10, 10),
    ;

    /**
     * <code>AFRICA = 0;</code>
     */
    public static final int AFRICA_VALUE = 0;
    /**
     * <code>AMERICA = 1;</code>
     */
    public static final int AMERICA_VALUE = 1;
    /**
     * <code>ANTARCTICA = 2;</code>
     */
    public static final int ANTARCTICA_VALUE = 2;
    /**
     * <code>ARCTIC = 3;</code>
     */
    public static final int ARCTIC_VALUE = 3;
    /**
     * <code>ASIA = 4;</code>
     */
    public static final int ASIA_VALUE = 4;
    /**
     * <code>ATLANTIC = 5;</code>
     */
    public static final int ATLANTIC_VALUE = 5;
    /**
     * <code>AUSTRALIA = 6;</code>
     */
    public static final int AUSTRALIA_VALUE = 6;
    /**
     * <code>EUROPE = 7;</code>
     */
    public static final int EUROPE_VALUE = 7;
    /**
     * <code>INDIAN = 8;</code>
     */
    public static final int INDIAN_VALUE = 8;
    /**
     * <code>MIDEAST = 9;</code>
     */
    public static final int MIDEAST_VALUE = 9;
    /**
     * <code>PACIFIC = 10;</code>
     */
    public static final int PACIFIC_VALUE = 10;


    @Override
    public final int getNumber() { return value; }

    public static Continent valueOf(int value) {
      switch (value) {
        case 0: return AFRICA;
        case 1: return AMERICA;
        case 2: return ANTARCTICA;
        case 3: return ARCTIC;
        case 4: return ASIA;
        case 5: return ATLANTIC;
        case 6: return AUSTRALIA;
        case 7: return EUROPE;
        case 8: return INDIAN;
        case 9: return MIDEAST;
        case 10: return PACIFIC;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<Continent>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap<Continent>
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<Continent>() {
            @Override
            public Continent findValueByNumber(int number) {
              return Continent.valueOf(number);
            }
          };

    @Override
    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    @Override
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return io.netty.example.worldclock.WorldClockProtocol.getDescriptor().getEnumTypes().get(0);
    }

    private static final Continent[] VALUES = values();

    public static Continent valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private Continent(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:io.netty.example.worldclock.Continent)
  }

  /**
   * Protobuf enum {@code io.netty.example.worldclock.DayOfWeek}
   */
  public enum DayOfWeek
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>SUNDAY = 1;</code>
     */
    SUNDAY(0, 1),
    /**
     * <code>MONDAY = 2;</code>
     */
    MONDAY(1, 2),
    /**
     * <code>TUESDAY = 3;</code>
     */
    TUESDAY(2, 3),
    /**
     * <code>WEDNESDAY = 4;</code>
     */
    WEDNESDAY(3, 4),
    /**
     * <code>THURSDAY = 5;</code>
     */
    THURSDAY(4, 5),
    /**
     * <code>FRIDAY = 6;</code>
     */
    FRIDAY(5, 6),
    /**
     * <code>SATURDAY = 7;</code>
     */
    SATURDAY(6, 7),
    ;

    /**
     * <code>SUNDAY = 1;</code>
     */
    public static final int SUNDAY_VALUE = 1;
    /**
     * <code>MONDAY = 2;</code>
     */
    public static final int MONDAY_VALUE = 2;
    /**
     * <code>TUESDAY = 3;</code>
     */
    public static final int TUESDAY_VALUE = 3;
    /**
     * <code>WEDNESDAY = 4;</code>
     */
    public static final int WEDNESDAY_VALUE = 4;
    /**
     * <code>THURSDAY = 5;</code>
     */
    public static final int THURSDAY_VALUE = 5;
    /**
     * <code>FRIDAY = 6;</code>
     */
    public static final int FRIDAY_VALUE = 6;
    /**
     * <code>SATURDAY = 7;</code>
     */
    public static final int SATURDAY_VALUE = 7;


    @Override
    public final int getNumber() { return value; }

    public static DayOfWeek valueOf(int value) {
      switch (value) {
        case 1: return SUNDAY;
        case 2: return MONDAY;
        case 3: return TUESDAY;
        case 4: return WEDNESDAY;
        case 5: return THURSDAY;
        case 6: return FRIDAY;
        case 7: return SATURDAY;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<DayOfWeek>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap<DayOfWeek>
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<DayOfWeek>() {
            @Override
            public DayOfWeek findValueByNumber(int number) {
              return DayOfWeek.valueOf(number);
            }
          };

    @Override
    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    @Override
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return io.netty.example.worldclock.WorldClockProtocol.getDescriptor().getEnumTypes().get(1);
    }

    private static final DayOfWeek[] VALUES = values();

    public static DayOfWeek valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DayOfWeek(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:io.netty.example.worldclock.DayOfWeek)
  }

  public interface LocationOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // required .io.netty.example.worldclock.Continent continent = 1;
    /**
     * <code>required .io.netty.example.worldclock.Continent continent = 1;</code>
     */
    boolean hasContinent();
    /**
     * <code>required .io.netty.example.worldclock.Continent continent = 1;</code>
     */
    io.netty.example.worldclock.WorldClockProtocol.Continent getContinent();

    // required string city = 2;
    /**
     * <code>required string city = 2;</code>
     */
    boolean hasCity();
    /**
     * <code>required string city = 2;</code>
     */
    java.lang.String getCity();
    /**
     * <code>required string city = 2;</code>
     */
    com.google.protobuf.ByteString
        getCityBytes();
  }
  /**
   * Protobuf type {@code io.netty.example.worldclock.Location}
   */
  public static final class Location extends
      com.google.protobuf.GeneratedMessage
      implements LocationOrBuilder {
    // Use Location.newBuilder() to construct.
    private Location(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Location(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Location defaultInstance;
    public static Location getDefaultInstance() {
      return defaultInstance;
    }

    @Override
    public Location getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Location(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              io.netty.example.worldclock.WorldClockProtocol.Continent value = io.netty.example.worldclock.WorldClockProtocol.Continent.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                continent_ = value;
              }
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              city_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_Location_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_Location_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.netty.example.worldclock.WorldClockProtocol.Location.class, io.netty.example.worldclock.WorldClockProtocol.Location.Builder.class);
    }

    public static com.google.protobuf.Parser<Location> PARSER =
        new com.google.protobuf.AbstractParser<Location>() {
      @Override
      public Location parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Location(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<Location> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required .io.netty.example.worldclock.Continent continent = 1;
    public static final int CONTINENT_FIELD_NUMBER = 1;
    private io.netty.example.worldclock.WorldClockProtocol.Continent continent_;
    /**
     * <code>required .io.netty.example.worldclock.Continent continent = 1;</code>
     */
    @Override
    public boolean hasContinent() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .io.netty.example.worldclock.Continent continent = 1;</code>
     */
    @Override
    public io.netty.example.worldclock.WorldClockProtocol.Continent getContinent() {
      return continent_;
    }

    // required string city = 2;
    public static final int CITY_FIELD_NUMBER = 2;
    private java.lang.Object city_;
    /**
     * <code>required string city = 2;</code>
     */
    @Override
    public boolean hasCity() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required string city = 2;</code>
     */
    @Override
    public java.lang.String getCity() {
      java.lang.Object ref = city_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          city_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string city = 2;</code>
     */
    @Override
    public com.google.protobuf.ByteString
        getCityBytes() {
      java.lang.Object ref = city_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        city_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      continent_ = io.netty.example.worldclock.WorldClockProtocol.Continent.AFRICA;
      city_ = "";
    }
    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasContinent()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasCity()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, continent_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getCityBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, continent_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getCityBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static io.netty.example.worldclock.WorldClockProtocol.Location parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.Location parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.Location parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.Location parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.Location parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.Location parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.Location parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.Location parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.Location parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.Location parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.netty.example.worldclock.WorldClockProtocol.Location prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code io.netty.example.worldclock.Location}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.netty.example.worldclock.WorldClockProtocol.LocationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_Location_descriptor;
      }

      @Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_Location_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.netty.example.worldclock.WorldClockProtocol.Location.class, io.netty.example.worldclock.WorldClockProtocol.Location.Builder.class);
      }

      // Construct using io.netty.example.worldclock.WorldClockProtocol.Location.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      @Override
      public Builder clear() {
        super.clear();
        continent_ = io.netty.example.worldclock.WorldClockProtocol.Continent.AFRICA;
        bitField0_ = (bitField0_ & ~0x00000001);
        city_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @Override
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_Location_descriptor;
      }

      @Override
      public io.netty.example.worldclock.WorldClockProtocol.Location getDefaultInstanceForType() {
        return io.netty.example.worldclock.WorldClockProtocol.Location.getDefaultInstance();
      }

      @Override
      public io.netty.example.worldclock.WorldClockProtocol.Location build() {
        io.netty.example.worldclock.WorldClockProtocol.Location result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public io.netty.example.worldclock.WorldClockProtocol.Location buildPartial() {
        io.netty.example.worldclock.WorldClockProtocol.Location result = new io.netty.example.worldclock.WorldClockProtocol.Location(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.continent_ = continent_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.city_ = city_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.netty.example.worldclock.WorldClockProtocol.Location) {
          return mergeFrom((io.netty.example.worldclock.WorldClockProtocol.Location)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.netty.example.worldclock.WorldClockProtocol.Location other) {
        if (other == io.netty.example.worldclock.WorldClockProtocol.Location.getDefaultInstance()) return this;
        if (other.hasContinent()) {
          setContinent(other.getContinent());
        }
        if (other.hasCity()) {
          bitField0_ |= 0x00000002;
          city_ = other.city_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasContinent()) {
          
          return false;
        }
        if (!hasCity()) {
          
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.netty.example.worldclock.WorldClockProtocol.Location parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.netty.example.worldclock.WorldClockProtocol.Location) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .io.netty.example.worldclock.Continent continent = 1;
      private io.netty.example.worldclock.WorldClockProtocol.Continent continent_ = io.netty.example.worldclock.WorldClockProtocol.Continent.AFRICA;
      /**
       * <code>required .io.netty.example.worldclock.Continent continent = 1;</code>
       */
      @Override
      public boolean hasContinent() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .io.netty.example.worldclock.Continent continent = 1;</code>
       */
      @Override
      public io.netty.example.worldclock.WorldClockProtocol.Continent getContinent() {
        return continent_;
      }
      /**
       * <code>required .io.netty.example.worldclock.Continent continent = 1;</code>
       */
      public Builder setContinent(io.netty.example.worldclock.WorldClockProtocol.Continent value) {
        checkNotNull(value, "value");
        bitField0_ |= 0x00000001;
        continent_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required .io.netty.example.worldclock.Continent continent = 1;</code>
       */
      public Builder clearContinent() {
        bitField0_ = (bitField0_ & ~0x00000001);
        continent_ = io.netty.example.worldclock.WorldClockProtocol.Continent.AFRICA;
        onChanged();
        return this;
      }

      // required string city = 2;
      private java.lang.Object city_ = "";
      /**
       * <code>required string city = 2;</code>
       */
      @Override
      public boolean hasCity() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required string city = 2;</code>
       */
      @Override
      public java.lang.String getCity() {
        java.lang.Object ref = city_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          city_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string city = 2;</code>
       */
      @Override
      public com.google.protobuf.ByteString
          getCityBytes() {
        java.lang.Object ref = city_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          city_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string city = 2;</code>
       */
      public Builder setCity(
          java.lang.String value) {
        checkNotNull(value, "value");
  bitField0_ |= 0x00000002;
        city_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string city = 2;</code>
       */
      public Builder clearCity() {
        bitField0_ = (bitField0_ & ~0x00000002);
        city_ = getDefaultInstance().getCity();
        onChanged();
        return this;
      }
      /**
       * <code>required string city = 2;</code>
       */
      public Builder setCityBytes(
          com.google.protobuf.ByteString value) {
        checkNotNull(value, "value");
  bitField0_ |= 0x00000002;
        city_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:io.netty.example.worldclock.Location)
    }

    static {
      defaultInstance = new Location(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:io.netty.example.worldclock.Location)
  }

  public interface LocationsOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // repeated .io.netty.example.worldclock.Location location = 1;
    /**
     * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
     */
    java.util.List<io.netty.example.worldclock.WorldClockProtocol.Location> 
        getLocationList();
    /**
     * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
     */
    io.netty.example.worldclock.WorldClockProtocol.Location getLocation(int index);
    /**
     * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
     */
    int getLocationCount();
    /**
     * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
     */
    java.util.List<? extends io.netty.example.worldclock.WorldClockProtocol.LocationOrBuilder> 
        getLocationOrBuilderList();
    /**
     * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
     */
    io.netty.example.worldclock.WorldClockProtocol.LocationOrBuilder getLocationOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code io.netty.example.worldclock.Locations}
   */
  public static final class Locations extends
      com.google.protobuf.GeneratedMessage
      implements LocationsOrBuilder {
    // Use Locations.newBuilder() to construct.
    private Locations(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Locations(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Locations defaultInstance;
    public static Locations getDefaultInstance() {
      return defaultInstance;
    }

    @Override
    public Locations getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Locations(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                location_ = new java.util.ArrayList<io.netty.example.worldclock.WorldClockProtocol.Location>();
                mutable_bitField0_ |= 0x00000001;
              }
              location_.add(input.readMessage(io.netty.example.worldclock.WorldClockProtocol.Location.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          location_ = java.util.Collections.unmodifiableList(location_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_Locations_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_Locations_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.netty.example.worldclock.WorldClockProtocol.Locations.class, io.netty.example.worldclock.WorldClockProtocol.Locations.Builder.class);
    }

    public static com.google.protobuf.Parser<Locations> PARSER =
        new com.google.protobuf.AbstractParser<Locations>() {
      @Override
      public Locations parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Locations(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<Locations> getParserForType() {
      return PARSER;
    }

    // repeated .io.netty.example.worldclock.Location location = 1;
    public static final int LOCATION_FIELD_NUMBER = 1;
    private java.util.List<io.netty.example.worldclock.WorldClockProtocol.Location> location_;
    /**
     * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
     */
    @Override
    public java.util.List<io.netty.example.worldclock.WorldClockProtocol.Location> getLocationList() {
      return location_;
    }
    /**
     * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
     */
    @Override
    public java.util.List<? extends io.netty.example.worldclock.WorldClockProtocol.LocationOrBuilder>
        getLocationOrBuilderList() {
      return location_;
    }
    /**
     * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
     */
    @Override
    public int getLocationCount() {
      return location_.size();
    }
    /**
     * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
     */
    @Override
    public io.netty.example.worldclock.WorldClockProtocol.Location getLocation(int index) {
      return location_.get(index);
    }
    /**
     * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
     */
    @Override
    public io.netty.example.worldclock.WorldClockProtocol.LocationOrBuilder getLocationOrBuilder(
        int index) {
      return location_.get(index);
    }

    private void initFields() {
      location_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      for (int i = 0; i < getLocationCount(); i++) {
        if (!getLocation(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < location_.size(); i++) {
        output.writeMessage(1, location_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < location_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, location_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static io.netty.example.worldclock.WorldClockProtocol.Locations parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.Locations parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.Locations parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.Locations parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.Locations parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.Locations parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.Locations parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.Locations parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.Locations parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.Locations parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.netty.example.worldclock.WorldClockProtocol.Locations prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code io.netty.example.worldclock.Locations}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.netty.example.worldclock.WorldClockProtocol.LocationsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_Locations_descriptor;
      }

      @Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_Locations_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.netty.example.worldclock.WorldClockProtocol.Locations.class, io.netty.example.worldclock.WorldClockProtocol.Locations.Builder.class);
      }

      // Construct using io.netty.example.worldclock.WorldClockProtocol.Locations.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getLocationFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      @Override
      public Builder clear() {
        super.clear();
        if (locationBuilder_ == null) {
          location_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          locationBuilder_.clear();
        }
        return this;
      }

      @Override
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_Locations_descriptor;
      }

      @Override
      public io.netty.example.worldclock.WorldClockProtocol.Locations getDefaultInstanceForType() {
        return io.netty.example.worldclock.WorldClockProtocol.Locations.getDefaultInstance();
      }

      @Override
      public io.netty.example.worldclock.WorldClockProtocol.Locations build() {
        io.netty.example.worldclock.WorldClockProtocol.Locations result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public io.netty.example.worldclock.WorldClockProtocol.Locations buildPartial() {
        io.netty.example.worldclock.WorldClockProtocol.Locations result = new io.netty.example.worldclock.WorldClockProtocol.Locations(this);
        int from_bitField0_ = bitField0_;
        if (locationBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            location_ = java.util.Collections.unmodifiableList(location_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.location_ = location_;
        } else {
          result.location_ = locationBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.netty.example.worldclock.WorldClockProtocol.Locations) {
          return mergeFrom((io.netty.example.worldclock.WorldClockProtocol.Locations)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.netty.example.worldclock.WorldClockProtocol.Locations other) {
        if (other == io.netty.example.worldclock.WorldClockProtocol.Locations.getDefaultInstance()) return this;
        if (locationBuilder_ == null) {
          if (!other.location_.isEmpty()) {
            if (location_.isEmpty()) {
              location_ = other.location_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureLocationIsMutable();
              location_.addAll(other.location_);
            }
            onChanged();
          }
        } else {
          if (!other.location_.isEmpty()) {
            if (locationBuilder_.isEmpty()) {
              locationBuilder_.dispose();
              locationBuilder_ = null;
              location_ = other.location_;
              bitField0_ = (bitField0_ & ~0x00000001);
              locationBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getLocationFieldBuilder() : null;
            } else {
              locationBuilder_.addAllMessages(other.location_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public final boolean isInitialized() {
        for (int i = 0; i < getLocationCount(); i++) {
          if (!getLocation(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.netty.example.worldclock.WorldClockProtocol.Locations parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.netty.example.worldclock.WorldClockProtocol.Locations) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated .io.netty.example.worldclock.Location location = 1;
      private java.util.List<io.netty.example.worldclock.WorldClockProtocol.Location> location_ =
        java.util.Collections.emptyList();
      private void ensureLocationIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          location_ = new java.util.ArrayList<io.netty.example.worldclock.WorldClockProtocol.Location>(location_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          io.netty.example.worldclock.WorldClockProtocol.Location, io.netty.example.worldclock.WorldClockProtocol.Location.Builder, io.netty.example.worldclock.WorldClockProtocol.LocationOrBuilder> locationBuilder_;

      /**
       * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
       */
      @Override
      public java.util.List<io.netty.example.worldclock.WorldClockProtocol.Location> getLocationList() {
        if (locationBuilder_ == null) {
          return java.util.Collections.unmodifiableList(location_);
        } else {
          return locationBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
       */
      @Override
      public int getLocationCount() {
        if (locationBuilder_ == null) {
          return location_.size();
        } else {
          return locationBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
       */
      @Override
      public io.netty.example.worldclock.WorldClockProtocol.Location getLocation(int index) {
        if (locationBuilder_ == null) {
          return location_.get(index);
        } else {
          return locationBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
       */
      public Builder setLocation(
          int index, io.netty.example.worldclock.WorldClockProtocol.Location value) {
        if (locationBuilder_ == null) {
          checkNotNull(value, "value");
          ensureLocationIsMutable();
          location_.set(index, value);
          onChanged();
        } else {
          locationBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
       */
      public Builder setLocation(
          int index, io.netty.example.worldclock.WorldClockProtocol.Location.Builder builderForValue) {
        if (locationBuilder_ == null) {
          ensureLocationIsMutable();
          location_.set(index, builderForValue.build());
          onChanged();
        } else {
          locationBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
       */
      public Builder addLocation(io.netty.example.worldclock.WorldClockProtocol.Location value) {
        if (locationBuilder_ == null) {
          checkNotNull(value, "value");
          ensureLocationIsMutable();
          location_.add(value);
          onChanged();
        } else {
          locationBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
       */
      public Builder addLocation(
          int index, io.netty.example.worldclock.WorldClockProtocol.Location value) {
        if (locationBuilder_ == null) {
          checkNotNull(value, "value");
          ensureLocationIsMutable();
          location_.add(index, value);
          onChanged();
        } else {
          locationBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
       */
      public Builder addLocation(
          io.netty.example.worldclock.WorldClockProtocol.Location.Builder builderForValue) {
        if (locationBuilder_ == null) {
          ensureLocationIsMutable();
          location_.add(builderForValue.build());
          onChanged();
        } else {
          locationBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
       */
      public Builder addLocation(
          int index, io.netty.example.worldclock.WorldClockProtocol.Location.Builder builderForValue) {
        if (locationBuilder_ == null) {
          ensureLocationIsMutable();
          location_.add(index, builderForValue.build());
          onChanged();
        } else {
          locationBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
       */
      public Builder addAllLocation(
          java.lang.Iterable<? extends io.netty.example.worldclock.WorldClockProtocol.Location> values) {
        if (locationBuilder_ == null) {
          ensureLocationIsMutable();
          super.addAll(values, location_);
          onChanged();
        } else {
          locationBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
       */
      public Builder clearLocation() {
        if (locationBuilder_ == null) {
          location_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          locationBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
       */
      public Builder removeLocation(int index) {
        if (locationBuilder_ == null) {
          ensureLocationIsMutable();
          location_.remove(index);
          onChanged();
        } else {
          locationBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
       */
      public io.netty.example.worldclock.WorldClockProtocol.Location.Builder getLocationBuilder(
          int index) {
        return getLocationFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
       */
      @Override
      public io.netty.example.worldclock.WorldClockProtocol.LocationOrBuilder getLocationOrBuilder(
          int index) {
        if (locationBuilder_ == null) {
          return location_.get(index);  } else {
          return locationBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
       */
      @Override
      public java.util.List<? extends io.netty.example.worldclock.WorldClockProtocol.LocationOrBuilder>
           getLocationOrBuilderList() {
        if (locationBuilder_ != null) {
          return locationBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(location_);
        }
      }
      /**
       * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
       */
      public io.netty.example.worldclock.WorldClockProtocol.Location.Builder addLocationBuilder() {
        return getLocationFieldBuilder().addBuilder(
            io.netty.example.worldclock.WorldClockProtocol.Location.getDefaultInstance());
      }
      /**
       * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
       */
      public io.netty.example.worldclock.WorldClockProtocol.Location.Builder addLocationBuilder(
          int index) {
        return getLocationFieldBuilder().addBuilder(
            index, io.netty.example.worldclock.WorldClockProtocol.Location.getDefaultInstance());
      }
      /**
       * <code>repeated .io.netty.example.worldclock.Location location = 1;</code>
       */
      public java.util.List<io.netty.example.worldclock.WorldClockProtocol.Location.Builder> 
           getLocationBuilderList() {
        return getLocationFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          io.netty.example.worldclock.WorldClockProtocol.Location, io.netty.example.worldclock.WorldClockProtocol.Location.Builder, io.netty.example.worldclock.WorldClockProtocol.LocationOrBuilder> 
          getLocationFieldBuilder() {
        if (locationBuilder_ == null) {
          locationBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              io.netty.example.worldclock.WorldClockProtocol.Location, io.netty.example.worldclock.WorldClockProtocol.Location.Builder, io.netty.example.worldclock.WorldClockProtocol.LocationOrBuilder>(
                  location_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          location_ = null;
        }
        return locationBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:io.netty.example.worldclock.Locations)
    }

    static {
      defaultInstance = new Locations(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:io.netty.example.worldclock.Locations)
  }

  public interface LocalTimeOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // required uint32 year = 1;
    /**
     * <code>required uint32 year = 1;</code>
     */
    boolean hasYear();
    /**
     * <code>required uint32 year = 1;</code>
     */
    int getYear();

    // required uint32 month = 2;
    /**
     * <code>required uint32 month = 2;</code>
     */
    boolean hasMonth();
    /**
     * <code>required uint32 month = 2;</code>
     */
    int getMonth();

    // required uint32 dayOfMonth = 4;
    /**
     * <code>required uint32 dayOfMonth = 4;</code>
     */
    boolean hasDayOfMonth();
    /**
     * <code>required uint32 dayOfMonth = 4;</code>
     */
    int getDayOfMonth();

    // required .io.netty.example.worldclock.DayOfWeek dayOfWeek = 5;
    /**
     * <code>required .io.netty.example.worldclock.DayOfWeek dayOfWeek = 5;</code>
     */
    boolean hasDayOfWeek();
    /**
     * <code>required .io.netty.example.worldclock.DayOfWeek dayOfWeek = 5;</code>
     */
    io.netty.example.worldclock.WorldClockProtocol.DayOfWeek getDayOfWeek();

    // required uint32 hour = 6;
    /**
     * <code>required uint32 hour = 6;</code>
     */
    boolean hasHour();
    /**
     * <code>required uint32 hour = 6;</code>
     */
    int getHour();

    // required uint32 minute = 7;
    /**
     * <code>required uint32 minute = 7;</code>
     */
    boolean hasMinute();
    /**
     * <code>required uint32 minute = 7;</code>
     */
    int getMinute();

    // required uint32 second = 8;
    /**
     * <code>required uint32 second = 8;</code>
     */
    boolean hasSecond();
    /**
     * <code>required uint32 second = 8;</code>
     */
    int getSecond();
  }
  /**
   * Protobuf type {@code io.netty.example.worldclock.LocalTime}
   */
  public static final class LocalTime extends
      com.google.protobuf.GeneratedMessage
      implements LocalTimeOrBuilder {
    // Use LocalTime.newBuilder() to construct.
    private LocalTime(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private LocalTime(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final LocalTime defaultInstance;
    public static LocalTime getDefaultInstance() {
      return defaultInstance;
    }

    @Override
    public LocalTime getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private LocalTime(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              year_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              month_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000004;
              dayOfMonth_ = input.readUInt32();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();
              io.netty.example.worldclock.WorldClockProtocol.DayOfWeek value = io.netty.example.worldclock.WorldClockProtocol.DayOfWeek.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(5, rawValue);
              } else {
                bitField0_ |= 0x00000008;
                dayOfWeek_ = value;
              }
              break;
            }
            case 48: {
              bitField0_ |= 0x00000010;
              hour_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000020;
              minute_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000040;
              second_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_LocalTime_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_LocalTime_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.netty.example.worldclock.WorldClockProtocol.LocalTime.class, io.netty.example.worldclock.WorldClockProtocol.LocalTime.Builder.class);
    }

    public static com.google.protobuf.Parser<LocalTime> PARSER =
        new com.google.protobuf.AbstractParser<LocalTime>() {
      @Override
      public LocalTime parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new LocalTime(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<LocalTime> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required uint32 year = 1;
    public static final int YEAR_FIELD_NUMBER = 1;
    private int year_;
    /**
     * <code>required uint32 year = 1;</code>
     */
    @Override
    public boolean hasYear() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 year = 1;</code>
     */
    @Override
    public int getYear() {
      return year_;
    }

    // required uint32 month = 2;
    public static final int MONTH_FIELD_NUMBER = 2;
    private int month_;
    /**
     * <code>required uint32 month = 2;</code>
     */
    @Override
    public boolean hasMonth() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 month = 2;</code>
     */
    @Override
    public int getMonth() {
      return month_;
    }

    // required uint32 dayOfMonth = 4;
    public static final int DAYOFMONTH_FIELD_NUMBER = 4;
    private int dayOfMonth_;
    /**
     * <code>required uint32 dayOfMonth = 4;</code>
     */
    @Override
    public boolean hasDayOfMonth() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required uint32 dayOfMonth = 4;</code>
     */
    @Override
    public int getDayOfMonth() {
      return dayOfMonth_;
    }

    // required .io.netty.example.worldclock.DayOfWeek dayOfWeek = 5;
    public static final int DAYOFWEEK_FIELD_NUMBER = 5;
    private io.netty.example.worldclock.WorldClockProtocol.DayOfWeek dayOfWeek_;
    /**
     * <code>required .io.netty.example.worldclock.DayOfWeek dayOfWeek = 5;</code>
     */
    @Override
    public boolean hasDayOfWeek() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required .io.netty.example.worldclock.DayOfWeek dayOfWeek = 5;</code>
     */
    @Override
    public io.netty.example.worldclock.WorldClockProtocol.DayOfWeek getDayOfWeek() {
      return dayOfWeek_;
    }

    // required uint32 hour = 6;
    public static final int HOUR_FIELD_NUMBER = 6;
    private int hour_;
    /**
     * <code>required uint32 hour = 6;</code>
     */
    @Override
    public boolean hasHour() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>required uint32 hour = 6;</code>
     */
    @Override
    public int getHour() {
      return hour_;
    }

    // required uint32 minute = 7;
    public static final int MINUTE_FIELD_NUMBER = 7;
    private int minute_;
    /**
     * <code>required uint32 minute = 7;</code>
     */
    @Override
    public boolean hasMinute() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>required uint32 minute = 7;</code>
     */
    @Override
    public int getMinute() {
      return minute_;
    }

    // required uint32 second = 8;
    public static final int SECOND_FIELD_NUMBER = 8;
    private int second_;
    /**
     * <code>required uint32 second = 8;</code>
     */
    @Override
    public boolean hasSecond() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>required uint32 second = 8;</code>
     */
    @Override
    public int getSecond() {
      return second_;
    }

    private void initFields() {
      year_ = 0;
      month_ = 0;
      dayOfMonth_ = 0;
      dayOfWeek_ = io.netty.example.worldclock.WorldClockProtocol.DayOfWeek.SUNDAY;
      hour_ = 0;
      minute_ = 0;
      second_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasYear()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMonth()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasDayOfMonth()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasDayOfWeek()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasHour()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMinute()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSecond()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, year_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, month_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(4, dayOfMonth_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(5, dayOfWeek_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(6, hour_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(7, minute_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(8, second_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, year_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, month_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, dayOfMonth_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, dayOfWeek_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, hour_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, minute_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, second_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static io.netty.example.worldclock.WorldClockProtocol.LocalTime parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.LocalTime parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.LocalTime parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.LocalTime parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.LocalTime parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.LocalTime parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.LocalTime parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.LocalTime parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.LocalTime parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.LocalTime parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.netty.example.worldclock.WorldClockProtocol.LocalTime prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code io.netty.example.worldclock.LocalTime}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.netty.example.worldclock.WorldClockProtocol.LocalTimeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_LocalTime_descriptor;
      }

      @Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_LocalTime_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.netty.example.worldclock.WorldClockProtocol.LocalTime.class, io.netty.example.worldclock.WorldClockProtocol.LocalTime.Builder.class);
      }

      // Construct using io.netty.example.worldclock.WorldClockProtocol.LocalTime.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      @Override
      public Builder clear() {
        super.clear();
        year_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        month_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        dayOfMonth_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        dayOfWeek_ = io.netty.example.worldclock.WorldClockProtocol.DayOfWeek.SUNDAY;
        bitField0_ = (bitField0_ & ~0x00000008);
        hour_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        minute_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        second_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      @Override
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_LocalTime_descriptor;
      }

      @Override
      public io.netty.example.worldclock.WorldClockProtocol.LocalTime getDefaultInstanceForType() {
        return io.netty.example.worldclock.WorldClockProtocol.LocalTime.getDefaultInstance();
      }

      @Override
      public io.netty.example.worldclock.WorldClockProtocol.LocalTime build() {
        io.netty.example.worldclock.WorldClockProtocol.LocalTime result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public io.netty.example.worldclock.WorldClockProtocol.LocalTime buildPartial() {
        io.netty.example.worldclock.WorldClockProtocol.LocalTime result = new io.netty.example.worldclock.WorldClockProtocol.LocalTime(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.year_ = year_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.month_ = month_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.dayOfMonth_ = dayOfMonth_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.dayOfWeek_ = dayOfWeek_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.hour_ = hour_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.minute_ = minute_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.second_ = second_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.netty.example.worldclock.WorldClockProtocol.LocalTime) {
          return mergeFrom((io.netty.example.worldclock.WorldClockProtocol.LocalTime)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.netty.example.worldclock.WorldClockProtocol.LocalTime other) {
        if (other == io.netty.example.worldclock.WorldClockProtocol.LocalTime.getDefaultInstance()) return this;
        if (other.hasYear()) {
          setYear(other.getYear());
        }
        if (other.hasMonth()) {
          setMonth(other.getMonth());
        }
        if (other.hasDayOfMonth()) {
          setDayOfMonth(other.getDayOfMonth());
        }
        if (other.hasDayOfWeek()) {
          setDayOfWeek(other.getDayOfWeek());
        }
        if (other.hasHour()) {
          setHour(other.getHour());
        }
        if (other.hasMinute()) {
          setMinute(other.getMinute());
        }
        if (other.hasSecond()) {
          setSecond(other.getSecond());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasYear()) {
          
          return false;
        }
        if (!hasMonth()) {
          
          return false;
        }
        if (!hasDayOfMonth()) {
          
          return false;
        }
        if (!hasDayOfWeek()) {
          
          return false;
        }
        if (!hasHour()) {
          
          return false;
        }
        if (!hasMinute()) {
          
          return false;
        }
        if (!hasSecond()) {
          
          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.netty.example.worldclock.WorldClockProtocol.LocalTime parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.netty.example.worldclock.WorldClockProtocol.LocalTime) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required uint32 year = 1;
      private int year_ ;
      /**
       * <code>required uint32 year = 1;</code>
       */
      @Override
      public boolean hasYear() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 year = 1;</code>
       */
      @Override
      public int getYear() {
        return year_;
      }
      /**
       * <code>required uint32 year = 1;</code>
       */
      public Builder setYear(int value) {
        bitField0_ |= 0x00000001;
        year_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 year = 1;</code>
       */
      public Builder clearYear() {
        bitField0_ = (bitField0_ & ~0x00000001);
        year_ = 0;
        onChanged();
        return this;
      }

      // required uint32 month = 2;
      private int month_ ;
      /**
       * <code>required uint32 month = 2;</code>
       */
      @Override
      public boolean hasMonth() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 month = 2;</code>
       */
      @Override
      public int getMonth() {
        return month_;
      }
      /**
       * <code>required uint32 month = 2;</code>
       */
      public Builder setMonth(int value) {
        bitField0_ |= 0x00000002;
        month_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 month = 2;</code>
       */
      public Builder clearMonth() {
        bitField0_ = (bitField0_ & ~0x00000002);
        month_ = 0;
        onChanged();
        return this;
      }

      // required uint32 dayOfMonth = 4;
      private int dayOfMonth_ ;
      /**
       * <code>required uint32 dayOfMonth = 4;</code>
       */
      @Override
      public boolean hasDayOfMonth() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required uint32 dayOfMonth = 4;</code>
       */
      @Override
      public int getDayOfMonth() {
        return dayOfMonth_;
      }
      /**
       * <code>required uint32 dayOfMonth = 4;</code>
       */
      public Builder setDayOfMonth(int value) {
        bitField0_ |= 0x00000004;
        dayOfMonth_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 dayOfMonth = 4;</code>
       */
      public Builder clearDayOfMonth() {
        bitField0_ = (bitField0_ & ~0x00000004);
        dayOfMonth_ = 0;
        onChanged();
        return this;
      }

      // required .io.netty.example.worldclock.DayOfWeek dayOfWeek = 5;
      private io.netty.example.worldclock.WorldClockProtocol.DayOfWeek dayOfWeek_ = io.netty.example.worldclock.WorldClockProtocol.DayOfWeek.SUNDAY;
      /**
       * <code>required .io.netty.example.worldclock.DayOfWeek dayOfWeek = 5;</code>
       */
      @Override
      public boolean hasDayOfWeek() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required .io.netty.example.worldclock.DayOfWeek dayOfWeek = 5;</code>
       */
      @Override
      public io.netty.example.worldclock.WorldClockProtocol.DayOfWeek getDayOfWeek() {
        return dayOfWeek_;
      }
      /**
       * <code>required .io.netty.example.worldclock.DayOfWeek dayOfWeek = 5;</code>
       */
      public Builder setDayOfWeek(io.netty.example.worldclock.WorldClockProtocol.DayOfWeek value) {
        checkNotNull(value, "value");
        bitField0_ |= 0x00000008;
        dayOfWeek_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required .io.netty.example.worldclock.DayOfWeek dayOfWeek = 5;</code>
       */
      public Builder clearDayOfWeek() {
        bitField0_ = (bitField0_ & ~0x00000008);
        dayOfWeek_ = io.netty.example.worldclock.WorldClockProtocol.DayOfWeek.SUNDAY;
        onChanged();
        return this;
      }

      // required uint32 hour = 6;
      private int hour_ ;
      /**
       * <code>required uint32 hour = 6;</code>
       */
      @Override
      public boolean hasHour() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>required uint32 hour = 6;</code>
       */
      @Override
      public int getHour() {
        return hour_;
      }
      /**
       * <code>required uint32 hour = 6;</code>
       */
      public Builder setHour(int value) {
        bitField0_ |= 0x00000010;
        hour_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 hour = 6;</code>
       */
      public Builder clearHour() {
        bitField0_ = (bitField0_ & ~0x00000010);
        hour_ = 0;
        onChanged();
        return this;
      }

      // required uint32 minute = 7;
      private int minute_ ;
      /**
       * <code>required uint32 minute = 7;</code>
       */
      @Override
      public boolean hasMinute() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>required uint32 minute = 7;</code>
       */
      @Override
      public int getMinute() {
        return minute_;
      }
      /**
       * <code>required uint32 minute = 7;</code>
       */
      public Builder setMinute(int value) {
        bitField0_ |= 0x00000020;
        minute_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 minute = 7;</code>
       */
      public Builder clearMinute() {
        bitField0_ = (bitField0_ & ~0x00000020);
        minute_ = 0;
        onChanged();
        return this;
      }

      // required uint32 second = 8;
      private int second_ ;
      /**
       * <code>required uint32 second = 8;</code>
       */
      @Override
      public boolean hasSecond() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>required uint32 second = 8;</code>
       */
      @Override
      public int getSecond() {
        return second_;
      }
      /**
       * <code>required uint32 second = 8;</code>
       */
      public Builder setSecond(int value) {
        bitField0_ |= 0x00000040;
        second_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 second = 8;</code>
       */
      public Builder clearSecond() {
        bitField0_ = (bitField0_ & ~0x00000040);
        second_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:io.netty.example.worldclock.LocalTime)
    }

    static {
      defaultInstance = new LocalTime(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:io.netty.example.worldclock.LocalTime)
  }

  public interface LocalTimesOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // repeated .io.netty.example.worldclock.LocalTime localTime = 1;
    /**
     * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
     */
    java.util.List<io.netty.example.worldclock.WorldClockProtocol.LocalTime> 
        getLocalTimeList();
    /**
     * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
     */
    io.netty.example.worldclock.WorldClockProtocol.LocalTime getLocalTime(int index);
    /**
     * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
     */
    int getLocalTimeCount();
    /**
     * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
     */
    java.util.List<? extends io.netty.example.worldclock.WorldClockProtocol.LocalTimeOrBuilder> 
        getLocalTimeOrBuilderList();
    /**
     * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
     */
    io.netty.example.worldclock.WorldClockProtocol.LocalTimeOrBuilder getLocalTimeOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code io.netty.example.worldclock.LocalTimes}
   */
  public static final class LocalTimes extends
      com.google.protobuf.GeneratedMessage
      implements LocalTimesOrBuilder {
    // Use LocalTimes.newBuilder() to construct.
    private LocalTimes(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private LocalTimes(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final LocalTimes defaultInstance;
    public static LocalTimes getDefaultInstance() {
      return defaultInstance;
    }

    @Override
    public LocalTimes getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private LocalTimes(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                localTime_ = new java.util.ArrayList<io.netty.example.worldclock.WorldClockProtocol.LocalTime>();
                mutable_bitField0_ |= 0x00000001;
              }
              localTime_.add(input.readMessage(io.netty.example.worldclock.WorldClockProtocol.LocalTime.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          localTime_ = java.util.Collections.unmodifiableList(localTime_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_LocalTimes_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_LocalTimes_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.netty.example.worldclock.WorldClockProtocol.LocalTimes.class, io.netty.example.worldclock.WorldClockProtocol.LocalTimes.Builder.class);
    }

    public static com.google.protobuf.Parser<LocalTimes> PARSER =
        new com.google.protobuf.AbstractParser<LocalTimes>() {
      @Override
      public LocalTimes parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new LocalTimes(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<LocalTimes> getParserForType() {
      return PARSER;
    }

    // repeated .io.netty.example.worldclock.LocalTime localTime = 1;
    public static final int LOCALTIME_FIELD_NUMBER = 1;
    private java.util.List<io.netty.example.worldclock.WorldClockProtocol.LocalTime> localTime_;
    /**
     * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
     */
    @Override
    public java.util.List<io.netty.example.worldclock.WorldClockProtocol.LocalTime> getLocalTimeList() {
      return localTime_;
    }
    /**
     * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
     */
    @Override
    public java.util.List<? extends io.netty.example.worldclock.WorldClockProtocol.LocalTimeOrBuilder>
        getLocalTimeOrBuilderList() {
      return localTime_;
    }
    /**
     * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
     */
    @Override
    public int getLocalTimeCount() {
      return localTime_.size();
    }
    /**
     * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
     */
    @Override
    public io.netty.example.worldclock.WorldClockProtocol.LocalTime getLocalTime(int index) {
      return localTime_.get(index);
    }
    /**
     * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
     */
    @Override
    public io.netty.example.worldclock.WorldClockProtocol.LocalTimeOrBuilder getLocalTimeOrBuilder(
        int index) {
      return localTime_.get(index);
    }

    private void initFields() {
      localTime_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      for (int i = 0; i < getLocalTimeCount(); i++) {
        if (!getLocalTime(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < localTime_.size(); i++) {
        output.writeMessage(1, localTime_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < localTime_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, localTime_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static io.netty.example.worldclock.WorldClockProtocol.LocalTimes parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.LocalTimes parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.LocalTimes parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.LocalTimes parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.LocalTimes parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.LocalTimes parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.LocalTimes parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.LocalTimes parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.LocalTimes parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static io.netty.example.worldclock.WorldClockProtocol.LocalTimes parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(io.netty.example.worldclock.WorldClockProtocol.LocalTimes prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code io.netty.example.worldclock.LocalTimes}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements io.netty.example.worldclock.WorldClockProtocol.LocalTimesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_LocalTimes_descriptor;
      }

      @Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_LocalTimes_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.netty.example.worldclock.WorldClockProtocol.LocalTimes.class, io.netty.example.worldclock.WorldClockProtocol.LocalTimes.Builder.class);
      }

      // Construct using io.netty.example.worldclock.WorldClockProtocol.LocalTimes.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getLocalTimeFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      @Override
      public Builder clear() {
        super.clear();
        if (localTimeBuilder_ == null) {
          localTime_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          localTimeBuilder_.clear();
        }
        return this;
      }

      @Override
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.netty.example.worldclock.WorldClockProtocol.internal_static_io_netty_example_worldclock_LocalTimes_descriptor;
      }

      @Override
      public io.netty.example.worldclock.WorldClockProtocol.LocalTimes getDefaultInstanceForType() {
        return io.netty.example.worldclock.WorldClockProtocol.LocalTimes.getDefaultInstance();
      }

      @Override
      public io.netty.example.worldclock.WorldClockProtocol.LocalTimes build() {
        io.netty.example.worldclock.WorldClockProtocol.LocalTimes result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public io.netty.example.worldclock.WorldClockProtocol.LocalTimes buildPartial() {
        io.netty.example.worldclock.WorldClockProtocol.LocalTimes result = new io.netty.example.worldclock.WorldClockProtocol.LocalTimes(this);
        int from_bitField0_ = bitField0_;
        if (localTimeBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            localTime_ = java.util.Collections.unmodifiableList(localTime_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.localTime_ = localTime_;
        } else {
          result.localTime_ = localTimeBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.netty.example.worldclock.WorldClockProtocol.LocalTimes) {
          return mergeFrom((io.netty.example.worldclock.WorldClockProtocol.LocalTimes)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.netty.example.worldclock.WorldClockProtocol.LocalTimes other) {
        if (other == io.netty.example.worldclock.WorldClockProtocol.LocalTimes.getDefaultInstance()) return this;
        if (localTimeBuilder_ == null) {
          if (!other.localTime_.isEmpty()) {
            if (localTime_.isEmpty()) {
              localTime_ = other.localTime_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureLocalTimeIsMutable();
              localTime_.addAll(other.localTime_);
            }
            onChanged();
          }
        } else {
          if (!other.localTime_.isEmpty()) {
            if (localTimeBuilder_.isEmpty()) {
              localTimeBuilder_.dispose();
              localTimeBuilder_ = null;
              localTime_ = other.localTime_;
              bitField0_ = (bitField0_ & ~0x00000001);
              localTimeBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getLocalTimeFieldBuilder() : null;
            } else {
              localTimeBuilder_.addAllMessages(other.localTime_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public final boolean isInitialized() {
        for (int i = 0; i < getLocalTimeCount(); i++) {
          if (!getLocalTime(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      @Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.netty.example.worldclock.WorldClockProtocol.LocalTimes parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.netty.example.worldclock.WorldClockProtocol.LocalTimes) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated .io.netty.example.worldclock.LocalTime localTime = 1;
      private java.util.List<io.netty.example.worldclock.WorldClockProtocol.LocalTime> localTime_ =
        java.util.Collections.emptyList();
      private void ensureLocalTimeIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          localTime_ = new java.util.ArrayList<io.netty.example.worldclock.WorldClockProtocol.LocalTime>(localTime_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          io.netty.example.worldclock.WorldClockProtocol.LocalTime, io.netty.example.worldclock.WorldClockProtocol.LocalTime.Builder, io.netty.example.worldclock.WorldClockProtocol.LocalTimeOrBuilder> localTimeBuilder_;

      /**
       * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
       */
      @Override
      public java.util.List<io.netty.example.worldclock.WorldClockProtocol.LocalTime> getLocalTimeList() {
        if (localTimeBuilder_ == null) {
          return java.util.Collections.unmodifiableList(localTime_);
        } else {
          return localTimeBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
       */
      @Override
      public int getLocalTimeCount() {
        if (localTimeBuilder_ == null) {
          return localTime_.size();
        } else {
          return localTimeBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
       */
      @Override
      public io.netty.example.worldclock.WorldClockProtocol.LocalTime getLocalTime(int index) {
        if (localTimeBuilder_ == null) {
          return localTime_.get(index);
        } else {
          return localTimeBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
       */
      public Builder setLocalTime(
          int index, io.netty.example.worldclock.WorldClockProtocol.LocalTime value) {
        if (localTimeBuilder_ == null) {
          checkNotNull(value, "value");
          ensureLocalTimeIsMutable();
          localTime_.set(index, value);
          onChanged();
        } else {
          localTimeBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
       */
      public Builder setLocalTime(
          int index, io.netty.example.worldclock.WorldClockProtocol.LocalTime.Builder builderForValue) {
        if (localTimeBuilder_ == null) {
          ensureLocalTimeIsMutable();
          localTime_.set(index, builderForValue.build());
          onChanged();
        } else {
          localTimeBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
       */
      public Builder addLocalTime(io.netty.example.worldclock.WorldClockProtocol.LocalTime value) {
        if (localTimeBuilder_ == null) {
          checkNotNull(value, "value");
          ensureLocalTimeIsMutable();
          localTime_.add(value);
          onChanged();
        } else {
          localTimeBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
       */
      public Builder addLocalTime(
          int index, io.netty.example.worldclock.WorldClockProtocol.LocalTime value) {
        if (localTimeBuilder_ == null) {
          checkNotNull(value, "value");
          ensureLocalTimeIsMutable();
          localTime_.add(index, value);
          onChanged();
        } else {
          localTimeBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
       */
      public Builder addLocalTime(
          io.netty.example.worldclock.WorldClockProtocol.LocalTime.Builder builderForValue) {
        if (localTimeBuilder_ == null) {
          ensureLocalTimeIsMutable();
          localTime_.add(builderForValue.build());
          onChanged();
        } else {
          localTimeBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
       */
      public Builder addLocalTime(
          int index, io.netty.example.worldclock.WorldClockProtocol.LocalTime.Builder builderForValue) {
        if (localTimeBuilder_ == null) {
          ensureLocalTimeIsMutable();
          localTime_.add(index, builderForValue.build());
          onChanged();
        } else {
          localTimeBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
       */
      public Builder addAllLocalTime(
          java.lang.Iterable<? extends io.netty.example.worldclock.WorldClockProtocol.LocalTime> values) {
        if (localTimeBuilder_ == null) {
          ensureLocalTimeIsMutable();
          super.addAll(values, localTime_);
          onChanged();
        } else {
          localTimeBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
       */
      public Builder clearLocalTime() {
        if (localTimeBuilder_ == null) {
          localTime_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          localTimeBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
       */
      public Builder removeLocalTime(int index) {
        if (localTimeBuilder_ == null) {
          ensureLocalTimeIsMutable();
          localTime_.remove(index);
          onChanged();
        } else {
          localTimeBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
       */
      public io.netty.example.worldclock.WorldClockProtocol.LocalTime.Builder getLocalTimeBuilder(
          int index) {
        return getLocalTimeFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
       */
      @Override
      public io.netty.example.worldclock.WorldClockProtocol.LocalTimeOrBuilder getLocalTimeOrBuilder(
          int index) {
        if (localTimeBuilder_ == null) {
          return localTime_.get(index);  } else {
          return localTimeBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
       */
      @Override
      public java.util.List<? extends io.netty.example.worldclock.WorldClockProtocol.LocalTimeOrBuilder>
           getLocalTimeOrBuilderList() {
        if (localTimeBuilder_ != null) {
          return localTimeBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(localTime_);
        }
      }
      /**
       * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
       */
      public io.netty.example.worldclock.WorldClockProtocol.LocalTime.Builder addLocalTimeBuilder() {
        return getLocalTimeFieldBuilder().addBuilder(
            io.netty.example.worldclock.WorldClockProtocol.LocalTime.getDefaultInstance());
      }
      /**
       * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
       */
      public io.netty.example.worldclock.WorldClockProtocol.LocalTime.Builder addLocalTimeBuilder(
          int index) {
        return getLocalTimeFieldBuilder().addBuilder(
            index, io.netty.example.worldclock.WorldClockProtocol.LocalTime.getDefaultInstance());
      }
      /**
       * <code>repeated .io.netty.example.worldclock.LocalTime localTime = 1;</code>
       */
      public java.util.List<io.netty.example.worldclock.WorldClockProtocol.LocalTime.Builder> 
           getLocalTimeBuilderList() {
        return getLocalTimeFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          io.netty.example.worldclock.WorldClockProtocol.LocalTime, io.netty.example.worldclock.WorldClockProtocol.LocalTime.Builder, io.netty.example.worldclock.WorldClockProtocol.LocalTimeOrBuilder> 
          getLocalTimeFieldBuilder() {
        if (localTimeBuilder_ == null) {
          localTimeBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              io.netty.example.worldclock.WorldClockProtocol.LocalTime, io.netty.example.worldclock.WorldClockProtocol.LocalTime.Builder, io.netty.example.worldclock.WorldClockProtocol.LocalTimeOrBuilder>(
                  localTime_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          localTime_ = null;
        }
        return localTimeBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:io.netty.example.worldclock.LocalTimes)
    }

    static {
      defaultInstance = new LocalTimes(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:io.netty.example.worldclock.LocalTimes)
  }

  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_io_netty_example_worldclock_Location_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_io_netty_example_worldclock_Location_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_io_netty_example_worldclock_Locations_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_io_netty_example_worldclock_Locations_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_io_netty_example_worldclock_LocalTime_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_io_netty_example_worldclock_LocalTime_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_io_netty_example_worldclock_LocalTimes_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_io_netty_example_worldclock_LocalTimes_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\nBsrc/main/java/io/netty/example/worldcl" +
      "ock/WorldClockProtocol.proto\022\033io.netty.e" +
      "xample.worldclock\"S\n\010Location\0229\n\tcontine" +
      "nt\030\001 \002(\0162&.io.netty.example.worldclock.C" +
      "ontinent\022\014\n\004city\030\002 \002(\t\"D\n\tLocations\0227\n\010l" +
      "ocation\030\001 \003(\0132%.io.netty.example.worldcl" +
      "ock.Location\"\245\001\n\tLocalTime\022\014\n\004year\030\001 \002(\r" +
      "\022\r\n\005month\030\002 \002(\r\022\022\n\ndayOfMonth\030\004 \002(\r\0229\n\td" +
      "ayOfWeek\030\005 \002(\0162&.io.netty.example.worldc" +
      "lock.DayOfWeek\022\014\n\004hour\030\006 \002(\r\022\016\n\006minute\030\007",
      " \002(\r\022\016\n\006second\030\010 \002(\r\"G\n\nLocalTimes\0229\n\tlo" +
      "calTime\030\001 \003(\0132&.io.netty.example.worldcl" +
      "ock.LocalTime*\231\001\n\tContinent\022\n\n\006AFRICA\020\000\022" +
      "\013\n\007AMERICA\020\001\022\016\n\nANTARCTICA\020\002\022\n\n\006ARCTIC\020\003" +
      "\022\010\n\004ASIA\020\004\022\014\n\010ATLANTIC\020\005\022\r\n\tAUSTRALIA\020\006\022" +
      "\n\n\006EUROPE\020\007\022\n\n\006INDIAN\020\010\022\013\n\007MIDEAST\020\t\022\013\n\007" +
      "PACIFIC\020\n*g\n\tDayOfWeek\022\n\n\006SUNDAY\020\001\022\n\n\006MO" +
      "NDAY\020\002\022\013\n\007TUESDAY\020\003\022\r\n\tWEDNESDAY\020\004\022\014\n\010TH" +
      "URSDAY\020\005\022\n\n\006FRIDAY\020\006\022\014\n\010SATURDAY\020\007B\002H\001"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        @Override
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_io_netty_example_worldclock_Location_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_io_netty_example_worldclock_Location_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_io_netty_example_worldclock_Location_descriptor,
              new java.lang.String[] { "Continent", "City", });
          internal_static_io_netty_example_worldclock_Locations_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_io_netty_example_worldclock_Locations_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_io_netty_example_worldclock_Locations_descriptor,
              new java.lang.String[] { "Location", });
          internal_static_io_netty_example_worldclock_LocalTime_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_io_netty_example_worldclock_LocalTime_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_io_netty_example_worldclock_LocalTime_descriptor,
              new java.lang.String[] { "Year", "Month", "DayOfMonth", "DayOfWeek", "Hour", "Minute", "Second", });
          internal_static_io_netty_example_worldclock_LocalTimes_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_io_netty_example_worldclock_LocalTimes_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_io_netty_example_worldclock_LocalTimes_descriptor,
              new java.lang.String[] { "LocalTime", });
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
  }

  // @@protoc_insertion_point(outer_class_scope)
}
