// DO NOT EDIT.
// swift-format-ignore-file
//
// Generated by the Swift generator plugin for the protocol buffer compiler.
// Source: SignalService.proto
//
// For information on using the generated types, please see the documentation:
//   https://github.com/apple/swift-protobuf/

//*
// Copyright (C) 2014-2016 Open Whisper Systems
//
// Licensed according to the LICENSE file in this repository.

/// iOS - since we use a modern proto-compiler, we must specify
/// the legacy proto format.

import Foundation
import SwiftProtobuf

// If the compiler emits an error on this type, it is because this file
// was generated by a version of the `protoc` Swift plug-in that is
// incompatible with the version of SwiftProtobuf to which you are linking.
// Please ensure that you are building against the same version of the API
// that was used to generate this file.
fileprivate struct _GeneratedWithProtocGenSwiftVersion: SwiftProtobuf.ProtobufAPIVersionCheck {
  struct _2: SwiftProtobuf.ProtobufAPIVersion_2 {}
  typealias Version = _2
}

struct SignalServiceProtos_Envelope {
  // SwiftProtobuf.Message conformance is added in an extension below. See the
  // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
  // methods supported on all messages.

  /// @required
  var type: SignalServiceProtos_Envelope.TypeEnum {
    get {return _type ?? .unknown}
    set {_type = newValue}
  }
  /// Returns true if `type` has been explicitly set.
  var hasType: Bool {return self._type != nil}
  /// Clears the value of `type`. Subsequent reads from it will return its default value.
  mutating func clearType() {self._type = nil}

  var source: String {
    get {return _source ?? String()}
    set {_source = newValue}
  }
  /// Returns true if `source` has been explicitly set.
  var hasSource: Bool {return self._source != nil}
  /// Clears the value of `source`. Subsequent reads from it will return its default value.
  mutating func clearSource() {self._source = nil}

  var sourceDevice: UInt32 {
    get {return _sourceDevice ?? 0}
    set {_sourceDevice = newValue}
  }
  /// Returns true if `sourceDevice` has been explicitly set.
  var hasSourceDevice: Bool {return self._sourceDevice != nil}
  /// Clears the value of `sourceDevice`. Subsequent reads from it will return its default value.
  mutating func clearSourceDevice() {self._sourceDevice = nil}

  var relay: String {
    get {return _relay ?? String()}
    set {_relay = newValue}
  }
  /// Returns true if `relay` has been explicitly set.
  var hasRelay: Bool {return self._relay != nil}
  /// Clears the value of `relay`. Subsequent reads from it will return its default value.
  mutating func clearRelay() {self._relay = nil}

  /// @required
  var timestamp: UInt64 {
    get {return _timestamp ?? 0}
    set {_timestamp = newValue}
  }
  /// Returns true if `timestamp` has been explicitly set.
  var hasTimestamp: Bool {return self._timestamp != nil}
  /// Clears the value of `timestamp`. Subsequent reads from it will return its default value.
  mutating func clearTimestamp() {self._timestamp = nil}

  /// Contains an encrypted DataMessage
  var legacyMessage: Data {
    get {return _legacyMessage ?? SwiftProtobuf.Internal.emptyData}
    set {_legacyMessage = newValue}
  }
  /// Returns true if `legacyMessage` has been explicitly set.
  var hasLegacyMessage: Bool {return self._legacyMessage != nil}
  /// Clears the value of `legacyMessage`. Subsequent reads from it will return its default value.
  mutating func clearLegacyMessage() {self._legacyMessage = nil}

  /// Contains an encrypted Content
  var content: Data {
    get {return _content ?? SwiftProtobuf.Internal.emptyData}
    set {_content = newValue}
  }
  /// Returns true if `content` has been explicitly set.
  var hasContent: Bool {return self._content != nil}
  /// Clears the value of `content`. Subsequent reads from it will return its default value.
  mutating func clearContent() {self._content = nil}

  /// We may eventually want to make this required.
  var serverGuid: String {
    get {return _serverGuid ?? String()}
    set {_serverGuid = newValue}
  }
  /// Returns true if `serverGuid` has been explicitly set.
  var hasServerGuid: Bool {return self._serverGuid != nil}
  /// Clears the value of `serverGuid`. Subsequent reads from it will return its default value.
  mutating func clearServerGuid() {self._serverGuid = nil}

  /// We may eventually want to make this required.
  var serverTimestamp: UInt64 {
    get {return _serverTimestamp ?? 0}
    set {_serverTimestamp = newValue}
  }
  /// Returns true if `serverTimestamp` has been explicitly set.
  var hasServerTimestamp: Bool {return self._serverTimestamp != nil}
  /// Clears the value of `serverTimestamp`. Subsequent reads from it will return its default value.
  mutating func clearServerTimestamp() {self._serverTimestamp = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  enum TypeEnum: SwiftProtobuf.Enum {
    typealias RawValue = Int
    case unknown // = 0
    case ciphertext // = 1
    case keyExchange // = 2
    case prekeyBundle // = 3
    case receipt // = 5
    case unidentifiedSender // = 6

    /// Loki
    case closedGroupCiphertext // = 7

    /// Loki: Encrypted using the fallback session cipher. Contains a pre key bundle if it's a session request.
    case fallbackMessage // = 101

    init() {
      self = .unknown
    }

    init?(rawValue: Int) {
      switch rawValue {
      case 0: self = .unknown
      case 1: self = .ciphertext
      case 2: self = .keyExchange
      case 3: self = .prekeyBundle
      case 5: self = .receipt
      case 6: self = .unidentifiedSender
      case 7: self = .closedGroupCiphertext
      case 101: self = .fallbackMessage
      default: return nil
      }
    }

    var rawValue: Int {
      switch self {
      case .unknown: return 0
      case .ciphertext: return 1
      case .keyExchange: return 2
      case .prekeyBundle: return 3
      case .receipt: return 5
      case .unidentifiedSender: return 6
      case .closedGroupCiphertext: return 7
      case .fallbackMessage: return 101
      }
    }

  }

  init() {}

  fileprivate var _type: SignalServiceProtos_Envelope.TypeEnum? = nil
  fileprivate var _source: String? = nil
  fileprivate var _sourceDevice: UInt32? = nil
  fileprivate var _relay: String? = nil
  fileprivate var _timestamp: UInt64? = nil
  fileprivate var _legacyMessage: Data? = nil
  fileprivate var _content: Data? = nil
  fileprivate var _serverGuid: String? = nil
  fileprivate var _serverTimestamp: UInt64? = nil
}

#if swift(>=4.2)

extension SignalServiceProtos_Envelope.TypeEnum: CaseIterable {
  // Support synthesized by the compiler.
}

#endif  // swift(>=4.2)

struct SignalServiceProtos_TypingMessage {
  // SwiftProtobuf.Message conformance is added in an extension below. See the
  // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
  // methods supported on all messages.

  /// @required
  var timestamp: UInt64 {
    get {return _timestamp ?? 0}
    set {_timestamp = newValue}
  }
  /// Returns true if `timestamp` has been explicitly set.
  var hasTimestamp: Bool {return self._timestamp != nil}
  /// Clears the value of `timestamp`. Subsequent reads from it will return its default value.
  mutating func clearTimestamp() {self._timestamp = nil}

  /// @required
  var action: SignalServiceProtos_TypingMessage.Action {
    get {return _action ?? .started}
    set {_action = newValue}
  }
  /// Returns true if `action` has been explicitly set.
  var hasAction: Bool {return self._action != nil}
  /// Clears the value of `action`. Subsequent reads from it will return its default value.
  mutating func clearAction() {self._action = nil}

  var groupID: Data {
    get {return _groupID ?? SwiftProtobuf.Internal.emptyData}
    set {_groupID = newValue}
  }
  /// Returns true if `groupID` has been explicitly set.
  var hasGroupID: Bool {return self._groupID != nil}
  /// Clears the value of `groupID`. Subsequent reads from it will return its default value.
  mutating func clearGroupID() {self._groupID = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  enum Action: SwiftProtobuf.Enum {
    typealias RawValue = Int
    case started // = 0
    case stopped // = 1

    init() {
      self = .started
    }

    init?(rawValue: Int) {
      switch rawValue {
      case 0: self = .started
      case 1: self = .stopped
      default: return nil
      }
    }

    var rawValue: Int {
      switch self {
      case .started: return 0
      case .stopped: return 1
      }
    }

  }

  init() {}

  fileprivate var _timestamp: UInt64? = nil
  fileprivate var _action: SignalServiceProtos_TypingMessage.Action? = nil
  fileprivate var _groupID: Data? = nil
}

#if swift(>=4.2)

extension SignalServiceProtos_TypingMessage.Action: CaseIterable {
  // Support synthesized by the compiler.
}

#endif  // swift(>=4.2)

struct SignalServiceProtos_Content {
  // SwiftProtobuf.Message conformance is added in an extension below. See the
  // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
  // methods supported on all messages.

  var dataMessage: SignalServiceProtos_DataMessage {
    get {return _dataMessage ?? SignalServiceProtos_DataMessage()}
    set {_dataMessage = newValue}
  }
  /// Returns true if `dataMessage` has been explicitly set.
  var hasDataMessage: Bool {return self._dataMessage != nil}
  /// Clears the value of `dataMessage`. Subsequent reads from it will return its default value.
  mutating func clearDataMessage() {self._dataMessage = nil}

  var syncMessage: SignalServiceProtos_SyncMessage {
    get {return _syncMessage ?? SignalServiceProtos_SyncMessage()}
    set {_syncMessage = newValue}
  }
  /// Returns true if `syncMessage` has been explicitly set.
  var hasSyncMessage: Bool {return self._syncMessage != nil}
  /// Clears the value of `syncMessage`. Subsequent reads from it will return its default value.
  mutating func clearSyncMessage() {self._syncMessage = nil}

  var callMessage: SignalServiceProtos_CallMessage {
    get {return _callMessage ?? SignalServiceProtos_CallMessage()}
    set {_callMessage = newValue}
  }
  /// Returns true if `callMessage` has been explicitly set.
  var hasCallMessage: Bool {return self._callMessage != nil}
  /// Clears the value of `callMessage`. Subsequent reads from it will return its default value.
  mutating func clearCallMessage() {self._callMessage = nil}

  var nullMessage: SignalServiceProtos_NullMessage {
    get {return _nullMessage ?? SignalServiceProtos_NullMessage()}
    set {_nullMessage = newValue}
  }
  /// Returns true if `nullMessage` has been explicitly set.
  var hasNullMessage: Bool {return self._nullMessage != nil}
  /// Clears the value of `nullMessage`. Subsequent reads from it will return its default value.
  mutating func clearNullMessage() {self._nullMessage = nil}

  var receiptMessage: SignalServiceProtos_ReceiptMessage {
    get {return _receiptMessage ?? SignalServiceProtos_ReceiptMessage()}
    set {_receiptMessage = newValue}
  }
  /// Returns true if `receiptMessage` has been explicitly set.
  var hasReceiptMessage: Bool {return self._receiptMessage != nil}
  /// Clears the value of `receiptMessage`. Subsequent reads from it will return its default value.
  mutating func clearReceiptMessage() {self._receiptMessage = nil}

  var typingMessage: SignalServiceProtos_TypingMessage {
    get {return _typingMessage ?? SignalServiceProtos_TypingMessage()}
    set {_typingMessage = newValue}
  }
  /// Returns true if `typingMessage` has been explicitly set.
  var hasTypingMessage: Bool {return self._typingMessage != nil}
  /// Clears the value of `typingMessage`. Subsequent reads from it will return its default value.
  mutating func clearTypingMessage() {self._typingMessage = nil}

  /// Loki
  var prekeyBundleMessage: SignalServiceProtos_PrekeyBundleMessage {
    get {return _prekeyBundleMessage ?? SignalServiceProtos_PrekeyBundleMessage()}
    set {_prekeyBundleMessage = newValue}
  }
  /// Returns true if `prekeyBundleMessage` has been explicitly set.
  var hasPrekeyBundleMessage: Bool {return self._prekeyBundleMessage != nil}
  /// Clears the value of `prekeyBundleMessage`. Subsequent reads from it will return its default value.
  mutating func clearPrekeyBundleMessage() {self._prekeyBundleMessage = nil}

  /// Loki
  var lokiDeviceLinkMessage: SignalServiceProtos_LokiDeviceLinkMessage {
    get {return _lokiDeviceLinkMessage ?? SignalServiceProtos_LokiDeviceLinkMessage()}
    set {_lokiDeviceLinkMessage = newValue}
  }
  /// Returns true if `lokiDeviceLinkMessage` has been explicitly set.
  var hasLokiDeviceLinkMessage: Bool {return self._lokiDeviceLinkMessage != nil}
  /// Clears the value of `lokiDeviceLinkMessage`. Subsequent reads from it will return its default value.
  mutating func clearLokiDeviceLinkMessage() {self._lokiDeviceLinkMessage = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  fileprivate var _dataMessage: SignalServiceProtos_DataMessage? = nil
  fileprivate var _syncMessage: SignalServiceProtos_SyncMessage? = nil
  fileprivate var _callMessage: SignalServiceProtos_CallMessage? = nil
  fileprivate var _nullMessage: SignalServiceProtos_NullMessage? = nil
  fileprivate var _receiptMessage: SignalServiceProtos_ReceiptMessage? = nil
  fileprivate var _typingMessage: SignalServiceProtos_TypingMessage? = nil
  fileprivate var _prekeyBundleMessage: SignalServiceProtos_PrekeyBundleMessage? = nil
  fileprivate var _lokiDeviceLinkMessage: SignalServiceProtos_LokiDeviceLinkMessage? = nil
}

/// Loki
struct SignalServiceProtos_PrekeyBundleMessage {
  // SwiftProtobuf.Message conformance is added in an extension below. See the
  // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
  // methods supported on all messages.

  var identityKey: Data {
    get {return _identityKey ?? SwiftProtobuf.Internal.emptyData}
    set {_identityKey = newValue}
  }
  /// Returns true if `identityKey` has been explicitly set.
  var hasIdentityKey: Bool {return self._identityKey != nil}
  /// Clears the value of `identityKey`. Subsequent reads from it will return its default value.
  mutating func clearIdentityKey() {self._identityKey = nil}

  var deviceID: UInt32 {
    get {return _deviceID ?? 0}
    set {_deviceID = newValue}
  }
  /// Returns true if `deviceID` has been explicitly set.
  var hasDeviceID: Bool {return self._deviceID != nil}
  /// Clears the value of `deviceID`. Subsequent reads from it will return its default value.
  mutating func clearDeviceID() {self._deviceID = nil}

  var prekeyID: UInt32 {
    get {return _prekeyID ?? 0}
    set {_prekeyID = newValue}
  }
  /// Returns true if `prekeyID` has been explicitly set.
  var hasPrekeyID: Bool {return self._prekeyID != nil}
  /// Clears the value of `prekeyID`. Subsequent reads from it will return its default value.
  mutating func clearPrekeyID() {self._prekeyID = nil}

  var signedKeyID: UInt32 {
    get {return _signedKeyID ?? 0}
    set {_signedKeyID = newValue}
  }
  /// Returns true if `signedKeyID` has been explicitly set.
  var hasSignedKeyID: Bool {return self._signedKeyID != nil}
  /// Clears the value of `signedKeyID`. Subsequent reads from it will return its default value.
  mutating func clearSignedKeyID() {self._signedKeyID = nil}

  var prekey: Data {
    get {return _prekey ?? SwiftProtobuf.Internal.emptyData}
    set {_prekey = newValue}
  }
  /// Returns true if `prekey` has been explicitly set.
  var hasPrekey: Bool {return self._prekey != nil}
  /// Clears the value of `prekey`. Subsequent reads from it will return its default value.
  mutating func clearPrekey() {self._prekey = nil}

  var signedKey: Data {
    get {return _signedKey ?? SwiftProtobuf.Internal.emptyData}
    set {_signedKey = newValue}
  }
  /// Returns true if `signedKey` has been explicitly set.
  var hasSignedKey: Bool {return self._signedKey != nil}
  /// Clears the value of `signedKey`. Subsequent reads from it will return its default value.
  mutating func clearSignedKey() {self._signedKey = nil}

  var signature: Data {
    get {return _signature ?? SwiftProtobuf.Internal.emptyData}
    set {_signature = newValue}
  }
  /// Returns true if `signature` has been explicitly set.
  var hasSignature: Bool {return self._signature != nil}
  /// Clears the value of `signature`. Subsequent reads from it will return its default value.
  mutating func clearSignature() {self._signature = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  fileprivate var _identityKey: Data? = nil
  fileprivate var _deviceID: UInt32? = nil
  fileprivate var _prekeyID: UInt32? = nil
  fileprivate var _signedKeyID: UInt32? = nil
  fileprivate var _prekey: Data? = nil
  fileprivate var _signedKey: Data? = nil
  fileprivate var _signature: Data? = nil
}

/// Loki
struct SignalServiceProtos_LokiDeviceLinkMessage {
  // SwiftProtobuf.Message conformance is added in an extension below. See the
  // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
  // methods supported on all messages.

  var masterPublicKey: String {
    get {return _masterPublicKey ?? String()}
    set {_masterPublicKey = newValue}
  }
  /// Returns true if `masterPublicKey` has been explicitly set.
  var hasMasterPublicKey: Bool {return self._masterPublicKey != nil}
  /// Clears the value of `masterPublicKey`. Subsequent reads from it will return its default value.
  mutating func clearMasterPublicKey() {self._masterPublicKey = nil}

  var slavePublicKey: String {
    get {return _slavePublicKey ?? String()}
    set {_slavePublicKey = newValue}
  }
  /// Returns true if `slavePublicKey` has been explicitly set.
  var hasSlavePublicKey: Bool {return self._slavePublicKey != nil}
  /// Clears the value of `slavePublicKey`. Subsequent reads from it will return its default value.
  mutating func clearSlavePublicKey() {self._slavePublicKey = nil}

  var slaveSignature: Data {
    get {return _slaveSignature ?? SwiftProtobuf.Internal.emptyData}
    set {_slaveSignature = newValue}
  }
  /// Returns true if `slaveSignature` has been explicitly set.
  var hasSlaveSignature: Bool {return self._slaveSignature != nil}
  /// Clears the value of `slaveSignature`. Subsequent reads from it will return its default value.
  mutating func clearSlaveSignature() {self._slaveSignature = nil}

  var masterSignature: Data {
    get {return _masterSignature ?? SwiftProtobuf.Internal.emptyData}
    set {_masterSignature = newValue}
  }
  /// Returns true if `masterSignature` has been explicitly set.
  var hasMasterSignature: Bool {return self._masterSignature != nil}
  /// Clears the value of `masterSignature`. Subsequent reads from it will return its default value.
  mutating func clearMasterSignature() {self._masterSignature = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  fileprivate var _masterPublicKey: String? = nil
  fileprivate var _slavePublicKey: String? = nil
  fileprivate var _slaveSignature: Data? = nil
  fileprivate var _masterSignature: Data? = nil
}

struct SignalServiceProtos_CallMessage {
  // SwiftProtobuf.Message conformance is added in an extension below. See the
  // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
  // methods supported on all messages.

