text: /* Generated by the protocol buffer compiler.  DO NOT EDIT! */
  /* Generated from: onnx.proto */
  
  /* Do not generate deprecated warnings for self */
  #ifndef PROTOBUF_C__NO_DEPRECATED
  #define PROTOBUF_C__NO_DEPRECATED
  #endif
  
  #include "onnx.pb-c.h"
  void   onnx__attribute_proto__init
                       (Onnx__AttributeProto         *message)
  {
    static const Onnx__AttributeProto init_value = ONNX__ATTRIBUTE_PROTO__INIT;
    *message = init_value;
  }
  size_t onnx__attribute_proto__get_packed_size
                       (const Onnx__AttributeProto *message)
  {
    assert(message->base.descriptor == &onnx__attribute_proto__descriptor);
    return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
  }
  size_t onnx__attribute_proto__pack
                       (const Onnx__AttributeProto *message,
                        uint8_t       *out)
  {
    assert(message->base.descriptor == &onnx__attribute_proto__descriptor);
    return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
  }
  size_t onnx__attribute_proto__pack_to_buffer
                       (const Onnx__AttributeProto *message,
                        ProtobufCBuffer *buffer)
  {
    assert(message->base.descriptor == &onnx__attribute_proto__descriptor);
    return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
  }
  Onnx__AttributeProto *
         onnx__attribute_proto__unpack
                       (ProtobufCAllocator  *allocator,
                        size_t               len,
                        const uint8_t       *data)
  {
    return (Onnx__AttributeProto *)
       protobuf_c_message_unpack (&onnx__attribute_proto__descriptor,
                                  allocator, len, data);
  }
  void   onnx__attribute_proto__free_unpacked
                       (Onnx__AttributeProto *message,
                        ProtobufCAllocator *allocator)
  {
    if(!message)
      return;
    assert(message->base.descriptor == &onnx__attribute_proto__descriptor);
    protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
  }
  void   onnx__value_info_proto__init
                       (Onnx__ValueInfoProto         *message)
  {
    static const Onnx__ValueInfoProto init_value = ONNX__VALUE_INFO_PROTO__INIT;
    *message = init_value;
  }
  size_t onnx__value_info_proto__get_packed_size
                       (const Onnx__ValueInfoProto *message)
  {
    assert(message->base.descriptor == &onnx__value_info_proto__descriptor);
    return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
  }
  size_t onnx__value_info_proto__pack
                       (const Onnx__ValueInfoProto *message,
                        uint8_t       *out)
  {
    assert(message->base.descriptor == &onnx__value_info_proto__descriptor);
    return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
  }
  size_t onnx__value_info_proto__pack_to_buffer
                       (const Onnx__ValueInfoProto *message,
                        ProtobufCBuffer *buffer)
  {
    assert(message->base.descriptor == &onnx__value_info_proto__descriptor);
    return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
  }
  Onnx__ValueInfoProto *
         onnx__value_info_proto__unpack
                       (ProtobufCAllocator  *allocator,
                        size_t               len,
                        const uint8_t       *data)
  {
    return (Onnx__ValueInfoProto *)
       protobuf_c_message_unpack (&onnx__value_info_proto__descriptor,
                                  allocator, len, data);
  }
  void   onnx__value_info_proto__free_unpacked
                       (Onnx__ValueInfoProto *message,
                        ProtobufCAllocator *allocator)
  {
    if(!message)
      return;
    assert(message->base.descriptor == &onnx__value_info_proto__descriptor);
    protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
  }
  void   onnx__node_proto__init
                       (Onnx__NodeProto         *message)
  {
    static const Onnx__NodeProto init_value = ONNX__NODE_PROTO__INIT;
    *message = init_value;
  }
  size_t onnx__node_proto__get_packed_size
                       (const Onnx__NodeProto *message)
  {
    assert(message->base.descriptor == &onnx__node_proto__descriptor);
    return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
  }
  size_t onnx__node_proto__pack
                       (const Onnx__NodeProto *message,
                        uint8_t       *out)
  {
    assert(message->base.descriptor == &onnx__node_proto__descriptor);
    return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
  }
  size_t onnx__node_proto__pack_to_buffer
                       (const Onnx__NodeProto *message,
                        ProtobufCBuffer *buffer)
  {
    assert(message->base.descriptor == &onnx__node_proto__descriptor);
    return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
  }
  Onnx__NodeProto *
         onnx__node_proto__unpack
                       (ProtobufCAllocator  *allocator,
                        size_t               len,
                        const uint8_t       *data)
  {
    return (Onnx__NodeProto *)
       protobuf_c_message_unpack (&onnx__node_proto__descriptor,
                                  allocator, len, data);
  }
  void   onnx__node_proto__free_unpacked
                       (Onnx__NodeProto *message,
                        ProtobufCAllocator *allocator)
  {
    if(!message)
      return;
    assert(message->base.descriptor == &onnx__node_proto__descriptor);
    protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
  }
  void   onnx__model_proto__init
                       (Onnx__ModelProto         *message)
  {
    static const Onnx__ModelProto init_value = ONNX__MODEL_PROTO__INIT;
    *message = init_value;
  }
  size_t onnx__model_proto__get_packed_size
                       (const Onnx__ModelProto *message)
  {
    assert(message->base.descriptor == &onnx__model_proto__descriptor);
    return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
  }
  size_t onnx__model_proto__pack
                       (const Onnx__ModelProto *message,
                        uint8_t       *out)
  {
    assert(message->base.descriptor == &onnx__model_proto__descriptor);
    return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
  }
  size_t onnx__model_proto__pack_to_buffer
                       (const Onnx__ModelProto *message,
                        ProtobufCBuffer *buffer)
  {
    assert(message->base.descriptor == &onnx__model_proto__descriptor);
    return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
  }
  Onnx__ModelProto *
         onnx__model_proto__unpack
                       (ProtobufCAllocator  *allocator,
                        size_t               len,
                        const uint8_t       *data)
  {
    return (Onnx__ModelProto *)
       protobuf_c_message_unpack (&onnx__model_proto__descriptor,
                                  allocator, len, data);
  }
  void   onnx__model_proto__free_unpacked
                       (Onnx__ModelProto *message,
                        ProtobufCAllocator *allocator)
  {
    if(!message)
      return;
    assert(message->base.descriptor == &onnx__model_proto__descriptor);
    protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
  }
  void   onnx__string_string_entry_proto__init
                       (Onnx__StringStringEntryProto         *message)
  {
    static const Onnx__StringStringEntryProto init_value = ONNX__STRING_STRING_ENTRY_PROTO__INIT;
    *message = init_value;
  }
  size_t onnx__string_string_entry_proto__get_packed_size
                       (const Onnx__StringStringEntryProto *message)
  {
    assert(message->base.descriptor == &onnx__string_string_entry_proto__descriptor);
    return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
  }
  size_t onnx__string_string_entry_proto__pack
                       (const Onnx__StringStringEntryProto *message,
                        uint8_t       *out)
  {
    assert(message->base.descriptor == &onnx__string_string_entry_proto__descriptor);
    return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
  }
  size_t onnx__string_string_entry_proto__pack_to_buffer
                       (const Onnx__StringStringEntryProto *message,
                        ProtobufCBuffer *buffer)
  {
    assert(message->base.descriptor == &onnx__string_string_entry_proto__descriptor);
    return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
  }
  Onnx__StringStringEntryProto *
         onnx__string_string_entry_proto__unpack
                       (ProtobufCAllocator  *allocator,
                        size_t               len,
                        const uint8_t       *data)
  {
    return (Onnx__StringStringEntryProto *)
       protobuf_c_message_unpack (&onnx__string_string_entry_proto__descriptor,
                                  allocator, len, data);
  }
  void   onnx__string_string_entry_proto__free_unpacked
                       (Onnx__StringStringEntryProto *message,
                        ProtobufCAllocator *allocator)
  {
    if(!message)
      return;
    assert(message->base.descriptor == &onnx__string_string_entry_proto__descriptor);
    protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
  }
  void   onnx__tensor_annotation__init
                       (Onnx__TensorAnnotation         *message)
  {
    static const Onnx__TensorAnnotation init_value = ONNX__TENSOR_ANNOTATION__INIT;
    *message = init_value;
  }
  size_t onnx__tensor_annotation__get_packed_size
                       (const Onnx__TensorAnnotation *message)
  {
    assert(message->base.descriptor == &onnx__tensor_annotation__descriptor);
    return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
  }
  size_t onnx__tensor_annotation__pack
                       (const Onnx__TensorAnnotation *message,
                        uint8_t       *out)
  {
    assert(message->base.descriptor == &onnx__tensor_annotation__descriptor);
    return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
  }
  size_t onnx__tensor_annotation__pack_to_buffer
                       (const Onnx__TensorAnnotation *message,
                        ProtobufCBuffer *buffer)
  {
    assert(message->base.descriptor == &onnx__tensor_annotation__descriptor);
    return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
  }
  Onnx__TensorAnnotation *
         onnx__tensor_annotation__unpack
                       (ProtobufCAllocator  *allocator,
                        size_t               len,
                        const uint8_t       *data)
  {
    return (Onnx__TensorAnnotation *)
       protobuf_c_message_unpack (&onnx__tensor_annotation__descriptor,
                                  allocator, len, data);
  }
  void   onnx__tensor_annotation__free_unpacked
                       (Onnx__TensorAnnotation *message,
                        ProtobufCAllocator *allocator)
  {
    if(!message)
      return;
    assert(message->base.descriptor == &onnx__tensor_annotation__descriptor);
    protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
  }
  void   onnx__graph_proto__init
                       (Onnx__GraphProto         *message)
  {
    static const Onnx__GraphProto init_value = ONNX__GRAPH_PROTO__INIT;
    *message = init_value;
  }
  size_t onnx__graph_proto__get_packed_size
                       (const Onnx__GraphProto *message)
  {
    assert(message->base.descriptor == &onnx__graph_proto__descriptor);
    return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
  }
  size_t onnx__graph_proto__pack
                       (const Onnx__GraphProto *message,
                        uint8_t       *out)
  {
    assert(message->base.descriptor == &onnx__graph_proto__descriptor);
    return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
  }
  size_t onnx__graph_proto__pack_to_buffer
                       (const Onnx__GraphProto *message,
                        ProtobufCBuffer *buffer)
  {
    assert(message->base.descriptor == &onnx__graph_proto__descriptor);
    return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
  }
  Onnx__GraphProto *
         onnx__graph_proto__unpack
                       (ProtobufCAllocator  *allocator,
                        size_t               len,
                        const uint8_t       *data)
  {
    return (Onnx__GraphProto *)
       protobuf_c_message_unpack (&onnx__graph_proto__descriptor,
                                  allocator, len, data);
  }
  void   onnx__graph_proto__free_unpacked
                       (Onnx__GraphProto *message,
                        ProtobufCAllocator *allocator)
  {
    if(!message)
      return;
    assert(message->base.descriptor == &onnx__graph_proto__descriptor);
    protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
  }
  void   onnx__tensor_proto__segment__init
                       (Onnx__TensorProto__Segment         *message)
  {
    static const Onnx__TensorProto__Segment init_value = ONNX__TENSOR_PROTO__SEGMENT__INIT;
    *message = init_value;
  }
  void   onnx__tensor_proto__init
                       (Onnx__TensorProto         *message)
  {
    static const Onnx__TensorProto init_value = ONNX__TENSOR_PROTO__INIT;
    *message = init_value;
  }
  size_t onnx__tensor_proto__get_packed_size
                       (const Onnx__TensorProto *message)
  {
    assert(message->base.descriptor == &onnx__tensor_proto__descriptor);
    return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
  }
  size_t onnx__tensor_proto__pack
                       (const Onnx__TensorProto *message,
                        uint8_t       *out)
  {
    assert(message->base.descriptor == &onnx__tensor_proto__descriptor);
    return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
  }
  size_t onnx__tensor_proto__pack_to_buffer
                       (const Onnx__TensorProto *message,
                        ProtobufCBuffer *buffer)
  {
    assert(message->base.descriptor == &onnx__tensor_proto__descriptor);
    return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
  }
  Onnx__TensorProto *
         onnx__tensor_proto__unpack
                       (ProtobufCAllocator  *allocator,
                        size_t               len,
                        const uint8_t       *data)
  {
    return (Onnx__TensorProto *)
       protobuf_c_message_unpack (&onnx__tensor_proto__descriptor,
                                  allocator, len, data);
  }
  void   onnx__tensor_proto__free_unpacked
                       (Onnx__TensorProto *message,
                        ProtobufCAllocator *allocator)
  {
    if(!message)
      return;
    assert(message->base.descriptor == &onnx__tensor_proto__descriptor);
    protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
  }
  void   onnx__sparse_tensor_proto__init
                       (Onnx__SparseTensorProto         *message)
  {
    static const Onnx__SparseTensorProto init_value = ONNX__SPARSE_TENSOR_PROTO__INIT;
    *message = init_value;
  }
  size_t onnx__sparse_tensor_proto__get_packed_size
                       (const Onnx__SparseTensorProto *message)
  {
    assert(message->base.descriptor == &onnx__sparse_tensor_proto__descriptor);
    return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
  }
  size_t onnx__sparse_tensor_proto__pack
                       (const Onnx__SparseTensorProto *message,
                        uint8_t       *out)
  {
    assert(message->base.descriptor == &onnx__sparse_tensor_proto__descriptor);
    return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
  }
  size_t onnx__sparse_tensor_proto__pack_to_buffer
                       (const Onnx__SparseTensorProto *message,
                        ProtobufCBuffer *buffer)
  {
    assert(message->base.descriptor == &onnx__sparse_tensor_proto__descriptor);
    return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
  }
  Onnx__SparseTensorProto *
         onnx__sparse_tensor_proto__unpack
                       (ProtobufCAllocator  *allocator,
                        size_t               len,
                        const uint8_t       *data)
  {
    return (Onnx__SparseTensorProto *)
       protobuf_c_message_unpack (&onnx__sparse_tensor_proto__descriptor,
                                  allocator, len, data);
  }
  void   onnx__sparse_tensor_proto__free_unpacked
                       (Onnx__SparseTensorProto *message,
                        ProtobufCAllocator *allocator)
  {
    if(!message)
      return;
    assert(message->base.descriptor == &onnx__sparse_tensor_proto__descriptor);
    protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
  }
  void   onnx__tensor_shape_proto__dimension__init
                       (Onnx__TensorShapeProto__Dimension         *message)
  {
    static const Onnx__TensorShapeProto__Dimension init_value = ONNX__TENSOR_SHAPE_PROTO__DIMENSION__INIT;
    *message = init_value;
  }
  void   onnx__tensor_shape_proto__init
                       (Onnx__TensorShapeProto         *message)
  {
    static const Onnx__TensorShapeProto init_value = ONNX__TENSOR_SHAPE_PROTO__INIT;
    *message = init_value;
  }
  size_t onnx__tensor_shape_proto__get_packed_size
                       (const Onnx__TensorShapeProto *message)
  {
    assert(message->base.descriptor == &onnx__tensor_shape_proto__descriptor);
    return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
  }
  size_t onnx__tensor_shape_proto__pack
                       (const Onnx__TensorShapeProto *message,
                        uint8_t       *out)
  {
    assert(message->base.descriptor == &onnx__tensor_shape_proto__descriptor);
    return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
  }
  size_t onnx__tensor_shape_proto__pack_to_buffer
                       (const Onnx__TensorShapeProto *message,
                        ProtobufCBuffer *buffer)
  {
    assert(message->base.descriptor == &onnx__tensor_shape_proto__descriptor);
    return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
  }
  Onnx__TensorShapeProto *
         onnx__tensor_shape_proto__unpack
                       (ProtobufCAllocator  *allocator,
                        size_t               len,
                        const uint8_t       *data)
  {
    return (Onnx__TensorShapeProto *)
       protobuf_c_message_unpack (&onnx__tensor_shape_proto__descriptor,
                                  allocator, len, data);
  }
  void   onnx__tensor_shape_proto__free_unpacked
                       (Onnx__TensorShapeProto *message,
                        ProtobufCAllocator *allocator)
  {
    if(!message)
      return;
    assert(message->base.descriptor == &onnx__tensor_shape_proto__descriptor);
    protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
  }
  void   onnx__type_proto__tensor__init
                       (Onnx__TypeProto__Tensor         *message)
  {
    static const Onnx__TypeProto__Tensor init_value = ONNX__TYPE_PROTO__TENSOR__INIT;
    *message = init_value;
  }
  void   onnx__type_proto__sequence__init
                       (Onnx__TypeProto__Sequence         *message)
  {
    static const Onnx__TypeProto__Sequence init_value = ONNX__TYPE_PROTO__SEQUENCE__INIT;
    *message = init_value;
  }
  void   onnx__type_proto__map__init
                       (Onnx__TypeProto__Map         *message)
  {
    static const Onnx__TypeProto__Map init_value = ONNX__TYPE_PROTO__MAP__INIT;
    *message = init_value;
  }
  void   onnx__type_proto__init
                       (Onnx__TypeProto         *message)
  {
    static const Onnx__TypeProto init_value = ONNX__TYPE_PROTO__INIT;
    *message = init_value;
  }
  size_t onnx__type_proto__get_packed_size
                       (const Onnx__TypeProto *message)
  {
    assert(message->base.descriptor == &onnx__type_proto__descriptor);
    return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
  }
  size_t onnx__type_proto__pack
                       (const Onnx__TypeProto *message,
                        uint8_t       *out)
  {
    assert(message->base.descriptor == &onnx__type_proto__descriptor);
    return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
  }
  size_t onnx__type_proto__pack_to_buffer
                       (const Onnx__TypeProto *message,
                        ProtobufCBuffer *buffer)
  {
    assert(message->base.descriptor == &onnx__type_proto__descriptor);
    return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
  }
  Onnx__TypeProto *
         onnx__type_proto__unpack
                       (ProtobufCAllocator  *allocator,
                        size_t               len,
                        const uint8_t       *data)
  {
    return (Onnx__TypeProto *)
       protobuf_c_message_unpack (&onnx__type_proto__descriptor,
                                  allocator, len, data);
  }
  void   onnx__type_proto__free_unpacked
                       (Onnx__TypeProto *message,
                        ProtobufCAllocator *allocator)
  {
    if(!message)
      return;
    assert(message->base.descriptor == &onnx__type_proto__descriptor);
    protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
  }
  void   onnx__operator_set_id_proto__init
                       (Onnx__OperatorSetIdProto         *message)
  {
    static const Onnx__OperatorSetIdProto init_value = ONNX__OPERATOR_SET_ID_PROTO__INIT;
    *message = init_value;
  }
  size_t onnx__operator_set_id_proto__get_packed_size
                       (const Onnx__OperatorSetIdProto *message)
  {
    assert(message->base.descriptor == &onnx__operator_set_id_proto__descriptor);
    return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
  }
  size_t onnx__operator_set_id_proto__pack
                       (const Onnx__OperatorSetIdProto *message,
                        uint8_t       *out)
  {
    assert(message->base.descriptor == &onnx__operator_set_id_proto__descriptor);
    return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
  }
  size_t onnx__operator_set_id_proto__pack_to_buffer
                       (const Onnx__OperatorSetIdProto *message,
                        ProtobufCBuffer *buffer)
  {
    assert(message->base.descriptor == &onnx__operator_set_id_proto__descriptor);
    return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
  }
  Onnx__OperatorSetIdProto *
         onnx__operator_set_id_proto__unpack
                       (ProtobufCAllocator  *allocator,
                        size_t               len,
                        const uint8_t       *data)
  {
    return (Onnx__OperatorSetIdProto *)
       protobuf_c_message_unpack (&onnx__operator_set_id_proto__descriptor,
                                  allocator, len, data);
  }
  void   onnx__operator_set_id_proto__free_unpacked
                       (Onnx__OperatorSetIdProto *message,
                        ProtobufCAllocator *allocator)
  {
    if(!message)
      return;
    assert(message->base.descriptor == &onnx__operator_set_id_proto__descriptor);
    protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
  }
  static const ProtobufCEnumValue onnx__attribute_proto__attribute_type__enum_values_by_number[13] =
  {
    { "UNDEFINED", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__UNDEFINED", 0 },
    { "FLOAT", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__FLOAT", 1 },
    { "INT", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__INT", 2 },
    { "STRING", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__STRING", 3 },
    { "TENSOR", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__TENSOR", 4 },
    { "GRAPH", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__GRAPH", 5 },
    { "FLOATS", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__FLOATS", 6 },
    { "INTS", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__INTS", 7 },
    { "STRINGS", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__STRINGS", 8 },
    { "TENSORS", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__TENSORS", 9 },
    { "GRAPHS", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__GRAPHS", 10 },
    { "SPARSE_TENSOR", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__SPARSE_TENSOR", 11 },
    { "SPARSE_TENSORS", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__SPARSE_TENSORS", 12 },
  };
  static const ProtobufCIntRange onnx__attribute_proto__attribute_type__value_ranges[] = {
  {0, 0},{0, 13}
  };
  static const ProtobufCEnumValueIndex onnx__attribute_proto__attribute_type__enum_values_by_name[13] =
  {
    { "FLOAT", 1 },
    { "FLOATS", 6 },
    { "GRAPH", 5 },
    { "GRAPHS", 10 },
    { "INT", 2 },
    { "INTS", 7 },
    { "SPARSE_TENSOR", 11 },
    { "SPARSE_TENSORS", 12 },
    { "STRING", 3 },
    { "STRINGS", 8 },
    { "TENSOR", 4 },
    { "TENSORS", 9 },
    { "UNDEFINED", 0 },
  };
  const ProtobufCEnumDescriptor onnx__attribute_proto__attribute_type__descriptor =
  {
    PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
    "onnx.AttributeProto.AttributeType",
    "AttributeType",
    "Onnx__AttributeProto__AttributeType",
    "onnx",
    13,
    onnx__attribute_proto__attribute_type__enum_values_by_number,
    13,
    onnx__attribute_proto__attribute_type__enum_values_by_name,
    1,
    onnx__attribute_proto__attribute_type__value_ranges,
    NULL,NULL,NULL,NULL   /* reserved[1234] */
  };
  static const ProtobufCFieldDescriptor onnx__attribute_proto__field_descriptors[16] =
  {
    {
      "name",
      1,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__AttributeProto, name),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "f",
      2,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_FLOAT,
      offsetof(Onnx__AttributeProto, has_f),
      offsetof(Onnx__AttributeProto, f),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "i",
      3,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_INT64,
      offsetof(Onnx__AttributeProto, has_i),
      offsetof(Onnx__AttributeProto, i),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "s",
      4,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_BYTES,
      offsetof(Onnx__AttributeProto, has_s),
      offsetof(Onnx__AttributeProto, s),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "t",
      5,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_MESSAGE,
      0,   /* quantifier_offset */
      offsetof(Onnx__AttributeProto, t),
      &onnx__tensor_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "g",
      6,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_MESSAGE,
      0,   /* quantifier_offset */
      offsetof(Onnx__AttributeProto, g),
      &onnx__graph_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "floats",
      7,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_FLOAT,
      offsetof(Onnx__AttributeProto, n_floats),
      offsetof(Onnx__AttributeProto, floats),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "ints",
      8,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_INT64,
      offsetof(Onnx__AttributeProto, n_ints),
      offsetof(Onnx__AttributeProto, ints),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "strings",
      9,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_BYTES,
      offsetof(Onnx__AttributeProto, n_strings),
      offsetof(Onnx__AttributeProto, strings),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "tensors",
      10,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__AttributeProto, n_tensors),
      offsetof(Onnx__AttributeProto, tensors),
      &onnx__tensor_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "graphs",
      11,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__AttributeProto, n_graphs),
      offsetof(Onnx__AttributeProto, graphs),
      &onnx__graph_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "doc_string",
      13,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__AttributeProto, doc_string),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "type",
      20,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_ENUM,
      offsetof(Onnx__AttributeProto, has_type),
      offsetof(Onnx__AttributeProto, type),
      &onnx__attribute_proto__attribute_type__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "ref_attr_name",
      21,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__AttributeProto, ref_attr_name),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "sparse_tensor",
      22,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_MESSAGE,
      0,   /* quantifier_offset */
      offsetof(Onnx__AttributeProto, sparse_tensor),
      &onnx__sparse_tensor_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "sparse_tensors",
      23,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__AttributeProto, n_sparse_tensors),
      offsetof(Onnx__AttributeProto, sparse_tensors),
      &onnx__sparse_tensor_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
  };
  static const unsigned onnx__attribute_proto__field_indices_by_name[] = {
    11,   /* field[11] = doc_string */
    1,   /* field[1] = f */
    6,   /* field[6] = floats */
    5,   /* field[5] = g */
    10,   /* field[10] = graphs */
    2,   /* field[2] = i */
    7,   /* field[7] = ints */
    0,   /* field[0] = name */
    13,   /* field[13] = ref_attr_name */
    3,   /* field[3] = s */
    14,   /* field[14] = sparse_tensor */
    15,   /* field[15] = sparse_tensors */
    8,   /* field[8] = strings */
    4,   /* field[4] = t */
    9,   /* field[9] = tensors */
    12,   /* field[12] = type */
  };
  static const ProtobufCIntRange onnx__attribute_proto__number_ranges[3 + 1] =
  {
    { 1, 0 },
    { 13, 11 },
    { 20, 12 },
    { 0, 16 }
  };
  const ProtobufCMessageDescriptor onnx__attribute_proto__descriptor =
  {
    PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
    "onnx.AttributeProto",
    "AttributeProto",
    "Onnx__AttributeProto",
    "onnx",
    sizeof(Onnx__AttributeProto),
    16,
    onnx__attribute_proto__field_descriptors,
    onnx__attribute_proto__field_indices_by_name,
    3,  onnx__attribute_proto__number_ranges,
    (ProtobufCMessageInit) onnx__attribute_proto__init,
    NULL,NULL,NULL    /* reserved[123] */
  };
  static const ProtobufCFieldDescriptor onnx__value_info_proto__field_descriptors[3] =
  {
    {
      "name",
      1,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__ValueInfoProto, name),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "type",
      2,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_MESSAGE,
      0,   /* quantifier_offset */
      offsetof(Onnx__ValueInfoProto, type),
      &onnx__type_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "doc_string",
      3,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__ValueInfoProto, doc_string),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
  };
  static const unsigned onnx__value_info_proto__field_indices_by_name[] = {
    2,   /* field[2] = doc_string */
    0,   /* field[0] = name */
    1,   /* field[1] = type */
  };
  static const ProtobufCIntRange onnx__value_info_proto__number_ranges[1 + 1] =
  {
    { 1, 0 },
    { 0, 3 }
  };
  const ProtobufCMessageDescriptor onnx__value_info_proto__descriptor =
  {
    PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
    "onnx.ValueInfoProto",
    "ValueInfoProto",
    "Onnx__ValueInfoProto",
    "onnx",
    sizeof(Onnx__ValueInfoProto),
    3,
    onnx__value_info_proto__field_descriptors,
    onnx__value_info_proto__field_indices_by_name,
    1,  onnx__value_info_proto__number_ranges,
    (ProtobufCMessageInit) onnx__value_info_proto__init,
    NULL,NULL,NULL    /* reserved[123] */
  };
  static const ProtobufCFieldDescriptor onnx__node_proto__field_descriptors[7] =
  {
    {
      "input",
      1,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_STRING,
      offsetof(Onnx__NodeProto, n_input),
      offsetof(Onnx__NodeProto, input),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "output",
      2,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_STRING,
      offsetof(Onnx__NodeProto, n_output),
      offsetof(Onnx__NodeProto, output),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "name",
      3,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__NodeProto, name),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "op_type",
      4,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__NodeProto, op_type),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "attribute",
      5,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__NodeProto, n_attribute),
      offsetof(Onnx__NodeProto, attribute),
      &onnx__attribute_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "doc_string",
      6,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__NodeProto, doc_string),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "domain",
      7,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__NodeProto, domain),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
  };
  static const unsigned onnx__node_proto__field_indices_by_name[] = {
    4,   /* field[4] = attribute */
    5,   /* field[5] = doc_string */
    6,   /* field[6] = domain */
    0,   /* field[0] = input */
    2,   /* field[2] = name */
    3,   /* field[3] = op_type */
    1,   /* field[1] = output */
  };
  static const ProtobufCIntRange onnx__node_proto__number_ranges[1 + 1] =
  {
    { 1, 0 },
    { 0, 7 }
  };
  const ProtobufCMessageDescriptor onnx__node_proto__descriptor =
  {
    PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
    "onnx.NodeProto",
    "NodeProto",
    "Onnx__NodeProto",
    "onnx",
    sizeof(Onnx__NodeProto),
    7,
    onnx__node_proto__field_descriptors,
    onnx__node_proto__field_indices_by_name,
    1,  onnx__node_proto__number_ranges,
    (ProtobufCMessageInit) onnx__node_proto__init,
    NULL,NULL,NULL    /* reserved[123] */
  };
  static const ProtobufCFieldDescriptor onnx__model_proto__field_descriptors[9] =
  {
    {
      "ir_version",
      1,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_INT64,
      offsetof(Onnx__ModelProto, has_ir_version),
      offsetof(Onnx__ModelProto, ir_version),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "producer_name",
      2,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__ModelProto, producer_name),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "producer_version",
      3,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__ModelProto, producer_version),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "domain",
      4,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__ModelProto, domain),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "model_version",
      5,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_INT64,
      offsetof(Onnx__ModelProto, has_model_version),
      offsetof(Onnx__ModelProto, model_version),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "doc_string",
      6,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__ModelProto, doc_string),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "graph",
      7,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_MESSAGE,
      0,   /* quantifier_offset */
      offsetof(Onnx__ModelProto, graph),
      &onnx__graph_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "opset_import",
      8,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__ModelProto, n_opset_import),
      offsetof(Onnx__ModelProto, opset_import),
      &onnx__operator_set_id_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "metadata_props",
      14,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__ModelProto, n_metadata_props),
      offsetof(Onnx__ModelProto, metadata_props),
      &onnx__string_string_entry_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
  };
  static const unsigned onnx__model_proto__field_indices_by_name[] = {
    5,   /* field[5] = doc_string */
    3,   /* field[3] = domain */
    6,   /* field[6] = graph */
    0,   /* field[0] = ir_version */
    8,   /* field[8] = metadata_props */
    4,   /* field[4] = model_version */
    7,   /* field[7] = opset_import */
    1,   /* field[1] = producer_name */
    2,   /* field[2] = producer_version */
  };
  static const ProtobufCIntRange onnx__model_proto__number_ranges[2 + 1] =
  {
    { 1, 0 },
    { 14, 8 },
    { 0, 9 }
  };
  const ProtobufCMessageDescriptor onnx__model_proto__descriptor =
  {
    PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
    "onnx.ModelProto",
    "ModelProto",
    "Onnx__ModelProto",
    "onnx",
    sizeof(Onnx__ModelProto),
    9,
    onnx__model_proto__field_descriptors,
    onnx__model_proto__field_indices_by_name,
    2,  onnx__model_proto__number_ranges,
    (ProtobufCMessageInit) onnx__model_proto__init,
    NULL,NULL,NULL    /* reserved[123] */
  };
  static const ProtobufCFieldDescriptor onnx__string_string_entry_proto__field_descriptors[2] =
  {
    {
      "key",
      1,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__StringStringEntryProto, key),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "value",
      2,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__StringStringEntryProto, value),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
  };
  static const unsigned onnx__string_string_entry_proto__field_indices_by_name[] = {
    0,   /* field[0] = key */
    1,   /* field[1] = value */
  };
  static const ProtobufCIntRange onnx__string_string_entry_proto__number_ranges[1 + 1] =
  {
    { 1, 0 },
    { 0, 2 }
  };
  const ProtobufCMessageDescriptor onnx__string_string_entry_proto__descriptor =
  {
    PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
    "onnx.StringStringEntryProto",
    "StringStringEntryProto",
    "Onnx__StringStringEntryProto",
    "onnx",
    sizeof(Onnx__StringStringEntryProto),
    2,
    onnx__string_string_entry_proto__field_descriptors,
    onnx__string_string_entry_proto__field_indices_by_name,
    1,  onnx__string_string_entry_proto__number_ranges,
    (ProtobufCMessageInit) onnx__string_string_entry_proto__init,
    NULL,NULL,NULL    /* reserved[123] */
  };
  static const ProtobufCFieldDescriptor onnx__tensor_annotation__field_descriptors[2] =
  {
    {
      "tensor_name",
      1,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__TensorAnnotation, tensor_name),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "quant_parameter_tensor_names",
      2,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__TensorAnnotation, n_quant_parameter_tensor_names),
      offsetof(Onnx__TensorAnnotation, quant_parameter_tensor_names),
      &onnx__string_string_entry_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
  };
  static const unsigned onnx__tensor_annotation__field_indices_by_name[] = {
    1,   /* field[1] = quant_parameter_tensor_names */
    0,   /* field[0] = tensor_name */
  };
  static const ProtobufCIntRange onnx__tensor_annotation__number_ranges[1 + 1] =
  {
    { 1, 0 },
    { 0, 2 }
  };
  const ProtobufCMessageDescriptor onnx__tensor_annotation__descriptor =
  {
    PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
    "onnx.TensorAnnotation",
    "TensorAnnotation",
    "Onnx__TensorAnnotation",
    "onnx",
    sizeof(Onnx__TensorAnnotation),
    2,
    onnx__tensor_annotation__field_descriptors,
    onnx__tensor_annotation__field_indices_by_name,
    1,  onnx__tensor_annotation__number_ranges,
    (ProtobufCMessageInit) onnx__tensor_annotation__init,
    NULL,NULL,NULL    /* reserved[123] */
  };
  static const ProtobufCFieldDescriptor onnx__graph_proto__field_descriptors[9] =
  {
    {
      "node",
      1,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__GraphProto, n_node),
      offsetof(Onnx__GraphProto, node),
      &onnx__node_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "name",
      2,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__GraphProto, name),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "initializer",
      5,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__GraphProto, n_initializer),
      offsetof(Onnx__GraphProto, initializer),
      &onnx__tensor_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "doc_string",
      10,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__GraphProto, doc_string),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "input",
      11,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__GraphProto, n_input),
      offsetof(Onnx__GraphProto, input),
      &onnx__value_info_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "output",
      12,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__GraphProto, n_output),
      offsetof(Onnx__GraphProto, output),
      &onnx__value_info_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "value_info",
      13,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__GraphProto, n_value_info),
      offsetof(Onnx__GraphProto, value_info),
      &onnx__value_info_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "quantization_annotation",
      14,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__GraphProto, n_quantization_annotation),
      offsetof(Onnx__GraphProto, quantization_annotation),
      &onnx__tensor_annotation__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "sparse_initializer",
      15,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__GraphProto, n_sparse_initializer),
      offsetof(Onnx__GraphProto, sparse_initializer),
      &onnx__sparse_tensor_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
  };
  static const unsigned onnx__graph_proto__field_indices_by_name[] = {
    3,   /* field[3] = doc_string */
    2,   /* field[2] = initializer */
    4,   /* field[4] = input */
    1,   /* field[1] = name */
    0,   /* field[0] = node */
    5,   /* field[5] = output */
    7,   /* field[7] = quantization_annotation */
    8,   /* field[8] = sparse_initializer */
    6,   /* field[6] = value_info */
  };
  static const ProtobufCIntRange onnx__graph_proto__number_ranges[3 + 1] =
  {
    { 1, 0 },
    { 5, 2 },
    { 10, 3 },
    { 0, 9 }
  };
  const ProtobufCMessageDescriptor onnx__graph_proto__descriptor =
  {
    PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
    "onnx.GraphProto",
    "GraphProto",
    "Onnx__GraphProto",
    "onnx",
    sizeof(Onnx__GraphProto),
    9,
    onnx__graph_proto__field_descriptors,
    onnx__graph_proto__field_indices_by_name,
    3,  onnx__graph_proto__number_ranges,
    (ProtobufCMessageInit) onnx__graph_proto__init,
    NULL,NULL,NULL    /* reserved[123] */
  };
  static const ProtobufCFieldDescriptor onnx__tensor_proto__segment__field_descriptors[2] =
  {
    {
      "begin",
      1,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_INT64,
      offsetof(Onnx__TensorProto__Segment, has_begin),
      offsetof(Onnx__TensorProto__Segment, begin),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "end",
      2,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_INT64,
      offsetof(Onnx__TensorProto__Segment, has_end),
      offsetof(Onnx__TensorProto__Segment, end),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
  };
  static const unsigned onnx__tensor_proto__segment__field_indices_by_name[] = {
    0,   /* field[0] = begin */
    1,   /* field[1] = end */
  };
  static const ProtobufCIntRange onnx__tensor_proto__segment__number_ranges[1 + 1] =
  {
    { 1, 0 },
    { 0, 2 }
  };
  const ProtobufCMessageDescriptor onnx__tensor_proto__segment__descriptor =
  {
    PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
    "onnx.TensorProto.Segment",
    "Segment",
    "Onnx__TensorProto__Segment",
    "onnx",
    sizeof(Onnx__TensorProto__Segment),
    2,
    onnx__tensor_proto__segment__field_descriptors,
    onnx__tensor_proto__segment__field_indices_by_name,
    1,  onnx__tensor_proto__segment__number_ranges,
    (ProtobufCMessageInit) onnx__tensor_proto__segment__init,
    NULL,NULL,NULL    /* reserved[123] */
  };
  static const ProtobufCEnumValue onnx__tensor_proto__data_type__enum_values_by_number[17] =
  {
    { "UNDEFINED", "ONNX__TENSOR_PROTO__DATA_TYPE__UNDEFINED", 0 },
    { "FLOAT", "ONNX__TENSOR_PROTO__DATA_TYPE__FLOAT", 1 },
    { "UINT8", "ONNX__TENSOR_PROTO__DATA_TYPE__UINT8", 2 },
    { "INT8", "ONNX__TENSOR_PROTO__DATA_TYPE__INT8", 3 },
    { "UINT16", "ONNX__TENSOR_PROTO__DATA_TYPE__UINT16", 4 },
    { "INT16", "ONNX__TENSOR_PROTO__DATA_TYPE__INT16", 5 },
    { "INT32", "ONNX__TENSOR_PROTO__DATA_TYPE__INT32", 6 },
    { "INT64", "ONNX__TENSOR_PROTO__DATA_TYPE__INT64", 7 },
    { "STRING", "ONNX__TENSOR_PROTO__DATA_TYPE__STRING", 8 },
    { "BOOL", "ONNX__TENSOR_PROTO__DATA_TYPE__BOOL", 9 },
    { "FLOAT16", "ONNX__TENSOR_PROTO__DATA_TYPE__FLOAT16", 10 },
    { "DOUBLE", "ONNX__TENSOR_PROTO__DATA_TYPE__DOUBLE", 11 },
    { "UINT32", "ONNX__TENSOR_PROTO__DATA_TYPE__UINT32", 12 },
    { "UINT64", "ONNX__TENSOR_PROTO__DATA_TYPE__UINT64", 13 },
    { "COMPLEX64", "ONNX__TENSOR_PROTO__DATA_TYPE__COMPLEX64", 14 },
    { "COMPLEX128", "ONNX__TENSOR_PROTO__DATA_TYPE__COMPLEX128", 15 },
    { "BFLOAT16", "ONNX__TENSOR_PROTO__DATA_TYPE__BFLOAT16", 16 },
  };
  static const ProtobufCIntRange onnx__tensor_proto__data_type__value_ranges[] = {
  {0, 0},{0, 17}
  };
  static const ProtobufCEnumValueIndex onnx__tensor_proto__data_type__enum_values_by_name[17] =
  {
    { "BFLOAT16", 16 },
    { "BOOL", 9 },
    { "COMPLEX128", 15 },
    { "COMPLEX64", 14 },
    { "DOUBLE", 11 },
    { "FLOAT", 1 },
    { "FLOAT16", 10 },
    { "INT16", 5 },
    { "INT32", 6 },
    { "INT64", 7 },
    { "INT8", 3 },
    { "STRING", 8 },
    { "UINT16", 4 },
    { "UINT32", 12 },
    { "UINT64", 13 },
    { "UINT8", 2 },
    { "UNDEFINED", 0 },
  };
  const ProtobufCEnumDescriptor onnx__tensor_proto__data_type__descriptor =
  {
    PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
    "onnx.TensorProto.DataType",
    "DataType",
    "Onnx__TensorProto__DataType",
    "onnx",
    17,
    onnx__tensor_proto__data_type__enum_values_by_number,
    17,
    onnx__tensor_proto__data_type__enum_values_by_name,
    1,
    onnx__tensor_proto__data_type__value_ranges,
    NULL,NULL,NULL,NULL   /* reserved[1234] */
  };
  static const ProtobufCEnumValue onnx__tensor_proto__data_location__enum_values_by_number[2] =
  {
    { "DEFAULT", "ONNX__TENSOR_PROTO__DATA_LOCATION__DEFAULT", 0 },
    { "EXTERNAL", "ONNX__TENSOR_PROTO__DATA_LOCATION__EXTERNAL", 1 },
  };
  static const ProtobufCIntRange onnx__tensor_proto__data_location__value_ranges[] = {
  {0, 0},{0, 2}
  };
  static const ProtobufCEnumValueIndex onnx__tensor_proto__data_location__enum_values_by_name[2] =
  {
    { "DEFAULT", 0 },
    { "EXTERNAL", 1 },
  };
  const ProtobufCEnumDescriptor onnx__tensor_proto__data_location__descriptor =
  {
    PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
    "onnx.TensorProto.DataLocation",
    "DataLocation",
    "Onnx__TensorProto__DataLocation",
    "onnx",
    2,
    onnx__tensor_proto__data_location__enum_values_by_number,
    2,
    onnx__tensor_proto__data_location__enum_values_by_name,
    1,
    onnx__tensor_proto__data_location__value_ranges,
    NULL,NULL,NULL,NULL   /* reserved[1234] */
  };
  static const ProtobufCFieldDescriptor onnx__tensor_proto__field_descriptors[14] =
  {
    {
      "dims",
      1,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_INT64,
      offsetof(Onnx__TensorProto, n_dims),
      offsetof(Onnx__TensorProto, dims),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "data_type",
      2,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_INT32,
      offsetof(Onnx__TensorProto, has_data_type),
      offsetof(Onnx__TensorProto, data_type),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "segment",
      3,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_MESSAGE,
      0,   /* quantifier_offset */
      offsetof(Onnx__TensorProto, segment),
      &onnx__tensor_proto__segment__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "float_data",
      4,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_FLOAT,
      offsetof(Onnx__TensorProto, n_float_data),
      offsetof(Onnx__TensorProto, float_data),
      NULL,
      NULL,
      0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "int32_data",
      5,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_INT32,
      offsetof(Onnx__TensorProto, n_int32_data),
      offsetof(Onnx__TensorProto, int32_data),
      NULL,
      NULL,
      0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "string_data",
      6,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_BYTES,
      offsetof(Onnx__TensorProto, n_string_data),
      offsetof(Onnx__TensorProto, string_data),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "int64_data",
      7,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_INT64,
      offsetof(Onnx__TensorProto, n_int64_data),
      offsetof(Onnx__TensorProto, int64_data),
      NULL,
      NULL,
      0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "name",
      8,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__TensorProto, name),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "raw_data",
      9,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_BYTES,
      offsetof(Onnx__TensorProto, has_raw_data),
      offsetof(Onnx__TensorProto, raw_data),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "double_data",
      10,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_DOUBLE,
      offsetof(Onnx__TensorProto, n_double_data),
      offsetof(Onnx__TensorProto, double_data),
      NULL,
      NULL,
      0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "uint64_data",
      11,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_UINT64,
      offsetof(Onnx__TensorProto, n_uint64_data),
      offsetof(Onnx__TensorProto, uint64_data),
      NULL,
      NULL,
      0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "doc_string",
      12,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__TensorProto, doc_string),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "external_data",
      13,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__TensorProto, n_external_data),
      offsetof(Onnx__TensorProto, external_data),
      &onnx__string_string_entry_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "data_location",
      14,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_ENUM,
      offsetof(Onnx__TensorProto, has_data_location),
      offsetof(Onnx__TensorProto, data_location),
      &onnx__tensor_proto__data_location__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
  };
  static const unsigned onnx__tensor_proto__field_indices_by_name[] = {
    13,   /* field[13] = data_location */
    1,   /* field[1] = data_type */
    0,   /* field[0] = dims */
    11,   /* field[11] = doc_string */
    9,   /* field[9] = double_data */
    12,   /* field[12] = external_data */
    3,   /* field[3] = float_data */
    4,   /* field[4] = int32_data */
    6,   /* field[6] = int64_data */
    7,   /* field[7] = name */
    8,   /* field[8] = raw_data */
    2,   /* field[2] = segment */
    5,   /* field[5] = string_data */
    10,   /* field[10] = uint64_data */
  };
  static const ProtobufCIntRange onnx__tensor_proto__number_ranges[1 + 1] =
  {
    { 1, 0 },
    { 0, 14 }
  };
  const ProtobufCMessageDescriptor onnx__tensor_proto__descriptor =
  {
    PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
    "onnx.TensorProto",
    "TensorProto",
    "Onnx__TensorProto",
    "onnx",
    sizeof(Onnx__TensorProto),
    14,
    onnx__tensor_proto__field_descriptors,
    onnx__tensor_proto__field_indices_by_name,
    1,  onnx__tensor_proto__number_ranges,
    (ProtobufCMessageInit) onnx__tensor_proto__init,
    NULL,NULL,NULL    /* reserved[123] */
  };
  static const ProtobufCFieldDescriptor onnx__sparse_tensor_proto__field_descriptors[3] =
  {
    {
      "values",
      1,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_MESSAGE,
      0,   /* quantifier_offset */
      offsetof(Onnx__SparseTensorProto, values),
      &onnx__tensor_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "indices",
      2,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_MESSAGE,
      0,   /* quantifier_offset */
      offsetof(Onnx__SparseTensorProto, indices),
      &onnx__tensor_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "dims",
      3,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_INT64,
      offsetof(Onnx__SparseTensorProto, n_dims),
      offsetof(Onnx__SparseTensorProto, dims),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
  };
  static const unsigned onnx__sparse_tensor_proto__field_indices_by_name[] = {
    2,   /* field[2] = dims */
    1,   /* field[1] = indices */
    0,   /* field[0] = values */
  };
  static const ProtobufCIntRange onnx__sparse_tensor_proto__number_ranges[1 + 1] =
  {
    { 1, 0 },
    { 0, 3 }
  };
  const ProtobufCMessageDescriptor onnx__sparse_tensor_proto__descriptor =
  {
    PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
    "onnx.SparseTensorProto",
    "SparseTensorProto",
    "Onnx__SparseTensorProto",
    "onnx",
    sizeof(Onnx__SparseTensorProto),
    3,
    onnx__sparse_tensor_proto__field_descriptors,
    onnx__sparse_tensor_proto__field_indices_by_name,
    1,  onnx__sparse_tensor_proto__number_ranges,
    (ProtobufCMessageInit) onnx__sparse_tensor_proto__init,
    NULL,NULL,NULL    /* reserved[123] */
  };
  static const ProtobufCFieldDescriptor onnx__tensor_shape_proto__dimension__field_descriptors[3] =
  {
    {
      "dim_value",
      1,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_INT64,
      offsetof(Onnx__TensorShapeProto__Dimension, value_case),
      offsetof(Onnx__TensorShapeProto__Dimension, dim_value),
      NULL,
      NULL,
      0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "dim_param",
      2,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      offsetof(Onnx__TensorShapeProto__Dimension, value_case),
      offsetof(Onnx__TensorShapeProto__Dimension, dim_param),
      NULL,
      NULL,
      0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "denotation",
      3,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__TensorShapeProto__Dimension, denotation),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
  };
  static const unsigned onnx__tensor_shape_proto__dimension__field_indices_by_name[] = {
    2,   /* field[2] = denotation */
    1,   /* field[1] = dim_param */
    0,   /* field[0] = dim_value */
  };
  static const ProtobufCIntRange onnx__tensor_shape_proto__dimension__number_ranges[1 + 1] =
  {
    { 1, 0 },
    { 0, 3 }
  };
  const ProtobufCMessageDescriptor onnx__tensor_shape_proto__dimension__descriptor =
  {
    PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
    "onnx.TensorShapeProto.Dimension",
    "Dimension",
    "Onnx__TensorShapeProto__Dimension",
    "onnx",
    sizeof(Onnx__TensorShapeProto__Dimension),
    3,
    onnx__tensor_shape_proto__dimension__field_descriptors,
    onnx__tensor_shape_proto__dimension__field_indices_by_name,
    1,  onnx__tensor_shape_proto__dimension__number_ranges,
    (ProtobufCMessageInit) onnx__tensor_shape_proto__dimension__init,
    NULL,NULL,NULL    /* reserved[123] */
  };
  static const ProtobufCFieldDescriptor onnx__tensor_shape_proto__field_descriptors[1] =
  {
    {
      "dim",
      1,
      PROTOBUF_C_LABEL_REPEATED,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__TensorShapeProto, n_dim),
      offsetof(Onnx__TensorShapeProto, dim),
      &onnx__tensor_shape_proto__dimension__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
  };
  static const unsigned onnx__tensor_shape_proto__field_indices_by_name[] = {
    0,   /* field[0] = dim */
  };
  static const ProtobufCIntRange onnx__tensor_shape_proto__number_ranges[1 + 1] =
  {
    { 1, 0 },
    { 0, 1 }
  };
  const ProtobufCMessageDescriptor onnx__tensor_shape_proto__descriptor =
  {
    PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
    "onnx.TensorShapeProto",
    "TensorShapeProto",
    "Onnx__TensorShapeProto",
    "onnx",
    sizeof(Onnx__TensorShapeProto),
    1,
    onnx__tensor_shape_proto__field_descriptors,
    onnx__tensor_shape_proto__field_indices_by_name,
    1,  onnx__tensor_shape_proto__number_ranges,
    (ProtobufCMessageInit) onnx__tensor_shape_proto__init,
    NULL,NULL,NULL    /* reserved[123] */
  };
  static const ProtobufCFieldDescriptor onnx__type_proto__tensor__field_descriptors[2] =
  {
    {
      "elem_type",
      1,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_INT32,
      offsetof(Onnx__TypeProto__Tensor, has_elem_type),
      offsetof(Onnx__TypeProto__Tensor, elem_type),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "shape",
      2,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_MESSAGE,
      0,   /* quantifier_offset */
      offsetof(Onnx__TypeProto__Tensor, shape),
      &onnx__tensor_shape_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
  };
  static const unsigned onnx__type_proto__tensor__field_indices_by_name[] = {
    0,   /* field[0] = elem_type */
    1,   /* field[1] = shape */
  };
  static const ProtobufCIntRange onnx__type_proto__tensor__number_ranges[1 + 1] =
  {
    { 1, 0 },
    { 0, 2 }
  };
  const ProtobufCMessageDescriptor onnx__type_proto__tensor__descriptor =
  {
    PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
    "onnx.TypeProto.Tensor",
    "Tensor",
    "Onnx__TypeProto__Tensor",
    "onnx",
    sizeof(Onnx__TypeProto__Tensor),
    2,
    onnx__type_proto__tensor__field_descriptors,
    onnx__type_proto__tensor__field_indices_by_name,
    1,  onnx__type_proto__tensor__number_ranges,
    (ProtobufCMessageInit) onnx__type_proto__tensor__init,
    NULL,NULL,NULL    /* reserved[123] */
  };
  static const ProtobufCFieldDescriptor onnx__type_proto__sequence__field_descriptors[1] =
  {
    {
      "elem_type",
      1,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_MESSAGE,
      0,   /* quantifier_offset */
      offsetof(Onnx__TypeProto__Sequence, elem_type),
      &onnx__type_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
  };
  static const unsigned onnx__type_proto__sequence__field_indices_by_name[] = {
    0,   /* field[0] = elem_type */
  };
  static const ProtobufCIntRange onnx__type_proto__sequence__number_ranges[1 + 1] =
  {
    { 1, 0 },
    { 0, 1 }
  };
  const ProtobufCMessageDescriptor onnx__type_proto__sequence__descriptor =
  {
    PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
    "onnx.TypeProto.Sequence",
    "Sequence",
    "Onnx__TypeProto__Sequence",
    "onnx",
    sizeof(Onnx__TypeProto__Sequence),
    1,
    onnx__type_proto__sequence__field_descriptors,
    onnx__type_proto__sequence__field_indices_by_name,
    1,  onnx__type_proto__sequence__number_ranges,
    (ProtobufCMessageInit) onnx__type_proto__sequence__init,
    NULL,NULL,NULL    /* reserved[123] */
  };
  static const ProtobufCFieldDescriptor onnx__type_proto__map__field_descriptors[2] =
  {
    {
      "key_type",
      1,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_INT32,
      offsetof(Onnx__TypeProto__Map, has_key_type),
      offsetof(Onnx__TypeProto__Map, key_type),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "value_type",
      2,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_MESSAGE,
      0,   /* quantifier_offset */
      offsetof(Onnx__TypeProto__Map, value_type),
      &onnx__type_proto__descriptor,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
  };
  static const unsigned onnx__type_proto__map__field_indices_by_name[] = {
    0,   /* field[0] = key_type */
    1,   /* field[1] = value_type */
  };
  static const ProtobufCIntRange onnx__type_proto__map__number_ranges[1 + 1] =
  {
    { 1, 0 },
    { 0, 2 }
  };
  const ProtobufCMessageDescriptor onnx__type_proto__map__descriptor =
  {
    PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
    "onnx.TypeProto.Map",
    "Map",
    "Onnx__TypeProto__Map",
    "onnx",
    sizeof(Onnx__TypeProto__Map),
    2,
    onnx__type_proto__map__field_descriptors,
    onnx__type_proto__map__field_indices_by_name,
    1,  onnx__type_proto__map__number_ranges,
    (ProtobufCMessageInit) onnx__type_proto__map__init,
    NULL,NULL,NULL    /* reserved[123] */
  };
  static const ProtobufCFieldDescriptor onnx__type_proto__field_descriptors[4] =
  {
    {
      "tensor_type",
      1,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__TypeProto, value_case),
      offsetof(Onnx__TypeProto, tensor_type),
      &onnx__type_proto__tensor__descriptor,
      NULL,
      0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "sequence_type",
      4,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__TypeProto, value_case),
      offsetof(Onnx__TypeProto, sequence_type),
      &onnx__type_proto__sequence__descriptor,
      NULL,
      0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "map_type",
      5,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_MESSAGE,
      offsetof(Onnx__TypeProto, value_case),
      offsetof(Onnx__TypeProto, map_type),
      &onnx__type_proto__map__descriptor,
      NULL,
      0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "denotation",
      6,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__TypeProto, denotation),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
  };
  static const unsigned onnx__type_proto__field_indices_by_name[] = {
    3,   /* field[3] = denotation */
    2,   /* field[2] = map_type */
    1,   /* field[1] = sequence_type */
    0,   /* field[0] = tensor_type */
  };
  static const ProtobufCIntRange onnx__type_proto__number_ranges[2 + 1] =
  {
    { 1, 0 },
    { 4, 1 },
    { 0, 4 }
  };
  const ProtobufCMessageDescriptor onnx__type_proto__descriptor =
  {
    PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
    "onnx.TypeProto",
    "TypeProto",
    "Onnx__TypeProto",
    "onnx",
    sizeof(Onnx__TypeProto),
    4,
    onnx__type_proto__field_descriptors,
    onnx__type_proto__field_indices_by_name,
    2,  onnx__type_proto__number_ranges,
    (ProtobufCMessageInit) onnx__type_proto__init,
    NULL,NULL,NULL    /* reserved[123] */
  };
  static const ProtobufCFieldDescriptor onnx__operator_set_id_proto__field_descriptors[2] =
  {
    {
      "domain",
      1,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_STRING,
      0,   /* quantifier_offset */
      offsetof(Onnx__OperatorSetIdProto, domain),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
    {
      "version",
      2,
      PROTOBUF_C_LABEL_OPTIONAL,
      PROTOBUF_C_TYPE_INT64,
      offsetof(Onnx__OperatorSetIdProto, has_version),
      offsetof(Onnx__OperatorSetIdProto, version),
      NULL,
      NULL,
      0,             /* flags */
      0,NULL,NULL    /* reserved1,reserved2, etc */
    },
  };
  static const unsigned onnx__operator_set_id_proto__field_indices_by_name[] = {
    0,   /* field[0] = domain */
    1,   /* field[1] = version */
  };
  static const ProtobufCIntRange onnx__operator_set_id_proto__number_ranges[1 + 1] =
  {
    { 1, 0 },
    { 0, 2 }
  };
  const ProtobufCMessageDescriptor onnx__operator_set_id_proto__descriptor =
  {
    PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
    "onnx.OperatorSetIdProto",
    "OperatorSetIdProto",
    "Onnx__OperatorSetIdProto",
    "onnx",
    sizeof(Onnx__OperatorSetIdProto),
    2,
    onnx__operator_set_id_proto__field_descriptors,
    onnx__operator_set_id_proto__field_indices_by_name,
    1,  onnx__operator_set_id_proto__number_ranges,
    (ProtobufCMessageInit) onnx__operator_set_id_proto__init,
    NULL,NULL,NULL    /* reserved[123] */
  };
  static const ProtobufCEnumValue onnx__version__enum_values_by_number[7] =
  {
    { "_START_VERSION", "ONNX__VERSION___START_VERSION", 0 },
    { "IR_VERSION_2017_10_10", "ONNX__VERSION__IR_VERSION_2017_10_10", 1 },
    { "IR_VERSION_2017_10_30", "ONNX__VERSION__IR_VERSION_2017_10_30", 2 },
    { "IR_VERSION_2017_11_3", "ONNX__VERSION__IR_VERSION_2017_11_3", 3 },
    { "IR_VERSION_2019_1_22", "ONNX__VERSION__IR_VERSION_2019_1_22", 4 },
    { "IR_VERSION_2019_3_18", "ONNX__VERSION__IR_VERSION_2019_3_18", 5 },
    { "IR_VERSION", "ONNX__VERSION__IR_VERSION", 6 },
  };
  static const ProtobufCIntRange onnx__version__value_ranges[] = {
  {0, 0},{0, 7}
  };
  static const ProtobufCEnumValueIndex onnx__version__enum_values_by_name[7] =
  {
    { "IR_VERSION", 6 },
    { "IR_VERSION_2017_10_10", 1 },
    { "IR_VERSION_2017_10_30", 2 },
    { "IR_VERSION_2017_11_3", 3 },
    { "IR_VERSION_2019_1_22", 4 },
    { "IR_VERSION_2019_3_18", 5 },
    { "_START_VERSION", 0 },
  };
  const ProtobufCEnumDescriptor onnx__version__descriptor =
  {
    PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
    "onnx.Version",
    "Version",
    "Onnx__Version",
    "onnx",
    7,
    onnx__version__enum_values_by_number,
    7,
    onnx__version__enum_values_by_name,
    1,
    onnx__version__value_ranges,
    NULL,NULL,NULL,NULL   /* reserved[1234] */
  };
  