// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: Global_Uconnect_Ext_ECall.proto

package com.fca.uconnect.global;

public final class GlobalUconnectExtECall {
  private GlobalUconnectExtECall() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
    registry.add(com.fca.uconnect.global.GlobalUconnectExtECall.ecallDataUpload);
    registry.add(com.fca.uconnect.global.GlobalUconnectExtECall.ecallStatusUpdate);
    registry.add(com.fca.uconnect.global.GlobalUconnectExtECall.ecallVehDataRequest);
    registry.add(com.fca.uconnect.global.GlobalUconnectExtECall.ecallVehDataResponse);
    registry.add(com.fca.uconnect.global.GlobalUconnectExtECall.eCallAckMessage);
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface ECallDataUploadOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ECallDataUpload)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *&#47; This message is to get the Vehicle Information.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.VehicleInfo vehicleInfo = 1;</code>
     */
    boolean hasVehicleInfo();
    /**
     * <pre>
     *&#47; This message is to get the Vehicle Information.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.VehicleInfo vehicleInfo = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo getVehicleInfo();
    /**
     * <pre>
     *&#47; This message is to get the Vehicle Information.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.VehicleInfo vehicleInfo = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfoOrBuilder getVehicleInfoOrBuilder();

    /**
     * <pre>
     *&#47;The milliseconds since Jan 1, 1970 00:00:00 UTC when the message is created. Should come from the system clock of the sender.
     * </pre>
     *
     * <code>optional int64 timeStamp = 2;</code>
     */
    boolean hasTimeStamp();
    /**
     * <pre>
     *&#47;The milliseconds since Jan 1, 1970 00:00:00 UTC when the message is created. Should come from the system clock of the sender.
     * </pre>
     *
     * <code>optional int64 timeStamp = 2;</code>
     */
    long getTimeStamp();

    /**
     * <pre>
     *&#47; This represents number of passengers present in the Veh.
     * </pre>
     *
     * <code>optional int32 numberOfPassengers = 4;</code>
     */
    boolean hasNumberOfPassengers();
    /**
     * <pre>
     *&#47; This represents number of passengers present in the Veh.
     * </pre>
     *
     * <code>optional int32 numberOfPassengers = 4;</code>
     */
    int getNumberOfPassengers();

    /**
     * <pre>
     *&#47;This represents whether airbags are deployed or not.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.AirBagStatus airBagStatus = 5;</code>
     */
    boolean hasAirBagStatus();
    /**
     * <pre>
     *&#47;This represents whether airbags are deployed or not.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.AirBagStatus airBagStatus = 5;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus getAirBagStatus();
    /**
     * <pre>
     *&#47;This represents whether airbags are deployed or not.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.AirBagStatus airBagStatus = 5;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatusOrBuilder getAirBagStatusOrBuilder();

    /**
     * <pre>
     *&#47;This represents which seats are occupied in the vehicle.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState seatOccupied = 6;</code>
     */
    boolean hasSeatOccupied();
    /**
     * <pre>
     *&#47;This represents which seats are occupied in the vehicle.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState seatOccupied = 6;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState getSeatOccupied();
    /**
     * <pre>
     *&#47;This represents which seats are occupied in the vehicle.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState seatOccupied = 6;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatStateOrBuilder getSeatOccupiedOrBuilder();

    /**
     * <pre>
     *&#47;This represents which seat belts are buckled.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState beltBuckled = 7;</code>
     */
    boolean hasBeltBuckled();
    /**
     * <pre>
     *&#47;This represents which seat belts are buckled.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState beltBuckled = 7;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState getBeltBuckled();
    /**
     * <pre>
     *&#47;This represents which seat belts are buckled.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState beltBuckled = 7;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatStateOrBuilder getBeltBuckledOrBuilder();

    /**
     * <pre>
     *&#47;Status of each door/window/hood/trunk.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.VehicleStatus vehicleStatus = 8;</code>
     */
    boolean hasVehicleStatus();
    /**
     * <pre>
     *&#47;Status of each door/window/hood/trunk.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.VehicleStatus vehicleStatus = 8;</code>
     */
    com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus getVehicleStatus();
    /**
     * <pre>
     *&#47;Status of each door/window/hood/trunk.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.VehicleStatus vehicleStatus = 8;</code>
     */
    com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatusOrBuilder getVehicleStatusOrBuilder();

    /**
     * <pre>
     *&#47;Trigger mode of the data upload.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.TriggerModeEnum triggerMode = 9;</code>
     */
    boolean hasTriggerMode();
    /**
     * <pre>
     *&#47;Trigger mode of the data upload.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.TriggerModeEnum triggerMode = 9;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.TriggerModeEnum getTriggerMode();

    /**
     * <code>optional .com.fca.uconnect.global.Device deviceDetails = 10;</code>
     */
    boolean hasDeviceDetails();
    /**
     * <code>optional .com.fca.uconnect.global.Device deviceDetails = 10;</code>
     */
    com.fca.uconnect.global.GlobalUconnectDevice.Device getDeviceDetails();
    /**
     * <code>optional .com.fca.uconnect.global.Device deviceDetails = 10;</code>
     */
    com.fca.uconnect.global.GlobalUconnectDevice.DeviceOrBuilder getDeviceDetailsOrBuilder();
  }
  /**
   * <pre>
   **
   * This message represents  ECall DataUpload for emergencies and accidents.
   * &lt;div class=exmsg-main&gt;
   * &lt;h4&gt;ECallDataUpload Example Message:&lt;/h4&gt;
   * &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   *		timestamp: 1489600238258
   * 		messageId: 1
   * 		messages
   * 		{
   * 		 [com.fca.uconnect.global.ecallDataUpload]
   * 		 {
   * 		  vehicleId: "1234AXFGFGHGH4566"
   * 		  isPositionTrusted: true
   * 		  timeStamp: 1489600238256
   * 		  vehicleLocation
   * 		  {
   * 			longitude: 43.9999
   * 			latitude: -84.54636
   * 		  }
   * 		 numberOfPassengers: 1
   * 		 airBagStatus
   * 		 {
   * 		  driver: false
   * 		  driverKnee: false
   * 		  passenger: false
   * 		  passengerKnee: false
   * 		  leftSideCurtain: false
   * 		  leftSeat: false
   * 		  rightSeat: false
   * 		}
   * 		  vehicleSpeed: 75.0
   * 		  engineStatus: STOP
   * 	    }
   * 	  }
   *	&lt;/code&gt;
   *   &lt;/div&gt;
   * &lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.ECallDataUpload}
   */
  public  static final class ECallDataUpload extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ECallDataUpload)
      ECallDataUploadOrBuilder {
    // Use ECallDataUpload.newBuilder() to construct.
    private ECallDataUpload(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ECallDataUpload() {
      timeStamp_ = 0L;
      numberOfPassengers_ = 0;
      triggerMode_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ECallDataUpload(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      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: {
              com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = vehicleInfo_.toBuilder();
              }
              vehicleInfo_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(vehicleInfo_);
                vehicleInfo_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              timeStamp_ = input.readInt64();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000004;
              numberOfPassengers_ = input.readInt32();
              break;
            }
            case 42: {
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = airBagStatus_.toBuilder();
              }
              airBagStatus_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(airBagStatus_);
                airBagStatus_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 50: {
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = seatOccupied_.toBuilder();
              }
              seatOccupied_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(seatOccupied_);
                seatOccupied_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 58: {
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.Builder subBuilder = null;
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                subBuilder = beltBuckled_.toBuilder();
              }
              beltBuckled_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(beltBuckled_);
                beltBuckled_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000020;
              break;
            }
            case 66: {
              com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus.Builder subBuilder = null;
              if (((bitField0_ & 0x00000040) == 0x00000040)) {
                subBuilder = vehicleStatus_.toBuilder();
              }
              vehicleStatus_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(vehicleStatus_);
                vehicleStatus_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000040;
              break;
            }
            case 72: {
              int rawValue = input.readEnum();
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.TriggerModeEnum value = com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.TriggerModeEnum.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(9, rawValue);
              } else {
                bitField0_ |= 0x00000080;
                triggerMode_ = rawValue;
              }
              break;
            }
            case 82: {
              com.fca.uconnect.global.GlobalUconnectDevice.Device.Builder subBuilder = null;
              if (((bitField0_ & 0x00000100) == 0x00000100)) {
                subBuilder = deviceDetails_.toBuilder();
              }
              deviceDetails_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectDevice.Device.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(deviceDetails_);
                deviceDetails_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000100;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallDataUpload_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallDataUpload_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.class, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ECallDataUpload.TriggerModeEnum}
     */
    public enum TriggerModeEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>MANUAL = 0;</code>
       */
      MANUAL(0),
      /**
       * <code>AUTOMATIC = 1;</code>
       */
      AUTOMATIC(1),
      ;

      /**
       * <code>MANUAL = 0;</code>
       */
      public static final int MANUAL_VALUE = 0;
      /**
       * <code>AUTOMATIC = 1;</code>
       */
      public static final int AUTOMATIC_VALUE = 1;


      public final int getNumber() {
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static TriggerModeEnum valueOf(int value) {
        return forNumber(value);
      }

      public static TriggerModeEnum forNumber(int value) {
        switch (value) {
          case 0: return MANUAL;
          case 1: return AUTOMATIC;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<TriggerModeEnum>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          TriggerModeEnum> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<TriggerModeEnum>() {
              public TriggerModeEnum findValueByNumber(int number) {
                return TriggerModeEnum.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.getDescriptor().getEnumTypes().get(0);
      }

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

      public static TriggerModeEnum 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 value;

      private TriggerModeEnum(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ECallDataUpload.TriggerModeEnum)
    }

    public interface AirBagStatusOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ECallDataUpload.AirBagStatus)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>optional bool isDriver = 1;</code>
       */
      boolean hasIsDriver();
      /**
       * <code>optional bool isDriver = 1;</code>
       */
      boolean getIsDriver();

      /**
       * <code>optional bool isDriverKnee = 2;</code>
       */
      boolean hasIsDriverKnee();
      /**
       * <code>optional bool isDriverKnee = 2;</code>
       */
      boolean getIsDriverKnee();

      /**
       * <code>optional bool isPassenger = 3;</code>
       */
      boolean hasIsPassenger();
      /**
       * <code>optional bool isPassenger = 3;</code>
       */
      boolean getIsPassenger();

      /**
       * <code>optional bool isPassengerKnee = 4;</code>
       */
      boolean hasIsPassengerKnee();
      /**
       * <code>optional bool isPassengerKnee = 4;</code>
       */
      boolean getIsPassengerKnee();

      /**
       * <code>optional bool isLeftSideCurtain = 5;</code>
       */
      boolean hasIsLeftSideCurtain();
      /**
       * <code>optional bool isLeftSideCurtain = 5;</code>
       */
      boolean getIsLeftSideCurtain();

      /**
       * <code>optional bool isRightSideCurtain = 6;</code>
       */
      boolean hasIsRightSideCurtain();
      /**
       * <code>optional bool isRightSideCurtain = 6;</code>
       */
      boolean getIsRightSideCurtain();

      /**
       * <code>optional bool isLeftSeat = 7;</code>
       */
      boolean hasIsLeftSeat();
      /**
       * <code>optional bool isLeftSeat = 7;</code>
       */
      boolean getIsLeftSeat();

      /**
       * <code>optional bool isRightSeat = 8;</code>
       */
      boolean hasIsRightSeat();
      /**
       * <code>optional bool isRightSeat = 8;</code>
       */
      boolean getIsRightSeat();
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.ECallDataUpload.AirBagStatus}
     */
    public  static final class AirBagStatus extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ECallDataUpload.AirBagStatus)
        AirBagStatusOrBuilder {
      // Use AirBagStatus.newBuilder() to construct.
      private AirBagStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private AirBagStatus() {
        isDriver_ = false;
        isDriverKnee_ = false;
        isPassenger_ = false;
        isPassengerKnee_ = false;
        isLeftSideCurtain_ = false;
        isRightSideCurtain_ = false;
        isLeftSeat_ = false;
        isRightSeat_ = false;
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private AirBagStatus(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        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;
                isDriver_ = input.readBool();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                isDriverKnee_ = input.readBool();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                isPassenger_ = input.readBool();
                break;
              }
              case 32: {
                bitField0_ |= 0x00000008;
                isPassengerKnee_ = input.readBool();
                break;
              }
              case 40: {
                bitField0_ |= 0x00000010;
                isLeftSideCurtain_ = input.readBool();
                break;
              }
              case 48: {
                bitField0_ |= 0x00000020;
                isRightSideCurtain_ = input.readBool();
                break;
              }
              case 56: {
                bitField0_ |= 0x00000040;
                isLeftSeat_ = input.readBool();
                break;
              }
              case 64: {
                bitField0_ |= 0x00000080;
                isRightSeat_ = input.readBool();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallDataUpload_AirBagStatus_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallDataUpload_AirBagStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.class, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.Builder.class);
      }

      private int bitField0_;
      public static final int ISDRIVER_FIELD_NUMBER = 1;
      private boolean isDriver_;
      /**
       * <code>optional bool isDriver = 1;</code>
       */
      public boolean hasIsDriver() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional bool isDriver = 1;</code>
       */
      public boolean getIsDriver() {
        return isDriver_;
      }

      public static final int ISDRIVERKNEE_FIELD_NUMBER = 2;
      private boolean isDriverKnee_;
      /**
       * <code>optional bool isDriverKnee = 2;</code>
       */
      public boolean hasIsDriverKnee() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional bool isDriverKnee = 2;</code>
       */
      public boolean getIsDriverKnee() {
        return isDriverKnee_;
      }

      public static final int ISPASSENGER_FIELD_NUMBER = 3;
      private boolean isPassenger_;
      /**
       * <code>optional bool isPassenger = 3;</code>
       */
      public boolean hasIsPassenger() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bool isPassenger = 3;</code>
       */
      public boolean getIsPassenger() {
        return isPassenger_;
      }

      public static final int ISPASSENGERKNEE_FIELD_NUMBER = 4;
      private boolean isPassengerKnee_;
      /**
       * <code>optional bool isPassengerKnee = 4;</code>
       */
      public boolean hasIsPassengerKnee() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional bool isPassengerKnee = 4;</code>
       */
      public boolean getIsPassengerKnee() {
        return isPassengerKnee_;
      }

      public static final int ISLEFTSIDECURTAIN_FIELD_NUMBER = 5;
      private boolean isLeftSideCurtain_;
      /**
       * <code>optional bool isLeftSideCurtain = 5;</code>
       */
      public boolean hasIsLeftSideCurtain() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional bool isLeftSideCurtain = 5;</code>
       */
      public boolean getIsLeftSideCurtain() {
        return isLeftSideCurtain_;
      }

      public static final int ISRIGHTSIDECURTAIN_FIELD_NUMBER = 6;
      private boolean isRightSideCurtain_;
      /**
       * <code>optional bool isRightSideCurtain = 6;</code>
       */
      public boolean hasIsRightSideCurtain() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional bool isRightSideCurtain = 6;</code>
       */
      public boolean getIsRightSideCurtain() {
        return isRightSideCurtain_;
      }

      public static final int ISLEFTSEAT_FIELD_NUMBER = 7;
      private boolean isLeftSeat_;
      /**
       * <code>optional bool isLeftSeat = 7;</code>
       */
      public boolean hasIsLeftSeat() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional bool isLeftSeat = 7;</code>
       */
      public boolean getIsLeftSeat() {
        return isLeftSeat_;
      }

      public static final int ISRIGHTSEAT_FIELD_NUMBER = 8;
      private boolean isRightSeat_;
      /**
       * <code>optional bool isRightSeat = 8;</code>
       */
      public boolean hasIsRightSeat() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>optional bool isRightSeat = 8;</code>
       */
      public boolean getIsRightSeat() {
        return isRightSeat_;
      }

      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBool(1, isDriver_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBool(2, isDriverKnee_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeBool(3, isPassenger_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeBool(4, isPassengerKnee_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeBool(5, isLeftSideCurtain_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeBool(6, isRightSideCurtain_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          output.writeBool(7, isLeftSeat_);
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          output.writeBool(8, isRightSeat_);
        }
        unknownFields.writeTo(output);
      }

      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(1, isDriver_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(2, isDriverKnee_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(3, isPassenger_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(4, isPassengerKnee_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(5, isLeftSideCurtain_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(6, isRightSideCurtain_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(7, isLeftSeat_);
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(8, isRightSeat_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus other = (com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus) obj;

        boolean result = true;
        result = result && (hasIsDriver() == other.hasIsDriver());
        if (hasIsDriver()) {
          result = result && (getIsDriver()
              == other.getIsDriver());
        }
        result = result && (hasIsDriverKnee() == other.hasIsDriverKnee());
        if (hasIsDriverKnee()) {
          result = result && (getIsDriverKnee()
              == other.getIsDriverKnee());
        }
        result = result && (hasIsPassenger() == other.hasIsPassenger());
        if (hasIsPassenger()) {
          result = result && (getIsPassenger()
              == other.getIsPassenger());
        }
        result = result && (hasIsPassengerKnee() == other.hasIsPassengerKnee());
        if (hasIsPassengerKnee()) {
          result = result && (getIsPassengerKnee()
              == other.getIsPassengerKnee());
        }
        result = result && (hasIsLeftSideCurtain() == other.hasIsLeftSideCurtain());
        if (hasIsLeftSideCurtain()) {
          result = result && (getIsLeftSideCurtain()
              == other.getIsLeftSideCurtain());
        }
        result = result && (hasIsRightSideCurtain() == other.hasIsRightSideCurtain());
        if (hasIsRightSideCurtain()) {
          result = result && (getIsRightSideCurtain()
              == other.getIsRightSideCurtain());
        }
        result = result && (hasIsLeftSeat() == other.hasIsLeftSeat());
        if (hasIsLeftSeat()) {
          result = result && (getIsLeftSeat()
              == other.getIsLeftSeat());
        }
        result = result && (hasIsRightSeat() == other.hasIsRightSeat());
        if (hasIsRightSeat()) {
          result = result && (getIsRightSeat()
              == other.getIsRightSeat());
        }
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptorForType().hashCode();
        if (hasIsDriver()) {
          hash = (37 * hash) + ISDRIVER_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsDriver());
        }
        if (hasIsDriverKnee()) {
          hash = (37 * hash) + ISDRIVERKNEE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsDriverKnee());
        }
        if (hasIsPassenger()) {
          hash = (37 * hash) + ISPASSENGER_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsPassenger());
        }
        if (hasIsPassengerKnee()) {
          hash = (37 * hash) + ISPASSENGERKNEE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsPassengerKnee());
        }
        if (hasIsLeftSideCurtain()) {
          hash = (37 * hash) + ISLEFTSIDECURTAIN_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsLeftSideCurtain());
        }
        if (hasIsRightSideCurtain()) {
          hash = (37 * hash) + ISRIGHTSIDECURTAIN_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsRightSideCurtain());
        }
        if (hasIsLeftSeat()) {
          hash = (37 * hash) + ISLEFTSEAT_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsLeftSeat());
        }
        if (hasIsRightSeat()) {
          hash = (37 * hash) + ISRIGHTSEAT_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsRightSeat());
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.fca.uconnect.global.ECallDataUpload.AirBagStatus}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ECallDataUpload.AirBagStatus)
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatusOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallDataUpload_AirBagStatus_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallDataUpload_AirBagStatus_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.class, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        public Builder clear() {
          super.clear();
          isDriver_ = false;
          bitField0_ = (bitField0_ & ~0x00000001);
          isDriverKnee_ = false;
          bitField0_ = (bitField0_ & ~0x00000002);
          isPassenger_ = false;
          bitField0_ = (bitField0_ & ~0x00000004);
          isPassengerKnee_ = false;
          bitField0_ = (bitField0_ & ~0x00000008);
          isLeftSideCurtain_ = false;
          bitField0_ = (bitField0_ & ~0x00000010);
          isRightSideCurtain_ = false;
          bitField0_ = (bitField0_ & ~0x00000020);
          isLeftSeat_ = false;
          bitField0_ = (bitField0_ & ~0x00000040);
          isRightSeat_ = false;
          bitField0_ = (bitField0_ & ~0x00000080);
          return this;
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallDataUpload_AirBagStatus_descriptor;
        }

        public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.getDefaultInstance();
        }

        public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus build() {
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus result = new com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.isDriver_ = isDriver_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.isDriverKnee_ = isDriverKnee_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.isPassenger_ = isPassenger_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.isPassengerKnee_ = isPassengerKnee_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          result.isLeftSideCurtain_ = isLeftSideCurtain_;
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          result.isRightSideCurtain_ = isRightSideCurtain_;
          if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
            to_bitField0_ |= 0x00000040;
          }
          result.isLeftSeat_ = isLeftSeat_;
          if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
            to_bitField0_ |= 0x00000080;
          }
          result.isRightSeat_ = isRightSeat_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder clone() {
          return (Builder) super.clone();
        }
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.setField(field, value);
        }
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.getDefaultInstance()) return this;
          if (other.hasIsDriver()) {
            setIsDriver(other.getIsDriver());
          }
          if (other.hasIsDriverKnee()) {
            setIsDriverKnee(other.getIsDriverKnee());
          }
          if (other.hasIsPassenger()) {
            setIsPassenger(other.getIsPassenger());
          }
          if (other.hasIsPassengerKnee()) {
            setIsPassengerKnee(other.getIsPassengerKnee());
          }
          if (other.hasIsLeftSideCurtain()) {
            setIsLeftSideCurtain(other.getIsLeftSideCurtain());
          }
          if (other.hasIsRightSideCurtain()) {
            setIsRightSideCurtain(other.getIsRightSideCurtain());
          }
          if (other.hasIsLeftSeat()) {
            setIsLeftSeat(other.getIsLeftSeat());
          }
          if (other.hasIsRightSeat()) {
            setIsRightSeat(other.getIsRightSeat());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private boolean isDriver_ ;
        /**
         * <code>optional bool isDriver = 1;</code>
         */
        public boolean hasIsDriver() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional bool isDriver = 1;</code>
         */
        public boolean getIsDriver() {
          return isDriver_;
        }
        /**
         * <code>optional bool isDriver = 1;</code>
         */
        public Builder setIsDriver(boolean value) {
          bitField0_ |= 0x00000001;
          isDriver_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional bool isDriver = 1;</code>
         */
        public Builder clearIsDriver() {
          bitField0_ = (bitField0_ & ~0x00000001);
          isDriver_ = false;
          onChanged();
          return this;
        }

        private boolean isDriverKnee_ ;
        /**
         * <code>optional bool isDriverKnee = 2;</code>
         */
        public boolean hasIsDriverKnee() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>optional bool isDriverKnee = 2;</code>
         */
        public boolean getIsDriverKnee() {
          return isDriverKnee_;
        }
        /**
         * <code>optional bool isDriverKnee = 2;</code>
         */
        public Builder setIsDriverKnee(boolean value) {
          bitField0_ |= 0x00000002;
          isDriverKnee_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional bool isDriverKnee = 2;</code>
         */
        public Builder clearIsDriverKnee() {
          bitField0_ = (bitField0_ & ~0x00000002);
          isDriverKnee_ = false;
          onChanged();
          return this;
        }

        private boolean isPassenger_ ;
        /**
         * <code>optional bool isPassenger = 3;</code>
         */
        public boolean hasIsPassenger() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <code>optional bool isPassenger = 3;</code>
         */
        public boolean getIsPassenger() {
          return isPassenger_;
        }
        /**
         * <code>optional bool isPassenger = 3;</code>
         */
        public Builder setIsPassenger(boolean value) {
          bitField0_ |= 0x00000004;
          isPassenger_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional bool isPassenger = 3;</code>
         */
        public Builder clearIsPassenger() {
          bitField0_ = (bitField0_ & ~0x00000004);
          isPassenger_ = false;
          onChanged();
          return this;
        }

        private boolean isPassengerKnee_ ;
        /**
         * <code>optional bool isPassengerKnee = 4;</code>
         */
        public boolean hasIsPassengerKnee() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <code>optional bool isPassengerKnee = 4;</code>
         */
        public boolean getIsPassengerKnee() {
          return isPassengerKnee_;
        }
        /**
         * <code>optional bool isPassengerKnee = 4;</code>
         */
        public Builder setIsPassengerKnee(boolean value) {
          bitField0_ |= 0x00000008;
          isPassengerKnee_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional bool isPassengerKnee = 4;</code>
         */
        public Builder clearIsPassengerKnee() {
          bitField0_ = (bitField0_ & ~0x00000008);
          isPassengerKnee_ = false;
          onChanged();
          return this;
        }

        private boolean isLeftSideCurtain_ ;
        /**
         * <code>optional bool isLeftSideCurtain = 5;</code>
         */
        public boolean hasIsLeftSideCurtain() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * <code>optional bool isLeftSideCurtain = 5;</code>
         */
        public boolean getIsLeftSideCurtain() {
          return isLeftSideCurtain_;
        }
        /**
         * <code>optional bool isLeftSideCurtain = 5;</code>
         */
        public Builder setIsLeftSideCurtain(boolean value) {
          bitField0_ |= 0x00000010;
          isLeftSideCurtain_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional bool isLeftSideCurtain = 5;</code>
         */
        public Builder clearIsLeftSideCurtain() {
          bitField0_ = (bitField0_ & ~0x00000010);
          isLeftSideCurtain_ = false;
          onChanged();
          return this;
        }

        private boolean isRightSideCurtain_ ;
        /**
         * <code>optional bool isRightSideCurtain = 6;</code>
         */
        public boolean hasIsRightSideCurtain() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        /**
         * <code>optional bool isRightSideCurtain = 6;</code>
         */
        public boolean getIsRightSideCurtain() {
          return isRightSideCurtain_;
        }
        /**
         * <code>optional bool isRightSideCurtain = 6;</code>
         */
        public Builder setIsRightSideCurtain(boolean value) {
          bitField0_ |= 0x00000020;
          isRightSideCurtain_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional bool isRightSideCurtain = 6;</code>
         */
        public Builder clearIsRightSideCurtain() {
          bitField0_ = (bitField0_ & ~0x00000020);
          isRightSideCurtain_ = false;
          onChanged();
          return this;
        }

        private boolean isLeftSeat_ ;
        /**
         * <code>optional bool isLeftSeat = 7;</code>
         */
        public boolean hasIsLeftSeat() {
          return ((bitField0_ & 0x00000040) == 0x00000040);
        }
        /**
         * <code>optional bool isLeftSeat = 7;</code>
         */
        public boolean getIsLeftSeat() {
          return isLeftSeat_;
        }
        /**
         * <code>optional bool isLeftSeat = 7;</code>
         */
        public Builder setIsLeftSeat(boolean value) {
          bitField0_ |= 0x00000040;
          isLeftSeat_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional bool isLeftSeat = 7;</code>
         */
        public Builder clearIsLeftSeat() {
          bitField0_ = (bitField0_ & ~0x00000040);
          isLeftSeat_ = false;
          onChanged();
          return this;
        }

        private boolean isRightSeat_ ;
        /**
         * <code>optional bool isRightSeat = 8;</code>
         */
        public boolean hasIsRightSeat() {
          return ((bitField0_ & 0x00000080) == 0x00000080);
        }
        /**
         * <code>optional bool isRightSeat = 8;</code>
         */
        public boolean getIsRightSeat() {
          return isRightSeat_;
        }
        /**
         * <code>optional bool isRightSeat = 8;</code>
         */
        public Builder setIsRightSeat(boolean value) {
          bitField0_ |= 0x00000080;
          isRightSeat_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional bool isRightSeat = 8;</code>
         */
        public Builder clearIsRightSeat() {
          bitField0_ = (bitField0_ & ~0x00000080);
          isRightSeat_ = false;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ECallDataUpload.AirBagStatus)
      }

      // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ECallDataUpload.AirBagStatus)
      private static final com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus();
      }

      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

      public static com.google.protobuf.Parser<AirBagStatus> parser() {
        return PARSER;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface SeatStateOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ECallDataUpload.SeatState)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47;identifies whether Front Left Seat Occupied.
       * </pre>
       *
       * <code>optional bool isFrontLeft = 1;</code>
       */
      boolean hasIsFrontLeft();
      /**
       * <pre>
       *&#47;identifies whether Front Left Seat Occupied.
       * </pre>
       *
       * <code>optional bool isFrontLeft = 1;</code>
       */
      boolean getIsFrontLeft();

      /**
       * <pre>
       *&#47;identifies whether Front Right Seat Occupied.
       * </pre>
       *
       * <code>optional bool isFrontRight = 2;</code>
       */
      boolean hasIsFrontRight();
      /**
       * <pre>
       *&#47;identifies whether Front Right Seat Occupied.
       * </pre>
       *
       * <code>optional bool isFrontRight = 2;</code>
       */
      boolean getIsFrontRight();

      /**
       * <pre>
       *&#47;identifies whether Rear Left Seat Occupied.
       * </pre>
       *
       * <code>optional bool isRearLeft = 3;</code>
       */
      boolean hasIsRearLeft();
      /**
       * <pre>
       *&#47;identifies whether Rear Left Seat Occupied.
       * </pre>
       *
       * <code>optional bool isRearLeft = 3;</code>
       */
      boolean getIsRearLeft();

      /**
       * <pre>
       *&#47;identifies whether Rear Right Seat Occupied.
       * </pre>
       *
       * <code>optional bool isRearRight = 4;</code>
       */
      boolean hasIsRearRight();
      /**
       * <pre>
       *&#47;identifies whether Rear Right Seat Occupied.
       * </pre>
       *
       * <code>optional bool isRearRight = 4;</code>
       */
      boolean getIsRearRight();

      /**
       * <pre>
       *&#47;identifies whether Rear Middle Seat Occupied.
       * </pre>
       *
       * <code>optional bool isRearMiddle = 5;</code>
       */
      boolean hasIsRearMiddle();
      /**
       * <pre>
       *&#47;identifies whether Rear Middle Seat Occupied.
       * </pre>
       *
       * <code>optional bool isRearMiddle = 5;</code>
       */
      boolean getIsRearMiddle();

      /**
       * <pre>
       *&#47;identifies whether Tail Left Seat Occupied.
       * </pre>
       *
       * <code>optional bool isTailLeft = 6;</code>
       */
      boolean hasIsTailLeft();
      /**
       * <pre>
       *&#47;identifies whether Tail Left Seat Occupied.
       * </pre>
       *
       * <code>optional bool isTailLeft = 6;</code>
       */
      boolean getIsTailLeft();

      /**
       * <pre>
       *&#47;identifies whether Tail RightSeat Occupied.
       * </pre>
       *
       * <code>optional bool isTailRight = 7;</code>
       */
      boolean hasIsTailRight();
      /**
       * <pre>
       *&#47;identifies whether Tail RightSeat Occupied.
       * </pre>
       *
       * <code>optional bool isTailRight = 7;</code>
       */
      boolean getIsTailRight();
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.ECallDataUpload.SeatState}
     */
    public  static final class SeatState extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ECallDataUpload.SeatState)
        SeatStateOrBuilder {
      // Use SeatState.newBuilder() to construct.
      private SeatState(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private SeatState() {
        isFrontLeft_ = false;
        isFrontRight_ = false;
        isRearLeft_ = false;
        isRearRight_ = false;
        isRearMiddle_ = false;
        isTailLeft_ = false;
        isTailRight_ = false;
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private SeatState(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        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;
                isFrontLeft_ = input.readBool();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                isFrontRight_ = input.readBool();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                isRearLeft_ = input.readBool();
                break;
              }
              case 32: {
                bitField0_ |= 0x00000008;
                isRearRight_ = input.readBool();
                break;
              }
              case 40: {
                bitField0_ |= 0x00000010;
                isRearMiddle_ = input.readBool();
                break;
              }
              case 48: {
                bitField0_ |= 0x00000020;
                isTailLeft_ = input.readBool();
                break;
              }
              case 56: {
                bitField0_ |= 0x00000040;
                isTailRight_ = input.readBool();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallDataUpload_SeatState_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallDataUpload_SeatState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.class, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.Builder.class);
      }

      private int bitField0_;
      public static final int ISFRONTLEFT_FIELD_NUMBER = 1;
      private boolean isFrontLeft_;
      /**
       * <pre>
       *&#47;identifies whether Front Left Seat Occupied.
       * </pre>
       *
       * <code>optional bool isFrontLeft = 1;</code>
       */
      public boolean hasIsFrontLeft() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       *&#47;identifies whether Front Left Seat Occupied.
       * </pre>
       *
       * <code>optional bool isFrontLeft = 1;</code>
       */
      public boolean getIsFrontLeft() {
        return isFrontLeft_;
      }

      public static final int ISFRONTRIGHT_FIELD_NUMBER = 2;
      private boolean isFrontRight_;
      /**
       * <pre>
       *&#47;identifies whether Front Right Seat Occupied.
       * </pre>
       *
       * <code>optional bool isFrontRight = 2;</code>
       */
      public boolean hasIsFrontRight() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       *&#47;identifies whether Front Right Seat Occupied.
       * </pre>
       *
       * <code>optional bool isFrontRight = 2;</code>
       */
      public boolean getIsFrontRight() {
        return isFrontRight_;
      }

      public static final int ISREARLEFT_FIELD_NUMBER = 3;
      private boolean isRearLeft_;
      /**
       * <pre>
       *&#47;identifies whether Rear Left Seat Occupied.
       * </pre>
       *
       * <code>optional bool isRearLeft = 3;</code>
       */
      public boolean hasIsRearLeft() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       *&#47;identifies whether Rear Left Seat Occupied.
       * </pre>
       *
       * <code>optional bool isRearLeft = 3;</code>
       */
      public boolean getIsRearLeft() {
        return isRearLeft_;
      }

      public static final int ISREARRIGHT_FIELD_NUMBER = 4;
      private boolean isRearRight_;
      /**
       * <pre>
       *&#47;identifies whether Rear Right Seat Occupied.
       * </pre>
       *
       * <code>optional bool isRearRight = 4;</code>
       */
      public boolean hasIsRearRight() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       *&#47;identifies whether Rear Right Seat Occupied.
       * </pre>
       *
       * <code>optional bool isRearRight = 4;</code>
       */
      public boolean getIsRearRight() {
        return isRearRight_;
      }

      public static final int ISREARMIDDLE_FIELD_NUMBER = 5;
      private boolean isRearMiddle_;
      /**
       * <pre>
       *&#47;identifies whether Rear Middle Seat Occupied.
       * </pre>
       *
       * <code>optional bool isRearMiddle = 5;</code>
       */
      public boolean hasIsRearMiddle() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <pre>
       *&#47;identifies whether Rear Middle Seat Occupied.
       * </pre>
       *
       * <code>optional bool isRearMiddle = 5;</code>
       */
      public boolean getIsRearMiddle() {
        return isRearMiddle_;
      }

      public static final int ISTAILLEFT_FIELD_NUMBER = 6;
      private boolean isTailLeft_;
      /**
       * <pre>
       *&#47;identifies whether Tail Left Seat Occupied.
       * </pre>
       *
       * <code>optional bool isTailLeft = 6;</code>
       */
      public boolean hasIsTailLeft() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <pre>
       *&#47;identifies whether Tail Left Seat Occupied.
       * </pre>
       *
       * <code>optional bool isTailLeft = 6;</code>
       */
      public boolean getIsTailLeft() {
        return isTailLeft_;
      }

      public static final int ISTAILRIGHT_FIELD_NUMBER = 7;
      private boolean isTailRight_;
      /**
       * <pre>
       *&#47;identifies whether Tail RightSeat Occupied.
       * </pre>
       *
       * <code>optional bool isTailRight = 7;</code>
       */
      public boolean hasIsTailRight() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <pre>
       *&#47;identifies whether Tail RightSeat Occupied.
       * </pre>
       *
       * <code>optional bool isTailRight = 7;</code>
       */
      public boolean getIsTailRight() {
        return isTailRight_;
      }

      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBool(1, isFrontLeft_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBool(2, isFrontRight_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeBool(3, isRearLeft_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeBool(4, isRearRight_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeBool(5, isRearMiddle_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeBool(6, isTailLeft_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          output.writeBool(7, isTailRight_);
        }
        unknownFields.writeTo(output);
      }

      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(1, isFrontLeft_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(2, isFrontRight_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(3, isRearLeft_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(4, isRearRight_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(5, isRearMiddle_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(6, isTailLeft_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(7, isTailRight_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState other = (com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState) obj;

        boolean result = true;
        result = result && (hasIsFrontLeft() == other.hasIsFrontLeft());
        if (hasIsFrontLeft()) {
          result = result && (getIsFrontLeft()
              == other.getIsFrontLeft());
        }
        result = result && (hasIsFrontRight() == other.hasIsFrontRight());
        if (hasIsFrontRight()) {
          result = result && (getIsFrontRight()
              == other.getIsFrontRight());
        }
        result = result && (hasIsRearLeft() == other.hasIsRearLeft());
        if (hasIsRearLeft()) {
          result = result && (getIsRearLeft()
              == other.getIsRearLeft());
        }
        result = result && (hasIsRearRight() == other.hasIsRearRight());
        if (hasIsRearRight()) {
          result = result && (getIsRearRight()
              == other.getIsRearRight());
        }
        result = result && (hasIsRearMiddle() == other.hasIsRearMiddle());
        if (hasIsRearMiddle()) {
          result = result && (getIsRearMiddle()
              == other.getIsRearMiddle());
        }
        result = result && (hasIsTailLeft() == other.hasIsTailLeft());
        if (hasIsTailLeft()) {
          result = result && (getIsTailLeft()
              == other.getIsTailLeft());
        }
        result = result && (hasIsTailRight() == other.hasIsTailRight());
        if (hasIsTailRight()) {
          result = result && (getIsTailRight()
              == other.getIsTailRight());
        }
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptorForType().hashCode();
        if (hasIsFrontLeft()) {
          hash = (37 * hash) + ISFRONTLEFT_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsFrontLeft());
        }
        if (hasIsFrontRight()) {
          hash = (37 * hash) + ISFRONTRIGHT_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsFrontRight());
        }
        if (hasIsRearLeft()) {
          hash = (37 * hash) + ISREARLEFT_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsRearLeft());
        }
        if (hasIsRearRight()) {
          hash = (37 * hash) + ISREARRIGHT_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsRearRight());
        }
        if (hasIsRearMiddle()) {
          hash = (37 * hash) + ISREARMIDDLE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsRearMiddle());
        }
        if (hasIsTailLeft()) {
          hash = (37 * hash) + ISTAILLEFT_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsTailLeft());
        }
        if (hasIsTailRight()) {
          hash = (37 * hash) + ISTAILRIGHT_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsTailRight());
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.fca.uconnect.global.ECallDataUpload.SeatState}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ECallDataUpload.SeatState)
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatStateOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallDataUpload_SeatState_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallDataUpload_SeatState_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.class, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        public Builder clear() {
          super.clear();
          isFrontLeft_ = false;
          bitField0_ = (bitField0_ & ~0x00000001);
          isFrontRight_ = false;
          bitField0_ = (bitField0_ & ~0x00000002);
          isRearLeft_ = false;
          bitField0_ = (bitField0_ & ~0x00000004);
          isRearRight_ = false;
          bitField0_ = (bitField0_ & ~0x00000008);
          isRearMiddle_ = false;
          bitField0_ = (bitField0_ & ~0x00000010);
          isTailLeft_ = false;
          bitField0_ = (bitField0_ & ~0x00000020);
          isTailRight_ = false;
          bitField0_ = (bitField0_ & ~0x00000040);
          return this;
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallDataUpload_SeatState_descriptor;
        }

        public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.getDefaultInstance();
        }

        public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState build() {
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState result = new com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.isFrontLeft_ = isFrontLeft_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.isFrontRight_ = isFrontRight_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.isRearLeft_ = isRearLeft_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.isRearRight_ = isRearRight_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          result.isRearMiddle_ = isRearMiddle_;
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          result.isTailLeft_ = isTailLeft_;
          if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
            to_bitField0_ |= 0x00000040;
          }
          result.isTailRight_ = isTailRight_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder clone() {
          return (Builder) super.clone();
        }
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.setField(field, value);
        }
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.getDefaultInstance()) return this;
          if (other.hasIsFrontLeft()) {
            setIsFrontLeft(other.getIsFrontLeft());
          }
          if (other.hasIsFrontRight()) {
            setIsFrontRight(other.getIsFrontRight());
          }
          if (other.hasIsRearLeft()) {
            setIsRearLeft(other.getIsRearLeft());
          }
          if (other.hasIsRearRight()) {
            setIsRearRight(other.getIsRearRight());
          }
          if (other.hasIsRearMiddle()) {
            setIsRearMiddle(other.getIsRearMiddle());
          }
          if (other.hasIsTailLeft()) {
            setIsTailLeft(other.getIsTailLeft());
          }
          if (other.hasIsTailRight()) {
            setIsTailRight(other.getIsTailRight());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private boolean isFrontLeft_ ;
        /**
         * <pre>
         *&#47;identifies whether Front Left Seat Occupied.
         * </pre>
         *
         * <code>optional bool isFrontLeft = 1;</code>
         */
        public boolean hasIsFrontLeft() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <pre>
         *&#47;identifies whether Front Left Seat Occupied.
         * </pre>
         *
         * <code>optional bool isFrontLeft = 1;</code>
         */
        public boolean getIsFrontLeft() {
          return isFrontLeft_;
        }
        /**
         * <pre>
         *&#47;identifies whether Front Left Seat Occupied.
         * </pre>
         *
         * <code>optional bool isFrontLeft = 1;</code>
         */
        public Builder setIsFrontLeft(boolean value) {
          bitField0_ |= 0x00000001;
          isFrontLeft_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47;identifies whether Front Left Seat Occupied.
         * </pre>
         *
         * <code>optional bool isFrontLeft = 1;</code>
         */
        public Builder clearIsFrontLeft() {
          bitField0_ = (bitField0_ & ~0x00000001);
          isFrontLeft_ = false;
          onChanged();
          return this;
        }

        private boolean isFrontRight_ ;
        /**
         * <pre>
         *&#47;identifies whether Front Right Seat Occupied.
         * </pre>
         *
         * <code>optional bool isFrontRight = 2;</code>
         */
        public boolean hasIsFrontRight() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <pre>
         *&#47;identifies whether Front Right Seat Occupied.
         * </pre>
         *
         * <code>optional bool isFrontRight = 2;</code>
         */
        public boolean getIsFrontRight() {
          return isFrontRight_;
        }
        /**
         * <pre>
         *&#47;identifies whether Front Right Seat Occupied.
         * </pre>
         *
         * <code>optional bool isFrontRight = 2;</code>
         */
        public Builder setIsFrontRight(boolean value) {
          bitField0_ |= 0x00000002;
          isFrontRight_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47;identifies whether Front Right Seat Occupied.
         * </pre>
         *
         * <code>optional bool isFrontRight = 2;</code>
         */
        public Builder clearIsFrontRight() {
          bitField0_ = (bitField0_ & ~0x00000002);
          isFrontRight_ = false;
          onChanged();
          return this;
        }

        private boolean isRearLeft_ ;
        /**
         * <pre>
         *&#47;identifies whether Rear Left Seat Occupied.
         * </pre>
         *
         * <code>optional bool isRearLeft = 3;</code>
         */
        public boolean hasIsRearLeft() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <pre>
         *&#47;identifies whether Rear Left Seat Occupied.
         * </pre>
         *
         * <code>optional bool isRearLeft = 3;</code>
         */
        public boolean getIsRearLeft() {
          return isRearLeft_;
        }
        /**
         * <pre>
         *&#47;identifies whether Rear Left Seat Occupied.
         * </pre>
         *
         * <code>optional bool isRearLeft = 3;</code>
         */
        public Builder setIsRearLeft(boolean value) {
          bitField0_ |= 0x00000004;
          isRearLeft_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47;identifies whether Rear Left Seat Occupied.
         * </pre>
         *
         * <code>optional bool isRearLeft = 3;</code>
         */
        public Builder clearIsRearLeft() {
          bitField0_ = (bitField0_ & ~0x00000004);
          isRearLeft_ = false;
          onChanged();
          return this;
        }

        private boolean isRearRight_ ;
        /**
         * <pre>
         *&#47;identifies whether Rear Right Seat Occupied.
         * </pre>
         *
         * <code>optional bool isRearRight = 4;</code>
         */
        public boolean hasIsRearRight() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <pre>
         *&#47;identifies whether Rear Right Seat Occupied.
         * </pre>
         *
         * <code>optional bool isRearRight = 4;</code>
         */
        public boolean getIsRearRight() {
          return isRearRight_;
        }
        /**
         * <pre>
         *&#47;identifies whether Rear Right Seat Occupied.
         * </pre>
         *
         * <code>optional bool isRearRight = 4;</code>
         */
        public Builder setIsRearRight(boolean value) {
          bitField0_ |= 0x00000008;
          isRearRight_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47;identifies whether Rear Right Seat Occupied.
         * </pre>
         *
         * <code>optional bool isRearRight = 4;</code>
         */
        public Builder clearIsRearRight() {
          bitField0_ = (bitField0_ & ~0x00000008);
          isRearRight_ = false;
          onChanged();
          return this;
        }

        private boolean isRearMiddle_ ;
        /**
         * <pre>
         *&#47;identifies whether Rear Middle Seat Occupied.
         * </pre>
         *
         * <code>optional bool isRearMiddle = 5;</code>
         */
        public boolean hasIsRearMiddle() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * <pre>
         *&#47;identifies whether Rear Middle Seat Occupied.
         * </pre>
         *
         * <code>optional bool isRearMiddle = 5;</code>
         */
        public boolean getIsRearMiddle() {
          return isRearMiddle_;
        }
        /**
         * <pre>
         *&#47;identifies whether Rear Middle Seat Occupied.
         * </pre>
         *
         * <code>optional bool isRearMiddle = 5;</code>
         */
        public Builder setIsRearMiddle(boolean value) {
          bitField0_ |= 0x00000010;
          isRearMiddle_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47;identifies whether Rear Middle Seat Occupied.
         * </pre>
         *
         * <code>optional bool isRearMiddle = 5;</code>
         */
        public Builder clearIsRearMiddle() {
          bitField0_ = (bitField0_ & ~0x00000010);
          isRearMiddle_ = false;
          onChanged();
          return this;
        }

        private boolean isTailLeft_ ;
        /**
         * <pre>
         *&#47;identifies whether Tail Left Seat Occupied.
         * </pre>
         *
         * <code>optional bool isTailLeft = 6;</code>
         */
        public boolean hasIsTailLeft() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        /**
         * <pre>
         *&#47;identifies whether Tail Left Seat Occupied.
         * </pre>
         *
         * <code>optional bool isTailLeft = 6;</code>
         */
        public boolean getIsTailLeft() {
          return isTailLeft_;
        }
        /**
         * <pre>
         *&#47;identifies whether Tail Left Seat Occupied.
         * </pre>
         *
         * <code>optional bool isTailLeft = 6;</code>
         */
        public Builder setIsTailLeft(boolean value) {
          bitField0_ |= 0x00000020;
          isTailLeft_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47;identifies whether Tail Left Seat Occupied.
         * </pre>
         *
         * <code>optional bool isTailLeft = 6;</code>
         */
        public Builder clearIsTailLeft() {
          bitField0_ = (bitField0_ & ~0x00000020);
          isTailLeft_ = false;
          onChanged();
          return this;
        }

        private boolean isTailRight_ ;
        /**
         * <pre>
         *&#47;identifies whether Tail RightSeat Occupied.
         * </pre>
         *
         * <code>optional bool isTailRight = 7;</code>
         */
        public boolean hasIsTailRight() {
          return ((bitField0_ & 0x00000040) == 0x00000040);
        }
        /**
         * <pre>
         *&#47;identifies whether Tail RightSeat Occupied.
         * </pre>
         *
         * <code>optional bool isTailRight = 7;</code>
         */
        public boolean getIsTailRight() {
          return isTailRight_;
        }
        /**
         * <pre>
         *&#47;identifies whether Tail RightSeat Occupied.
         * </pre>
         *
         * <code>optional bool isTailRight = 7;</code>
         */
        public Builder setIsTailRight(boolean value) {
          bitField0_ |= 0x00000040;
          isTailRight_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47;identifies whether Tail RightSeat Occupied.
         * </pre>
         *
         * <code>optional bool isTailRight = 7;</code>
         */
        public Builder clearIsTailRight() {
          bitField0_ = (bitField0_ & ~0x00000040);
          isTailRight_ = false;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ECallDataUpload.SeatState)
      }

      // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ECallDataUpload.SeatState)
      private static final com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState();
      }

      public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

      public static com.google.protobuf.Parser<SeatState> parser() {
        return PARSER;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int VEHICLEINFO_FIELD_NUMBER = 1;
    private com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo vehicleInfo_;
    /**
     * <pre>
     *&#47; This message is to get the Vehicle Information.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.VehicleInfo vehicleInfo = 1;</code>
     */
    public boolean hasVehicleInfo() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     *&#47; This message is to get the Vehicle Information.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.VehicleInfo vehicleInfo = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo getVehicleInfo() {
      return vehicleInfo_ == null ? com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo.getDefaultInstance() : vehicleInfo_;
    }
    /**
     * <pre>
     *&#47; This message is to get the Vehicle Information.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.VehicleInfo vehicleInfo = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfoOrBuilder getVehicleInfoOrBuilder() {
      return vehicleInfo_ == null ? com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo.getDefaultInstance() : vehicleInfo_;
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 2;
    private long timeStamp_;
    /**
     * <pre>
     *&#47;The milliseconds since Jan 1, 1970 00:00:00 UTC when the message is created. Should come from the system clock of the sender.
     * </pre>
     *
     * <code>optional int64 timeStamp = 2;</code>
     */
    public boolean hasTimeStamp() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     *&#47;The milliseconds since Jan 1, 1970 00:00:00 UTC when the message is created. Should come from the system clock of the sender.
     * </pre>
     *
     * <code>optional int64 timeStamp = 2;</code>
     */
    public long getTimeStamp() {
      return timeStamp_;
    }

    public static final int NUMBEROFPASSENGERS_FIELD_NUMBER = 4;
    private int numberOfPassengers_;
    /**
     * <pre>
     *&#47; This represents number of passengers present in the Veh.
     * </pre>
     *
     * <code>optional int32 numberOfPassengers = 4;</code>
     */
    public boolean hasNumberOfPassengers() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <pre>
     *&#47; This represents number of passengers present in the Veh.
     * </pre>
     *
     * <code>optional int32 numberOfPassengers = 4;</code>
     */
    public int getNumberOfPassengers() {
      return numberOfPassengers_;
    }

    public static final int AIRBAGSTATUS_FIELD_NUMBER = 5;
    private com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus airBagStatus_;
    /**
     * <pre>
     *&#47;This represents whether airbags are deployed or not.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.AirBagStatus airBagStatus = 5;</code>
     */
    public boolean hasAirBagStatus() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <pre>
     *&#47;This represents whether airbags are deployed or not.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.AirBagStatus airBagStatus = 5;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus getAirBagStatus() {
      return airBagStatus_ == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.getDefaultInstance() : airBagStatus_;
    }
    /**
     * <pre>
     *&#47;This represents whether airbags are deployed or not.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.AirBagStatus airBagStatus = 5;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatusOrBuilder getAirBagStatusOrBuilder() {
      return airBagStatus_ == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.getDefaultInstance() : airBagStatus_;
    }

    public static final int SEATOCCUPIED_FIELD_NUMBER = 6;
    private com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState seatOccupied_;
    /**
     * <pre>
     *&#47;This represents which seats are occupied in the vehicle.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState seatOccupied = 6;</code>
     */
    public boolean hasSeatOccupied() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <pre>
     *&#47;This represents which seats are occupied in the vehicle.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState seatOccupied = 6;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState getSeatOccupied() {
      return seatOccupied_ == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.getDefaultInstance() : seatOccupied_;
    }
    /**
     * <pre>
     *&#47;This represents which seats are occupied in the vehicle.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState seatOccupied = 6;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatStateOrBuilder getSeatOccupiedOrBuilder() {
      return seatOccupied_ == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.getDefaultInstance() : seatOccupied_;
    }

    public static final int BELTBUCKLED_FIELD_NUMBER = 7;
    private com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState beltBuckled_;
    /**
     * <pre>
     *&#47;This represents which seat belts are buckled.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState beltBuckled = 7;</code>
     */
    public boolean hasBeltBuckled() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <pre>
     *&#47;This represents which seat belts are buckled.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState beltBuckled = 7;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState getBeltBuckled() {
      return beltBuckled_ == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.getDefaultInstance() : beltBuckled_;
    }
    /**
     * <pre>
     *&#47;This represents which seat belts are buckled.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState beltBuckled = 7;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatStateOrBuilder getBeltBuckledOrBuilder() {
      return beltBuckled_ == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.getDefaultInstance() : beltBuckled_;
    }

    public static final int VEHICLESTATUS_FIELD_NUMBER = 8;
    private com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus vehicleStatus_;
    /**
     * <pre>
     *&#47;Status of each door/window/hood/trunk.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.VehicleStatus vehicleStatus = 8;</code>
     */
    public boolean hasVehicleStatus() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <pre>
     *&#47;Status of each door/window/hood/trunk.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.VehicleStatus vehicleStatus = 8;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus getVehicleStatus() {
      return vehicleStatus_ == null ? com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus.getDefaultInstance() : vehicleStatus_;
    }
    /**
     * <pre>
     *&#47;Status of each door/window/hood/trunk.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.VehicleStatus vehicleStatus = 8;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatusOrBuilder getVehicleStatusOrBuilder() {
      return vehicleStatus_ == null ? com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus.getDefaultInstance() : vehicleStatus_;
    }

    public static final int TRIGGERMODE_FIELD_NUMBER = 9;
    private int triggerMode_;
    /**
     * <pre>
     *&#47;Trigger mode of the data upload.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.TriggerModeEnum triggerMode = 9;</code>
     */
    public boolean hasTriggerMode() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * <pre>
     *&#47;Trigger mode of the data upload.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.ECallDataUpload.TriggerModeEnum triggerMode = 9;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.TriggerModeEnum getTriggerMode() {
      com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.TriggerModeEnum result = com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.TriggerModeEnum.valueOf(triggerMode_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.TriggerModeEnum.MANUAL : result;
    }

    public static final int DEVICEDETAILS_FIELD_NUMBER = 10;
    private com.fca.uconnect.global.GlobalUconnectDevice.Device deviceDetails_;
    /**
     * <code>optional .com.fca.uconnect.global.Device deviceDetails = 10;</code>
     */
    public boolean hasDeviceDetails() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * <code>optional .com.fca.uconnect.global.Device deviceDetails = 10;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectDevice.Device getDeviceDetails() {
      return deviceDetails_ == null ? com.fca.uconnect.global.GlobalUconnectDevice.Device.getDefaultInstance() : deviceDetails_;
    }
    /**
     * <code>optional .com.fca.uconnect.global.Device deviceDetails = 10;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectDevice.DeviceOrBuilder getDeviceDetailsOrBuilder() {
      return deviceDetails_ == null ? com.fca.uconnect.global.GlobalUconnectDevice.Device.getDefaultInstance() : deviceDetails_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getVehicleInfo());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, timeStamp_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(4, numberOfPassengers_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(5, getAirBagStatus());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(6, getSeatOccupied());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(7, getBeltBuckled());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(8, getVehicleStatus());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeEnum(9, triggerMode_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(10, getDeviceDetails());
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getVehicleInfo());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, timeStamp_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, numberOfPassengers_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getAirBagStatus());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getSeatOccupied());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getBeltBuckled());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getVehicleStatus());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(9, triggerMode_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, getDeviceDetails());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload other = (com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload) obj;

      boolean result = true;
      result = result && (hasVehicleInfo() == other.hasVehicleInfo());
      if (hasVehicleInfo()) {
        result = result && getVehicleInfo()
            .equals(other.getVehicleInfo());
      }
      result = result && (hasTimeStamp() == other.hasTimeStamp());
      if (hasTimeStamp()) {
        result = result && (getTimeStamp()
            == other.getTimeStamp());
      }
      result = result && (hasNumberOfPassengers() == other.hasNumberOfPassengers());
      if (hasNumberOfPassengers()) {
        result = result && (getNumberOfPassengers()
            == other.getNumberOfPassengers());
      }
      result = result && (hasAirBagStatus() == other.hasAirBagStatus());
      if (hasAirBagStatus()) {
        result = result && getAirBagStatus()
            .equals(other.getAirBagStatus());
      }
      result = result && (hasSeatOccupied() == other.hasSeatOccupied());
      if (hasSeatOccupied()) {
        result = result && getSeatOccupied()
            .equals(other.getSeatOccupied());
      }
      result = result && (hasBeltBuckled() == other.hasBeltBuckled());
      if (hasBeltBuckled()) {
        result = result && getBeltBuckled()
            .equals(other.getBeltBuckled());
      }
      result = result && (hasVehicleStatus() == other.hasVehicleStatus());
      if (hasVehicleStatus()) {
        result = result && getVehicleStatus()
            .equals(other.getVehicleStatus());
      }
      result = result && (hasTriggerMode() == other.hasTriggerMode());
      if (hasTriggerMode()) {
        result = result && triggerMode_ == other.triggerMode_;
      }
      result = result && (hasDeviceDetails() == other.hasDeviceDetails());
      if (hasDeviceDetails()) {
        result = result && getDeviceDetails()
            .equals(other.getDeviceDetails());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasVehicleInfo()) {
        hash = (37 * hash) + VEHICLEINFO_FIELD_NUMBER;
        hash = (53 * hash) + getVehicleInfo().hashCode();
      }
      if (hasTimeStamp()) {
        hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getTimeStamp());
      }
      if (hasNumberOfPassengers()) {
        hash = (37 * hash) + NUMBEROFPASSENGERS_FIELD_NUMBER;
        hash = (53 * hash) + getNumberOfPassengers();
      }
      if (hasAirBagStatus()) {
        hash = (37 * hash) + AIRBAGSTATUS_FIELD_NUMBER;
        hash = (53 * hash) + getAirBagStatus().hashCode();
      }
      if (hasSeatOccupied()) {
        hash = (37 * hash) + SEATOCCUPIED_FIELD_NUMBER;
        hash = (53 * hash) + getSeatOccupied().hashCode();
      }
      if (hasBeltBuckled()) {
        hash = (37 * hash) + BELTBUCKLED_FIELD_NUMBER;
        hash = (53 * hash) + getBeltBuckled().hashCode();
      }
      if (hasVehicleStatus()) {
        hash = (37 * hash) + VEHICLESTATUS_FIELD_NUMBER;
        hash = (53 * hash) + getVehicleStatus().hashCode();
      }
      if (hasTriggerMode()) {
        hash = (37 * hash) + TRIGGERMODE_FIELD_NUMBER;
        hash = (53 * hash) + triggerMode_;
      }
      if (hasDeviceDetails()) {
        hash = (37 * hash) + DEVICEDETAILS_FIELD_NUMBER;
        hash = (53 * hash) + getDeviceDetails().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * This message represents  ECall DataUpload for emergencies and accidents.
     * &lt;div class=exmsg-main&gt;
     * &lt;h4&gt;ECallDataUpload Example Message:&lt;/h4&gt;
     * &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     *		timestamp: 1489600238258
     * 		messageId: 1
     * 		messages
     * 		{
     * 		 [com.fca.uconnect.global.ecallDataUpload]
     * 		 {
     * 		  vehicleId: "1234AXFGFGHGH4566"
     * 		  isPositionTrusted: true
     * 		  timeStamp: 1489600238256
     * 		  vehicleLocation
     * 		  {
     * 			longitude: 43.9999
     * 			latitude: -84.54636
     * 		  }
     * 		 numberOfPassengers: 1
     * 		 airBagStatus
     * 		 {
     * 		  driver: false
     * 		  driverKnee: false
     * 		  passenger: false
     * 		  passengerKnee: false
     * 		  leftSideCurtain: false
     * 		  leftSeat: false
     * 		  rightSeat: false
     * 		}
     * 		  vehicleSpeed: 75.0
     * 		  engineStatus: STOP
     * 	    }
     * 	  }
     *	&lt;/code&gt;
     *   &lt;/div&gt;
     * &lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.ECallDataUpload}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ECallDataUpload)
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUploadOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallDataUpload_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallDataUpload_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.class, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getVehicleInfoFieldBuilder();
          getAirBagStatusFieldBuilder();
          getSeatOccupiedFieldBuilder();
          getBeltBuckledFieldBuilder();
          getVehicleStatusFieldBuilder();
          getDeviceDetailsFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (vehicleInfoBuilder_ == null) {
          vehicleInfo_ = null;
        } else {
          vehicleInfoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        timeStamp_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        numberOfPassengers_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (airBagStatusBuilder_ == null) {
          airBagStatus_ = null;
        } else {
          airBagStatusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (seatOccupiedBuilder_ == null) {
          seatOccupied_ = null;
        } else {
          seatOccupiedBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        if (beltBuckledBuilder_ == null) {
          beltBuckled_ = null;
        } else {
          beltBuckledBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (vehicleStatusBuilder_ == null) {
          vehicleStatus_ = null;
        } else {
          vehicleStatusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        triggerMode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        if (deviceDetailsBuilder_ == null) {
          deviceDetails_ = null;
        } else {
          deviceDetailsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallDataUpload_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload build() {
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload result = new com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (vehicleInfoBuilder_ == null) {
          result.vehicleInfo_ = vehicleInfo_;
        } else {
          result.vehicleInfo_ = vehicleInfoBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.timeStamp_ = timeStamp_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.numberOfPassengers_ = numberOfPassengers_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (airBagStatusBuilder_ == null) {
          result.airBagStatus_ = airBagStatus_;
        } else {
          result.airBagStatus_ = airBagStatusBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (seatOccupiedBuilder_ == null) {
          result.seatOccupied_ = seatOccupied_;
        } else {
          result.seatOccupied_ = seatOccupiedBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        if (beltBuckledBuilder_ == null) {
          result.beltBuckled_ = beltBuckled_;
        } else {
          result.beltBuckled_ = beltBuckledBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        if (vehicleStatusBuilder_ == null) {
          result.vehicleStatus_ = vehicleStatus_;
        } else {
          result.vehicleStatus_ = vehicleStatusBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.triggerMode_ = triggerMode_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        if (deviceDetailsBuilder_ == null) {
          result.deviceDetails_ = deviceDetails_;
        } else {
          result.deviceDetails_ = deviceDetailsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.getDefaultInstance()) return this;
        if (other.hasVehicleInfo()) {
          mergeVehicleInfo(other.getVehicleInfo());
        }
        if (other.hasTimeStamp()) {
          setTimeStamp(other.getTimeStamp());
        }
        if (other.hasNumberOfPassengers()) {
          setNumberOfPassengers(other.getNumberOfPassengers());
        }
        if (other.hasAirBagStatus()) {
          mergeAirBagStatus(other.getAirBagStatus());
        }
        if (other.hasSeatOccupied()) {
          mergeSeatOccupied(other.getSeatOccupied());
        }
        if (other.hasBeltBuckled()) {
          mergeBeltBuckled(other.getBeltBuckled());
        }
        if (other.hasVehicleStatus()) {
          mergeVehicleStatus(other.getVehicleStatus());
        }
        if (other.hasTriggerMode()) {
          setTriggerMode(other.getTriggerMode());
        }
        if (other.hasDeviceDetails()) {
          mergeDeviceDetails(other.getDeviceDetails());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo vehicleInfo_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo, com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo.Builder, com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfoOrBuilder> vehicleInfoBuilder_;
      /**
       * <pre>
       *&#47; This message is to get the Vehicle Information.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.VehicleInfo vehicleInfo = 1;</code>
       */
      public boolean hasVehicleInfo() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       *&#47; This message is to get the Vehicle Information.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.VehicleInfo vehicleInfo = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo getVehicleInfo() {
        if (vehicleInfoBuilder_ == null) {
          return vehicleInfo_ == null ? com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo.getDefaultInstance() : vehicleInfo_;
        } else {
          return vehicleInfoBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *&#47; This message is to get the Vehicle Information.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.VehicleInfo vehicleInfo = 1;</code>
       */
      public Builder setVehicleInfo(com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo value) {
        if (vehicleInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          vehicleInfo_ = value;
          onChanged();
        } else {
          vehicleInfoBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       *&#47; This message is to get the Vehicle Information.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.VehicleInfo vehicleInfo = 1;</code>
       */
      public Builder setVehicleInfo(
          com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo.Builder builderForValue) {
        if (vehicleInfoBuilder_ == null) {
          vehicleInfo_ = builderForValue.build();
          onChanged();
        } else {
          vehicleInfoBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       *&#47; This message is to get the Vehicle Information.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.VehicleInfo vehicleInfo = 1;</code>
       */
      public Builder mergeVehicleInfo(com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo value) {
        if (vehicleInfoBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              vehicleInfo_ != null &&
              vehicleInfo_ != com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo.getDefaultInstance()) {
            vehicleInfo_ =
              com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo.newBuilder(vehicleInfo_).mergeFrom(value).buildPartial();
          } else {
            vehicleInfo_ = value;
          }
          onChanged();
        } else {
          vehicleInfoBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <pre>
       *&#47; This message is to get the Vehicle Information.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.VehicleInfo vehicleInfo = 1;</code>
       */
      public Builder clearVehicleInfo() {
        if (vehicleInfoBuilder_ == null) {
          vehicleInfo_ = null;
          onChanged();
        } else {
          vehicleInfoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <pre>
       *&#47; This message is to get the Vehicle Information.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.VehicleInfo vehicleInfo = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo.Builder getVehicleInfoBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getVehicleInfoFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *&#47; This message is to get the Vehicle Information.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.VehicleInfo vehicleInfo = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfoOrBuilder getVehicleInfoOrBuilder() {
        if (vehicleInfoBuilder_ != null) {
          return vehicleInfoBuilder_.getMessageOrBuilder();
        } else {
          return vehicleInfo_ == null ?
              com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo.getDefaultInstance() : vehicleInfo_;
        }
      }
      /**
       * <pre>
       *&#47; This message is to get the Vehicle Information.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.VehicleInfo vehicleInfo = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo, com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo.Builder, com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfoOrBuilder> 
          getVehicleInfoFieldBuilder() {
        if (vehicleInfoBuilder_ == null) {
          vehicleInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo, com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfo.Builder, com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleInfoOrBuilder>(
                  getVehicleInfo(),
                  getParentForChildren(),
                  isClean());
          vehicleInfo_ = null;
        }
        return vehicleInfoBuilder_;
      }

      private long timeStamp_ ;
      /**
       * <pre>
       *&#47;The milliseconds since Jan 1, 1970 00:00:00 UTC when the message is created. Should come from the system clock of the sender.
       * </pre>
       *
       * <code>optional int64 timeStamp = 2;</code>
       */
      public boolean hasTimeStamp() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       *&#47;The milliseconds since Jan 1, 1970 00:00:00 UTC when the message is created. Should come from the system clock of the sender.
       * </pre>
       *
       * <code>optional int64 timeStamp = 2;</code>
       */
      public long getTimeStamp() {
        return timeStamp_;
      }
      /**
       * <pre>
       *&#47;The milliseconds since Jan 1, 1970 00:00:00 UTC when the message is created. Should come from the system clock of the sender.
       * </pre>
       *
       * <code>optional int64 timeStamp = 2;</code>
       */
      public Builder setTimeStamp(long value) {
        bitField0_ |= 0x00000002;
        timeStamp_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;The milliseconds since Jan 1, 1970 00:00:00 UTC when the message is created. Should come from the system clock of the sender.
       * </pre>
       *
       * <code>optional int64 timeStamp = 2;</code>
       */
      public Builder clearTimeStamp() {
        bitField0_ = (bitField0_ & ~0x00000002);
        timeStamp_ = 0L;
        onChanged();
        return this;
      }

      private int numberOfPassengers_ ;
      /**
       * <pre>
       *&#47; This represents number of passengers present in the Veh.
       * </pre>
       *
       * <code>optional int32 numberOfPassengers = 4;</code>
       */
      public boolean hasNumberOfPassengers() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       *&#47; This represents number of passengers present in the Veh.
       * </pre>
       *
       * <code>optional int32 numberOfPassengers = 4;</code>
       */
      public int getNumberOfPassengers() {
        return numberOfPassengers_;
      }
      /**
       * <pre>
       *&#47; This represents number of passengers present in the Veh.
       * </pre>
       *
       * <code>optional int32 numberOfPassengers = 4;</code>
       */
      public Builder setNumberOfPassengers(int value) {
        bitField0_ |= 0x00000004;
        numberOfPassengers_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; This represents number of passengers present in the Veh.
       * </pre>
       *
       * <code>optional int32 numberOfPassengers = 4;</code>
       */
      public Builder clearNumberOfPassengers() {
        bitField0_ = (bitField0_ & ~0x00000004);
        numberOfPassengers_ = 0;
        onChanged();
        return this;
      }

      private com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus airBagStatus_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.Builder, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatusOrBuilder> airBagStatusBuilder_;
      /**
       * <pre>
       *&#47;This represents whether airbags are deployed or not.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.AirBagStatus airBagStatus = 5;</code>
       */
      public boolean hasAirBagStatus() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       *&#47;This represents whether airbags are deployed or not.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.AirBagStatus airBagStatus = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus getAirBagStatus() {
        if (airBagStatusBuilder_ == null) {
          return airBagStatus_ == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.getDefaultInstance() : airBagStatus_;
        } else {
          return airBagStatusBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *&#47;This represents whether airbags are deployed or not.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.AirBagStatus airBagStatus = 5;</code>
       */
      public Builder setAirBagStatus(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus value) {
        if (airBagStatusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          airBagStatus_ = value;
          onChanged();
        } else {
          airBagStatusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <pre>
       *&#47;This represents whether airbags are deployed or not.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.AirBagStatus airBagStatus = 5;</code>
       */
      public Builder setAirBagStatus(
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.Builder builderForValue) {
        if (airBagStatusBuilder_ == null) {
          airBagStatus_ = builderForValue.build();
          onChanged();
        } else {
          airBagStatusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <pre>
       *&#47;This represents whether airbags are deployed or not.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.AirBagStatus airBagStatus = 5;</code>
       */
      public Builder mergeAirBagStatus(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus value) {
        if (airBagStatusBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              airBagStatus_ != null &&
              airBagStatus_ != com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.getDefaultInstance()) {
            airBagStatus_ =
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.newBuilder(airBagStatus_).mergeFrom(value).buildPartial();
          } else {
            airBagStatus_ = value;
          }
          onChanged();
        } else {
          airBagStatusBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <pre>
       *&#47;This represents whether airbags are deployed or not.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.AirBagStatus airBagStatus = 5;</code>
       */
      public Builder clearAirBagStatus() {
        if (airBagStatusBuilder_ == null) {
          airBagStatus_ = null;
          onChanged();
        } else {
          airBagStatusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * <pre>
       *&#47;This represents whether airbags are deployed or not.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.AirBagStatus airBagStatus = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.Builder getAirBagStatusBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getAirBagStatusFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *&#47;This represents whether airbags are deployed or not.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.AirBagStatus airBagStatus = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatusOrBuilder getAirBagStatusOrBuilder() {
        if (airBagStatusBuilder_ != null) {
          return airBagStatusBuilder_.getMessageOrBuilder();
        } else {
          return airBagStatus_ == null ?
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.getDefaultInstance() : airBagStatus_;
        }
      }
      /**
       * <pre>
       *&#47;This represents whether airbags are deployed or not.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.AirBagStatus airBagStatus = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.Builder, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatusOrBuilder> 
          getAirBagStatusFieldBuilder() {
        if (airBagStatusBuilder_ == null) {
          airBagStatusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatus.Builder, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.AirBagStatusOrBuilder>(
                  getAirBagStatus(),
                  getParentForChildren(),
                  isClean());
          airBagStatus_ = null;
        }
        return airBagStatusBuilder_;
      }

      private com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState seatOccupied_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.Builder, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatStateOrBuilder> seatOccupiedBuilder_;
      /**
       * <pre>
       *&#47;This represents which seats are occupied in the vehicle.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState seatOccupied = 6;</code>
       */
      public boolean hasSeatOccupied() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <pre>
       *&#47;This represents which seats are occupied in the vehicle.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState seatOccupied = 6;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState getSeatOccupied() {
        if (seatOccupiedBuilder_ == null) {
          return seatOccupied_ == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.getDefaultInstance() : seatOccupied_;
        } else {
          return seatOccupiedBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *&#47;This represents which seats are occupied in the vehicle.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState seatOccupied = 6;</code>
       */
      public Builder setSeatOccupied(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState value) {
        if (seatOccupiedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          seatOccupied_ = value;
          onChanged();
        } else {
          seatOccupiedBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <pre>
       *&#47;This represents which seats are occupied in the vehicle.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState seatOccupied = 6;</code>
       */
      public Builder setSeatOccupied(
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.Builder builderForValue) {
        if (seatOccupiedBuilder_ == null) {
          seatOccupied_ = builderForValue.build();
          onChanged();
        } else {
          seatOccupiedBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <pre>
       *&#47;This represents which seats are occupied in the vehicle.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState seatOccupied = 6;</code>
       */
      public Builder mergeSeatOccupied(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState value) {
        if (seatOccupiedBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              seatOccupied_ != null &&
              seatOccupied_ != com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.getDefaultInstance()) {
            seatOccupied_ =
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.newBuilder(seatOccupied_).mergeFrom(value).buildPartial();
          } else {
            seatOccupied_ = value;
          }
          onChanged();
        } else {
          seatOccupiedBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <pre>
       *&#47;This represents which seats are occupied in the vehicle.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState seatOccupied = 6;</code>
       */
      public Builder clearSeatOccupied() {
        if (seatOccupiedBuilder_ == null) {
          seatOccupied_ = null;
          onChanged();
        } else {
          seatOccupiedBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * <pre>
       *&#47;This represents which seats are occupied in the vehicle.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState seatOccupied = 6;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.Builder getSeatOccupiedBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getSeatOccupiedFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *&#47;This represents which seats are occupied in the vehicle.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState seatOccupied = 6;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatStateOrBuilder getSeatOccupiedOrBuilder() {
        if (seatOccupiedBuilder_ != null) {
          return seatOccupiedBuilder_.getMessageOrBuilder();
        } else {
          return seatOccupied_ == null ?
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.getDefaultInstance() : seatOccupied_;
        }
      }
      /**
       * <pre>
       *&#47;This represents which seats are occupied in the vehicle.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState seatOccupied = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.Builder, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatStateOrBuilder> 
          getSeatOccupiedFieldBuilder() {
        if (seatOccupiedBuilder_ == null) {
          seatOccupiedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.Builder, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatStateOrBuilder>(
                  getSeatOccupied(),
                  getParentForChildren(),
                  isClean());
          seatOccupied_ = null;
        }
        return seatOccupiedBuilder_;
      }

      private com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState beltBuckled_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.Builder, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatStateOrBuilder> beltBuckledBuilder_;
      /**
       * <pre>
       *&#47;This represents which seat belts are buckled.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState beltBuckled = 7;</code>
       */
      public boolean hasBeltBuckled() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <pre>
       *&#47;This represents which seat belts are buckled.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState beltBuckled = 7;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState getBeltBuckled() {
        if (beltBuckledBuilder_ == null) {
          return beltBuckled_ == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.getDefaultInstance() : beltBuckled_;
        } else {
          return beltBuckledBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *&#47;This represents which seat belts are buckled.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState beltBuckled = 7;</code>
       */
      public Builder setBeltBuckled(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState value) {
        if (beltBuckledBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          beltBuckled_ = value;
          onChanged();
        } else {
          beltBuckledBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <pre>
       *&#47;This represents which seat belts are buckled.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState beltBuckled = 7;</code>
       */
      public Builder setBeltBuckled(
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.Builder builderForValue) {
        if (beltBuckledBuilder_ == null) {
          beltBuckled_ = builderForValue.build();
          onChanged();
        } else {
          beltBuckledBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <pre>
       *&#47;This represents which seat belts are buckled.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState beltBuckled = 7;</code>
       */
      public Builder mergeBeltBuckled(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState value) {
        if (beltBuckledBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020) &&
              beltBuckled_ != null &&
              beltBuckled_ != com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.getDefaultInstance()) {
            beltBuckled_ =
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.newBuilder(beltBuckled_).mergeFrom(value).buildPartial();
          } else {
            beltBuckled_ = value;
          }
          onChanged();
        } else {
          beltBuckledBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <pre>
       *&#47;This represents which seat belts are buckled.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState beltBuckled = 7;</code>
       */
      public Builder clearBeltBuckled() {
        if (beltBuckledBuilder_ == null) {
          beltBuckled_ = null;
          onChanged();
        } else {
          beltBuckledBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       * <pre>
       *&#47;This represents which seat belts are buckled.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState beltBuckled = 7;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.Builder getBeltBuckledBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getBeltBuckledFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *&#47;This represents which seat belts are buckled.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState beltBuckled = 7;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatStateOrBuilder getBeltBuckledOrBuilder() {
        if (beltBuckledBuilder_ != null) {
          return beltBuckledBuilder_.getMessageOrBuilder();
        } else {
          return beltBuckled_ == null ?
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.getDefaultInstance() : beltBuckled_;
        }
      }
      /**
       * <pre>
       *&#47;This represents which seat belts are buckled.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.SeatState beltBuckled = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.Builder, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatStateOrBuilder> 
          getBeltBuckledFieldBuilder() {
        if (beltBuckledBuilder_ == null) {
          beltBuckledBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatState.Builder, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.SeatStateOrBuilder>(
                  getBeltBuckled(),
                  getParentForChildren(),
                  isClean());
          beltBuckled_ = null;
        }
        return beltBuckledBuilder_;
      }

      private com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus vehicleStatus_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus, com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus.Builder, com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatusOrBuilder> vehicleStatusBuilder_;
      /**
       * <pre>
       *&#47;Status of each door/window/hood/trunk.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.VehicleStatus vehicleStatus = 8;</code>
       */
      public boolean hasVehicleStatus() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <pre>
       *&#47;Status of each door/window/hood/trunk.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.VehicleStatus vehicleStatus = 8;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus getVehicleStatus() {
        if (vehicleStatusBuilder_ == null) {
          return vehicleStatus_ == null ? com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus.getDefaultInstance() : vehicleStatus_;
        } else {
          return vehicleStatusBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *&#47;Status of each door/window/hood/trunk.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.VehicleStatus vehicleStatus = 8;</code>
       */
      public Builder setVehicleStatus(com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus value) {
        if (vehicleStatusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          vehicleStatus_ = value;
          onChanged();
        } else {
          vehicleStatusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * <pre>
       *&#47;Status of each door/window/hood/trunk.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.VehicleStatus vehicleStatus = 8;</code>
       */
      public Builder setVehicleStatus(
          com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus.Builder builderForValue) {
        if (vehicleStatusBuilder_ == null) {
          vehicleStatus_ = builderForValue.build();
          onChanged();
        } else {
          vehicleStatusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * <pre>
       *&#47;Status of each door/window/hood/trunk.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.VehicleStatus vehicleStatus = 8;</code>
       */
      public Builder mergeVehicleStatus(com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus value) {
        if (vehicleStatusBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040) &&
              vehicleStatus_ != null &&
              vehicleStatus_ != com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus.getDefaultInstance()) {
            vehicleStatus_ =
              com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus.newBuilder(vehicleStatus_).mergeFrom(value).buildPartial();
          } else {
            vehicleStatus_ = value;
          }
          onChanged();
        } else {
          vehicleStatusBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * <pre>
       *&#47;Status of each door/window/hood/trunk.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.VehicleStatus vehicleStatus = 8;</code>
       */
      public Builder clearVehicleStatus() {
        if (vehicleStatusBuilder_ == null) {
          vehicleStatus_ = null;
          onChanged();
        } else {
          vehicleStatusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       * <pre>
       *&#47;Status of each door/window/hood/trunk.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.VehicleStatus vehicleStatus = 8;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus.Builder getVehicleStatusBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getVehicleStatusFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *&#47;Status of each door/window/hood/trunk.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.VehicleStatus vehicleStatus = 8;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatusOrBuilder getVehicleStatusOrBuilder() {
        if (vehicleStatusBuilder_ != null) {
          return vehicleStatusBuilder_.getMessageOrBuilder();
        } else {
          return vehicleStatus_ == null ?
              com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus.getDefaultInstance() : vehicleStatus_;
        }
      }
      /**
       * <pre>
       *&#47;Status of each door/window/hood/trunk.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.VehicleStatus vehicleStatus = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus, com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus.Builder, com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatusOrBuilder> 
          getVehicleStatusFieldBuilder() {
        if (vehicleStatusBuilder_ == null) {
          vehicleStatusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus, com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatus.Builder, com.fca.uconnect.global.GlobalUconnectVehicleInfo.VehicleStatusOrBuilder>(
                  getVehicleStatus(),
                  getParentForChildren(),
                  isClean());
          vehicleStatus_ = null;
        }
        return vehicleStatusBuilder_;
      }

      private int triggerMode_ = 0;
      /**
       * <pre>
       *&#47;Trigger mode of the data upload.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.TriggerModeEnum triggerMode = 9;</code>
       */
      public boolean hasTriggerMode() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <pre>
       *&#47;Trigger mode of the data upload.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.TriggerModeEnum triggerMode = 9;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.TriggerModeEnum getTriggerMode() {
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.TriggerModeEnum result = com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.TriggerModeEnum.valueOf(triggerMode_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.TriggerModeEnum.MANUAL : result;
      }
      /**
       * <pre>
       *&#47;Trigger mode of the data upload.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.TriggerModeEnum triggerMode = 9;</code>
       */
      public Builder setTriggerMode(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.TriggerModeEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000080;
        triggerMode_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;Trigger mode of the data upload.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.ECallDataUpload.TriggerModeEnum triggerMode = 9;</code>
       */
      public Builder clearTriggerMode() {
        bitField0_ = (bitField0_ & ~0x00000080);
        triggerMode_ = 0;
        onChanged();
        return this;
      }

      private com.fca.uconnect.global.GlobalUconnectDevice.Device deviceDetails_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectDevice.Device, com.fca.uconnect.global.GlobalUconnectDevice.Device.Builder, com.fca.uconnect.global.GlobalUconnectDevice.DeviceOrBuilder> deviceDetailsBuilder_;
      /**
       * <code>optional .com.fca.uconnect.global.Device deviceDetails = 10;</code>
       */
      public boolean hasDeviceDetails() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <code>optional .com.fca.uconnect.global.Device deviceDetails = 10;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectDevice.Device getDeviceDetails() {
        if (deviceDetailsBuilder_ == null) {
          return deviceDetails_ == null ? com.fca.uconnect.global.GlobalUconnectDevice.Device.getDefaultInstance() : deviceDetails_;
        } else {
          return deviceDetailsBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .com.fca.uconnect.global.Device deviceDetails = 10;</code>
       */
      public Builder setDeviceDetails(com.fca.uconnect.global.GlobalUconnectDevice.Device value) {
        if (deviceDetailsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          deviceDetails_ = value;
          onChanged();
        } else {
          deviceDetailsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .com.fca.uconnect.global.Device deviceDetails = 10;</code>
       */
      public Builder setDeviceDetails(
          com.fca.uconnect.global.GlobalUconnectDevice.Device.Builder builderForValue) {
        if (deviceDetailsBuilder_ == null) {
          deviceDetails_ = builderForValue.build();
          onChanged();
        } else {
          deviceDetailsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .com.fca.uconnect.global.Device deviceDetails = 10;</code>
       */
      public Builder mergeDeviceDetails(com.fca.uconnect.global.GlobalUconnectDevice.Device value) {
        if (deviceDetailsBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100) &&
              deviceDetails_ != null &&
              deviceDetails_ != com.fca.uconnect.global.GlobalUconnectDevice.Device.getDefaultInstance()) {
            deviceDetails_ =
              com.fca.uconnect.global.GlobalUconnectDevice.Device.newBuilder(deviceDetails_).mergeFrom(value).buildPartial();
          } else {
            deviceDetails_ = value;
          }
          onChanged();
        } else {
          deviceDetailsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <code>optional .com.fca.uconnect.global.Device deviceDetails = 10;</code>
       */
      public Builder clearDeviceDetails() {
        if (deviceDetailsBuilder_ == null) {
          deviceDetails_ = null;
          onChanged();
        } else {
          deviceDetailsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       * <code>optional .com.fca.uconnect.global.Device deviceDetails = 10;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectDevice.Device.Builder getDeviceDetailsBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getDeviceDetailsFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .com.fca.uconnect.global.Device deviceDetails = 10;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectDevice.DeviceOrBuilder getDeviceDetailsOrBuilder() {
        if (deviceDetailsBuilder_ != null) {
          return deviceDetailsBuilder_.getMessageOrBuilder();
        } else {
          return deviceDetails_ == null ?
              com.fca.uconnect.global.GlobalUconnectDevice.Device.getDefaultInstance() : deviceDetails_;
        }
      }
      /**
       * <code>optional .com.fca.uconnect.global.Device deviceDetails = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectDevice.Device, com.fca.uconnect.global.GlobalUconnectDevice.Device.Builder, com.fca.uconnect.global.GlobalUconnectDevice.DeviceOrBuilder> 
          getDeviceDetailsFieldBuilder() {
        if (deviceDetailsBuilder_ == null) {
          deviceDetailsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectDevice.Device, com.fca.uconnect.global.GlobalUconnectDevice.Device.Builder, com.fca.uconnect.global.GlobalUconnectDevice.DeviceOrBuilder>(
                  getDeviceDetails(),
                  getParentForChildren(),
                  isClean());
          deviceDetails_ = null;
        }
        return deviceDetailsBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ECallDataUpload)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ECallDataUpload)
    private static final com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

    public static com.google.protobuf.Parser<ECallDataUpload> parser() {
      return PARSER;
    }

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

    public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ECallStatusUpdateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ECallStatusUpdate)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional .com.fca.uconnect.global.ECallStatusUpdate.ECallStatusEnum ecallStatusEnum = 1;</code>
     */
    boolean hasEcallStatusEnum();
    /**
     * <code>optional .com.fca.uconnect.global.ECallStatusUpdate.ECallStatusEnum ecallStatusEnum = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.ECallStatusEnum getEcallStatusEnum();
  }
  /**
   * <pre>
   **
   * This message is to update the status of the call.
   *&lt;div class=exmsg-main&gt;
   * &lt;h4&gt;ECallStatusUpdate Example Message:&lt;/h4&gt;
   * &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   *		timestamp: 1489600243281
   * 		messageId: 2
   * 		messages
   * 		{
   * 		 [com.fca.uconnect.global.ecallStatusUpdate]
   * 		 {
   * 		  ecallStatusEnum: DIAL
   * 		 }
   * 		}
   *	&lt;/code&gt;
   *   &lt;/div&gt;&lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.ECallStatusUpdate}
   */
  public  static final class ECallStatusUpdate extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ECallStatusUpdate)
      ECallStatusUpdateOrBuilder {
    // Use ECallStatusUpdate.newBuilder() to construct.
    private ECallStatusUpdate(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ECallStatusUpdate() {
      ecallStatusEnum_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ECallStatusUpdate(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      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();
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.ECallStatusEnum value = com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.ECallStatusEnum.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                ecallStatusEnum_ = rawValue;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallStatusUpdate_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallStatusUpdate_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.class, com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ECallStatusUpdate.ECallStatusEnum}
     */
    public enum ECallStatusEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>DIAL = 0;</code>
       */
      DIAL(0),
      /**
       * <pre>
       *&#47;This represents the call is cancelled.
       * </pre>
       *
       * <code>CANCELLED = 1;</code>
       */
      CANCELLED(1),
      /**
       * <pre>
       *&#47;This represents the call is terminated.
       * </pre>
       *
       * <code>TERMINATED = 2;</code>
       */
      TERMINATED(2),
      /**
       * <pre>
       *&#47;This is sent when TBM detects dropped call without a terminate tone.
       * </pre>
       *
       * <code>DROPPED_CALL = 3;</code>
       */
      DROPPED_CALL(3),
      /**
       * <pre>
       *&#47;This is sent when TBM fails to Establish CALL.
       * </pre>
       *
       * <code>CALL_FAILED = 4;</code>
       */
      CALL_FAILED(4),
      ;

      /**
       * <code>DIAL = 0;</code>
       */
      public static final int DIAL_VALUE = 0;
      /**
       * <pre>
       *&#47;This represents the call is cancelled.
       * </pre>
       *
       * <code>CANCELLED = 1;</code>
       */
      public static final int CANCELLED_VALUE = 1;
      /**
       * <pre>
       *&#47;This represents the call is terminated.
       * </pre>
       *
       * <code>TERMINATED = 2;</code>
       */
      public static final int TERMINATED_VALUE = 2;
      /**
       * <pre>
       *&#47;This is sent when TBM detects dropped call without a terminate tone.
       * </pre>
       *
       * <code>DROPPED_CALL = 3;</code>
       */
      public static final int DROPPED_CALL_VALUE = 3;
      /**
       * <pre>
       *&#47;This is sent when TBM fails to Establish CALL.
       * </pre>
       *
       * <code>CALL_FAILED = 4;</code>
       */
      public static final int CALL_FAILED_VALUE = 4;


      public final int getNumber() {
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ECallStatusEnum valueOf(int value) {
        return forNumber(value);
      }

      public static ECallStatusEnum forNumber(int value) {
        switch (value) {
          case 0: return DIAL;
          case 1: return CANCELLED;
          case 2: return TERMINATED;
          case 3: return DROPPED_CALL;
          case 4: return CALL_FAILED;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ECallStatusEnum>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ECallStatusEnum> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ECallStatusEnum>() {
              public ECallStatusEnum findValueByNumber(int number) {
                return ECallStatusEnum.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.getDescriptor().getEnumTypes().get(0);
      }

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

      public static ECallStatusEnum 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 value;

      private ECallStatusEnum(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ECallStatusUpdate.ECallStatusEnum)
    }

    private int bitField0_;
    public static final int ECALLSTATUSENUM_FIELD_NUMBER = 1;
    private int ecallStatusEnum_;
    /**
     * <code>optional .com.fca.uconnect.global.ECallStatusUpdate.ECallStatusEnum ecallStatusEnum = 1;</code>
     */
    public boolean hasEcallStatusEnum() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional .com.fca.uconnect.global.ECallStatusUpdate.ECallStatusEnum ecallStatusEnum = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.ECallStatusEnum getEcallStatusEnum() {
      com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.ECallStatusEnum result = com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.ECallStatusEnum.valueOf(ecallStatusEnum_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.ECallStatusEnum.DIAL : result;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, ecallStatusEnum_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, ecallStatusEnum_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate other = (com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate) obj;

      boolean result = true;
      result = result && (hasEcallStatusEnum() == other.hasEcallStatusEnum());
      if (hasEcallStatusEnum()) {
        result = result && ecallStatusEnum_ == other.ecallStatusEnum_;
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasEcallStatusEnum()) {
        hash = (37 * hash) + ECALLSTATUSENUM_FIELD_NUMBER;
        hash = (53 * hash) + ecallStatusEnum_;
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * This message is to update the status of the call.
     *&lt;div class=exmsg-main&gt;
     * &lt;h4&gt;ECallStatusUpdate Example Message:&lt;/h4&gt;
     * &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     *		timestamp: 1489600243281
     * 		messageId: 2
     * 		messages
     * 		{
     * 		 [com.fca.uconnect.global.ecallStatusUpdate]
     * 		 {
     * 		  ecallStatusEnum: DIAL
     * 		 }
     * 		}
     *	&lt;/code&gt;
     *   &lt;/div&gt;&lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.ECallStatusUpdate}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ECallStatusUpdate)
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallStatusUpdate_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallStatusUpdate_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.class, com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        ecallStatusEnum_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallStatusUpdate_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate build() {
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate result = new com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ecallStatusEnum_ = ecallStatusEnum_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.getDefaultInstance()) return this;
        if (other.hasEcallStatusEnum()) {
          setEcallStatusEnum(other.getEcallStatusEnum());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int ecallStatusEnum_ = 0;
      /**
       * <code>optional .com.fca.uconnect.global.ECallStatusUpdate.ECallStatusEnum ecallStatusEnum = 1;</code>
       */
      public boolean hasEcallStatusEnum() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .com.fca.uconnect.global.ECallStatusUpdate.ECallStatusEnum ecallStatusEnum = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.ECallStatusEnum getEcallStatusEnum() {
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.ECallStatusEnum result = com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.ECallStatusEnum.valueOf(ecallStatusEnum_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.ECallStatusEnum.DIAL : result;
      }
      /**
       * <code>optional .com.fca.uconnect.global.ECallStatusUpdate.ECallStatusEnum ecallStatusEnum = 1;</code>
       */
      public Builder setEcallStatusEnum(com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.ECallStatusEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        ecallStatusEnum_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .com.fca.uconnect.global.ECallStatusUpdate.ECallStatusEnum ecallStatusEnum = 1;</code>
       */
      public Builder clearEcallStatusEnum() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ecallStatusEnum_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ECallStatusUpdate)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ECallStatusUpdate)
    private static final com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

    public static com.google.protobuf.Parser<ECallStatusUpdate> parser() {
      return PARSER;
    }

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

    public com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ECallVehDataRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ECallVehDataRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional .com.fca.uconnect.global.ECallVehDataRequest.CallStatusEnum callStatus = 1;</code>
     */
    boolean hasCallStatus();
    /**
     * <code>optional .com.fca.uconnect.global.ECallVehDataRequest.CallStatusEnum callStatus = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.CallStatusEnum getCallStatus();
  }
  /**
   * <pre>
   **
   * This message is to request Veh data from Client and it has no elements.
   * &lt;div class=exmsg-main&gt;
   * &lt;h4&gt;ECallVehDataRequest Example Message:&lt;/h4&gt;
   * &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   *		timestamp: 1489600243281
   * 		messageId: 1
   * 		messages
   * 		{
   * 		 [com.fca.uconnect.global.ecallVehDataRequest]
   * 		 {
   * 			callStatus:TERMINATED
   * 		 }
   * 		}
   *	&lt;/code&gt;
   *   &lt;/div&gt;&lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.ECallVehDataRequest}
   */
  public  static final class ECallVehDataRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ECallVehDataRequest)
      ECallVehDataRequestOrBuilder {
    // Use ECallVehDataRequest.newBuilder() to construct.
    private ECallVehDataRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ECallVehDataRequest() {
      callStatus_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ECallVehDataRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      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();
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.CallStatusEnum value = com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.CallStatusEnum.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                callStatus_ = rawValue;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallVehDataRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallVehDataRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.class, com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ECallVehDataRequest.CallStatusEnum}
     */
    public enum CallStatusEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47;Terminated
       * </pre>
       *
       * <code>TERMINATED = 0;</code>
       */
      TERMINATED(0),
      /**
       * <pre>
       *&#47;Terminated for Other Reasons.
       * </pre>
       *
       * <code>TERMINATED_OTHER = 1;</code>
       */
      TERMINATED_OTHER(1),
      /**
       * <pre>
       *&#47; Call is not terminated ,send the data and stay on line.
       * </pre>
       *
       * <code>NOT_TERMINATED = 2;</code>
       */
      NOT_TERMINATED(2),
      ;

      /**
       * <pre>
       *&#47;Terminated
       * </pre>
       *
       * <code>TERMINATED = 0;</code>
       */
      public static final int TERMINATED_VALUE = 0;
      /**
       * <pre>
       *&#47;Terminated for Other Reasons.
       * </pre>
       *
       * <code>TERMINATED_OTHER = 1;</code>
       */
      public static final int TERMINATED_OTHER_VALUE = 1;
      /**
       * <pre>
       *&#47; Call is not terminated ,send the data and stay on line.
       * </pre>
       *
       * <code>NOT_TERMINATED = 2;</code>
       */
      public static final int NOT_TERMINATED_VALUE = 2;


      public final int getNumber() {
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static CallStatusEnum valueOf(int value) {
        return forNumber(value);
      }

      public static CallStatusEnum forNumber(int value) {
        switch (value) {
          case 0: return TERMINATED;
          case 1: return TERMINATED_OTHER;
          case 2: return NOT_TERMINATED;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<CallStatusEnum>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          CallStatusEnum> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<CallStatusEnum>() {
              public CallStatusEnum findValueByNumber(int number) {
                return CallStatusEnum.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.getDescriptor().getEnumTypes().get(0);
      }

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

      public static CallStatusEnum 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 value;

      private CallStatusEnum(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ECallVehDataRequest.CallStatusEnum)
    }

    private int bitField0_;
    public static final int CALLSTATUS_FIELD_NUMBER = 1;
    private int callStatus_;
    /**
     * <code>optional .com.fca.uconnect.global.ECallVehDataRequest.CallStatusEnum callStatus = 1;</code>
     */
    public boolean hasCallStatus() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional .com.fca.uconnect.global.ECallVehDataRequest.CallStatusEnum callStatus = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.CallStatusEnum getCallStatus() {
      com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.CallStatusEnum result = com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.CallStatusEnum.valueOf(callStatus_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.CallStatusEnum.TERMINATED : result;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, callStatus_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, callStatus_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest other = (com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest) obj;

      boolean result = true;
      result = result && (hasCallStatus() == other.hasCallStatus());
      if (hasCallStatus()) {
        result = result && callStatus_ == other.callStatus_;
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasCallStatus()) {
        hash = (37 * hash) + CALLSTATUS_FIELD_NUMBER;
        hash = (53 * hash) + callStatus_;
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * This message is to request Veh data from Client and it has no elements.
     * &lt;div class=exmsg-main&gt;
     * &lt;h4&gt;ECallVehDataRequest Example Message:&lt;/h4&gt;
     * &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     *		timestamp: 1489600243281
     * 		messageId: 1
     * 		messages
     * 		{
     * 		 [com.fca.uconnect.global.ecallVehDataRequest]
     * 		 {
     * 			callStatus:TERMINATED
     * 		 }
     * 		}
     *	&lt;/code&gt;
     *   &lt;/div&gt;&lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.ECallVehDataRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ECallVehDataRequest)
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallVehDataRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallVehDataRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.class, com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        callStatus_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallVehDataRequest_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest build() {
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest result = new com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.callStatus_ = callStatus_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.getDefaultInstance()) return this;
        if (other.hasCallStatus()) {
          setCallStatus(other.getCallStatus());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int callStatus_ = 0;
      /**
       * <code>optional .com.fca.uconnect.global.ECallVehDataRequest.CallStatusEnum callStatus = 1;</code>
       */
      public boolean hasCallStatus() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .com.fca.uconnect.global.ECallVehDataRequest.CallStatusEnum callStatus = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.CallStatusEnum getCallStatus() {
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.CallStatusEnum result = com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.CallStatusEnum.valueOf(callStatus_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.CallStatusEnum.TERMINATED : result;
      }
      /**
       * <code>optional .com.fca.uconnect.global.ECallVehDataRequest.CallStatusEnum callStatus = 1;</code>
       */
      public Builder setCallStatus(com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.CallStatusEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        callStatus_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .com.fca.uconnect.global.ECallVehDataRequest.CallStatusEnum callStatus = 1;</code>
       */
      public Builder clearCallStatus() {
        bitField0_ = (bitField0_ & ~0x00000001);
        callStatus_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ECallVehDataRequest)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ECallVehDataRequest)
    private static final com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

    public static com.google.protobuf.Parser<ECallVehDataRequest> parser() {
      return PARSER;
    }

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

    public com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ECallVehDataResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ECallVehDataResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional .com.fca.uconnect.global.ECallDataUpload eCallDataUpload = 1;</code>
     */
    boolean hasECallDataUpload();
    /**
     * <code>optional .com.fca.uconnect.global.ECallDataUpload eCallDataUpload = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload getECallDataUpload();
    /**
     * <code>optional .com.fca.uconnect.global.ECallDataUpload eCallDataUpload = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUploadOrBuilder getECallDataUploadOrBuilder();

    /**
     * <code>optional .com.fca.uconnect.global.ECallVehDataResponse.ResponseEnum response = 2;</code>
     */
    boolean hasResponse();
    /**
     * <code>optional .com.fca.uconnect.global.ECallVehDataResponse.ResponseEnum response = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.ResponseEnum getResponse();

    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>optional bool isTransient = 3;</code>
     */
    boolean hasIsTransient();
    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>optional bool isTransient = 3;</code>
     */
    boolean getIsTransient();

    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>optional int32 failureReasonCode = 4;</code>
     */
    boolean hasFailureReasonCode();
    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>optional int32 failureReasonCode = 4;</code>
     */
    int getFailureReasonCode();
  }
  /**
   * <pre>
   **
   * This message sends Veh data to SDP when it requests for Veh data.
   * &lt;div class=exmsg-main&gt;
   * &lt;h4&gt;ECallVehDataRequest Example Message:&lt;/h4&gt;
   * &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   *		timestamp: 1489600243281
   * 		messageId: 3
   * 		messages
   * 		{
   * 		 [com.fca.uconnect.global.ecallVehDataResponse]
   * 		 {
   * 		  ecallDataUpload
   * 		 {
   * 		  vehicleId: "1234AXFGFGHGH4566"
   * 		  isPositionTrusted: true
   * 		  timeStamp: 1489600238256
   * 		  vehicleLocation
   * 		  {
   * 			longitude: 43.9999
   * 			latitude: -84.54636
   * 		  }
   * 		 numberOfPassengers: 1
   * 		 airBagStatus
   * 		 {
   * 		  driver: false
   * 		  driverKnee: false
   * 		  passenger: false
   * 		  passengerKnee: false
   * 		  leftSideCurtain: false
   * 		  leftSeat: false
   * 		  rightSeat: false
   * 		}
   * 		  vehicleSpeed: 75.0
   * 		  tyrePressure: 45.0
   * 		  engineStatus: STOP
   * 	    }
   * 	    }
   * 	   }
   * 	  }
   *	&lt;/code&gt;
   *   &lt;/div&gt;&lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.ECallVehDataResponse}
   */
  public  static final class ECallVehDataResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ECallVehDataResponse)
      ECallVehDataResponseOrBuilder {
    // Use ECallVehDataResponse.newBuilder() to construct.
    private ECallVehDataResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ECallVehDataResponse() {
      response_ = 0;
      isTransient_ = false;
      failureReasonCode_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ECallVehDataResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      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: {
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = eCallDataUpload_.toBuilder();
              }
              eCallDataUpload_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(eCallDataUpload_);
                eCallDataUpload_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.ResponseEnum value = com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.ResponseEnum.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(2, rawValue);
              } else {
                bitField0_ |= 0x00000002;
                response_ = rawValue;
              }
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              isTransient_ = input.readBool();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              failureReasonCode_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallVehDataResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallVehDataResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.class, com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ECallVehDataResponse.ResponseEnum}
     */
    public enum ResponseEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>SUCCESS = 0;</code>
       */
      SUCCESS(0),
      /**
       * <code>FAILURE = 1;</code>
       */
      FAILURE(1),
      ;

      /**
       * <code>SUCCESS = 0;</code>
       */
      public static final int SUCCESS_VALUE = 0;
      /**
       * <code>FAILURE = 1;</code>
       */
      public static final int FAILURE_VALUE = 1;


      public final int getNumber() {
        return value;
      }

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ResponseEnum valueOf(int value) {
        return forNumber(value);
      }

      public static ResponseEnum forNumber(int value) {
        switch (value) {
          case 0: return SUCCESS;
          case 1: return FAILURE;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ResponseEnum>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ResponseEnum> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ResponseEnum>() {
              public ResponseEnum findValueByNumber(int number) {
                return ResponseEnum.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.getDescriptor().getEnumTypes().get(0);
      }

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

      public static ResponseEnum 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 value;

      private ResponseEnum(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ECallVehDataResponse.ResponseEnum)
    }

    private int bitField0_;
    public static final int ECALLDATAUPLOAD_FIELD_NUMBER = 1;
    private com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload eCallDataUpload_;
    /**
     * <code>optional .com.fca.uconnect.global.ECallDataUpload eCallDataUpload = 1;</code>
     */
    public boolean hasECallDataUpload() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional .com.fca.uconnect.global.ECallDataUpload eCallDataUpload = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload getECallDataUpload() {
      return eCallDataUpload_ == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.getDefaultInstance() : eCallDataUpload_;
    }
    /**
     * <code>optional .com.fca.uconnect.global.ECallDataUpload eCallDataUpload = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUploadOrBuilder getECallDataUploadOrBuilder() {
      return eCallDataUpload_ == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.getDefaultInstance() : eCallDataUpload_;
    }

    public static final int RESPONSE_FIELD_NUMBER = 2;
    private int response_;
    /**
     * <code>optional .com.fca.uconnect.global.ECallVehDataResponse.ResponseEnum response = 2;</code>
     */
    public boolean hasResponse() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional .com.fca.uconnect.global.ECallVehDataResponse.ResponseEnum response = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.ResponseEnum getResponse() {
      com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.ResponseEnum.valueOf(response_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.ResponseEnum.SUCCESS : result;
    }

    public static final int ISTRANSIENT_FIELD_NUMBER = 3;
    private boolean isTransient_;
    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>optional bool isTransient = 3;</code>
     */
    public boolean hasIsTransient() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>optional bool isTransient = 3;</code>
     */
    public boolean getIsTransient() {
      return isTransient_;
    }

    public static final int FAILUREREASONCODE_FIELD_NUMBER = 4;
    private int failureReasonCode_;
    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>optional int32 failureReasonCode = 4;</code>
     */
    public boolean hasFailureReasonCode() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>optional int32 failureReasonCode = 4;</code>
     */
    public int getFailureReasonCode() {
      return failureReasonCode_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getECallDataUpload());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, response_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, isTransient_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, failureReasonCode_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getECallDataUpload());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, response_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, isTransient_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, failureReasonCode_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse other = (com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse) obj;

      boolean result = true;
      result = result && (hasECallDataUpload() == other.hasECallDataUpload());
      if (hasECallDataUpload()) {
        result = result && getECallDataUpload()
            .equals(other.getECallDataUpload());
      }
      result = result && (hasResponse() == other.hasResponse());
      if (hasResponse()) {
        result = result && response_ == other.response_;
      }
      result = result && (hasIsTransient() == other.hasIsTransient());
      if (hasIsTransient()) {
        result = result && (getIsTransient()
            == other.getIsTransient());
      }
      result = result && (hasFailureReasonCode() == other.hasFailureReasonCode());
      if (hasFailureReasonCode()) {
        result = result && (getFailureReasonCode()
            == other.getFailureReasonCode());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasECallDataUpload()) {
        hash = (37 * hash) + ECALLDATAUPLOAD_FIELD_NUMBER;
        hash = (53 * hash) + getECallDataUpload().hashCode();
      }
      if (hasResponse()) {
        hash = (37 * hash) + RESPONSE_FIELD_NUMBER;
        hash = (53 * hash) + response_;
      }
      if (hasIsTransient()) {
        hash = (37 * hash) + ISTRANSIENT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsTransient());
      }
      if (hasFailureReasonCode()) {
        hash = (37 * hash) + FAILUREREASONCODE_FIELD_NUMBER;
        hash = (53 * hash) + getFailureReasonCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * This message sends Veh data to SDP when it requests for Veh data.
     * &lt;div class=exmsg-main&gt;
     * &lt;h4&gt;ECallVehDataRequest Example Message:&lt;/h4&gt;
     * &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     *		timestamp: 1489600243281
     * 		messageId: 3
     * 		messages
     * 		{
     * 		 [com.fca.uconnect.global.ecallVehDataResponse]
     * 		 {
     * 		  ecallDataUpload
     * 		 {
     * 		  vehicleId: "1234AXFGFGHGH4566"
     * 		  isPositionTrusted: true
     * 		  timeStamp: 1489600238256
     * 		  vehicleLocation
     * 		  {
     * 			longitude: 43.9999
     * 			latitude: -84.54636
     * 		  }
     * 		 numberOfPassengers: 1
     * 		 airBagStatus
     * 		 {
     * 		  driver: false
     * 		  driverKnee: false
     * 		  passenger: false
     * 		  passengerKnee: false
     * 		  leftSideCurtain: false
     * 		  leftSeat: false
     * 		  rightSeat: false
     * 		}
     * 		  vehicleSpeed: 75.0
     * 		  tyrePressure: 45.0
     * 		  engineStatus: STOP
     * 	    }
     * 	    }
     * 	   }
     * 	  }
     *	&lt;/code&gt;
     *   &lt;/div&gt;&lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.ECallVehDataResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ECallVehDataResponse)
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallVehDataResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallVehDataResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.class, com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getECallDataUploadFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (eCallDataUploadBuilder_ == null) {
          eCallDataUpload_ = null;
        } else {
          eCallDataUploadBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        response_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        isTransient_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        failureReasonCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.internal_static_com_fca_uconnect_global_ECallVehDataResponse_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse build() {
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse result = new com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (eCallDataUploadBuilder_ == null) {
          result.eCallDataUpload_ = eCallDataUpload_;
        } else {
          result.eCallDataUpload_ = eCallDataUploadBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.response_ = response_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.isTransient_ = isTransient_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.failureReasonCode_ = failureReasonCode_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.getDefaultInstance()) return this;
        if (other.hasECallDataUpload()) {
          mergeECallDataUpload(other.getECallDataUpload());
        }
        if (other.hasResponse()) {
          setResponse(other.getResponse());
        }
        if (other.hasIsTransient()) {
          setIsTransient(other.getIsTransient());
        }
        if (other.hasFailureReasonCode()) {
          setFailureReasonCode(other.getFailureReasonCode());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload eCallDataUpload_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.Builder, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUploadOrBuilder> eCallDataUploadBuilder_;
      /**
       * <code>optional .com.fca.uconnect.global.ECallDataUpload eCallDataUpload = 1;</code>
       */
      public boolean hasECallDataUpload() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .com.fca.uconnect.global.ECallDataUpload eCallDataUpload = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload getECallDataUpload() {
        if (eCallDataUploadBuilder_ == null) {
          return eCallDataUpload_ == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.getDefaultInstance() : eCallDataUpload_;
        } else {
          return eCallDataUploadBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .com.fca.uconnect.global.ECallDataUpload eCallDataUpload = 1;</code>
       */
      public Builder setECallDataUpload(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload value) {
        if (eCallDataUploadBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          eCallDataUpload_ = value;
          onChanged();
        } else {
          eCallDataUploadBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .com.fca.uconnect.global.ECallDataUpload eCallDataUpload = 1;</code>
       */
      public Builder setECallDataUpload(
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.Builder builderForValue) {
        if (eCallDataUploadBuilder_ == null) {
          eCallDataUpload_ = builderForValue.build();
          onChanged();
        } else {
          eCallDataUploadBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .com.fca.uconnect.global.ECallDataUpload eCallDataUpload = 1;</code>
       */
      public Builder mergeECallDataUpload(com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload value) {
        if (eCallDataUploadBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              eCallDataUpload_ != null &&
              eCallDataUpload_ != com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.getDefaultInstance()) {
            eCallDataUpload_ =
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.newBuilder(eCallDataUpload_).mergeFrom(value).buildPartial();
          } else {
            eCallDataUpload_ = value;
          }
          onChanged();
        } else {
          eCallDataUploadBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .com.fca.uconnect.global.ECallDataUpload eCallDataUpload = 1;</code>
       */
      public Builder clearECallDataUpload() {
        if (eCallDataUploadBuilder_ == null) {
          eCallDataUpload_ = null;
          onChanged();
        } else {
          eCallDataUploadBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>optional .com.fca.uconnect.global.ECallDataUpload eCallDataUpload = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.Builder getECallDataUploadBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getECallDataUploadFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .com.fca.uconnect.global.ECallDataUpload eCallDataUpload = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUploadOrBuilder getECallDataUploadOrBuilder() {
        if (eCallDataUploadBuilder_ != null) {
          return eCallDataUploadBuilder_.getMessageOrBuilder();
        } else {
          return eCallDataUpload_ == null ?
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.getDefaultInstance() : eCallDataUpload_;
        }
      }
      /**
       * <code>optional .com.fca.uconnect.global.ECallDataUpload eCallDataUpload = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.Builder, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUploadOrBuilder> 
          getECallDataUploadFieldBuilder() {
        if (eCallDataUploadBuilder_ == null) {
          eCallDataUploadBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.Builder, com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUploadOrBuilder>(
                  getECallDataUpload(),
                  getParentForChildren(),
                  isClean());
          eCallDataUpload_ = null;
        }
        return eCallDataUploadBuilder_;
      }

      private int response_ = 0;
      /**
       * <code>optional .com.fca.uconnect.global.ECallVehDataResponse.ResponseEnum response = 2;</code>
       */
      public boolean hasResponse() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .com.fca.uconnect.global.ECallVehDataResponse.ResponseEnum response = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.ResponseEnum getResponse() {
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.ResponseEnum.valueOf(response_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.ResponseEnum.SUCCESS : result;
      }
      /**
       * <code>optional .com.fca.uconnect.global.ECallVehDataResponse.ResponseEnum response = 2;</code>
       */
      public Builder setResponse(com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.ResponseEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        response_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .com.fca.uconnect.global.ECallVehDataResponse.ResponseEnum response = 2;</code>
       */
      public Builder clearResponse() {
        bitField0_ = (bitField0_ & ~0x00000002);
        response_ = 0;
        onChanged();
        return this;
      }

      private boolean isTransient_ ;
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>optional bool isTransient = 3;</code>
       */
      public boolean hasIsTransient() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>optional bool isTransient = 3;</code>
       */
      public boolean getIsTransient() {
        return isTransient_;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>optional bool isTransient = 3;</code>
       */
      public Builder setIsTransient(boolean value) {
        bitField0_ |= 0x00000004;
        isTransient_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>optional bool isTransient = 3;</code>
       */
      public Builder clearIsTransient() {
        bitField0_ = (bitField0_ & ~0x00000004);
        isTransient_ = false;
        onChanged();
        return this;
      }

      private int failureReasonCode_ ;
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>optional int32 failureReasonCode = 4;</code>
       */
      public boolean hasFailureReasonCode() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>optional int32 failureReasonCode = 4;</code>
       */
      public int getFailureReasonCode() {
        return failureReasonCode_;
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>optional int32 failureReasonCode = 4;</code>
       */
      public Builder setFailureReasonCode(int value) {
        bitField0_ |= 0x00000008;
        failureReasonCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>optional int32 failureReasonCode = 4;</code>
       */
      public Builder clearFailureReasonCode() {
        bitField0_ = (bitField0_ & ~0x00000008);
        failureReasonCode_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ECallVehDataResponse)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ECallVehDataResponse)
    private static final com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

    public static com.google.protobuf.Parser<ECallVehDataResponse> parser() {
      return PARSER;
    }

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

    public com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public static final int ECALLDATAUPLOAD_FIELD_NUMBER = 160;
  /**
   * <code>extend .com.fca.uconnect.global.UconnectAny { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      com.fca.uconnect.global.GlobalUconnectControl.UconnectAny,
      com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload> ecallDataUpload = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.class,
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallDataUpload.getDefaultInstance());
  public static final int ECALLSTATUSUPDATE_FIELD_NUMBER = 161;
  /**
   * <code>extend .com.fca.uconnect.global.UconnectAny { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      com.fca.uconnect.global.GlobalUconnectControl.UconnectAny,
      com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate> ecallStatusUpdate = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.class,
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallStatusUpdate.getDefaultInstance());
  public static final int ECALLVEHDATAREQUEST_FIELD_NUMBER = 162;
  /**
   * <code>extend .com.fca.uconnect.global.UconnectAny { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      com.fca.uconnect.global.GlobalUconnectControl.UconnectAny,
      com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest> ecallVehDataRequest = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.class,
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataRequest.getDefaultInstance());
  public static final int ECALLVEHDATARESPONSE_FIELD_NUMBER = 163;
  /**
   * <code>extend .com.fca.uconnect.global.UconnectAny { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      com.fca.uconnect.global.GlobalUconnectControl.UconnectAny,
      com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse> ecallVehDataResponse = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.class,
        com.fca.uconnect.global.GlobalUconnectExtECall.ECallVehDataResponse.getDefaultInstance());
  public static final int ECALLACKMESSAGE_FIELD_NUMBER = 164;
  /**
   * <code>extend .com.fca.uconnect.global.UconnectAny { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      com.fca.uconnect.global.GlobalUconnectControl.UconnectAny,
      com.fca.uconnect.global.GlobalUconnectControl.AckMessage> eCallAckMessage = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        com.fca.uconnect.global.GlobalUconnectControl.AckMessage.class,
        com.fca.uconnect.global.GlobalUconnectControl.AckMessage.getDefaultInstance());
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ECallDataUpload_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ECallDataUpload_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ECallDataUpload_AirBagStatus_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ECallDataUpload_AirBagStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ECallDataUpload_SeatState_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ECallDataUpload_SeatState_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ECallStatusUpdate_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ECallStatusUpdate_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ECallVehDataRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ECallVehDataRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ECallVehDataResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ECallVehDataResponse_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\037Global_Uconnect_Ext_ECall.proto\022\027com.f" +
      "ca.uconnect.global\032\035Global_Uconnect_Cont" +
      "rol.proto\032\032Global_Uconnect_GNSS.proto\032!G" +
      "lobal_Uconnect_VehicleInfo.proto\032\034Global" +
      "_Uconnect_Device.proto\"\267\007\n\017ECallDataUplo" +
      "ad\0229\n\013vehicleInfo\030\001 \001(\0132$.com.fca.uconne" +
      "ct.global.VehicleInfo\022\021\n\ttimeStamp\030\002 \001(\003" +
      "\022\032\n\022numberOfPassengers\030\004 \001(\005\022K\n\014airBagSt" +
      "atus\030\005 \001(\01325.com.fca.uconnect.global.ECa" +
      "llDataUpload.AirBagStatus\022H\n\014seatOccupie",
      "d\030\006 \001(\01322.com.fca.uconnect.global.ECallD" +
      "ataUpload.SeatState\022G\n\013beltBuckled\030\007 \001(\013" +
      "22.com.fca.uconnect.global.ECallDataUplo" +
      "ad.SeatState\022=\n\rvehicleStatus\030\010 \001(\0132&.co" +
      "m.fca.uconnect.global.VehicleStatus\022M\n\013t" +
      "riggerMode\030\t \001(\01628.com.fca.uconnect.glob" +
      "al.ECallDataUpload.TriggerModeEnum\0226\n\rde" +
      "viceDetails\030\n \001(\0132\037.com.fca.uconnect.glo" +
      "bal.Device\032\304\001\n\014AirBagStatus\022\020\n\010isDriver\030" +
      "\001 \001(\010\022\024\n\014isDriverKnee\030\002 \001(\010\022\023\n\013isPasseng",
      "er\030\003 \001(\010\022\027\n\017isPassengerKnee\030\004 \001(\010\022\031\n\021isL" +
      "eftSideCurtain\030\005 \001(\010\022\032\n\022isRightSideCurta" +
      "in\030\006 \001(\010\022\022\n\nisLeftSeat\030\007 \001(\010\022\023\n\013isRightS" +
      "eat\030\010 \001(\010\032\236\001\n\tSeatState\022\023\n\013isFrontLeft\030\001" +
      " \001(\010\022\024\n\014isFrontRight\030\002 \001(\010\022\022\n\nisRearLeft" +
      "\030\003 \001(\010\022\023\n\013isRearRight\030\004 \001(\010\022\024\n\014isRearMid" +
      "dle\030\005 \001(\010\022\022\n\nisTailLeft\030\006 \001(\010\022\023\n\013isTailR" +
      "ight\030\007 \001(\010\",\n\017TriggerModeEnum\022\n\n\006MANUAL\020" +
      "\000\022\r\n\tAUTOMATIC\020\001\"\307\001\n\021ECallStatusUpdate\022S" +
      "\n\017ecallStatusEnum\030\001 \001(\0162:.com.fca.uconne",
      "ct.global.ECallStatusUpdate.ECallStatusE" +
      "num\"]\n\017ECallStatusEnum\022\010\n\004DIAL\020\000\022\r\n\tCANC" +
      "ELLED\020\001\022\016\n\nTERMINATED\020\002\022\020\n\014DROPPED_CALL\020" +
      "\003\022\017\n\013CALL_FAILED\020\004\"\262\001\n\023ECallVehDataReque" +
      "st\022O\n\ncallStatus\030\001 \001(\0162;.com.fca.uconnec" +
      "t.global.ECallVehDataRequest.CallStatusE" +
      "num\"J\n\016CallStatusEnum\022\016\n\nTERMINATED\020\000\022\024\n" +
      "\020TERMINATED_OTHER\020\001\022\022\n\016NOT_TERMINATED\020\002\"" +
      "\201\002\n\024ECallVehDataResponse\022A\n\017eCallDataUpl" +
      "oad\030\001 \001(\0132(.com.fca.uconnect.global.ECal",
      "lDataUpload\022L\n\010response\030\002 \001(\0162:.com.fca." +
      "uconnect.global.ECallVehDataResponse.Res" +
      "ponseEnum\022\023\n\013isTransient\030\003 \001(\010\022\031\n\021failur" +
      "eReasonCode\030\004 \001(\005\"(\n\014ResponseEnum\022\013\n\007SUC" +
      "CESS\020\000\022\013\n\007FAILURE\020\001:h\n\017ecallDataUpload\022$" +
      ".com.fca.uconnect.global.UconnectAny\030\240\001 " +
      "\001(\0132(.com.fca.uconnect.global.ECallDataU" +
      "pload:l\n\021ecallStatusUpdate\022$.com.fca.uco" +
      "nnect.global.UconnectAny\030\241\001 \001(\0132*.com.fc" +
      "a.uconnect.global.ECallStatusUpdate:p\n\023e",
      "callVehDataRequest\022$.com.fca.uconnect.gl" +
      "obal.UconnectAny\030\242\001 \001(\0132,.com.fca.uconne" +
      "ct.global.ECallVehDataRequest:r\n\024ecallVe" +
      "hDataResponse\022$.com.fca.uconnect.global." +
      "UconnectAny\030\243\001 \001(\0132-.com.fca.uconnect.gl" +
      "obal.ECallVehDataResponse:c\n\017eCallAckMes" +
      "sage\022$.com.fca.uconnect.global.UconnectA" +
      "ny\030\244\001 \001(\0132#.com.fca.uconnect.global.AckM" +
      "essageP\000P\001P\002P\003"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.fca.uconnect.global.GlobalUconnectControl.getDescriptor(),
          com.fca.uconnect.global.GlobalUconnectGNSS.getDescriptor(),
          com.fca.uconnect.global.GlobalUconnectVehicleInfo.getDescriptor(),
          com.fca.uconnect.global.GlobalUconnectDevice.getDescriptor(),
        }, assigner);
    internal_static_com_fca_uconnect_global_ECallDataUpload_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_com_fca_uconnect_global_ECallDataUpload_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ECallDataUpload_descriptor,
        new java.lang.String[] { "VehicleInfo", "TimeStamp", "NumberOfPassengers", "AirBagStatus", "SeatOccupied", "BeltBuckled", "VehicleStatus", "TriggerMode", "DeviceDetails", });
    internal_static_com_fca_uconnect_global_ECallDataUpload_AirBagStatus_descriptor =
      internal_static_com_fca_uconnect_global_ECallDataUpload_descriptor.getNestedTypes().get(0);
    internal_static_com_fca_uconnect_global_ECallDataUpload_AirBagStatus_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ECallDataUpload_AirBagStatus_descriptor,
        new java.lang.String[] { "IsDriver", "IsDriverKnee", "IsPassenger", "IsPassengerKnee", "IsLeftSideCurtain", "IsRightSideCurtain", "IsLeftSeat", "IsRightSeat", });
    internal_static_com_fca_uconnect_global_ECallDataUpload_SeatState_descriptor =
      internal_static_com_fca_uconnect_global_ECallDataUpload_descriptor.getNestedTypes().get(1);
    internal_static_com_fca_uconnect_global_ECallDataUpload_SeatState_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ECallDataUpload_SeatState_descriptor,
        new java.lang.String[] { "IsFrontLeft", "IsFrontRight", "IsRearLeft", "IsRearRight", "IsRearMiddle", "IsTailLeft", "IsTailRight", });
    internal_static_com_fca_uconnect_global_ECallStatusUpdate_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_com_fca_uconnect_global_ECallStatusUpdate_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ECallStatusUpdate_descriptor,
        new java.lang.String[] { "EcallStatusEnum", });
    internal_static_com_fca_uconnect_global_ECallVehDataRequest_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_com_fca_uconnect_global_ECallVehDataRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ECallVehDataRequest_descriptor,
        new java.lang.String[] { "CallStatus", });
    internal_static_com_fca_uconnect_global_ECallVehDataResponse_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_com_fca_uconnect_global_ECallVehDataResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ECallVehDataResponse_descriptor,
        new java.lang.String[] { "ECallDataUpload", "Response", "IsTransient", "FailureReasonCode", });
    ecallDataUpload.internalInit(descriptor.getExtensions().get(0));
    ecallStatusUpdate.internalInit(descriptor.getExtensions().get(1));
    ecallVehDataRequest.internalInit(descriptor.getExtensions().get(2));
    ecallVehDataResponse.internalInit(descriptor.getExtensions().get(3));
    eCallAckMessage.internalInit(descriptor.getExtensions().get(4));
    com.fca.uconnect.global.GlobalUconnectControl.getDescriptor();
    com.fca.uconnect.global.GlobalUconnectGNSS.getDescriptor();
    com.fca.uconnect.global.GlobalUconnectVehicleInfo.getDescriptor();
    com.fca.uconnect.global.GlobalUconnectDevice.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