  var offer: SignalServiceProtos_CallMessage.Offer {
    get {return _offer ?? SignalServiceProtos_CallMessage.Offer()}
    set {_offer = newValue}
  }
  /// Returns true if `offer` has been explicitly set.
  var hasOffer: Bool {return self._offer != nil}
  /// Clears the value of `offer`. Subsequent reads from it will return its default value.
  mutating func clearOffer() {self._offer = nil}

  var answer: SignalServiceProtos_CallMessage.Answer {
    get {return _answer ?? SignalServiceProtos_CallMessage.Answer()}
    set {_answer = newValue}
  }
  /// Returns true if `answer` has been explicitly set.
  var hasAnswer: Bool {return self._answer != nil}
  /// Clears the value of `answer`. Subsequent reads from it will return its default value.
  mutating func clearAnswer() {self._answer = nil}

  var iceUpdate: [SignalServiceProtos_CallMessage.IceUpdate] = []

  var hangup: SignalServiceProtos_CallMessage.Hangup {
    get {return _hangup ?? SignalServiceProtos_CallMessage.Hangup()}
    set {_hangup = newValue}
  }
  /// Returns true if `hangup` has been explicitly set.
  var hasHangup: Bool {return self._hangup != nil}
  /// Clears the value of `hangup`. Subsequent reads from it will return its default value.
  mutating func clearHangup() {self._hangup = nil}

  var busy: SignalServiceProtos_CallMessage.Busy {
    get {return _busy ?? SignalServiceProtos_CallMessage.Busy()}
    set {_busy = newValue}
  }
  /// Returns true if `busy` has been explicitly set.
  var hasBusy: Bool {return self._busy != nil}
  /// Clears the value of `busy`. Subsequent reads from it will return its default value.
  mutating func clearBusy() {self._busy = nil}

  /// Signal-iOS sends profile key with call messages
  /// for earlier discovery
  var profileKey: Data {
    get {return _profileKey ?? SwiftProtobuf.Internal.emptyData}
    set {_profileKey = newValue}
  }
  /// Returns true if `profileKey` has been explicitly set.
  var hasProfileKey: Bool {return self._profileKey != nil}
  /// Clears the value of `profileKey`. Subsequent reads from it will return its default value.
  mutating func clearProfileKey() {self._profileKey = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  struct Offer {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    /// @required
    var id: UInt64 {
      get {return _id ?? 0}
      set {_id = newValue}
    }
    /// Returns true if `id` has been explicitly set.
    var hasID: Bool {return self._id != nil}
    /// Clears the value of `id`. Subsequent reads from it will return its default value.
    mutating func clearID() {self._id = nil}

    /// Signal-iOS renamed the description field to avoid
    /// conflicts with [NSObject description].
    /// @required
    var sessionDescription: String {
      get {return _sessionDescription ?? String()}
      set {_sessionDescription = newValue}
    }
    /// Returns true if `sessionDescription` has been explicitly set.
    var hasSessionDescription: Bool {return self._sessionDescription != nil}
    /// Clears the value of `sessionDescription`. Subsequent reads from it will return its default value.
    mutating func clearSessionDescription() {self._sessionDescription = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    init() {}

    fileprivate var _id: UInt64? = nil
    fileprivate var _sessionDescription: String? = nil
  }

  struct Answer {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    /// @required
    var id: UInt64 {
      get {return _id ?? 0}
      set {_id = newValue}
    }
    /// Returns true if `id` has been explicitly set.
    var hasID: Bool {return self._id != nil}
    /// Clears the value of `id`. Subsequent reads from it will return its default value.
    mutating func clearID() {self._id = nil}

    /// Signal-iOS renamed the description field to avoid
    /// conflicts with [NSObject description].
    /// @required
    var sessionDescription: String {
      get {return _sessionDescription ?? String()}
      set {_sessionDescription = newValue}
    }
    /// Returns true if `sessionDescription` has been explicitly set.
    var hasSessionDescription: Bool {return self._sessionDescription != nil}
    /// Clears the value of `sessionDescription`. Subsequent reads from it will return its default value.
    mutating func clearSessionDescription() {self._sessionDescription = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    init() {}

    fileprivate var _id: UInt64? = nil
    fileprivate var _sessionDescription: String? = nil
  }

  struct IceUpdate {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    /// @required
    var id: UInt64 {
      get {return _id ?? 0}
      set {_id = newValue}
    }
    /// Returns true if `id` has been explicitly set.
    var hasID: Bool {return self._id != nil}
    /// Clears the value of `id`. Subsequent reads from it will return its default value.
    mutating func clearID() {self._id = nil}

    /// @required
    var sdpMid: String {
      get {return _sdpMid ?? String()}
      set {_sdpMid = newValue}
    }
    /// Returns true if `sdpMid` has been explicitly set.
    var hasSdpMid: Bool {return self._sdpMid != nil}
    /// Clears the value of `sdpMid`. Subsequent reads from it will return its default value.
    mutating func clearSdpMid() {self._sdpMid = nil}

    /// @required
    var sdpMlineIndex: UInt32 {
      get {return _sdpMlineIndex ?? 0}
      set {_sdpMlineIndex = newValue}
    }
    /// Returns true if `sdpMlineIndex` has been explicitly set.
    var hasSdpMlineIndex: Bool {return self._sdpMlineIndex != nil}
    /// Clears the value of `sdpMlineIndex`. Subsequent reads from it will return its default value.
    mutating func clearSdpMlineIndex() {self._sdpMlineIndex = nil}

    /// @required
    var sdp: String {
      get {return _sdp ?? String()}
      set {_sdp = newValue}
    }
    /// Returns true if `sdp` has been explicitly set.
    var hasSdp: Bool {return self._sdp != nil}
    /// Clears the value of `sdp`. Subsequent reads from it will return its default value.
    mutating func clearSdp() {self._sdp = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    init() {}

    fileprivate var _id: UInt64? = nil
    fileprivate var _sdpMid: String? = nil
    fileprivate var _sdpMlineIndex: UInt32? = nil
    fileprivate var _sdp: String? = nil
  }

  struct Busy {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    /// @required
    var id: UInt64 {
      get {return _id ?? 0}
      set {_id = newValue}
    }
    /// Returns true if `id` has been explicitly set.
    var hasID: Bool {return self._id != nil}
    /// Clears the value of `id`. Subsequent reads from it will return its default value.
    mutating func clearID() {self._id = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    init() {}

    fileprivate var _id: UInt64? = nil
  }

  struct Hangup {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    /// @required
    var id: UInt64 {
      get {return _id ?? 0}
      set {_id = newValue}
    }
    /// Returns true if `id` has been explicitly set.
    var hasID: Bool {return self._id != nil}
    /// Clears the value of `id`. Subsequent reads from it will return its default value.
    mutating func clearID() {self._id = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    init() {}

    fileprivate var _id: UInt64? = nil
  }

  init() {}

  fileprivate var _offer: SignalServiceProtos_CallMessage.Offer? = nil
  fileprivate var _answer: SignalServiceProtos_CallMessage.Answer? = nil
  fileprivate var _hangup: SignalServiceProtos_CallMessage.Hangup? = nil
  fileprivate var _busy: SignalServiceProtos_CallMessage.Busy? = nil
  fileprivate var _profileKey: Data? = nil
}

struct SignalServiceProtos_DataMessage {
  // SwiftProtobuf.Message conformance is added in an extension below. See the
  // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
  // methods supported on all messages.

  var body: String {
    get {return _body ?? String()}
    set {_body = newValue}
  }
  /// Returns true if `body` has been explicitly set.
  var hasBody: Bool {return self._body != nil}
  /// Clears the value of `body`. Subsequent reads from it will return its default value.
  mutating func clearBody() {self._body = nil}

  var attachments: [SignalServiceProtos_AttachmentPointer] = []

  var group: SignalServiceProtos_GroupContext {
    get {return _group ?? SignalServiceProtos_GroupContext()}
    set {_group = newValue}
  }
  /// Returns true if `group` has been explicitly set.
  var hasGroup: Bool {return self._group != nil}
  /// Clears the value of `group`. Subsequent reads from it will return its default value.
  mutating func clearGroup() {self._group = nil}

  var flags: UInt32 {
    get {return _flags ?? 0}
    set {_flags = newValue}
  }
  /// Returns true if `flags` has been explicitly set.
  var hasFlags: Bool {return self._flags != nil}
  /// Clears the value of `flags`. Subsequent reads from it will return its default value.
  mutating func clearFlags() {self._flags = nil}

  var expireTimer: UInt32 {
    get {return _expireTimer ?? 0}
    set {_expireTimer = newValue}
  }
  /// Returns true if `expireTimer` has been explicitly set.
  var hasExpireTimer: Bool {return self._expireTimer != nil}
  /// Clears the value of `expireTimer`. Subsequent reads from it will return its default value.
  mutating func clearExpireTimer() {self._expireTimer = nil}

  var profileKey: Data {
    get {return _profileKey ?? SwiftProtobuf.Internal.emptyData}
    set {_profileKey = newValue}
  }
  /// Returns true if `profileKey` has been explicitly set.
  var hasProfileKey: Bool {return self._profileKey != nil}
  /// Clears the value of `profileKey`. Subsequent reads from it will return its default value.
  mutating func clearProfileKey() {self._profileKey = nil}

  var timestamp: UInt64 {
    get {return _timestamp ?? 0}
    set {_timestamp = newValue}
  }
  /// Returns true if `timestamp` has been explicitly set.
  var hasTimestamp: Bool {return self._timestamp != nil}
  /// Clears the value of `timestamp`. Subsequent reads from it will return its default value.
  mutating func clearTimestamp() {self._timestamp = nil}

  var quote: SignalServiceProtos_DataMessage.Quote {
    get {return _quote ?? SignalServiceProtos_DataMessage.Quote()}
    set {_quote = newValue}
  }
  /// Returns true if `quote` has been explicitly set.
  var hasQuote: Bool {return self._quote != nil}
  /// Clears the value of `quote`. Subsequent reads from it will return its default value.
  mutating func clearQuote() {self._quote = nil}

  var contact: [SignalServiceProtos_DataMessage.Contact] = []

  var preview: [SignalServiceProtos_DataMessage.Preview] = []

  /// Loki: The current user's profile
  var profile: SignalServiceProtos_DataMessage.LokiProfile {
    get {return _profile ?? SignalServiceProtos_DataMessage.LokiProfile()}
    set {_profile = newValue}
  }
  /// Returns true if `profile` has been explicitly set.
  var hasProfile: Bool {return self._profile != nil}
  /// Clears the value of `profile`. Subsequent reads from it will return its default value.
  mutating func clearProfile() {self._profile = nil}

  /// Loki
  var closedGroupUpdate: SignalServiceProtos_DataMessage.ClosedGroupUpdate {
    get {return _closedGroupUpdate ?? SignalServiceProtos_DataMessage.ClosedGroupUpdate()}
    set {_closedGroupUpdate = newValue}
  }
  /// Returns true if `closedGroupUpdate` has been explicitly set.
  var hasClosedGroupUpdate: Bool {return self._closedGroupUpdate != nil}
  /// Clears the value of `closedGroupUpdate`. Subsequent reads from it will return its default value.
  mutating func clearClosedGroupUpdate() {self._closedGroupUpdate = nil}

  /// Loki: Internal public chat info
  var publicChatInfo: SignalServiceProtos_PublicChatInfo {
    get {return _publicChatInfo ?? SignalServiceProtos_PublicChatInfo()}
    set {_publicChatInfo = newValue}
  }
  /// Returns true if `publicChatInfo` has been explicitly set.
  var hasPublicChatInfo: Bool {return self._publicChatInfo != nil}
  /// Clears the value of `publicChatInfo`. Subsequent reads from it will return its default value.
  mutating func clearPublicChatInfo() {self._publicChatInfo = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  enum Flags: SwiftProtobuf.Enum {
    typealias RawValue = Int
    case endSession // = 1
    case expirationTimerUpdate // = 2
    case profileKeyUpdate // = 4
    case unlinkDevice // = 128

    init() {
      self = .endSession
    }

    init?(rawValue: Int) {
      switch rawValue {
      case 1: self = .endSession
      case 2: self = .expirationTimerUpdate
      case 4: self = .profileKeyUpdate
      case 128: self = .unlinkDevice
      default: return nil
      }
    }

    var rawValue: Int {
      switch self {
      case .endSession: return 1
      case .expirationTimerUpdate: return 2
      case .profileKeyUpdate: return 4
      case .unlinkDevice: return 128
      }
    }

  }

  struct Quote {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    /// @required
    var id: UInt64 {
      get {return _id ?? 0}
      set {_id = newValue}
    }
    /// Returns true if `id` has been explicitly set.
    var hasID: Bool {return self._id != nil}
    /// Clears the value of `id`. Subsequent reads from it will return its default value.
    mutating func clearID() {self._id = nil}

    /// @required
    var author: String {
      get {return _author ?? String()}
      set {_author = newValue}
    }
    /// Returns true if `author` has been explicitly set.
    var hasAuthor: Bool {return self._author != nil}
    /// Clears the value of `author`. Subsequent reads from it will return its default value.
    mutating func clearAuthor() {self._author = nil}

    var text: String {
      get {return _text ?? String()}
      set {_text = newValue}
    }
    /// Returns true if `text` has been explicitly set.
    var hasText: Bool {return self._text != nil}
    /// Clears the value of `text`. Subsequent reads from it will return its default value.
    mutating func clearText() {self._text = nil}

    var attachments: [SignalServiceProtos_DataMessage.Quote.QuotedAttachment] = []

    var unknownFields = SwiftProtobuf.UnknownStorage()

    struct QuotedAttachment {
      // SwiftProtobuf.Message conformance is added in an extension below. See the
      // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
      // methods supported on all messages.

      var contentType: String {
        get {return _contentType ?? String()}
        set {_contentType = newValue}
      }
      /// Returns true if `contentType` has been explicitly set.
      var hasContentType: Bool {return self._contentType != nil}
      /// Clears the value of `contentType`. Subsequent reads from it will return its default value.
      mutating func clearContentType() {self._contentType = nil}

      var fileName: String {
        get {return _fileName ?? String()}
        set {_fileName = newValue}
      }
      /// Returns true if `fileName` has been explicitly set.
      var hasFileName: Bool {return self._fileName != nil}
      /// Clears the value of `fileName`. Subsequent reads from it will return its default value.
      mutating func clearFileName() {self._fileName = nil}

      var thumbnail: SignalServiceProtos_AttachmentPointer {
        get {return _thumbnail ?? SignalServiceProtos_AttachmentPointer()}
        set {_thumbnail = newValue}
      }
      /// Returns true if `thumbnail` has been explicitly set.
      var hasThumbnail: Bool {return self._thumbnail != nil}
      /// Clears the value of `thumbnail`. Subsequent reads from it will return its default value.
      mutating func clearThumbnail() {self._thumbnail = nil}

      var flags: UInt32 {
        get {return _flags ?? 0}
        set {_flags = newValue}
      }
      /// Returns true if `flags` has been explicitly set.
      var hasFlags: Bool {return self._flags != nil}
      /// Clears the value of `flags`. Subsequent reads from it will return its default value.
      mutating func clearFlags() {self._flags = nil}

      var unknownFields = SwiftProtobuf.UnknownStorage()

      enum Flags: SwiftProtobuf.Enum {
        typealias RawValue = Int
        case voiceMessage // = 1

        init() {
          self = .voiceMessage
        }

        init?(rawValue: Int) {
          switch rawValue {
          case 1: self = .voiceMessage
          default: return nil
          }
        }

        var rawValue: Int {
          switch self {
          case .voiceMessage: return 1
          }
        }

      }

      init() {}

      fileprivate var _contentType: String? = nil
      fileprivate var _fileName: String? = nil
      fileprivate var _thumbnail: SignalServiceProtos_AttachmentPointer? = nil
      fileprivate var _flags: UInt32? = nil
    }

    init() {}

    fileprivate var _id: UInt64? = nil
    fileprivate var _author: String? = nil
    fileprivate var _text: String? = nil
  }

  struct Contact {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    var name: SignalServiceProtos_DataMessage.Contact.Name {
      get {return _name ?? SignalServiceProtos_DataMessage.Contact.Name()}
      set {_name = newValue}
    }
    /// Returns true if `name` has been explicitly set.
    var hasName: Bool {return self._name != nil}
    /// Clears the value of `name`. Subsequent reads from it will return its default value.
    mutating func clearName() {self._name = nil}

    var number: [SignalServiceProtos_DataMessage.Contact.Phone] = []

    var email: [SignalServiceProtos_DataMessage.Contact.Email] = []

    var address: [SignalServiceProtos_DataMessage.Contact.PostalAddress] = []

    var avatar: SignalServiceProtos_DataMessage.Contact.Avatar {
      get {return _avatar ?? SignalServiceProtos_DataMessage.Contact.Avatar()}
      set {_avatar = newValue}
    }
    /// Returns true if `avatar` has been explicitly set.
    var hasAvatar: Bool {return self._avatar != nil}
    /// Clears the value of `avatar`. Subsequent reads from it will return its default value.
    mutating func clearAvatar() {self._avatar = nil}

    var organization: String {
      get {return _organization ?? String()}
      set {_organization = newValue}
    }
    /// Returns true if `organization` has been explicitly set.
    var hasOrganization: Bool {return self._organization != nil}
    /// Clears the value of `organization`. Subsequent reads from it will return its default value.
    mutating func clearOrganization() {self._organization = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    struct Name {
      // SwiftProtobuf.Message conformance is added in an extension below. See the
      // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
      // methods supported on all messages.

      var givenName: String {
        get {return _givenName ?? String()}
        set {_givenName = newValue}
      }
      /// Returns true if `givenName` has been explicitly set.
      var hasGivenName: Bool {return self._givenName != nil}
      /// Clears the value of `givenName`. Subsequent reads from it will return its default value.
      mutating func clearGivenName() {self._givenName = nil}

      var familyName: String {
        get {return _familyName ?? String()}
        set {_familyName = newValue}
      }
      /// Returns true if `familyName` has been explicitly set.
      var hasFamilyName: Bool {return self._familyName != nil}
      /// Clears the value of `familyName`. Subsequent reads from it will return its default value.
      mutating func clearFamilyName() {self._familyName = nil}

      var prefix: String {
        get {return _prefix ?? String()}
        set {_prefix = newValue}
      }
      /// Returns true if `prefix` has been explicitly set.
      var hasPrefix: Bool {return self._prefix != nil}
      /// Clears the value of `prefix`. Subsequent reads from it will return its default value.
      mutating func clearPrefix() {self._prefix = nil}

      var suffix: String {
        get {return _suffix ?? String()}
        set {_suffix = newValue}
      }
      /// Returns true if `suffix` has been explicitly set.
      var hasSuffix: Bool {return self._suffix != nil}
      /// Clears the value of `suffix`. Subsequent reads from it will return its default value.
      mutating func clearSuffix() {self._suffix = nil}

      var middleName: String {
        get {return _middleName ?? String()}
        set {_middleName = newValue}
      }
      /// Returns true if `middleName` has been explicitly set.
      var hasMiddleName: Bool {return self._middleName != nil}
      /// Clears the value of `middleName`. Subsequent reads from it will return its default value.
      mutating func clearMiddleName() {self._middleName = nil}

      var displayName: String {
        get {return _displayName ?? String()}
        set {_displayName = newValue}
      }
      /// Returns true if `displayName` has been explicitly set.
      var hasDisplayName: Bool {return self._displayName != nil}
      /// Clears the value of `displayName`. Subsequent reads from it will return its default value.
      mutating func clearDisplayName() {self._displayName = nil}

      var unknownFields = SwiftProtobuf.UnknownStorage()

      init() {}

      fileprivate var _givenName: String? = nil
      fileprivate var _familyName: String? = nil
      fileprivate var _prefix: String? = nil
      fileprivate var _suffix: String? = nil
      fileprivate var _middleName: String? = nil
      fileprivate var _displayName: String? = nil
    }

    struct Phone {
      // SwiftProtobuf.Message conformance is added in an extension below. See the
      // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
      // methods supported on all messages.

      var value: String {
        get {return _value ?? String()}
        set {_value = newValue}
      }
      /// Returns true if `value` has been explicitly set.
      var hasValue: Bool {return self._value != nil}
      /// Clears the value of `value`. Subsequent reads from it will return its default value.
      mutating func clearValue() {self._value = nil}

      var type: SignalServiceProtos_DataMessage.Contact.Phone.TypeEnum {
        get {return _type ?? .home}
        set {_type = newValue}
      }
      /// Returns true if `type` has been explicitly set.
      var hasType: Bool {return self._type != nil}
      /// Clears the value of `type`. Subsequent reads from it will return its default value.
      mutating func clearType() {self._type = nil}

      var label: String {
        get {return _label ?? String()}
        set {_label = newValue}
      }
      /// Returns true if `label` has been explicitly set.
      var hasLabel: Bool {return self._label != nil}
      /// Clears the value of `label`. Subsequent reads from it will return its default value.
      mutating func clearLabel() {self._label = nil}

      var unknownFields = SwiftProtobuf.UnknownStorage()

      enum TypeEnum: SwiftProtobuf.Enum {
        typealias RawValue = Int
        case home // = 1
        case mobile // = 2
        case work // = 3
        case custom // = 4

        init() {
          self = .home
        }

        init?(rawValue: Int) {
          switch rawValue {
          case 1: self = .home
          case 2: self = .mobile
          case 3: self = .work
          case 4: self = .custom
          default: return nil
          }
        }

        var rawValue: Int {
          switch self {
          case .home: return 1
          case .mobile: return 2
          case .work: return 3
          case .custom: return 4
          }
        }

      }

      init() {}

      fileprivate var _value: String? = nil
      fileprivate var _type: SignalServiceProtos_DataMessage.Contact.Phone.TypeEnum? = nil
      fileprivate var _label: String? = nil
    }

    struct Email {
      // SwiftProtobuf.Message conformance is added in an extension below. See the
      // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
      // methods supported on all messages.

      var value: String {
        get {return _value ?? String()}
        set {_value = newValue}
      }
      /// Returns true if `value` has been explicitly set.
      var hasValue: Bool {return self._value != nil}
      /// Clears the value of `value`. Subsequent reads from it will return its default value.
      mutating func clearValue() {self._value = nil}

      var type: SignalServiceProtos_DataMessage.Contact.Email.TypeEnum {
        get {return _type ?? .home}
        set {_type = newValue}
      }
      /// Returns true if `type` has been explicitly set.
      var hasType: Bool {return self._type != nil}
      /// Clears the value of `type`. Subsequent reads from it will return its default value.
      mutating func clearType() {self._type = nil}

      var label: String {
        get {return _label ?? String()}
        set {_label = newValue}
      }
      /// Returns true if `label` has been explicitly set.
      var hasLabel: Bool {return self._label != nil}
      /// Clears the value of `label`. Subsequent reads from it will return its default value.
      mutating func clearLabel() {self._label = nil}

      var unknownFields = SwiftProtobuf.UnknownStorage()

      enum TypeEnum: SwiftProtobuf.Enum {
        typealias RawValue = Int
        case home // = 1
        case mobile // = 2
        case work // = 3
        case custom // = 4

        init() {
          self = .home
        }

        init?(rawValue: Int) {
          switch rawValue {
          case 1: self = .home
          case 2: self = .mobile
          case 3: self = .work
          case 4: self = .custom
          default: return nil
          }
        }

        var rawValue: Int {
          switch self {
          case .home: return 1
          case .mobile: return 2
          case .work: return 3
          case .custom: return 4
          }
        }

      }

      init() {}

      fileprivate var _value: String? = nil
      fileprivate var _type: SignalServiceProtos_DataMessage.Contact.Email.TypeEnum? = nil
      fileprivate var _label: String? = nil
    }

    struct PostalAddress {
      // SwiftProtobuf.Message conformance is added in an extension below. See the
      // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
      // methods supported on all messages.

      var type: SignalServiceProtos_DataMessage.Contact.PostalAddress.TypeEnum {
        get {return _type ?? .home}
        set {_type = newValue}
      }
      /// Returns true if `type` has been explicitly set.
      var hasType: Bool {return self._type != nil}
      /// Clears the value of `type`. Subsequent reads from it will return its default value.
      mutating func clearType() {self._type = nil}

      var label: String {
        get {return _label ?? String()}
        set {_label = newValue}
      }
      /// Returns true if `label` has been explicitly set.
      var hasLabel: Bool {return self._label != nil}
      /// Clears the value of `label`. Subsequent reads from it will return its default value.
      mutating func clearLabel() {self._label = nil}

      var street: String {
        get {return _street ?? String()}
        set {_street = newValue}
      }
      /// Returns true if `street` has been explicitly set.
      var hasStreet: Bool {return self._street != nil}
      /// Clears the value of `street`. Subsequent reads from it will return its default value.
      mutating func clearStreet() {self._street = nil}

      var pobox: String {
        get {return _pobox ?? String()}
        set {_pobox = newValue}
      }
      /// Returns true if `pobox` has been explicitly set.
      var hasPobox: Bool {return self._pobox != nil}
      /// Clears the value of `pobox`. Subsequent reads from it will return its default value.
      mutating func clearPobox() {self._pobox = nil}

      var neighborhood: String {
        get {return _neighborhood ?? String()}
        set {_neighborhood = newValue}
      }
      /// Returns true if `neighborhood` has been explicitly set.
      var hasNeighborhood: Bool {return self._neighborhood != nil}
      /// Clears the value of `neighborhood`. Subsequent reads from it will return its default value.
      mutating func clearNeighborhood() {self._neighborhood = nil}

      var city: String {
        get {return _city ?? String()}
        set {_city = newValue}
      }
      /// Returns true if `city` has been explicitly set.
      var hasCity: Bool {return self._city != nil}
      /// Clears the value of `city`. Subsequent reads from it will return its default value.
      mutating func clearCity() {self._city = nil}

      var region: String {
        get {return _region ?? String()}
        set {_region = newValue}
      }
      /// Returns true if `region` has been explicitly set.
      var hasRegion: Bool {return self._region != nil}
      /// Clears the value of `region`. Subsequent reads from it will return its default value.
      mutating func clearRegion() {self._region = nil}

      var postcode: String {
        get {return _postcode ?? String()}
        set {_postcode = newValue}
      }
      /// Returns true if `postcode` has been explicitly set.
      var hasPostcode: Bool {return self._postcode != nil}
      /// Clears the value of `postcode`. Subsequent reads from it will return its default value.
      mutating func clearPostcode() {self._postcode = nil}

      var country: String {
        get {return _country ?? String()}
        set {_country = newValue}
      }
      /// Returns true if `country` has been explicitly set.
      var hasCountry: Bool {return self._country != nil}
      /// Clears the value of `country`. Subsequent reads from it will return its default value.
      mutating func clearCountry() {self._country = nil}

      var unknownFields = SwiftProtobuf.UnknownStorage()

      enum TypeEnum: SwiftProtobuf.Enum {
        typealias RawValue = Int
        case home // = 1
        case work // = 2
        case custom // = 3

        init() {
          self = .home
        }

        init?(rawValue: Int) {
          switch rawValue {
          case 1: self = .home
          case 2: self = .work
          case 3: self = .custom
          default: return nil
          }
        }

        var rawValue: Int {
          switch self {
          case .home: return 1
          case .work: return 2
          case .custom: return 3
          }
        }

      }

      init() {}

      fileprivate var _type: SignalServiceProtos_DataMessage.Contact.PostalAddress.TypeEnum? = nil
      fileprivate var _label: String? = nil
      fileprivate var _street: String? = nil
      fileprivate var _pobox: String? = nil
      fileprivate var _neighborhood: String? = nil
      fileprivate var _city: String? = nil
      fileprivate var _region: String? = nil
      fileprivate var _postcode: String? = nil
      fileprivate var _country: String? = nil
    }

    struct Avatar {
      // SwiftProtobuf.Message conformance is added in an extension below. See the
      // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
      // methods supported on all messages.

      var avatar: SignalServiceProtos_AttachmentPointer {
        get {return _avatar ?? SignalServiceProtos_AttachmentPointer()}
        set {_avatar = newValue}
      }
      /// Returns true if `avatar` has been explicitly set.
      var hasAvatar: Bool {return self._avatar != nil}
      /// Clears the value of `avatar`. Subsequent reads from it will return its default value.
      mutating func clearAvatar() {self._avatar = nil}

      var isProfile: Bool {
        get {return _isProfile ?? false}
        set {_isProfile = newValue}
      }
      /// Returns true if `isProfile` has been explicitly set.
      var hasIsProfile: Bool {return self._isProfile != nil}
      /// Clears the value of `isProfile`. Subsequent reads from it will return its default value.
      mutating func clearIsProfile() {self._isProfile = nil}

      var unknownFields = SwiftProtobuf.UnknownStorage()

      init() {}

      fileprivate var _avatar: SignalServiceProtos_AttachmentPointer? = nil
      fileprivate var _isProfile: Bool? = nil
    }

    init() {}

    fileprivate var _name: SignalServiceProtos_DataMessage.Contact.Name? = nil
    fileprivate var _avatar: SignalServiceProtos_DataMessage.Contact.Avatar? = nil
    fileprivate var _organization: String? = nil
  }

  struct Preview {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    /// @required
    var url: String {
      get {return _url ?? String()}
      set {_url = newValue}
    }
    /// Returns true if `url` has been explicitly set.
    var hasURL: Bool {return self._url != nil}
    /// Clears the value of `url`. Subsequent reads from it will return its default value.
    mutating func clearURL() {self._url = nil}

    var title: String {
      get {return _title ?? String()}
      set {_title = newValue}
    }
    /// Returns true if `title` has been explicitly set.
    var hasTitle: Bool {return self._title != nil}
    /// Clears the value of `title`. Subsequent reads from it will return its default value.
    mutating func clearTitle() {self._title = nil}

    var image: SignalServiceProtos_AttachmentPointer {
      get {return _image ?? SignalServiceProtos_AttachmentPointer()}
      set {_image = newValue}
    }
    /// Returns true if `image` has been explicitly set.
    var hasImage: Bool {return self._image != nil}
    /// Clears the value of `image`. Subsequent reads from it will return its default value.
    mutating func clearImage() {self._image = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    init() {}

    fileprivate var _url: String? = nil
    fileprivate var _title: String? = nil
    fileprivate var _image: SignalServiceProtos_AttachmentPointer? = nil
  }

  /// Loki
  struct LokiProfile {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    var displayName: String {
      get {return _displayName ?? String()}
      set {_displayName = newValue}
    }
    /// Returns true if `displayName` has been explicitly set.
    var hasDisplayName: Bool {return self._displayName != nil}
    /// Clears the value of `displayName`. Subsequent reads from it will return its default value.
    mutating func clearDisplayName() {self._displayName = nil}

    var profilePicture: String {
      get {return _profilePicture ?? String()}
      set {_profilePicture = newValue}
    }
    /// Returns true if `profilePicture` has been explicitly set.
    var hasProfilePicture: Bool {return self._profilePicture != nil}
    /// Clears the value of `profilePicture`. Subsequent reads from it will return its default value.
    mutating func clearProfilePicture() {self._profilePicture = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    init() {}

    fileprivate var _displayName: String? = nil
    fileprivate var _profilePicture: String? = nil
  }

  /// Loki
  struct ClosedGroupUpdate {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    var name: String {
      get {return _name ?? String()}
      set {_name = newValue}
    }
    /// Returns true if `name` has been explicitly set.
    var hasName: Bool {return self._name != nil}
    /// Clears the value of `name`. Subsequent reads from it will return its default value.
    mutating func clearName() {self._name = nil}

    /// @required
    var groupPublicKey: Data {
      get {return _groupPublicKey ?? SwiftProtobuf.Internal.emptyData}
      set {_groupPublicKey = newValue}
    }
    /// Returns true if `groupPublicKey` has been explicitly set.
    var hasGroupPublicKey: Bool {return self._groupPublicKey != nil}
    /// Clears the value of `groupPublicKey`. Subsequent reads from it will return its default value.
    mutating func clearGroupPublicKey() {self._groupPublicKey = nil}

    var groupPrivateKey: Data {
      get {return _groupPrivateKey ?? SwiftProtobuf.Internal.emptyData}
      set {_groupPrivateKey = newValue}
    }
    /// Returns true if `groupPrivateKey` has been explicitly set.
    var hasGroupPrivateKey: Bool {return self._groupPrivateKey != nil}
    /// Clears the value of `groupPrivateKey`. Subsequent reads from it will return its default value.
    mutating func clearGroupPrivateKey() {self._groupPrivateKey = nil}

    var senderKeys: [SignalServiceProtos_DataMessage.ClosedGroupUpdate.SenderKey] = []

    var members: [Data] = []

    var admins: [Data] = []

    /// @required
    var type: SignalServiceProtos_DataMessage.ClosedGroupUpdate.TypeEnum {
      get {return _type ?? .new}
      set {_type = newValue}
    }
    /// Returns true if `type` has been explicitly set.
    var hasType: Bool {return self._type != nil}
    /// Clears the value of `type`. Subsequent reads from it will return its default value.
    mutating func clearType() {self._type = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    enum TypeEnum: SwiftProtobuf.Enum {
      typealias RawValue = Int

      /// groupPublicKey, name, groupPrivateKey, senderKeys, members, admins
      case new // = 0

      /// groupPublicKey, name, senderKeys, members, admins
      case info // = 1

      /// groupPublicKey
      case senderKeyRequest // = 2

      /// groupPublicKey, senderKeys
      case senderKey // = 3

      init() {
        self = .new
      }

      init?(rawValue: Int) {
        switch rawValue {
        case 0: self = .new
        case 1: self = .info
        case 2: self = .senderKeyRequest
        case 3: self = .senderKey
        default: return nil
        }
      }

      var rawValue: Int {
        switch self {
        case .new: return 0
        case .info: return 1
        case .senderKeyRequest: return 2
        case .senderKey: return 3
        }
      }

    }

    struct SenderKey {
      // SwiftProtobuf.Message conformance is added in an extension below. See the
      // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
      // methods supported on all messages.

      /// @required
      var chainKey: Data {
        get {return _chainKey ?? SwiftProtobuf.Internal.emptyData}
        set {_chainKey = newValue}
      }
      /// Returns true if `chainKey` has been explicitly set.
      var hasChainKey: Bool {return self._chainKey != nil}
      /// Clears the value of `chainKey`. Subsequent reads from it will return its default value.
      mutating func clearChainKey() {self._chainKey = nil}

      /// @required
      var keyIndex: UInt32 {
        get {return _keyIndex ?? 0}
        set {_keyIndex = newValue}
      }
      /// Returns true if `keyIndex` has been explicitly set.
      var hasKeyIndex: Bool {return self._keyIndex != nil}
      /// Clears the value of `keyIndex`. Subsequent reads from it will return its default value.
      mutating func clearKeyIndex() {self._keyIndex = nil}

      /// @required
      var publicKey: Data {
        get {return _publicKey ?? SwiftProtobuf.Internal.emptyData}
        set {_publicKey = newValue}
      }
      /// Returns true if `publicKey` has been explicitly set.
      var hasPublicKey: Bool {return self._publicKey != nil}
      /// Clears the value of `publicKey`. Subsequent reads from it will return its default value.
      mutating func clearPublicKey() {self._publicKey = nil}

      var unknownFields = SwiftProtobuf.UnknownStorage()

      init() {}

      fileprivate var _chainKey: Data? = nil
      fileprivate var _keyIndex: UInt32? = nil
      fileprivate var _publicKey: Data? = nil
    }

    init() {}

    fileprivate var _name: String? = nil
    fileprivate var _groupPublicKey: Data? = nil
    fileprivate var _groupPrivateKey: Data? = nil
    fileprivate var _type: SignalServiceProtos_DataMessage.ClosedGroupUpdate.TypeEnum? = nil
  }

  init() {}

  fileprivate var _body: String? = nil
  fileprivate var _group: SignalServiceProtos_GroupContext? = nil
  fileprivate var _flags: UInt32? = nil
  fileprivate var _expireTimer: UInt32? = nil
  fileprivate var _profileKey: Data? = nil
  fileprivate var _timestamp: UInt64? = nil
  fileprivate var _quote: SignalServiceProtos_DataMessage.Quote? = nil
  fileprivate var _profile: SignalServiceProtos_DataMessage.LokiProfile? = nil
  fileprivate var _closedGroupUpdate: SignalServiceProtos_DataMessage.ClosedGroupUpdate? = nil
  fileprivate var _publicChatInfo: SignalServiceProtos_PublicChatInfo? = nil
}

#if swift(>=4.2)

extension SignalServiceProtos_DataMessage.Flags: CaseIterable {
  // Support synthesized by the compiler.
}

extension SignalServiceProtos_DataMessage.Quote.QuotedAttachment.Flags: CaseIterable {
  // Support synthesized by the compiler.
}

extension SignalServiceProtos_DataMessage.Contact.Phone.TypeEnum: CaseIterable {
  // Support synthesized by the compiler.
}

extension SignalServiceProtos_DataMessage.Contact.Email.TypeEnum: CaseIterable {
  // Support synthesized by the compiler.
}

extension SignalServiceProtos_DataMessage.Contact.PostalAddress.TypeEnum: CaseIterable {
  // Support synthesized by the compiler.
}

extension SignalServiceProtos_DataMessage.ClosedGroupUpdate.TypeEnum: CaseIterable {
  // Support synthesized by the compiler.
}

#endif  // swift(>=4.2)

struct SignalServiceProtos_NullMessage {
  // SwiftProtobuf.Message conformance is added in an extension below. See the
  // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
  // methods supported on all messages.

  var padding: Data {
    get {return _padding ?? SwiftProtobuf.Internal.emptyData}
    set {_padding = newValue}
  }
  /// Returns true if `padding` has been explicitly set.
  var hasPadding: Bool {return self._padding != nil}
  /// Clears the value of `padding`. Subsequent reads from it will return its default value.
  mutating func clearPadding() {self._padding = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  fileprivate var _padding: Data? = nil
}

struct SignalServiceProtos_ReceiptMessage {
  // SwiftProtobuf.Message conformance is added in an extension below. See the
  // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
  // methods supported on all messages.

  /// @required
  var type: SignalServiceProtos_ReceiptMessage.TypeEnum {
    get {return _type ?? .delivery}
    set {_type = newValue}
  }
  /// Returns true if `type` has been explicitly set.
  var hasType: Bool {return self._type != nil}
  /// Clears the value of `type`. Subsequent reads from it will return its default value.
  mutating func clearType() {self._type = nil}

  var timestamp: [UInt64] = []

  var unknownFields = SwiftProtobuf.UnknownStorage()

  enum TypeEnum: SwiftProtobuf.Enum {
    typealias RawValue = Int
    case delivery // = 0
    case read // = 1

    init() {
      self = .delivery
    }

    init?(rawValue: Int) {
      switch rawValue {
      case 0: self = .delivery
      case 1: self = .read
      default: return nil
      }
    }

    var rawValue: Int {
      switch self {
      case .delivery: return 0
      case .read: return 1
      }
    }

  }

  init() {}

  fileprivate var _type: SignalServiceProtos_ReceiptMessage.TypeEnum? = nil
}

#if swift(>=4.2)

extension SignalServiceProtos_ReceiptMessage.TypeEnum: CaseIterable {
  // Support synthesized by the compiler.
}

#endif  // swift(>=4.2)

struct SignalServiceProtos_Verified {
  // SwiftProtobuf.Message conformance is added in an extension below. See the
  // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
  // methods supported on all messages.

  /// @required
  var destination: String {
    get {return _destination ?? String()}
    set {_destination = newValue}
  }
  /// Returns true if `destination` has been explicitly set.
  var hasDestination: Bool {return self._destination != nil}
  /// Clears the value of `destination`. Subsequent reads from it will return its default value.
  mutating func clearDestination() {self._destination = nil}

  var identityKey: Data {
    get {return _identityKey ?? SwiftProtobuf.Internal.emptyData}
    set {_identityKey = newValue}
  }
  /// Returns true if `identityKey` has been explicitly set.
  var hasIdentityKey: Bool {return self._identityKey != nil}
  /// Clears the value of `identityKey`. Subsequent reads from it will return its default value.
  mutating func clearIdentityKey() {self._identityKey = nil}

  var state: SignalServiceProtos_Verified.State {
    get {return _state ?? .default}
    set {_state = newValue}
  }
  /// Returns true if `state` has been explicitly set.
  var hasState: Bool {return self._state != nil}
  /// Clears the value of `state`. Subsequent reads from it will return its default value.
  mutating func clearState() {self._state = nil}

  var nullMessage: Data {
    get {return _nullMessage ?? SwiftProtobuf.Internal.emptyData}
    set {_nullMessage = newValue}
  }
  /// Returns true if `nullMessage` has been explicitly set.
  var hasNullMessage: Bool {return self._nullMessage != nil}
  /// Clears the value of `nullMessage`. Subsequent reads from it will return its default value.
  mutating func clearNullMessage() {self._nullMessage = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  enum State: SwiftProtobuf.Enum {
    typealias RawValue = Int
    case `default` // = 0
    case verified // = 1
    case unverified // = 2

    init() {
      self = .default
    }

    init?(rawValue: Int) {
      switch rawValue {
      case 0: self = .default
      case 1: self = .verified
      case 2: self = .unverified
      default: return nil
      }
    }

    var rawValue: Int {
      switch self {
      case .default: return 0
      case .verified: return 1
      case .unverified: return 2
      }
    }

  }

  init() {}

  fileprivate var _destination: String? = nil
  fileprivate var _identityKey: Data? = nil
  fileprivate var _state: SignalServiceProtos_Verified.State? = nil
  fileprivate var _nullMessage: Data? = nil
}

#if swift(>=4.2)

extension SignalServiceProtos_Verified.State: CaseIterable {
  // Support synthesized by the compiler.
}

#endif  // swift(>=4.2)

struct SignalServiceProtos_SyncMessage {
  // SwiftProtobuf.Message conformance is added in an extension below. See the
  // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
  // methods supported on all messages.

  var sent: SignalServiceProtos_SyncMessage.Sent {
    get {return _sent ?? SignalServiceProtos_SyncMessage.Sent()}
    set {_sent = newValue}
  }
  /// Returns true if `sent` has been explicitly set.
  var hasSent: Bool {return self._sent != nil}
  /// Clears the value of `sent`. Subsequent reads from it will return its default value.
  mutating func clearSent() {self._sent = nil}

  var contacts: SignalServiceProtos_SyncMessage.Contacts {
    get {return _contacts ?? SignalServiceProtos_SyncMessage.Contacts()}
    set {_contacts = newValue}
  }
  /// Returns true if `contacts` has been explicitly set.
  var hasContacts: Bool {return self._contacts != nil}
  /// Clears the value of `contacts`. Subsequent reads from it will return its default value.
  mutating func clearContacts() {self._contacts = nil}

  var groups: SignalServiceProtos_SyncMessage.Groups {
    get {return _groups ?? SignalServiceProtos_SyncMessage.Groups()}
    set {_groups = newValue}
  }
  /// Returns true if `groups` has been explicitly set.
  var hasGroups: Bool {return self._groups != nil}
  /// Clears the value of `groups`. Subsequent reads from it will return its default value.
  mutating func clearGroups() {self._groups = nil}

  var request: SignalServiceProtos_SyncMessage.Request {
    get {return _request ?? SignalServiceProtos_SyncMessage.Request()}
    set {_request = newValue}
  }
  /// Returns true if `request` has been explicitly set.
  var hasRequest: Bool {return self._request != nil}
  /// Clears the value of `request`. Subsequent reads from it will return its default value.
  mutating func clearRequest() {self._request = nil}

  var read: [SignalServiceProtos_SyncMessage.Read] = []

  var blocked: SignalServiceProtos_SyncMessage.Blocked {
    get {return _blocked ?? SignalServiceProtos_SyncMessage.Blocked()}
    set {_blocked = newValue}
  }
  /// Returns true if `blocked` has been explicitly set.
  var hasBlocked: Bool {return self._blocked != nil}
  /// Clears the value of `blocked`. Subsequent reads from it will return its default value.
  mutating func clearBlocked() {self._blocked = nil}

  var verified: SignalServiceProtos_Verified {
    get {return _verified ?? SignalServiceProtos_Verified()}
    set {_verified = newValue}
  }
  /// Returns true if `verified` has been explicitly set.
  var hasVerified: Bool {return self._verified != nil}
  /// Clears the value of `verified`. Subsequent reads from it will return its default value.
  mutating func clearVerified() {self._verified = nil}

  var configuration: SignalServiceProtos_SyncMessage.Configuration {
    get {return _configuration ?? SignalServiceProtos_SyncMessage.Configuration()}
    set {_configuration = newValue}
  }
  /// Returns true if `configuration` has been explicitly set.
  var hasConfiguration: Bool {return self._configuration != nil}
  /// Clears the value of `configuration`. Subsequent reads from it will return its default value.
  mutating func clearConfiguration() {self._configuration = nil}

  var padding: Data {
    get {return _padding ?? SwiftProtobuf.Internal.emptyData}
    set {_padding = newValue}
  }
  /// Returns true if `padding` has been explicitly set.
  var hasPadding: Bool {return self._padding != nil}
  /// Clears the value of `padding`. Subsequent reads from it will return its default value.
  mutating func clearPadding() {self._padding = nil}

  var openGroups: [SignalServiceProtos_SyncMessage.OpenGroupDetails] = []

  var unknownFields = SwiftProtobuf.UnknownStorage()

  struct Sent {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    var destination: String {
      get {return _destination ?? String()}
      set {_destination = newValue}
    }
    /// Returns true if `destination` has been explicitly set.
    var hasDestination: Bool {return self._destination != nil}
    /// Clears the value of `destination`. Subsequent reads from it will return its default value.
    mutating func clearDestination() {self._destination = nil}

    var timestamp: UInt64 {
      get {return _timestamp ?? 0}
      set {_timestamp = newValue}
    }
    /// Returns true if `timestamp` has been explicitly set.
    var hasTimestamp: Bool {return self._timestamp != nil}
    /// Clears the value of `timestamp`. Subsequent reads from it will return its default value.
    mutating func clearTimestamp() {self._timestamp = nil}

    var message: SignalServiceProtos_DataMessage {
      get {return _message ?? SignalServiceProtos_DataMessage()}
      set {_message = newValue}
    }
    /// Returns true if `message` has been explicitly set.
    var hasMessage: Bool {return self._message != nil}
    /// Clears the value of `message`. Subsequent reads from it will return its default value.
    mutating func clearMessage() {self._message = nil}

    var expirationStartTimestamp: UInt64 {
      get {return _expirationStartTimestamp ?? 0}
      set {_expirationStartTimestamp = newValue}
    }
    /// Returns true if `expirationStartTimestamp` has been explicitly set.
    var hasExpirationStartTimestamp: Bool {return self._expirationStartTimestamp != nil}
    /// Clears the value of `expirationStartTimestamp`. Subsequent reads from it will return its default value.
    mutating func clearExpirationStartTimestamp() {self._expirationStartTimestamp = nil}

    var unidentifiedStatus: [SignalServiceProtos_SyncMessage.Sent.UnidentifiedDeliveryStatus] = []

    var isRecipientUpdate: Bool {
      get {return _isRecipientUpdate ?? false}
      set {_isRecipientUpdate = newValue}
    }
    /// Returns true if `isRecipientUpdate` has been explicitly set.
    var hasIsRecipientUpdate: Bool {return self._isRecipientUpdate != nil}
    /// Clears the value of `isRecipientUpdate`. Subsequent reads from it will return its default value.
    mutating func clearIsRecipientUpdate() {self._isRecipientUpdate = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    struct UnidentifiedDeliveryStatus {
      // SwiftProtobuf.Message conformance is added in an extension below. See the
      // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
      // methods supported on all messages.

      var destination: String {
        get {return _destination ?? String()}
        set {_destination = newValue}
      }
      /// Returns true if `destination` has been explicitly set.
      var hasDestination: Bool {return self._destination != nil}
      /// Clears the value of `destination`. Subsequent reads from it will return its default value.
      mutating func clearDestination() {self._destination = nil}

      var unidentified: Bool {
        get {return _unidentified ?? false}
        set {_unidentified = newValue}
      }
      /// Returns true if `unidentified` has been explicitly set.
      var hasUnidentified: Bool {return self._unidentified != nil}
      /// Clears the value of `unidentified`. Subsequent reads from it will return its default value.
      mutating func clearUnidentified() {self._unidentified = nil}

      var unknownFields = SwiftProtobuf.UnknownStorage()

      init() {}

      fileprivate var _destination: String? = nil
      fileprivate var _unidentified: Bool? = nil
    }

    init() {}

    fileprivate var _destination: String? = nil
    fileprivate var _timestamp: UInt64? = nil
    fileprivate var _message: SignalServiceProtos_DataMessage? = nil
    fileprivate var _expirationStartTimestamp: UInt64? = nil
    fileprivate var _isRecipientUpdate: Bool? = nil
  }

  struct Contacts {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    var blob: SignalServiceProtos_AttachmentPointer {
      get {return _blob ?? SignalServiceProtos_AttachmentPointer()}
      set {_blob = newValue}
    }
    /// Returns true if `blob` has been explicitly set.
    var hasBlob: Bool {return self._blob != nil}
    /// Clears the value of `blob`. Subsequent reads from it will return its default value.
    mutating func clearBlob() {self._blob = nil}

    /// Signal-iOS renamed this property.
    var isComplete: Bool {
      get {return _isComplete ?? false}
      set {_isComplete = newValue}
    }
    /// Returns true if `isComplete` has been explicitly set.
    var hasIsComplete: Bool {return self._isComplete != nil}
    /// Clears the value of `isComplete`. Subsequent reads from it will return its default value.
    mutating func clearIsComplete() {self._isComplete = nil}

    /// Loki
    var data: Data {
      get {return _data ?? SwiftProtobuf.Internal.emptyData}
      set {_data = newValue}
    }
    /// Returns true if `data` has been explicitly set.
    var hasData: Bool {return self._data != nil}
    /// Clears the value of `data`. Subsequent reads from it will return its default value.
    mutating func clearData() {self._data = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    init() {}

    fileprivate var _blob: SignalServiceProtos_AttachmentPointer? = nil
    fileprivate var _isComplete: Bool? = nil
    fileprivate var _data: Data? = nil
  }

  struct Groups {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    var blob: SignalServiceProtos_AttachmentPointer {
      get {return _blob ?? SignalServiceProtos_AttachmentPointer()}
      set {_blob = newValue}
    }
    /// Returns true if `blob` has been explicitly set.
    var hasBlob: Bool {return self._blob != nil}
    /// Clears the value of `blob`. Subsequent reads from it will return its default value.
    mutating func clearBlob() {self._blob = nil}

    /// Loki
    var data: Data {
      get {return _data ?? SwiftProtobuf.Internal.emptyData}
      set {_data = newValue}
    }
    /// Returns true if `data` has been explicitly set.
    var hasData: Bool {return self._data != nil}
    /// Clears the value of `data`. Subsequent reads from it will return its default value.
    mutating func clearData() {self._data = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    init() {}

    fileprivate var _blob: SignalServiceProtos_AttachmentPointer? = nil
    fileprivate var _data: Data? = nil
  }

  /// Loki
  struct OpenGroupDetails {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    /// @required
    var url: String {
      get {return _url ?? String()}
      set {_url = newValue}
    }
    /// Returns true if `url` has been explicitly set.
    var hasURL: Bool {return self._url != nil}
    /// Clears the value of `url`. Subsequent reads from it will return its default value.
    mutating func clearURL() {self._url = nil}

    /// @required
    var channelID: UInt64 {
      get {return _channelID ?? 0}
      set {_channelID = newValue}
    }
    /// Returns true if `channelID` has been explicitly set.
    var hasChannelID: Bool {return self._channelID != nil}
    /// Clears the value of `channelID`. Subsequent reads from it will return its default value.
    mutating func clearChannelID() {self._channelID = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    init() {}

    fileprivate var _url: String? = nil
    fileprivate var _channelID: UInt64? = nil
  }

  struct Blocked {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    var numbers: [String] = []

    var groupIds: [Data] = []

    var unknownFields = SwiftProtobuf.UnknownStorage()

    init() {}
  }

  struct Request {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    /// @required
    var type: SignalServiceProtos_SyncMessage.Request.TypeEnum {
      get {return _type ?? .unknown}
      set {_type = newValue}
    }
    /// Returns true if `type` has been explicitly set.
    var hasType: Bool {return self._type != nil}
    /// Clears the value of `type`. Subsequent reads from it will return its default value.
    mutating func clearType() {self._type = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    enum TypeEnum: SwiftProtobuf.Enum {
      typealias RawValue = Int
      case unknown // = 0
      case contacts // = 1
      case groups // = 2
      case blocked // = 3
      case configuration // = 4

      init() {
        self = .unknown
      }

      init?(rawValue: Int) {
        switch rawValue {
        case 0: self = .unknown
        case 1: self = .contacts
        case 2: self = .groups
        case 3: self = .blocked
        case 4: self = .configuration
        default: return nil
        }
      }

      var rawValue: Int {
        switch self {
        case .unknown: return 0
        case .contacts: return 1
        case .groups: return 2
        case .blocked: return 3
        case .configuration: return 4
        }
      }

    }

    init() {}

    fileprivate var _type: SignalServiceProtos_SyncMessage.Request.TypeEnum? = nil
  }

  struct Read {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    /// @required
    var sender: String {
      get {return _sender ?? String()}
      set {_sender = newValue}
    }
    /// Returns true if `sender` has been explicitly set.
    var hasSender: Bool {return self._sender != nil}
    /// Clears the value of `sender`. Subsequent reads from it will return its default value.
    mutating func clearSender() {self._sender = nil}

    /// @required
    var timestamp: UInt64 {
      get {return _timestamp ?? 0}
      set {_timestamp = newValue}
    }
    /// Returns true if `timestamp` has been explicitly set.
    var hasTimestamp: Bool {return self._timestamp != nil}
    /// Clears the value of `timestamp`. Subsequent reads from it will return its default value.
    mutating func clearTimestamp() {self._timestamp = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    init() {}

    fileprivate var _sender: String? = nil
    fileprivate var _timestamp: UInt64? = nil
  }

  struct Configuration {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    var readReceipts: Bool {
      get {return _readReceipts ?? false}
      set {_readReceipts = newValue}
    }
    /// Returns true if `readReceipts` has been explicitly set.
    var hasReadReceipts: Bool {return self._readReceipts != nil}
    /// Clears the value of `readReceipts`. Subsequent reads from it will return its default value.
    mutating func clearReadReceipts() {self._readReceipts = nil}

    var unidentifiedDeliveryIndicators: Bool {
      get {return _unidentifiedDeliveryIndicators ?? false}
      set {_unidentifiedDeliveryIndicators = newValue}
    }
    /// Returns true if `unidentifiedDeliveryIndicators` has been explicitly set.
    var hasUnidentifiedDeliveryIndicators: Bool {return self._unidentifiedDeliveryIndicators != nil}
    /// Clears the value of `unidentifiedDeliveryIndicators`. Subsequent reads from it will return its default value.
    mutating func clearUnidentifiedDeliveryIndicators() {self._unidentifiedDeliveryIndicators = nil}

    var typingIndicators: Bool {
      get {return _typingIndicators ?? false}
      set {_typingIndicators = newValue}
    }
    /// Returns true if `typingIndicators` has been explicitly set.
    var hasTypingIndicators: Bool {return self._typingIndicators != nil}
    /// Clears the value of `typingIndicators`. Subsequent reads from it will return its default value.
    mutating func clearTypingIndicators() {self._typingIndicators = nil}

    var linkPreviews: Bool {
      get {return _linkPreviews ?? false}
      set {_linkPreviews = newValue}
    }
    /// Returns true if `linkPreviews` has been explicitly set.
    var hasLinkPreviews: Bool {return self._linkPreviews != nil}
    /// Clears the value of `linkPreviews`. Subsequent reads from it will return its default value.
    mutating func clearLinkPreviews() {self._linkPreviews = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    init() {}

    fileprivate var _readReceipts: Bool? = nil
    fileprivate var _unidentifiedDeliveryIndicators: Bool? = nil
    fileprivate var _typingIndicators: Bool? = nil
    fileprivate var _linkPreviews: Bool? = nil
  }

  init() {}

  fileprivate var _sent: SignalServiceProtos_SyncMessage.Sent? = nil
  fileprivate var _contacts: SignalServiceProtos_SyncMessage.Contacts? = nil
  fileprivate var _groups: SignalServiceProtos_SyncMessage.Groups? = nil
  fileprivate var _request: SignalServiceProtos_SyncMessage.Request? = nil
  fileprivate var _blocked: SignalServiceProtos_SyncMessage.Blocked? = nil
  fileprivate var _verified: SignalServiceProtos_Verified? = nil
  fileprivate var _configuration: SignalServiceProtos_SyncMessage.Configuration? = nil
  fileprivate var _padding: Data? = nil
}

#if swift(>=4.2)

extension SignalServiceProtos_SyncMessage.Request.TypeEnum: CaseIterable {
  // Support synthesized by the compiler.
}

#endif  // swift(>=4.2)

struct SignalServiceProtos_AttachmentPointer {
  // SwiftProtobuf.Message conformance is added in an extension below. See the
  // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
  // methods supported on all messages.

  /// @required
  var id: UInt64 {
    get {return _id ?? 0}
    set {_id = newValue}
  }
  /// Returns true if `id` has been explicitly set.
  var hasID: Bool {return self._id != nil}
  /// Clears the value of `id`. Subsequent reads from it will return its default value.
  mutating func clearID() {self._id = nil}

  var contentType: String {
    get {return _contentType ?? String()}
    set {_contentType = newValue}
  }
  /// Returns true if `contentType` has been explicitly set.
  var hasContentType: Bool {return self._contentType != nil}
  /// Clears the value of `contentType`. Subsequent reads from it will return its default value.
  mutating func clearContentType() {self._contentType = nil}

  var key: Data {
    get {return _key ?? SwiftProtobuf.Internal.emptyData}
    set {_key = newValue}
  }
  /// Returns true if `key` has been explicitly set.
  var hasKey: Bool {return self._key != nil}
  /// Clears the value of `key`. Subsequent reads from it will return its default value.
  mutating func clearKey() {self._key = nil}

  var size: UInt32 {
    get {return _size ?? 0}
    set {_size = newValue}
  }
  /// Returns true if `size` has been explicitly set.
  var hasSize: Bool {return self._size != nil}
  /// Clears the value of `size`. Subsequent reads from it will return its default value.
  mutating func clearSize() {self._size = nil}

  var thumbnail: Data {
    get {return _thumbnail ?? SwiftProtobuf.Internal.emptyData}
    set {_thumbnail = newValue}
  }
  /// Returns true if `thumbnail` has been explicitly set.
  var hasThumbnail: Bool {return self._thumbnail != nil}
  /// Clears the value of `thumbnail`. Subsequent reads from it will return its default value.
  mutating func clearThumbnail() {self._thumbnail = nil}

  var digest: Data {
    get {return _digest ?? SwiftProtobuf.Internal.emptyData}
    set {_digest = newValue}
  }
  /// Returns true if `digest` has been explicitly set.
  var hasDigest: Bool {return self._digest != nil}
  /// Clears the value of `digest`. Subsequent reads from it will return its default value.
  mutating func clearDigest() {self._digest = nil}

  var fileName: String {
    get {return _fileName ?? String()}
    set {_fileName = newValue}
  }
  /// Returns true if `fileName` has been explicitly set.
  var hasFileName: Bool {return self._fileName != nil}
  /// Clears the value of `fileName`. Subsequent reads from it will return its default value.
  mutating func clearFileName() {self._fileName = nil}

  var flags: UInt32 {
    get {return _flags ?? 0}
    set {_flags = newValue}
  }
  /// Returns true if `flags` has been explicitly set.
  var hasFlags: Bool {return self._flags != nil}
  /// Clears the value of `flags`. Subsequent reads from it will return its default value.
  mutating func clearFlags() {self._flags = nil}

  var width: UInt32 {
    get {return _width ?? 0}
    set {_width = newValue}
  }
  /// Returns true if `width` has been explicitly set.
  var hasWidth: Bool {return self._width != nil}
  /// Clears the value of `width`. Subsequent reads from it will return its default value.
  mutating func clearWidth() {self._width = nil}

  var height: UInt32 {
    get {return _height ?? 0}
    set {_height = newValue}
  }
  /// Returns true if `height` has been explicitly set.
  var hasHeight: Bool {return self._height != nil}
  /// Clears the value of `height`. Subsequent reads from it will return its default value.
  mutating func clearHeight() {self._height = nil}

  var caption: String {
    get {return _caption ?? String()}
    set {_caption = newValue}
  }
  /// Returns true if `caption` has been explicitly set.
  var hasCaption: Bool {return self._caption != nil}
  /// Clears the value of `caption`. Subsequent reads from it will return its default value.
  mutating func clearCaption() {self._caption = nil}

  /// Loki
  var url: String {
    get {return _url ?? String()}
    set {_url = newValue}
  }
  /// Returns true if `url` has been explicitly set.
  var hasURL: Bool {return self._url != nil}
  /// Clears the value of `url`. Subsequent reads from it will return its default value.
  mutating func clearURL() {self._url = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  enum Flags: SwiftProtobuf.Enum {
    typealias RawValue = Int
    case voiceMessage // = 1

    init() {
      self = .voiceMessage
    }

    init?(rawValue: Int) {
      switch rawValue {
      case 1: self = .voiceMessage
      default: return nil
      }
    }

    var rawValue: Int {
      switch self {
      case .voiceMessage: return 1
      }
    }

  }

  init() {}

  fileprivate var _id: UInt64? = nil
  fileprivate var _contentType: String? = nil
  fileprivate var _key: Data? = nil
  fileprivate var _size: UInt32? = nil
  fileprivate var _thumbnail: Data? = nil
  fileprivate var _digest: Data? = nil
  fileprivate var _fileName: String? = nil
  fileprivate var _flags: UInt32? = nil
  fileprivate var _width: UInt32? = nil
  fileprivate var _height: UInt32? = nil
  fileprivate var _caption: String? = nil
  fileprivate var _url: String? = nil
}

#if swift(>=4.2)

extension SignalServiceProtos_AttachmentPointer.Flags: CaseIterable {
  // Support synthesized by the compiler.
}

#endif  // swift(>=4.2)

struct SignalServiceProtos_GroupContext {
  // SwiftProtobuf.Message conformance is added in an extension below. See the
  // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
  // methods supported on all messages.

  /// @required
  var id: Data {
    get {return _id ?? SwiftProtobuf.Internal.emptyData}
    set {_id = newValue}
  }
  /// Returns true if `id` has been explicitly set.
  var hasID: Bool {return self._id != nil}
  /// Clears the value of `id`. Subsequent reads from it will return its default value.
  mutating func clearID() {self._id = nil}

  /// @required
  var type: SignalServiceProtos_GroupContext.TypeEnum {
    get {return _type ?? .unknown}
    set {_type = newValue}
  }
  /// Returns true if `type` has been explicitly set.
  var hasType: Bool {return self._type != nil}
  /// Clears the value of `type`. Subsequent reads from it will return its default value.
  mutating func clearType() {self._type = nil}

  var name: String {
    get {return _name ?? String()}
    set {_name = newValue}
  }
  /// Returns true if `name` has been explicitly set.
  var hasName: Bool {return self._name != nil}
  /// Clears the value of `name`. Subsequent reads from it will return its default value.
  mutating func clearName() {self._name = nil}

  var members: [String] = []

  var avatar: SignalServiceProtos_AttachmentPointer {
    get {return _avatar ?? SignalServiceProtos_AttachmentPointer()}
    set {_avatar = newValue}
  }
  /// Returns true if `avatar` has been explicitly set.
  var hasAvatar: Bool {return self._avatar != nil}
  /// Clears the value of `avatar`. Subsequent reads from it will return its default value.
  mutating func clearAvatar() {self._avatar = nil}

  /// Loki
  var admins: [String] = []

  var unknownFields = SwiftProtobuf.UnknownStorage()

  enum TypeEnum: SwiftProtobuf.Enum {
    typealias RawValue = Int
    case unknown // = 0
    case update // = 1
    case deliver // = 2
    case quit // = 3
    case requestInfo // = 4

    init() {
      self = .unknown
    }

    init?(rawValue: Int) {
      switch rawValue {
      case 0: self = .unknown
      case 1: self = .update
      case 2: self = .deliver
      case 3: self = .quit
      case 4: self = .requestInfo
      default: return nil
      }
    }

    var rawValue: Int {
      switch self {
      case .unknown: return 0
      case .update: return 1
      case .deliver: return 2
      case .quit: return 3
      case .requestInfo: return 4
      }
    }

  }

  init() {}

  fileprivate var _id: Data? = nil
  fileprivate var _type: SignalServiceProtos_GroupContext.TypeEnum? = nil
  fileprivate var _name: String? = nil
  fileprivate var _avatar: SignalServiceProtos_AttachmentPointer? = nil
}

#if swift(>=4.2)

extension SignalServiceProtos_GroupContext.TypeEnum: CaseIterable {
  // Support synthesized by the compiler.
}

#endif  // swift(>=4.2)

struct SignalServiceProtos_ContactDetails {
  // SwiftProtobuf.Message conformance is added in an extension below. See the
  // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
  // methods supported on all messages.

  /// @required
  var number: String {
    get {return _number ?? String()}
    set {_number = newValue}
  }
  /// Returns true if `number` has been explicitly set.
  var hasNumber: Bool {return self._number != nil}
  /// Clears the value of `number`. Subsequent reads from it will return its default value.
  mutating func clearNumber() {self._number = nil}

  var name: String {
    get {return _name ?? String()}
    set {_name = newValue}
  }
  /// Returns true if `name` has been explicitly set.
  var hasName: Bool {return self._name != nil}
  /// Clears the value of `name`. Subsequent reads from it will return its default value.
  mutating func clearName() {self._name = nil}

  var avatar: SignalServiceProtos_ContactDetails.Avatar {
    get {return _avatar ?? SignalServiceProtos_ContactDetails.Avatar()}
    set {_avatar = newValue}
  }
  /// Returns true if `avatar` has been explicitly set.
  var hasAvatar: Bool {return self._avatar != nil}
  /// Clears the value of `avatar`. Subsequent reads from it will return its default value.
  mutating func clearAvatar() {self._avatar = nil}

  var color: String {
    get {return _color ?? String()}
    set {_color = newValue}
  }
  /// Returns true if `color` has been explicitly set.
  var hasColor: Bool {return self._color != nil}
  /// Clears the value of `color`. Subsequent reads from it will return its default value.
  mutating func clearColor() {self._color = nil}

  var verified: SignalServiceProtos_Verified {
    get {return _verified ?? SignalServiceProtos_Verified()}
    set {_verified = newValue}
  }
  /// Returns true if `verified` has been explicitly set.
  var hasVerified: Bool {return self._verified != nil}
  /// Clears the value of `verified`. Subsequent reads from it will return its default value.
  mutating func clearVerified() {self._verified = nil}

  var profileKey: Data {
    get {return _profileKey ?? SwiftProtobuf.Internal.emptyData}
    set {_profileKey = newValue}
  }
  /// Returns true if `profileKey` has been explicitly set.
  var hasProfileKey: Bool {return self._profileKey != nil}
  /// Clears the value of `profileKey`. Subsequent reads from it will return its default value.
  mutating func clearProfileKey() {self._profileKey = nil}

  var blocked: Bool {
    get {return _blocked ?? false}
    set {_blocked = newValue}
  }
  /// Returns true if `blocked` has been explicitly set.
  var hasBlocked: Bool {return self._blocked != nil}
  /// Clears the value of `blocked`. Subsequent reads from it will return its default value.
  mutating func clearBlocked() {self._blocked = nil}

  var expireTimer: UInt32 {
    get {return _expireTimer ?? 0}
    set {_expireTimer = newValue}
  }
  /// Returns true if `expireTimer` has been explicitly set.
  var hasExpireTimer: Bool {return self._expireTimer != nil}
  /// Clears the value of `expireTimer`. Subsequent reads from it will return its default value.
  mutating func clearExpireTimer() {self._expireTimer = nil}

  /// Loki
  var nickname: String {
    get {return _nickname ?? String()}
    set {_nickname = newValue}
  }
  /// Returns true if `nickname` has been explicitly set.
  var hasNickname: Bool {return self._nickname != nil}
  /// Clears the value of `nickname`. Subsequent reads from it will return its default value.
  mutating func clearNickname() {self._nickname = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  struct Avatar {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    var contentType: String {
      get {return _contentType ?? String()}
      set {_contentType = newValue}
    }
    /// Returns true if `contentType` has been explicitly set.
    var hasContentType: Bool {return self._contentType != nil}
    /// Clears the value of `contentType`. Subsequent reads from it will return its default value.
    mutating func clearContentType() {self._contentType = nil}

    var length: UInt32 {
      get {return _length ?? 0}
      set {_length = newValue}
    }
    /// Returns true if `length` has been explicitly set.
    var hasLength: Bool {return self._length != nil}
    /// Clears the value of `length`. Subsequent reads from it will return its default value.
    mutating func clearLength() {self._length = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    init() {}

    fileprivate var _contentType: String? = nil
    fileprivate var _length: UInt32? = nil
  }

  init() {}

  fileprivate var _number: String? = nil
  fileprivate var _name: String? = nil
  fileprivate var _avatar: SignalServiceProtos_ContactDetails.Avatar? = nil
  fileprivate var _color: String? = nil
  fileprivate var _verified: SignalServiceProtos_Verified? = nil
  fileprivate var _profileKey: Data? = nil
  fileprivate var _blocked: Bool? = nil
  fileprivate var _expireTimer: UInt32? = nil
  fileprivate var _nickname: String? = nil
}

struct SignalServiceProtos_GroupDetails {
  // SwiftProtobuf.Message conformance is added in an extension below. See the
  // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
  // methods supported on all messages.

  /// @required
  var id: Data {
    get {return _id ?? SwiftProtobuf.Internal.emptyData}
    set {_id = newValue}
  }
  /// Returns true if `id` has been explicitly set.
  var hasID: Bool {return self._id != nil}
  /// Clears the value of `id`. Subsequent reads from it will return its default value.
  mutating func clearID() {self._id = nil}

  var name: String {
    get {return _name ?? String()}
    set {_name = newValue}
  }
  /// Returns true if `name` has been explicitly set.
  var hasName: Bool {return self._name != nil}
  /// Clears the value of `name`. Subsequent reads from it will return its default value.
  mutating func clearName() {self._name = nil}

  var members: [String] = []

  var avatar: SignalServiceProtos_GroupDetails.Avatar {
    get {return _avatar ?? SignalServiceProtos_GroupDetails.Avatar()}
    set {_avatar = newValue}
  }
  /// Returns true if `avatar` has been explicitly set.
  var hasAvatar: Bool {return self._avatar != nil}
  /// Clears the value of `avatar`. Subsequent reads from it will return its default value.
  mutating func clearAvatar() {self._avatar = nil}

  var active: Bool {
    get {return _active ?? true}
    set {_active = newValue}
  }
  /// Returns true if `active` has been explicitly set.
  var hasActive: Bool {return self._active != nil}
  /// Clears the value of `active`. Subsequent reads from it will return its default value.
  mutating func clearActive() {self._active = nil}

  var expireTimer: UInt32 {
    get {return _expireTimer ?? 0}
    set {_expireTimer = newValue}
  }
  /// Returns true if `expireTimer` has been explicitly set.
  var hasExpireTimer: Bool {return self._expireTimer != nil}
  /// Clears the value of `expireTimer`. Subsequent reads from it will return its default value.
  mutating func clearExpireTimer() {self._expireTimer = nil}

  var color: String {
    get {return _color ?? String()}
    set {_color = newValue}
  }
  /// Returns true if `color` has been explicitly set.
  var hasColor: Bool {return self._color != nil}
  /// Clears the value of `color`. Subsequent reads from it will return its default value.
  mutating func clearColor() {self._color = nil}

  var blocked: Bool {
    get {return _blocked ?? false}
    set {_blocked = newValue}
  }
  /// Returns true if `blocked` has been explicitly set.
  var hasBlocked: Bool {return self._blocked != nil}
  /// Clears the value of `blocked`. Subsequent reads from it will return its default value.
  mutating func clearBlocked() {self._blocked = nil}

  /// Loki
  var admins: [String] = []

  var unknownFields = SwiftProtobuf.UnknownStorage()

  struct Avatar {
    // SwiftProtobuf.Message conformance is added in an extension below. See the
    // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
    // methods supported on all messages.

    var contentType: String {
      get {return _contentType ?? String()}
      set {_contentType = newValue}
    }
    /// Returns true if `contentType` has been explicitly set.
    var hasContentType: Bool {return self._contentType != nil}
    /// Clears the value of `contentType`. Subsequent reads from it will return its default value.
    mutating func clearContentType() {self._contentType = nil}

    var length: UInt32 {
      get {return _length ?? 0}
      set {_length = newValue}
    }
    /// Returns true if `length` has been explicitly set.
    var hasLength: Bool {return self._length != nil}
    /// Clears the value of `length`. Subsequent reads from it will return its default value.
    mutating func clearLength() {self._length = nil}

    var unknownFields = SwiftProtobuf.UnknownStorage()

    init() {}

    fileprivate var _contentType: String? = nil
    fileprivate var _length: UInt32? = nil
  }

  init() {}

  fileprivate var _id: Data? = nil
  fileprivate var _name: String? = nil
  fileprivate var _avatar: SignalServiceProtos_GroupDetails.Avatar? = nil
  fileprivate var _active: Bool? = nil
  fileprivate var _expireTimer: UInt32? = nil
  fileprivate var _color: String? = nil
  fileprivate var _blocked: Bool? = nil
}

/// Internal - DO NOT SEND
struct SignalServiceProtos_PublicChatInfo {
  // SwiftProtobuf.Message conformance is added in an extension below. See the
  // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
  // methods supported on all messages.

  var serverID: UInt64 {
    get {return _serverID ?? 0}
    set {_serverID = newValue}
  }
  /// Returns true if `serverID` has been explicitly set.
  var hasServerID: Bool {return self._serverID != nil}
  /// Clears the value of `serverID`. Subsequent reads from it will return its default value.
  mutating func clearServerID() {self._serverID = nil}

  var unknownFields = SwiftProtobuf.UnknownStorage()

  init() {}

  fileprivate var _serverID: UInt64? = nil
}

// MARK: - Code below here is support for the SwiftProtobuf runtime.

fileprivate let _protobuf_package = "SignalServiceProtos"

extension SignalServiceProtos_Envelope: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".Envelope"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "type"),
    2: .same(proto: "source"),
    7: .same(proto: "sourceDevice"),
    3: .same(proto: "relay"),
    5: .same(proto: "timestamp"),
    6: .same(proto: "legacyMessage"),
    8: .same(proto: "content"),
    9: .same(proto: "serverGuid"),
    10: .same(proto: "serverTimestamp"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularEnumField(value: &self._type)
      case 2: try decoder.decodeSingularStringField(value: &self._source)
      case 3: try decoder.decodeSingularStringField(value: &self._relay)
      case 5: try decoder.decodeSingularUInt64Field(value: &self._timestamp)
      case 6: try decoder.decodeSingularBytesField(value: &self._legacyMessage)
      case 7: try decoder.decodeSingularUInt32Field(value: &self._sourceDevice)
      case 8: try decoder.decodeSingularBytesField(value: &self._content)
      case 9: try decoder.decodeSingularStringField(value: &self._serverGuid)
      case 10: try decoder.decodeSingularUInt64Field(value: &self._serverTimestamp)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._type {
      try visitor.visitSingularEnumField(value: v, fieldNumber: 1)
    }
    if let v = self._source {
      try visitor.visitSingularStringField(value: v, fieldNumber: 2)
    }
    if let v = self._relay {
      try visitor.visitSingularStringField(value: v, fieldNumber: 3)
    }
    if let v = self._timestamp {
      try visitor.visitSingularUInt64Field(value: v, fieldNumber: 5)
    }
    if let v = self._legacyMessage {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 6)
    }
    if let v = self._sourceDevice {
      try visitor.visitSingularUInt32Field(value: v, fieldNumber: 7)
    }
    if let v = self._content {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 8)
    }
    if let v = self._serverGuid {
      try visitor.visitSingularStringField(value: v, fieldNumber: 9)
    }
    if let v = self._serverTimestamp {
      try visitor.visitSingularUInt64Field(value: v, fieldNumber: 10)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_Envelope, rhs: SignalServiceProtos_Envelope) -> Bool {
    if lhs._type != rhs._type {return false}
    if lhs._source != rhs._source {return false}
    if lhs._sourceDevice != rhs._sourceDevice {return false}
    if lhs._relay != rhs._relay {return false}
    if lhs._timestamp != rhs._timestamp {return false}
    if lhs._legacyMessage != rhs._legacyMessage {return false}
    if lhs._content != rhs._content {return false}
    if lhs._serverGuid != rhs._serverGuid {return false}
    if lhs._serverTimestamp != rhs._serverTimestamp {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_Envelope.TypeEnum: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    0: .same(proto: "UNKNOWN"),
    1: .same(proto: "CIPHERTEXT"),
    2: .same(proto: "KEY_EXCHANGE"),
    3: .same(proto: "PREKEY_BUNDLE"),
    5: .same(proto: "RECEIPT"),
    6: .same(proto: "UNIDENTIFIED_SENDER"),
    7: .same(proto: "CLOSED_GROUP_CIPHERTEXT"),
    101: .same(proto: "FALLBACK_MESSAGE"),
  ]
}

extension SignalServiceProtos_TypingMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".TypingMessage"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "timestamp"),
    2: .same(proto: "action"),
    3: .same(proto: "groupId"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularUInt64Field(value: &self._timestamp)
      case 2: try decoder.decodeSingularEnumField(value: &self._action)
      case 3: try decoder.decodeSingularBytesField(value: &self._groupID)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._timestamp {
      try visitor.visitSingularUInt64Field(value: v, fieldNumber: 1)
    }
    if let v = self._action {
      try visitor.visitSingularEnumField(value: v, fieldNumber: 2)
    }
    if let v = self._groupID {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 3)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_TypingMessage, rhs: SignalServiceProtos_TypingMessage) -> Bool {
    if lhs._timestamp != rhs._timestamp {return false}
    if lhs._action != rhs._action {return false}
    if lhs._groupID != rhs._groupID {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_TypingMessage.Action: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    0: .same(proto: "STARTED"),
    1: .same(proto: "STOPPED"),
  ]
}

extension SignalServiceProtos_Content: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".Content"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "dataMessage"),
    2: .same(proto: "syncMessage"),
    3: .same(proto: "callMessage"),
    4: .same(proto: "nullMessage"),
    5: .same(proto: "receiptMessage"),
    6: .same(proto: "typingMessage"),
    101: .same(proto: "prekeyBundleMessage"),
    103: .same(proto: "lokiDeviceLinkMessage"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularMessageField(value: &self._dataMessage)
      case 2: try decoder.decodeSingularMessageField(value: &self._syncMessage)
      case 3: try decoder.decodeSingularMessageField(value: &self._callMessage)
      case 4: try decoder.decodeSingularMessageField(value: &self._nullMessage)
      case 5: try decoder.decodeSingularMessageField(value: &self._receiptMessage)
      case 6: try decoder.decodeSingularMessageField(value: &self._typingMessage)
      case 101: try decoder.decodeSingularMessageField(value: &self._prekeyBundleMessage)
      case 103: try decoder.decodeSingularMessageField(value: &self._lokiDeviceLinkMessage)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._dataMessage {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 1)
    }
    if let v = self._syncMessage {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 2)
    }
    if let v = self._callMessage {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 3)
    }
    if let v = self._nullMessage {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 4)
    }
    if let v = self._receiptMessage {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 5)
    }
    if let v = self._typingMessage {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 6)
    }
    if let v = self._prekeyBundleMessage {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 101)
    }
    if let v = self._lokiDeviceLinkMessage {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 103)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_Content, rhs: SignalServiceProtos_Content) -> Bool {
    if lhs._dataMessage != rhs._dataMessage {return false}
    if lhs._syncMessage != rhs._syncMessage {return false}
    if lhs._callMessage != rhs._callMessage {return false}
    if lhs._nullMessage != rhs._nullMessage {return false}
    if lhs._receiptMessage != rhs._receiptMessage {return false}
    if lhs._typingMessage != rhs._typingMessage {return false}
    if lhs._prekeyBundleMessage != rhs._prekeyBundleMessage {return false}
    if lhs._lokiDeviceLinkMessage != rhs._lokiDeviceLinkMessage {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_PrekeyBundleMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".PrekeyBundleMessage"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "identityKey"),
    2: .same(proto: "deviceID"),
    3: .same(proto: "prekeyID"),
    4: .same(proto: "signedKeyID"),
    5: .same(proto: "prekey"),
    6: .same(proto: "signedKey"),
    7: .same(proto: "signature"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularBytesField(value: &self._identityKey)
      case 2: try decoder.decodeSingularUInt32Field(value: &self._deviceID)
      case 3: try decoder.decodeSingularUInt32Field(value: &self._prekeyID)
      case 4: try decoder.decodeSingularUInt32Field(value: &self._signedKeyID)
      case 5: try decoder.decodeSingularBytesField(value: &self._prekey)
      case 6: try decoder.decodeSingularBytesField(value: &self._signedKey)
      case 7: try decoder.decodeSingularBytesField(value: &self._signature)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._identityKey {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 1)
    }
    if let v = self._deviceID {
      try visitor.visitSingularUInt32Field(value: v, fieldNumber: 2)
    }
    if let v = self._prekeyID {
      try visitor.visitSingularUInt32Field(value: v, fieldNumber: 3)
    }
    if let v = self._signedKeyID {
      try visitor.visitSingularUInt32Field(value: v, fieldNumber: 4)
    }
    if let v = self._prekey {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 5)
    }
    if let v = self._signedKey {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 6)
    }
    if let v = self._signature {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 7)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_PrekeyBundleMessage, rhs: SignalServiceProtos_PrekeyBundleMessage) -> Bool {
    if lhs._identityKey != rhs._identityKey {return false}
    if lhs._deviceID != rhs._deviceID {return false}
    if lhs._prekeyID != rhs._prekeyID {return false}
    if lhs._signedKeyID != rhs._signedKeyID {return false}
    if lhs._prekey != rhs._prekey {return false}
    if lhs._signedKey != rhs._signedKey {return false}
    if lhs._signature != rhs._signature {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_LokiDeviceLinkMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".LokiDeviceLinkMessage"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "masterPublicKey"),
    2: .same(proto: "slavePublicKey"),
    3: .same(proto: "slaveSignature"),
    4: .same(proto: "masterSignature"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self._masterPublicKey)
      case 2: try decoder.decodeSingularStringField(value: &self._slavePublicKey)
      case 3: try decoder.decodeSingularBytesField(value: &self._slaveSignature)
      case 4: try decoder.decodeSingularBytesField(value: &self._masterSignature)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._masterPublicKey {
      try visitor.visitSingularStringField(value: v, fieldNumber: 1)
    }
    if let v = self._slavePublicKey {
      try visitor.visitSingularStringField(value: v, fieldNumber: 2)
    }
    if let v = self._slaveSignature {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 3)
    }
    if let v = self._masterSignature {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 4)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_LokiDeviceLinkMessage, rhs: SignalServiceProtos_LokiDeviceLinkMessage) -> Bool {
    if lhs._masterPublicKey != rhs._masterPublicKey {return false}
    if lhs._slavePublicKey != rhs._slavePublicKey {return false}
    if lhs._slaveSignature != rhs._slaveSignature {return false}
    if lhs._masterSignature != rhs._masterSignature {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_CallMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".CallMessage"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "offer"),
    2: .same(proto: "answer"),
    3: .same(proto: "iceUpdate"),
    4: .same(proto: "hangup"),
    5: .same(proto: "busy"),
    6: .same(proto: "profileKey"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularMessageField(value: &self._offer)
      case 2: try decoder.decodeSingularMessageField(value: &self._answer)
      case 3: try decoder.decodeRepeatedMessageField(value: &self.iceUpdate)
      case 4: try decoder.decodeSingularMessageField(value: &self._hangup)
      case 5: try decoder.decodeSingularMessageField(value: &self._busy)
      case 6: try decoder.decodeSingularBytesField(value: &self._profileKey)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._offer {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 1)
    }
    if let v = self._answer {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 2)
    }
    if !self.iceUpdate.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.iceUpdate, fieldNumber: 3)
    }
    if let v = self._hangup {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 4)
    }
    if let v = self._busy {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 5)
    }
    if let v = self._profileKey {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 6)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_CallMessage, rhs: SignalServiceProtos_CallMessage) -> Bool {
    if lhs._offer != rhs._offer {return false}
    if lhs._answer != rhs._answer {return false}
    if lhs.iceUpdate != rhs.iceUpdate {return false}
    if lhs._hangup != rhs._hangup {return false}
    if lhs._busy != rhs._busy {return false}
    if lhs._profileKey != rhs._profileKey {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_CallMessage.Offer: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_CallMessage.protoMessageName + ".Offer"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "id"),
    2: .same(proto: "sessionDescription"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularUInt64Field(value: &self._id)
      case 2: try decoder.decodeSingularStringField(value: &self._sessionDescription)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._id {
      try visitor.visitSingularUInt64Field(value: v, fieldNumber: 1)
    }
    if let v = self._sessionDescription {
      try visitor.visitSingularStringField(value: v, fieldNumber: 2)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_CallMessage.Offer, rhs: SignalServiceProtos_CallMessage.Offer) -> Bool {
    if lhs._id != rhs._id {return false}
    if lhs._sessionDescription != rhs._sessionDescription {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_CallMessage.Answer: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_CallMessage.protoMessageName + ".Answer"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "id"),
    2: .same(proto: "sessionDescription"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularUInt64Field(value: &self._id)
      case 2: try decoder.decodeSingularStringField(value: &self._sessionDescription)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._id {
      try visitor.visitSingularUInt64Field(value: v, fieldNumber: 1)
    }
    if let v = self._sessionDescription {
      try visitor.visitSingularStringField(value: v, fieldNumber: 2)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_CallMessage.Answer, rhs: SignalServiceProtos_CallMessage.Answer) -> Bool {
    if lhs._id != rhs._id {return false}
    if lhs._sessionDescription != rhs._sessionDescription {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_CallMessage.IceUpdate: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_CallMessage.protoMessageName + ".IceUpdate"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "id"),
    2: .same(proto: "sdpMid"),
    3: .same(proto: "sdpMLineIndex"),
    4: .same(proto: "sdp"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularUInt64Field(value: &self._id)
      case 2: try decoder.decodeSingularStringField(value: &self._sdpMid)
      case 3: try decoder.decodeSingularUInt32Field(value: &self._sdpMlineIndex)
      case 4: try decoder.decodeSingularStringField(value: &self._sdp)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._id {
      try visitor.visitSingularUInt64Field(value: v, fieldNumber: 1)
    }
    if let v = self._sdpMid {
      try visitor.visitSingularStringField(value: v, fieldNumber: 2)
    }
    if let v = self._sdpMlineIndex {
      try visitor.visitSingularUInt32Field(value: v, fieldNumber: 3)
    }
    if let v = self._sdp {
      try visitor.visitSingularStringField(value: v, fieldNumber: 4)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_CallMessage.IceUpdate, rhs: SignalServiceProtos_CallMessage.IceUpdate) -> Bool {
    if lhs._id != rhs._id {return false}
    if lhs._sdpMid != rhs._sdpMid {return false}
    if lhs._sdpMlineIndex != rhs._sdpMlineIndex {return false}
    if lhs._sdp != rhs._sdp {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_CallMessage.Busy: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_CallMessage.protoMessageName + ".Busy"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "id"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularUInt64Field(value: &self._id)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._id {
      try visitor.visitSingularUInt64Field(value: v, fieldNumber: 1)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_CallMessage.Busy, rhs: SignalServiceProtos_CallMessage.Busy) -> Bool {
    if lhs._id != rhs._id {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_CallMessage.Hangup: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_CallMessage.protoMessageName + ".Hangup"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "id"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularUInt64Field(value: &self._id)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._id {
      try visitor.visitSingularUInt64Field(value: v, fieldNumber: 1)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_CallMessage.Hangup, rhs: SignalServiceProtos_CallMessage.Hangup) -> Bool {
    if lhs._id != rhs._id {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_DataMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".DataMessage"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "body"),
    2: .same(proto: "attachments"),
    3: .same(proto: "group"),
    4: .same(proto: "flags"),
    5: .same(proto: "expireTimer"),
    6: .same(proto: "profileKey"),
    7: .same(proto: "timestamp"),
    8: .same(proto: "quote"),
    9: .same(proto: "contact"),
    10: .same(proto: "preview"),
    101: .same(proto: "profile"),
    103: .same(proto: "closedGroupUpdate"),
    999: .same(proto: "publicChatInfo"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self._body)
      case 2: try decoder.decodeRepeatedMessageField(value: &self.attachments)
      case 3: try decoder.decodeSingularMessageField(value: &self._group)
      case 4: try decoder.decodeSingularUInt32Field(value: &self._flags)
      case 5: try decoder.decodeSingularUInt32Field(value: &self._expireTimer)
      case 6: try decoder.decodeSingularBytesField(value: &self._profileKey)
      case 7: try decoder.decodeSingularUInt64Field(value: &self._timestamp)
      case 8: try decoder.decodeSingularMessageField(value: &self._quote)
      case 9: try decoder.decodeRepeatedMessageField(value: &self.contact)
      case 10: try decoder.decodeRepeatedMessageField(value: &self.preview)
      case 101: try decoder.decodeSingularMessageField(value: &self._profile)
      case 103: try decoder.decodeSingularMessageField(value: &self._closedGroupUpdate)
      case 999: try decoder.decodeSingularMessageField(value: &self._publicChatInfo)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._body {
      try visitor.visitSingularStringField(value: v, fieldNumber: 1)
    }
    if !self.attachments.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.attachments, fieldNumber: 2)
    }
    if let v = self._group {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 3)
    }
    if let v = self._flags {
      try visitor.visitSingularUInt32Field(value: v, fieldNumber: 4)
    }
    if let v = self._expireTimer {
      try visitor.visitSingularUInt32Field(value: v, fieldNumber: 5)
    }
    if let v = self._profileKey {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 6)
    }
    if let v = self._timestamp {
      try visitor.visitSingularUInt64Field(value: v, fieldNumber: 7)
    }
    if let v = self._quote {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 8)
    }
    if !self.contact.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.contact, fieldNumber: 9)
    }
    if !self.preview.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.preview, fieldNumber: 10)
    }
    if let v = self._profile {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 101)
    }
    if let v = self._closedGroupUpdate {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 103)
    }
    if let v = self._publicChatInfo {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 999)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_DataMessage, rhs: SignalServiceProtos_DataMessage) -> Bool {
    if lhs._body != rhs._body {return false}
    if lhs.attachments != rhs.attachments {return false}
    if lhs._group != rhs._group {return false}
    if lhs._flags != rhs._flags {return false}
    if lhs._expireTimer != rhs._expireTimer {return false}
    if lhs._profileKey != rhs._profileKey {return false}
    if lhs._timestamp != rhs._timestamp {return false}
    if lhs._quote != rhs._quote {return false}
    if lhs.contact != rhs.contact {return false}
    if lhs.preview != rhs.preview {return false}
    if lhs._profile != rhs._profile {return false}
    if lhs._closedGroupUpdate != rhs._closedGroupUpdate {return false}
    if lhs._publicChatInfo != rhs._publicChatInfo {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_DataMessage.Flags: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "END_SESSION"),
    2: .same(proto: "EXPIRATION_TIMER_UPDATE"),
    4: .same(proto: "PROFILE_KEY_UPDATE"),
    128: .same(proto: "UNLINK_DEVICE"),
  ]
}

extension SignalServiceProtos_DataMessage.Quote: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_DataMessage.protoMessageName + ".Quote"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "id"),
    2: .same(proto: "author"),
    3: .same(proto: "text"),
    4: .same(proto: "attachments"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularUInt64Field(value: &self._id)
      case 2: try decoder.decodeSingularStringField(value: &self._author)
      case 3: try decoder.decodeSingularStringField(value: &self._text)
      case 4: try decoder.decodeRepeatedMessageField(value: &self.attachments)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._id {
      try visitor.visitSingularUInt64Field(value: v, fieldNumber: 1)
    }
    if let v = self._author {
      try visitor.visitSingularStringField(value: v, fieldNumber: 2)
    }
    if let v = self._text {
      try visitor.visitSingularStringField(value: v, fieldNumber: 3)
    }
    if !self.attachments.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.attachments, fieldNumber: 4)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_DataMessage.Quote, rhs: SignalServiceProtos_DataMessage.Quote) -> Bool {
    if lhs._id != rhs._id {return false}
    if lhs._author != rhs._author {return false}
    if lhs._text != rhs._text {return false}
    if lhs.attachments != rhs.attachments {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_DataMessage.Quote.QuotedAttachment: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_DataMessage.Quote.protoMessageName + ".QuotedAttachment"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "contentType"),
    2: .same(proto: "fileName"),
    3: .same(proto: "thumbnail"),
    4: .same(proto: "flags"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self._contentType)
      case 2: try decoder.decodeSingularStringField(value: &self._fileName)
      case 3: try decoder.decodeSingularMessageField(value: &self._thumbnail)
      case 4: try decoder.decodeSingularUInt32Field(value: &self._flags)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._contentType {
      try visitor.visitSingularStringField(value: v, fieldNumber: 1)
    }
    if let v = self._fileName {
      try visitor.visitSingularStringField(value: v, fieldNumber: 2)
    }
    if let v = self._thumbnail {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 3)
    }
    if let v = self._flags {
      try visitor.visitSingularUInt32Field(value: v, fieldNumber: 4)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_DataMessage.Quote.QuotedAttachment, rhs: SignalServiceProtos_DataMessage.Quote.QuotedAttachment) -> Bool {
    if lhs._contentType != rhs._contentType {return false}
    if lhs._fileName != rhs._fileName {return false}
    if lhs._thumbnail != rhs._thumbnail {return false}
    if lhs._flags != rhs._flags {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_DataMessage.Quote.QuotedAttachment.Flags: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "VOICE_MESSAGE"),
  ]
}

extension SignalServiceProtos_DataMessage.Contact: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_DataMessage.protoMessageName + ".Contact"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "name"),
    3: .same(proto: "number"),
    4: .same(proto: "email"),
    5: .same(proto: "address"),
    6: .same(proto: "avatar"),
    7: .same(proto: "organization"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularMessageField(value: &self._name)
      case 3: try decoder.decodeRepeatedMessageField(value: &self.number)
      case 4: try decoder.decodeRepeatedMessageField(value: &self.email)
      case 5: try decoder.decodeRepeatedMessageField(value: &self.address)
      case 6: try decoder.decodeSingularMessageField(value: &self._avatar)
      case 7: try decoder.decodeSingularStringField(value: &self._organization)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._name {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 1)
    }
    if !self.number.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.number, fieldNumber: 3)
    }
    if !self.email.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.email, fieldNumber: 4)
    }
    if !self.address.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.address, fieldNumber: 5)
    }
    if let v = self._avatar {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 6)
    }
    if let v = self._organization {
      try visitor.visitSingularStringField(value: v, fieldNumber: 7)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_DataMessage.Contact, rhs: SignalServiceProtos_DataMessage.Contact) -> Bool {
    if lhs._name != rhs._name {return false}
    if lhs.number != rhs.number {return false}
    if lhs.email != rhs.email {return false}
    if lhs.address != rhs.address {return false}
    if lhs._avatar != rhs._avatar {return false}
    if lhs._organization != rhs._organization {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_DataMessage.Contact.Name: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_DataMessage.Contact.protoMessageName + ".Name"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "givenName"),
    2: .same(proto: "familyName"),
    3: .same(proto: "prefix"),
    4: .same(proto: "suffix"),
    5: .same(proto: "middleName"),
    6: .same(proto: "displayName"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self._givenName)
      case 2: try decoder.decodeSingularStringField(value: &self._familyName)
      case 3: try decoder.decodeSingularStringField(value: &self._prefix)
      case 4: try decoder.decodeSingularStringField(value: &self._suffix)
      case 5: try decoder.decodeSingularStringField(value: &self._middleName)
      case 6: try decoder.decodeSingularStringField(value: &self._displayName)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._givenName {
      try visitor.visitSingularStringField(value: v, fieldNumber: 1)
    }
    if let v = self._familyName {
      try visitor.visitSingularStringField(value: v, fieldNumber: 2)
    }
    if let v = self._prefix {
      try visitor.visitSingularStringField(value: v, fieldNumber: 3)
    }
    if let v = self._suffix {
      try visitor.visitSingularStringField(value: v, fieldNumber: 4)
    }
    if let v = self._middleName {
      try visitor.visitSingularStringField(value: v, fieldNumber: 5)
    }
    if let v = self._displayName {
      try visitor.visitSingularStringField(value: v, fieldNumber: 6)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_DataMessage.Contact.Name, rhs: SignalServiceProtos_DataMessage.Contact.Name) -> Bool {
    if lhs._givenName != rhs._givenName {return false}
    if lhs._familyName != rhs._familyName {return false}
    if lhs._prefix != rhs._prefix {return false}
    if lhs._suffix != rhs._suffix {return false}
    if lhs._middleName != rhs._middleName {return false}
    if lhs._displayName != rhs._displayName {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_DataMessage.Contact.Phone: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_DataMessage.Contact.protoMessageName + ".Phone"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "value"),
    2: .same(proto: "type"),
    3: .same(proto: "label"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self._value)
      case 2: try decoder.decodeSingularEnumField(value: &self._type)
      case 3: try decoder.decodeSingularStringField(value: &self._label)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._value {
      try visitor.visitSingularStringField(value: v, fieldNumber: 1)
    }
    if let v = self._type {
      try visitor.visitSingularEnumField(value: v, fieldNumber: 2)
    }
    if let v = self._label {
      try visitor.visitSingularStringField(value: v, fieldNumber: 3)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_DataMessage.Contact.Phone, rhs: SignalServiceProtos_DataMessage.Contact.Phone) -> Bool {
    if lhs._value != rhs._value {return false}
    if lhs._type != rhs._type {return false}
    if lhs._label != rhs._label {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_DataMessage.Contact.Phone.TypeEnum: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "HOME"),
    2: .same(proto: "MOBILE"),
    3: .same(proto: "WORK"),
    4: .same(proto: "CUSTOM"),
  ]
}

extension SignalServiceProtos_DataMessage.Contact.Email: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_DataMessage.Contact.protoMessageName + ".Email"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "value"),
    2: .same(proto: "type"),
    3: .same(proto: "label"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self._value)
      case 2: try decoder.decodeSingularEnumField(value: &self._type)
      case 3: try decoder.decodeSingularStringField(value: &self._label)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._value {
      try visitor.visitSingularStringField(value: v, fieldNumber: 1)
    }
    if let v = self._type {
      try visitor.visitSingularEnumField(value: v, fieldNumber: 2)
    }
    if let v = self._label {
      try visitor.visitSingularStringField(value: v, fieldNumber: 3)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_DataMessage.Contact.Email, rhs: SignalServiceProtos_DataMessage.Contact.Email) -> Bool {
    if lhs._value != rhs._value {return false}
    if lhs._type != rhs._type {return false}
    if lhs._label != rhs._label {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_DataMessage.Contact.Email.TypeEnum: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "HOME"),
    2: .same(proto: "MOBILE"),
    3: .same(proto: "WORK"),
    4: .same(proto: "CUSTOM"),
  ]
}

extension SignalServiceProtos_DataMessage.Contact.PostalAddress: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_DataMessage.Contact.protoMessageName + ".PostalAddress"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "type"),
    2: .same(proto: "label"),
    3: .same(proto: "street"),
    4: .same(proto: "pobox"),
    5: .same(proto: "neighborhood"),
    6: .same(proto: "city"),
    7: .same(proto: "region"),
    8: .same(proto: "postcode"),
    9: .same(proto: "country"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularEnumField(value: &self._type)
      case 2: try decoder.decodeSingularStringField(value: &self._label)
      case 3: try decoder.decodeSingularStringField(value: &self._street)
      case 4: try decoder.decodeSingularStringField(value: &self._pobox)
      case 5: try decoder.decodeSingularStringField(value: &self._neighborhood)
      case 6: try decoder.decodeSingularStringField(value: &self._city)
      case 7: try decoder.decodeSingularStringField(value: &self._region)
      case 8: try decoder.decodeSingularStringField(value: &self._postcode)
      case 9: try decoder.decodeSingularStringField(value: &self._country)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._type {
      try visitor.visitSingularEnumField(value: v, fieldNumber: 1)
    }
    if let v = self._label {
      try visitor.visitSingularStringField(value: v, fieldNumber: 2)
    }
    if let v = self._street {
      try visitor.visitSingularStringField(value: v, fieldNumber: 3)
    }
    if let v = self._pobox {
      try visitor.visitSingularStringField(value: v, fieldNumber: 4)
    }
    if let v = self._neighborhood {
      try visitor.visitSingularStringField(value: v, fieldNumber: 5)
    }
    if let v = self._city {
      try visitor.visitSingularStringField(value: v, fieldNumber: 6)
    }
    if let v = self._region {
      try visitor.visitSingularStringField(value: v, fieldNumber: 7)
    }
    if let v = self._postcode {
      try visitor.visitSingularStringField(value: v, fieldNumber: 8)
    }
    if let v = self._country {
      try visitor.visitSingularStringField(value: v, fieldNumber: 9)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_DataMessage.Contact.PostalAddress, rhs: SignalServiceProtos_DataMessage.Contact.PostalAddress) -> Bool {
    if lhs._type != rhs._type {return false}
    if lhs._label != rhs._label {return false}
    if lhs._street != rhs._street {return false}
    if lhs._pobox != rhs._pobox {return false}
    if lhs._neighborhood != rhs._neighborhood {return false}
    if lhs._city != rhs._city {return false}
    if lhs._region != rhs._region {return false}
    if lhs._postcode != rhs._postcode {return false}
    if lhs._country != rhs._country {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_DataMessage.Contact.PostalAddress.TypeEnum: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "HOME"),
    2: .same(proto: "WORK"),
    3: .same(proto: "CUSTOM"),
  ]
}

extension SignalServiceProtos_DataMessage.Contact.Avatar: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_DataMessage.Contact.protoMessageName + ".Avatar"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "avatar"),
    2: .same(proto: "isProfile"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularMessageField(value: &self._avatar)
      case 2: try decoder.decodeSingularBoolField(value: &self._isProfile)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._avatar {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 1)
    }
    if let v = self._isProfile {
      try visitor.visitSingularBoolField(value: v, fieldNumber: 2)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_DataMessage.Contact.Avatar, rhs: SignalServiceProtos_DataMessage.Contact.Avatar) -> Bool {
    if lhs._avatar != rhs._avatar {return false}
    if lhs._isProfile != rhs._isProfile {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_DataMessage.Preview: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_DataMessage.protoMessageName + ".Preview"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "url"),
    2: .same(proto: "title"),
    3: .same(proto: "image"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self._url)
      case 2: try decoder.decodeSingularStringField(value: &self._title)
      case 3: try decoder.decodeSingularMessageField(value: &self._image)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._url {
      try visitor.visitSingularStringField(value: v, fieldNumber: 1)
    }
    if let v = self._title {
      try visitor.visitSingularStringField(value: v, fieldNumber: 2)
    }
    if let v = self._image {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 3)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_DataMessage.Preview, rhs: SignalServiceProtos_DataMessage.Preview) -> Bool {
    if lhs._url != rhs._url {return false}
    if lhs._title != rhs._title {return false}
    if lhs._image != rhs._image {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_DataMessage.LokiProfile: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_DataMessage.protoMessageName + ".LokiProfile"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "displayName"),
    2: .same(proto: "profilePicture"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self._displayName)
      case 2: try decoder.decodeSingularStringField(value: &self._profilePicture)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._displayName {
      try visitor.visitSingularStringField(value: v, fieldNumber: 1)
    }
    if let v = self._profilePicture {
      try visitor.visitSingularStringField(value: v, fieldNumber: 2)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_DataMessage.LokiProfile, rhs: SignalServiceProtos_DataMessage.LokiProfile) -> Bool {
    if lhs._displayName != rhs._displayName {return false}
    if lhs._profilePicture != rhs._profilePicture {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_DataMessage.ClosedGroupUpdate: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_DataMessage.protoMessageName + ".ClosedGroupUpdate"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "name"),
    2: .same(proto: "groupPublicKey"),
    3: .same(proto: "groupPrivateKey"),
    4: .same(proto: "senderKeys"),
    5: .same(proto: "members"),
    6: .same(proto: "admins"),
    7: .same(proto: "type"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self._name)
      case 2: try decoder.decodeSingularBytesField(value: &self._groupPublicKey)
      case 3: try decoder.decodeSingularBytesField(value: &self._groupPrivateKey)
      case 4: try decoder.decodeRepeatedMessageField(value: &self.senderKeys)
      case 5: try decoder.decodeRepeatedBytesField(value: &self.members)
      case 6: try decoder.decodeRepeatedBytesField(value: &self.admins)
      case 7: try decoder.decodeSingularEnumField(value: &self._type)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._name {
      try visitor.visitSingularStringField(value: v, fieldNumber: 1)
    }
    if let v = self._groupPublicKey {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 2)
    }
    if let v = self._groupPrivateKey {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 3)
    }
    if !self.senderKeys.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.senderKeys, fieldNumber: 4)
    }
    if !self.members.isEmpty {
      try visitor.visitRepeatedBytesField(value: self.members, fieldNumber: 5)
    }
    if !self.admins.isEmpty {
      try visitor.visitRepeatedBytesField(value: self.admins, fieldNumber: 6)
    }
    if let v = self._type {
      try visitor.visitSingularEnumField(value: v, fieldNumber: 7)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_DataMessage.ClosedGroupUpdate, rhs: SignalServiceProtos_DataMessage.ClosedGroupUpdate) -> Bool {
    if lhs._name != rhs._name {return false}
    if lhs._groupPublicKey != rhs._groupPublicKey {return false}
    if lhs._groupPrivateKey != rhs._groupPrivateKey {return false}
    if lhs.senderKeys != rhs.senderKeys {return false}
    if lhs.members != rhs.members {return false}
    if lhs.admins != rhs.admins {return false}
    if lhs._type != rhs._type {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_DataMessage.ClosedGroupUpdate.TypeEnum: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    0: .same(proto: "NEW"),
    1: .same(proto: "INFO"),
    2: .same(proto: "SENDER_KEY_REQUEST"),
    3: .same(proto: "SENDER_KEY"),
  ]
}

extension SignalServiceProtos_DataMessage.ClosedGroupUpdate.SenderKey: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_DataMessage.ClosedGroupUpdate.protoMessageName + ".SenderKey"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "chainKey"),
    2: .same(proto: "keyIndex"),
    3: .same(proto: "publicKey"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularBytesField(value: &self._chainKey)
      case 2: try decoder.decodeSingularUInt32Field(value: &self._keyIndex)
      case 3: try decoder.decodeSingularBytesField(value: &self._publicKey)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._chainKey {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 1)
    }
    if let v = self._keyIndex {
      try visitor.visitSingularUInt32Field(value: v, fieldNumber: 2)
    }
    if let v = self._publicKey {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 3)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_DataMessage.ClosedGroupUpdate.SenderKey, rhs: SignalServiceProtos_DataMessage.ClosedGroupUpdate.SenderKey) -> Bool {
    if lhs._chainKey != rhs._chainKey {return false}
    if lhs._keyIndex != rhs._keyIndex {return false}
    if lhs._publicKey != rhs._publicKey {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_NullMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".NullMessage"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "padding"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularBytesField(value: &self._padding)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._padding {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 1)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_NullMessage, rhs: SignalServiceProtos_NullMessage) -> Bool {
    if lhs._padding != rhs._padding {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_ReceiptMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".ReceiptMessage"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "type"),
    2: .same(proto: "timestamp"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularEnumField(value: &self._type)
      case 2: try decoder.decodeRepeatedUInt64Field(value: &self.timestamp)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._type {
      try visitor.visitSingularEnumField(value: v, fieldNumber: 1)
    }
    if !self.timestamp.isEmpty {
      try visitor.visitRepeatedUInt64Field(value: self.timestamp, fieldNumber: 2)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_ReceiptMessage, rhs: SignalServiceProtos_ReceiptMessage) -> Bool {
    if lhs._type != rhs._type {return false}
    if lhs.timestamp != rhs.timestamp {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_ReceiptMessage.TypeEnum: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    0: .same(proto: "DELIVERY"),
    1: .same(proto: "READ"),
  ]
}

extension SignalServiceProtos_Verified: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".Verified"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "destination"),
    2: .same(proto: "identityKey"),
    3: .same(proto: "state"),
    4: .same(proto: "nullMessage"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self._destination)
      case 2: try decoder.decodeSingularBytesField(value: &self._identityKey)
      case 3: try decoder.decodeSingularEnumField(value: &self._state)
      case 4: try decoder.decodeSingularBytesField(value: &self._nullMessage)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._destination {
      try visitor.visitSingularStringField(value: v, fieldNumber: 1)
    }
    if let v = self._identityKey {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 2)
    }
    if let v = self._state {
      try visitor.visitSingularEnumField(value: v, fieldNumber: 3)
    }
    if let v = self._nullMessage {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 4)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_Verified, rhs: SignalServiceProtos_Verified) -> Bool {
    if lhs._destination != rhs._destination {return false}
    if lhs._identityKey != rhs._identityKey {return false}
    if lhs._state != rhs._state {return false}
    if lhs._nullMessage != rhs._nullMessage {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_Verified.State: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    0: .same(proto: "DEFAULT"),
    1: .same(proto: "VERIFIED"),
    2: .same(proto: "UNVERIFIED"),
  ]
}

extension SignalServiceProtos_SyncMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".SyncMessage"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "sent"),
    2: .same(proto: "contacts"),
    3: .same(proto: "groups"),
    4: .same(proto: "request"),
    5: .same(proto: "read"),
    6: .same(proto: "blocked"),
    7: .same(proto: "verified"),
    9: .same(proto: "configuration"),
    8: .same(proto: "padding"),
    100: .same(proto: "openGroups"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularMessageField(value: &self._sent)
      case 2: try decoder.decodeSingularMessageField(value: &self._contacts)
      case 3: try decoder.decodeSingularMessageField(value: &self._groups)
      case 4: try decoder.decodeSingularMessageField(value: &self._request)
      case 5: try decoder.decodeRepeatedMessageField(value: &self.read)
      case 6: try decoder.decodeSingularMessageField(value: &self._blocked)
      case 7: try decoder.decodeSingularMessageField(value: &self._verified)
      case 8: try decoder.decodeSingularBytesField(value: &self._padding)
      case 9: try decoder.decodeSingularMessageField(value: &self._configuration)
      case 100: try decoder.decodeRepeatedMessageField(value: &self.openGroups)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._sent {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 1)
    }
    if let v = self._contacts {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 2)
    }
    if let v = self._groups {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 3)
    }
    if let v = self._request {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 4)
    }
    if !self.read.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.read, fieldNumber: 5)
    }
    if let v = self._blocked {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 6)
    }
    if let v = self._verified {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 7)
    }
    if let v = self._padding {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 8)
    }
    if let v = self._configuration {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 9)
    }
    if !self.openGroups.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.openGroups, fieldNumber: 100)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_SyncMessage, rhs: SignalServiceProtos_SyncMessage) -> Bool {
    if lhs._sent != rhs._sent {return false}
    if lhs._contacts != rhs._contacts {return false}
    if lhs._groups != rhs._groups {return false}
    if lhs._request != rhs._request {return false}
    if lhs.read != rhs.read {return false}
    if lhs._blocked != rhs._blocked {return false}
    if lhs._verified != rhs._verified {return false}
    if lhs._configuration != rhs._configuration {return false}
    if lhs._padding != rhs._padding {return false}
    if lhs.openGroups != rhs.openGroups {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_SyncMessage.Sent: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_SyncMessage.protoMessageName + ".Sent"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "destination"),
    2: .same(proto: "timestamp"),
    3: .same(proto: "message"),
    4: .same(proto: "expirationStartTimestamp"),
    5: .same(proto: "unidentifiedStatus"),
    6: .same(proto: "isRecipientUpdate"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self._destination)
      case 2: try decoder.decodeSingularUInt64Field(value: &self._timestamp)
      case 3: try decoder.decodeSingularMessageField(value: &self._message)
      case 4: try decoder.decodeSingularUInt64Field(value: &self._expirationStartTimestamp)
      case 5: try decoder.decodeRepeatedMessageField(value: &self.unidentifiedStatus)
      case 6: try decoder.decodeSingularBoolField(value: &self._isRecipientUpdate)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._destination {
      try visitor.visitSingularStringField(value: v, fieldNumber: 1)
    }
    if let v = self._timestamp {
      try visitor.visitSingularUInt64Field(value: v, fieldNumber: 2)
    }
    if let v = self._message {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 3)
    }
    if let v = self._expirationStartTimestamp {
      try visitor.visitSingularUInt64Field(value: v, fieldNumber: 4)
    }
    if !self.unidentifiedStatus.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.unidentifiedStatus, fieldNumber: 5)
    }
    if let v = self._isRecipientUpdate {
      try visitor.visitSingularBoolField(value: v, fieldNumber: 6)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_SyncMessage.Sent, rhs: SignalServiceProtos_SyncMessage.Sent) -> Bool {
    if lhs._destination != rhs._destination {return false}
    if lhs._timestamp != rhs._timestamp {return false}
    if lhs._message != rhs._message {return false}
    if lhs._expirationStartTimestamp != rhs._expirationStartTimestamp {return false}
    if lhs.unidentifiedStatus != rhs.unidentifiedStatus {return false}
    if lhs._isRecipientUpdate != rhs._isRecipientUpdate {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_SyncMessage.Sent.UnidentifiedDeliveryStatus: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_SyncMessage.Sent.protoMessageName + ".UnidentifiedDeliveryStatus"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "destination"),
    2: .same(proto: "unidentified"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self._destination)
      case 2: try decoder.decodeSingularBoolField(value: &self._unidentified)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._destination {
      try visitor.visitSingularStringField(value: v, fieldNumber: 1)
    }
    if let v = self._unidentified {
      try visitor.visitSingularBoolField(value: v, fieldNumber: 2)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_SyncMessage.Sent.UnidentifiedDeliveryStatus, rhs: SignalServiceProtos_SyncMessage.Sent.UnidentifiedDeliveryStatus) -> Bool {
    if lhs._destination != rhs._destination {return false}
    if lhs._unidentified != rhs._unidentified {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_SyncMessage.Contacts: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_SyncMessage.protoMessageName + ".Contacts"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "blob"),
    2: .same(proto: "isComplete"),
    101: .same(proto: "data"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularMessageField(value: &self._blob)
      case 2: try decoder.decodeSingularBoolField(value: &self._isComplete)
      case 101: try decoder.decodeSingularBytesField(value: &self._data)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._blob {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 1)
    }
    if let v = self._isComplete {
      try visitor.visitSingularBoolField(value: v, fieldNumber: 2)
    }
    if let v = self._data {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 101)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_SyncMessage.Contacts, rhs: SignalServiceProtos_SyncMessage.Contacts) -> Bool {
    if lhs._blob != rhs._blob {return false}
    if lhs._isComplete != rhs._isComplete {return false}
    if lhs._data != rhs._data {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_SyncMessage.Groups: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_SyncMessage.protoMessageName + ".Groups"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "blob"),
    101: .same(proto: "data"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularMessageField(value: &self._blob)
      case 101: try decoder.decodeSingularBytesField(value: &self._data)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._blob {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 1)
    }
    if let v = self._data {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 101)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_SyncMessage.Groups, rhs: SignalServiceProtos_SyncMessage.Groups) -> Bool {
    if lhs._blob != rhs._blob {return false}
    if lhs._data != rhs._data {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_SyncMessage.OpenGroupDetails: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_SyncMessage.protoMessageName + ".OpenGroupDetails"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "url"),
    2: .same(proto: "channelID"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self._url)
      case 2: try decoder.decodeSingularUInt64Field(value: &self._channelID)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._url {
      try visitor.visitSingularStringField(value: v, fieldNumber: 1)
    }
    if let v = self._channelID {
      try visitor.visitSingularUInt64Field(value: v, fieldNumber: 2)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_SyncMessage.OpenGroupDetails, rhs: SignalServiceProtos_SyncMessage.OpenGroupDetails) -> Bool {
    if lhs._url != rhs._url {return false}
    if lhs._channelID != rhs._channelID {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_SyncMessage.Blocked: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_SyncMessage.protoMessageName + ".Blocked"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "numbers"),
    2: .same(proto: "groupIds"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeRepeatedStringField(value: &self.numbers)
      case 2: try decoder.decodeRepeatedBytesField(value: &self.groupIds)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if !self.numbers.isEmpty {
      try visitor.visitRepeatedStringField(value: self.numbers, fieldNumber: 1)
    }
    if !self.groupIds.isEmpty {
      try visitor.visitRepeatedBytesField(value: self.groupIds, fieldNumber: 2)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_SyncMessage.Blocked, rhs: SignalServiceProtos_SyncMessage.Blocked) -> Bool {
    if lhs.numbers != rhs.numbers {return false}
    if lhs.groupIds != rhs.groupIds {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_SyncMessage.Request: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_SyncMessage.protoMessageName + ".Request"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "type"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularEnumField(value: &self._type)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._type {
      try visitor.visitSingularEnumField(value: v, fieldNumber: 1)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_SyncMessage.Request, rhs: SignalServiceProtos_SyncMessage.Request) -> Bool {
    if lhs._type != rhs._type {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_SyncMessage.Request.TypeEnum: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    0: .same(proto: "UNKNOWN"),
    1: .same(proto: "CONTACTS"),
    2: .same(proto: "GROUPS"),
    3: .same(proto: "BLOCKED"),
    4: .same(proto: "CONFIGURATION"),
  ]
}

extension SignalServiceProtos_SyncMessage.Read: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_SyncMessage.protoMessageName + ".Read"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "sender"),
    2: .same(proto: "timestamp"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self._sender)
      case 2: try decoder.decodeSingularUInt64Field(value: &self._timestamp)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._sender {
      try visitor.visitSingularStringField(value: v, fieldNumber: 1)
    }
    if let v = self._timestamp {
      try visitor.visitSingularUInt64Field(value: v, fieldNumber: 2)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_SyncMessage.Read, rhs: SignalServiceProtos_SyncMessage.Read) -> Bool {
    if lhs._sender != rhs._sender {return false}
    if lhs._timestamp != rhs._timestamp {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_SyncMessage.Configuration: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_SyncMessage.protoMessageName + ".Configuration"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "readReceipts"),
    2: .same(proto: "unidentifiedDeliveryIndicators"),
    3: .same(proto: "typingIndicators"),
    4: .same(proto: "linkPreviews"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularBoolField(value: &self._readReceipts)
      case 2: try decoder.decodeSingularBoolField(value: &self._unidentifiedDeliveryIndicators)
      case 3: try decoder.decodeSingularBoolField(value: &self._typingIndicators)
      case 4: try decoder.decodeSingularBoolField(value: &self._linkPreviews)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._readReceipts {
      try visitor.visitSingularBoolField(value: v, fieldNumber: 1)
    }
    if let v = self._unidentifiedDeliveryIndicators {
      try visitor.visitSingularBoolField(value: v, fieldNumber: 2)
    }
    if let v = self._typingIndicators {
      try visitor.visitSingularBoolField(value: v, fieldNumber: 3)
    }
    if let v = self._linkPreviews {
      try visitor.visitSingularBoolField(value: v, fieldNumber: 4)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_SyncMessage.Configuration, rhs: SignalServiceProtos_SyncMessage.Configuration) -> Bool {
    if lhs._readReceipts != rhs._readReceipts {return false}
    if lhs._unidentifiedDeliveryIndicators != rhs._unidentifiedDeliveryIndicators {return false}
    if lhs._typingIndicators != rhs._typingIndicators {return false}
    if lhs._linkPreviews != rhs._linkPreviews {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_AttachmentPointer: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".AttachmentPointer"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "id"),
    2: .same(proto: "contentType"),
    3: .same(proto: "key"),
    4: .same(proto: "size"),
    5: .same(proto: "thumbnail"),
    6: .same(proto: "digest"),
    7: .same(proto: "fileName"),
    8: .same(proto: "flags"),
    9: .same(proto: "width"),
    10: .same(proto: "height"),
    11: .same(proto: "caption"),
    101: .same(proto: "url"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularFixed64Field(value: &self._id)
      case 2: try decoder.decodeSingularStringField(value: &self._contentType)
      case 3: try decoder.decodeSingularBytesField(value: &self._key)
      case 4: try decoder.decodeSingularUInt32Field(value: &self._size)
      case 5: try decoder.decodeSingularBytesField(value: &self._thumbnail)
      case 6: try decoder.decodeSingularBytesField(value: &self._digest)
      case 7: try decoder.decodeSingularStringField(value: &self._fileName)
      case 8: try decoder.decodeSingularUInt32Field(value: &self._flags)
      case 9: try decoder.decodeSingularUInt32Field(value: &self._width)
      case 10: try decoder.decodeSingularUInt32Field(value: &self._height)
      case 11: try decoder.decodeSingularStringField(value: &self._caption)
      case 101: try decoder.decodeSingularStringField(value: &self._url)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._id {
      try visitor.visitSingularFixed64Field(value: v, fieldNumber: 1)
    }
    if let v = self._contentType {
      try visitor.visitSingularStringField(value: v, fieldNumber: 2)
    }
    if let v = self._key {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 3)
    }
    if let v = self._size {
      try visitor.visitSingularUInt32Field(value: v, fieldNumber: 4)
    }
    if let v = self._thumbnail {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 5)
    }
    if let v = self._digest {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 6)
    }
    if let v = self._fileName {
      try visitor.visitSingularStringField(value: v, fieldNumber: 7)
    }
    if let v = self._flags {
      try visitor.visitSingularUInt32Field(value: v, fieldNumber: 8)
    }
    if let v = self._width {
      try visitor.visitSingularUInt32Field(value: v, fieldNumber: 9)
    }
    if let v = self._height {
      try visitor.visitSingularUInt32Field(value: v, fieldNumber: 10)
    }
    if let v = self._caption {
      try visitor.visitSingularStringField(value: v, fieldNumber: 11)
    }
    if let v = self._url {
      try visitor.visitSingularStringField(value: v, fieldNumber: 101)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_AttachmentPointer, rhs: SignalServiceProtos_AttachmentPointer) -> Bool {
    if lhs._id != rhs._id {return false}
    if lhs._contentType != rhs._contentType {return false}
    if lhs._key != rhs._key {return false}
    if lhs._size != rhs._size {return false}
    if lhs._thumbnail != rhs._thumbnail {return false}
    if lhs._digest != rhs._digest {return false}
    if lhs._fileName != rhs._fileName {return false}
    if lhs._flags != rhs._flags {return false}
    if lhs._width != rhs._width {return false}
    if lhs._height != rhs._height {return false}
    if lhs._caption != rhs._caption {return false}
    if lhs._url != rhs._url {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_AttachmentPointer.Flags: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "VOICE_MESSAGE"),
  ]
}

extension SignalServiceProtos_GroupContext: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".GroupContext"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "id"),
    2: .same(proto: "type"),
    3: .same(proto: "name"),
    4: .same(proto: "members"),
    5: .same(proto: "avatar"),
    6: .same(proto: "admins"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularBytesField(value: &self._id)
      case 2: try decoder.decodeSingularEnumField(value: &self._type)
      case 3: try decoder.decodeSingularStringField(value: &self._name)
      case 4: try decoder.decodeRepeatedStringField(value: &self.members)
      case 5: try decoder.decodeSingularMessageField(value: &self._avatar)
      case 6: try decoder.decodeRepeatedStringField(value: &self.admins)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._id {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 1)
    }
    if let v = self._type {
      try visitor.visitSingularEnumField(value: v, fieldNumber: 2)
    }
    if let v = self._name {
      try visitor.visitSingularStringField(value: v, fieldNumber: 3)
    }
    if !self.members.isEmpty {
      try visitor.visitRepeatedStringField(value: self.members, fieldNumber: 4)
    }
    if let v = self._avatar {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 5)
    }
    if !self.admins.isEmpty {
      try visitor.visitRepeatedStringField(value: self.admins, fieldNumber: 6)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_GroupContext, rhs: SignalServiceProtos_GroupContext) -> Bool {
    if lhs._id != rhs._id {return false}
    if lhs._type != rhs._type {return false}
    if lhs._name != rhs._name {return false}
    if lhs.members != rhs.members {return false}
    if lhs._avatar != rhs._avatar {return false}
    if lhs.admins != rhs.admins {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_GroupContext.TypeEnum: SwiftProtobuf._ProtoNameProviding {
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    0: .same(proto: "UNKNOWN"),
    1: .same(proto: "UPDATE"),
    2: .same(proto: "DELIVER"),
    3: .same(proto: "QUIT"),
    4: .same(proto: "REQUEST_INFO"),
  ]
}

extension SignalServiceProtos_ContactDetails: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".ContactDetails"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "number"),
    2: .same(proto: "name"),
    3: .same(proto: "avatar"),
    4: .same(proto: "color"),
    5: .same(proto: "verified"),
    6: .same(proto: "profileKey"),
    7: .same(proto: "blocked"),
    8: .same(proto: "expireTimer"),
    101: .same(proto: "nickname"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self._number)
      case 2: try decoder.decodeSingularStringField(value: &self._name)
      case 3: try decoder.decodeSingularMessageField(value: &self._avatar)
      case 4: try decoder.decodeSingularStringField(value: &self._color)
      case 5: try decoder.decodeSingularMessageField(value: &self._verified)
      case 6: try decoder.decodeSingularBytesField(value: &self._profileKey)
      case 7: try decoder.decodeSingularBoolField(value: &self._blocked)
      case 8: try decoder.decodeSingularUInt32Field(value: &self._expireTimer)
      case 101: try decoder.decodeSingularStringField(value: &self._nickname)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._number {
      try visitor.visitSingularStringField(value: v, fieldNumber: 1)
    }
    if let v = self._name {
      try visitor.visitSingularStringField(value: v, fieldNumber: 2)
    }
    if let v = self._avatar {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 3)
    }
    if let v = self._color {
      try visitor.visitSingularStringField(value: v, fieldNumber: 4)
    }
    if let v = self._verified {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 5)
    }
    if let v = self._profileKey {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 6)
    }
    if let v = self._blocked {
      try visitor.visitSingularBoolField(value: v, fieldNumber: 7)
    }
    if let v = self._expireTimer {
      try visitor.visitSingularUInt32Field(value: v, fieldNumber: 8)
    }
    if let v = self._nickname {
      try visitor.visitSingularStringField(value: v, fieldNumber: 101)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_ContactDetails, rhs: SignalServiceProtos_ContactDetails) -> Bool {
    if lhs._number != rhs._number {return false}
    if lhs._name != rhs._name {return false}
    if lhs._avatar != rhs._avatar {return false}
    if lhs._color != rhs._color {return false}
    if lhs._verified != rhs._verified {return false}
    if lhs._profileKey != rhs._profileKey {return false}
    if lhs._blocked != rhs._blocked {return false}
    if lhs._expireTimer != rhs._expireTimer {return false}
    if lhs._nickname != rhs._nickname {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_ContactDetails.Avatar: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_ContactDetails.protoMessageName + ".Avatar"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "contentType"),
    2: .same(proto: "length"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self._contentType)
      case 2: try decoder.decodeSingularUInt32Field(value: &self._length)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._contentType {
      try visitor.visitSingularStringField(value: v, fieldNumber: 1)
    }
    if let v = self._length {
      try visitor.visitSingularUInt32Field(value: v, fieldNumber: 2)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_ContactDetails.Avatar, rhs: SignalServiceProtos_ContactDetails.Avatar) -> Bool {
    if lhs._contentType != rhs._contentType {return false}
    if lhs._length != rhs._length {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_GroupDetails: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".GroupDetails"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "id"),
    2: .same(proto: "name"),
    3: .same(proto: "members"),
    4: .same(proto: "avatar"),
    5: .same(proto: "active"),
    6: .same(proto: "expireTimer"),
    7: .same(proto: "color"),
    8: .same(proto: "blocked"),
    9: .same(proto: "admins"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularBytesField(value: &self._id)
      case 2: try decoder.decodeSingularStringField(value: &self._name)
      case 3: try decoder.decodeRepeatedStringField(value: &self.members)
      case 4: try decoder.decodeSingularMessageField(value: &self._avatar)
      case 5: try decoder.decodeSingularBoolField(value: &self._active)
      case 6: try decoder.decodeSingularUInt32Field(value: &self._expireTimer)
      case 7: try decoder.decodeSingularStringField(value: &self._color)
      case 8: try decoder.decodeSingularBoolField(value: &self._blocked)
      case 9: try decoder.decodeRepeatedStringField(value: &self.admins)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._id {
      try visitor.visitSingularBytesField(value: v, fieldNumber: 1)
    }
    if let v = self._name {
      try visitor.visitSingularStringField(value: v, fieldNumber: 2)
    }
    if !self.members.isEmpty {
      try visitor.visitRepeatedStringField(value: self.members, fieldNumber: 3)
    }
    if let v = self._avatar {
      try visitor.visitSingularMessageField(value: v, fieldNumber: 4)
    }
    if let v = self._active {
      try visitor.visitSingularBoolField(value: v, fieldNumber: 5)
    }
    if let v = self._expireTimer {
      try visitor.visitSingularUInt32Field(value: v, fieldNumber: 6)
    }
    if let v = self._color {
      try visitor.visitSingularStringField(value: v, fieldNumber: 7)
    }
    if let v = self._blocked {
      try visitor.visitSingularBoolField(value: v, fieldNumber: 8)
    }
    if !self.admins.isEmpty {
      try visitor.visitRepeatedStringField(value: self.admins, fieldNumber: 9)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_GroupDetails, rhs: SignalServiceProtos_GroupDetails) -> Bool {
    if lhs._id != rhs._id {return false}
    if lhs._name != rhs._name {return false}
    if lhs.members != rhs.members {return false}
    if lhs._avatar != rhs._avatar {return false}
    if lhs._active != rhs._active {return false}
    if lhs._expireTimer != rhs._expireTimer {return false}
    if lhs._color != rhs._color {return false}
    if lhs._blocked != rhs._blocked {return false}
    if lhs.admins != rhs.admins {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_GroupDetails.Avatar: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = SignalServiceProtos_GroupDetails.protoMessageName + ".Avatar"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "contentType"),
    2: .same(proto: "length"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self._contentType)
      case 2: try decoder.decodeSingularUInt32Field(value: &self._length)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._contentType {
      try visitor.visitSingularStringField(value: v, fieldNumber: 1)
    }
    if let v = self._length {
      try visitor.visitSingularUInt32Field(value: v, fieldNumber: 2)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_GroupDetails.Avatar, rhs: SignalServiceProtos_GroupDetails.Avatar) -> Bool {
    if lhs._contentType != rhs._contentType {return false}
    if lhs._length != rhs._length {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}

extension SignalServiceProtos_PublicChatInfo: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  static let protoMessageName: String = _protobuf_package + ".PublicChatInfo"
  static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "serverID"),
  ]

  mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularUInt64Field(value: &self._serverID)
      default: break
      }
    }
  }

  func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if let v = self._serverID {
      try visitor.visitSingularUInt64Field(value: v, fieldNumber: 1)
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  static func ==(lhs: SignalServiceProtos_PublicChatInfo, rhs: SignalServiceProtos_PublicChatInfo) -> Bool {
    if lhs._serverID != rhs._serverID {return false}
    if lhs.unknownFields != rhs.unknownFields {return false}
    return true
  }
}
