#ifndef FLATBUFFERS_COMMON_READER_H
#define FLATBUFFERS_COMMON_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

/* Common FlatBuffers read functionality for C. */

#include "flatcc/flatcc_prologue.h"
#include "flatcc/flatcc_flatbuffers.h"


#define __flatbuffers_read_scalar_at_byteoffset(N, p, o) N ## _read_from_pe((uint8_t *)(p) + (o))
#define __flatbuffers_read_scalar(N, p) N ## _read_from_pe(p)
#define __flatbuffers_read_vt(ID, offset, t)\
flatbuffers_voffset_t offset = 0;\
{   flatbuffers_voffset_t id__tmp, *vt__tmp;\
    assert(t != 0 && "null pointer table access");\
    id__tmp = ID;\
    vt__tmp = (flatbuffers_voffset_t *)((uint8_t *)(t) -\
        __flatbuffers_soffset_read_from_pe(t));\
    if (__flatbuffers_voffset_read_from_pe(vt__tmp) >= sizeof(vt__tmp[0]) * (id__tmp + 3)) {\
        offset = __flatbuffers_voffset_read_from_pe(vt__tmp + id__tmp + 2);\
    }\
}
#define __flatbuffers_field_present(ID, t) { __flatbuffers_read_vt(ID, offset__tmp, t) return offset__tmp != 0; }
#define __flatbuffers_scalar_field(T, ID, t)\
{\
    __flatbuffers_read_vt(ID, offset__tmp, t)\
    if (offset__tmp) {\
        return (const T *)((uint8_t *)(t) + offset__tmp);\
    }\
    return 0;\
}
#define __flatbuffers_define_scalar_field(ID, N, NK, TK, T, V)\
static inline T N ## _ ## NK ## _get(N ## _table_t t__tmp)\
{ __flatbuffers_read_vt(ID, offset__tmp, t__tmp)\
  return offset__tmp ? __flatbuffers_read_scalar_at_byteoffset(TK, t__tmp, offset__tmp) : V;\
}\
static inline T N ## _ ## NK(N ## _table_t t__tmp)\
{ __flatbuffers_read_vt(ID, offset__tmp, t__tmp)\
  return offset__tmp ? __flatbuffers_read_scalar_at_byteoffset(TK, t__tmp, offset__tmp) : V;\
}\
static inline const T *N ## _ ## NK ## _get_ptr(N ## _table_t t__tmp)\
__flatbuffers_scalar_field(T, ID, t__tmp)\
static inline int N ## _ ## NK ## _is_present(N ## _table_t t__tmp)\
__flatbuffers_field_present(ID, t__tmp)\
__flatbuffers_define_scan_by_scalar_field(N, NK, T)
#define __flatbuffers_struct_field(T, ID, t, r)\
{\
    __flatbuffers_read_vt(ID, offset__tmp, t)\
    if (offset__tmp) {\
        return (T)((uint8_t *)(t) + offset__tmp);\
    }\
    assert(!(r) && "required field missing");\
    return 0;\
}
#define __flatbuffers_offset_field(T, ID, t, r, adjust)\
{\
    flatbuffers_uoffset_t *elem__tmp;\
    __flatbuffers_read_vt(ID, offset__tmp, t)\
    if (offset__tmp) {\
        elem__tmp = (flatbuffers_uoffset_t *)((uint8_t *)(t) + offset__tmp);\
        /* Add sizeof so C api can have raw access past header field. */\
        return (T)((uint8_t *)(elem__tmp) + adjust +\
              __flatbuffers_uoffset_read_from_pe(elem__tmp));\
    }\
    assert(!(r) && "required field missing");\
    return 0;\
}
#define __flatbuffers_vector_field(T, ID, t, r) __flatbuffers_offset_field(T, ID, t, r, sizeof(flatbuffers_uoffset_t))
#define __flatbuffers_table_field(T, ID, t, r) __flatbuffers_offset_field(T, ID, t, r, 0)
#define __flatbuffers_define_struct_field(ID, N, NK, T, r)\
static inline T N ## _ ## NK ## _get(N ## _table_t t__tmp)\
__flatbuffers_struct_field(T, ID, t__tmp, r)\
static inline T N ## _ ## NK(N ## _table_t t__tmp)\
__flatbuffers_struct_field(T, ID, t__tmp, r)\
static inline int N ## _ ## NK ## _is_present(N ## _table_t t__tmp)\
__flatbuffers_field_present(ID, t__tmp)
#define __flatbuffers_define_vector_field(ID, N, NK, T, r)\
static inline T N ## _ ## NK ## _get(N ## _table_t t__tmp)\
__flatbuffers_vector_field(T, ID, t__tmp, r)\
static inline T N ## _ ## NK(N ## _table_t t__tmp)\
__flatbuffers_vector_field(T, ID, t__tmp, r)\
static inline int N ## _ ## NK ## _is_present(N ## _table_t t__tmp)\
__flatbuffers_field_present(ID, t__tmp)
#define __flatbuffers_define_table_field(ID, N, NK, T, r)\
static inline T N ## _ ## NK ## _get(N ## _table_t t__tmp)\
__flatbuffers_table_field(T, ID, t__tmp, r)\
static inline T N ## _ ## NK(N ## _table_t t__tmp)\
__flatbuffers_table_field(T, ID, t__tmp, r)\
static inline int N ## _ ## NK ## _is_present(N ## _table_t t__tmp)\
__flatbuffers_field_present(ID, t__tmp)
#define __flatbuffers_define_string_field(ID, N, NK, r)\
static inline flatbuffers_string_t N ## _ ## NK ## _get(N ## _table_t t__tmp)\
__flatbuffers_vector_field(flatbuffers_string_t, ID, t__tmp, r)\
static inline flatbuffers_string_t N ## _ ## NK(N ## _table_t t__tmp)\
__flatbuffers_vector_field(flatbuffers_string_t, ID, t__tmp, r)\
static inline int N ## _ ## NK ## _is_present(N ## _table_t t__tmp)\
__flatbuffers_field_present(ID, t__tmp)\
__flatbuffers_define_scan_by_string_field(N, NK)
#define __flatbuffers_vec_len(vec)\
{ return (vec) ? (size_t)__flatbuffers_uoffset_read_from_pe((flatbuffers_uoffset_t *)vec - 1) : 0; }
#define __flatbuffers_string_len(s) __flatbuffers_vec_len(s)
static inline size_t flatbuffers_vec_len(const void *vec)
__flatbuffers_vec_len(vec)
#define __flatbuffers_scalar_vec_at(N, vec, i)\
{ assert(flatbuffers_vec_len(vec) > (i) && "index out of range");\
  return __flatbuffers_read_scalar(N, &(vec)[i]); }
#define __flatbuffers_struct_vec_at(vec, i)\
{ assert(flatbuffers_vec_len(vec) > (i) && "index out of range"); return (vec) + (i); }
/* `adjust` skips past the header for string vectors. */
#define __flatbuffers_offset_vec_at(T, vec, i, adjust)\
{ const flatbuffers_uoffset_t *elem__tmp = (vec) + (i);\
  assert(flatbuffers_vec_len(vec) > (i) && "index out of range");\
  return (T)((uint8_t *)(elem__tmp) + (size_t)__flatbuffers_uoffset_read_from_pe(elem__tmp) + (adjust)); }
#define __flatbuffers_define_scalar_vec_len(N)\
static inline size_t N ## _vec_len(N ##_vec_t vec__tmp)\
{ return flatbuffers_vec_len(vec__tmp); }
#define __flatbuffers_define_scalar_vec_at(N, T) \
static inline T N ## _vec_at(N ## _vec_t vec__tmp, size_t i__tmp)\
__flatbuffers_scalar_vec_at(N, vec__tmp, i__tmp)
typedef const char *flatbuffers_string_t;
static inline size_t flatbuffers_string_len(flatbuffers_string_t s)
__flatbuffers_string_len(s)
typedef const flatbuffers_uoffset_t *flatbuffers_string_vec_t;
typedef flatbuffers_uoffset_t *flatbuffers_string_mutable_vec_t;
static inline size_t flatbuffers_string_vec_len(flatbuffers_string_vec_t vec)
__flatbuffers_vec_len(vec)
static inline flatbuffers_string_t flatbuffers_string_vec_at(flatbuffers_string_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(flatbuffers_string_t, vec, i, sizeof(vec[0]))
typedef const void *flatbuffers_generic_t;
static inline flatbuffers_string_t flatbuffers_string_cast_from_generic(const flatbuffers_generic_t p)
{ return p ? ((const char *)p) + __flatbuffers_uoffset__size() : 0; }
typedef const flatbuffers_uoffset_t *flatbuffers_generic_vec_t;
typedef flatbuffers_uoffset_t *flatbuffers_generic_table_mutable_vec_t;
static inline size_t flatbuffers_generic_vec_len(flatbuffers_generic_vec_t vec)
__flatbuffers_vec_len(vec)
static inline flatbuffers_generic_t flatbuffers_generic_vec_at(flatbuffers_generic_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(flatbuffers_generic_t, vec, i, 0)
static inline flatbuffers_generic_t flatbuffers_generic_vec_at_as_string(flatbuffers_generic_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(flatbuffers_generic_t, vec, i, sizeof(vec[0]))
typedef struct flatbuffers_union {
    flatbuffers_union_type_t type;
    flatbuffers_generic_t value;
} flatbuffers_union_t;
typedef struct flatbuffers_union_vec {
    const flatbuffers_union_type_t *type;
    const flatbuffers_uoffset_t *value;
} flatbuffers_union_vec_t;
#define __flatbuffers_union_type_field(ID, t)\
{\
    __flatbuffers_read_vt(ID, offset__tmp, t)\
    return offset__tmp ? __flatbuffers_read_scalar_at_byteoffset(__flatbuffers_utype, t, offset__tmp) : 0;\
}
static inline flatbuffers_string_t flatbuffers_string_cast_from_union(const flatbuffers_union_t u__tmp)\
{ return flatbuffers_string_cast_from_generic(u__tmp.value); }
#define __flatbuffers_define_union_field(NS, ID, N, NK, T, r)\
static inline T ## _union_type_t N ## _ ## NK ## _type_get(N ## _table_t t__tmp)\
__## NS ## union_type_field(((ID) - 1), t__tmp)\
static inline NS ## generic_t N ## _ ## NK ## _get(N ## _table_t t__tmp)\
__## NS ## table_field(NS ## generic_t, ID, t__tmp, r)\
static inline T ## _union_type_t N ## _ ## NK ## _type(N ## _table_t t__tmp)\
__## NS ## union_type_field(((ID) - 1), t__tmp)\
static inline NS ## generic_t N ## _ ## NK(N ## _table_t t__tmp)\
__## NS ## table_field(NS ## generic_t, ID, t__tmp, r)\
static inline int N ## _ ## NK ## _is_present(N ## _table_t t__tmp)\
__## NS ## field_present(ID, t__tmp)\
static inline T ## _union_t N ## _ ## NK ## _union(N ## _table_t t__tmp)\
{ T ## _union_t u__tmp = { 0, 0 }; u__tmp.type = N ## _ ## NK ## _type(t__tmp);\
  if (u__tmp.type == 0) return u__tmp; u__tmp.value = N ## _ ## NK (t__tmp); return u__tmp; }\
static inline NS ## string_t N ## _ ## NK ## _as_string(N ## _table_t t__tmp)\
{ return NS ## string_cast_from_generic(N ## _ ## NK(t__tmp)); }\

#define __flatbuffers_define_union_vector_ops(NS, T)\
static inline size_t T ## _union_vec_len(T ## _union_vec_t uv__tmp)\
{ return NS ## vec_len(uv__tmp.type); }\
static inline T ## _union_t T ## _union_vec_at(T ## _union_vec_t uv__tmp, size_t i__tmp)\
{ T ## _union_t u__tmp = { 0, 0 }; size_t n__tmp = NS ## vec_len(uv__tmp.type);\
  assert(n__tmp > (i__tmp) && "index out of range"); u__tmp.type = uv__tmp.type[i__tmp];\
  /* Unknown type is treated as NONE for schema evolution. */\
  if (u__tmp.type == 0) return u__tmp;\
  u__tmp.value = NS ## generic_vec_at(uv__tmp.value, i__tmp); return u__tmp; }\
static inline NS ## string_t T ## _union_vec_at_as_string(T ## _union_vec_t uv__tmp, size_t i__tmp)\
{ return (NS ## string_t) NS ## generic_vec_at_as_string(uv__tmp.value, i__tmp); }\

#define __flatbuffers_define_union_vector(NS, T)\
typedef NS ## union_vec_t T ## _union_vec_t;\
__## NS ## define_union_vector_ops(NS, T)
#define __flatbuffers_define_union(NS, T)\
typedef NS ## union_t T ## _union_t;\
__## NS ## define_union_vector(NS, T)
#define __flatbuffers_define_union_vector_field(NS, ID, N, NK, T, r)\
__## NS ## define_vector_field(ID - 1, N, NK ## _type, T ## _vec_t, r)\
__## NS ## define_vector_field(ID, N, NK, flatbuffers_generic_vec_t, r)\
static inline T ## _union_vec_t N ## _ ## NK ## _union(N ## _table_t t__tmp)\
{ T ## _union_vec_t uv__tmp; uv__tmp.type = N ## _ ## NK ## _type(t__tmp); uv__tmp.value = N ## _ ## NK(t__tmp);\
  assert(NS ## vec_len(uv__tmp.type) == NS ## vec_len(uv__tmp.value)\
  && "union vector type length mismatch"); return uv__tmp; }
#include <string.h>
static size_t flatbuffers_not_found = (size_t)-1;
static size_t flatbuffers_end = (size_t)-1;
#define __flatbuffers_identity(n) (n)
#define __flatbuffers_min(a, b) ((a) < (b) ? (a) : (b))
/* Subtraction doesn't work for unsigned types. */
#define __flatbuffers_scalar_cmp(x, y, n) ((x) < (y) ? -1 : (x) > (y))
static inline int __flatbuffers_string_n_cmp(flatbuffers_string_t v, const char *s, size_t n)
{ size_t nv = flatbuffers_string_len(v); int x = strncmp(v, s, nv < n ? nv : n);
  return x != 0 ? x : nv < n ? -1 : nv > n; }
/* `n` arg unused, but needed by string find macro expansion. */
static inline int __flatbuffers_string_cmp(flatbuffers_string_t v, const char *s, size_t n) { (void)n; return strcmp(v, s); }
/* A = identity if searching scalar vectors rather than key fields. */
/* Returns lowest matching index or not_found. */
#define __flatbuffers_find_by_field(A, V, E, L, K, Kn, T, D)\
{ T v__tmp; size_t a__tmp = 0, b__tmp, m__tmp; if (!(b__tmp = L(V))) { return flatbuffers_not_found; }\
  --b__tmp;\
  while (a__tmp < b__tmp) {\
    m__tmp = a__tmp + ((b__tmp - a__tmp) >> 1);\
    v__tmp = A(E(V, m__tmp));\
    if ((D(v__tmp, (K), (Kn))) < 0) {\
      a__tmp = m__tmp + 1;\
    } else {\
      b__tmp = m__tmp;\
    }\
  }\
  if (a__tmp == b__tmp) {\
    v__tmp = A(E(V, a__tmp));\
    if (D(v__tmp, (K), (Kn)) == 0) {\
       return a__tmp;\
    }\
  }\
  return flatbuffers_not_found;\
}
#define __flatbuffers_find_by_scalar_field(A, V, E, L, K, T)\
__flatbuffers_find_by_field(A, V, E, L, K, 0, T, __flatbuffers_scalar_cmp)
#define __flatbuffers_find_by_string_field(A, V, E, L, K)\
__flatbuffers_find_by_field(A, V, E, L, K, 0, flatbuffers_string_t, __flatbuffers_string_cmp)
#define __flatbuffers_find_by_string_n_field(A, V, E, L, K, Kn)\
__flatbuffers_find_by_field(A, V, E, L, K, Kn, flatbuffers_string_t, __flatbuffers_string_n_cmp)
#define __flatbuffers_define_find_by_scalar_field(N, NK, TK)\
static inline size_t N ## _vec_find_by_ ## NK(N ## _vec_t vec__tmp, TK key__tmp)\
__flatbuffers_find_by_scalar_field(N ## _ ## NK, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, TK)
#define __flatbuffers_define_scalar_find(N, T)\
static inline size_t N ## _vec_find(N ## _vec_t vec__tmp, T key__tmp)\
__flatbuffers_find_by_scalar_field(__flatbuffers_identity, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, T)
#define __flatbuffers_define_find_by_string_field(N, NK) \
/* Note: find only works on vectors sorted by this field. */\
static inline size_t N ## _vec_find_by_ ## NK(N ## _vec_t vec__tmp, const char *s__tmp)\
__flatbuffers_find_by_string_field(N ## _ ## NK, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp)\
static inline size_t N ## _vec_find_n_by_ ## NK(N ## _vec_t vec__tmp, const char *s__tmp, int n__tmp)\
__flatbuffers_find_by_string_n_field(N ## _ ## NK, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp, n__tmp)
#define __flatbuffers_define_default_find_by_scalar_field(N, NK, TK)\
static inline size_t N ## _vec_find(N ## _vec_t vec__tmp, TK key__tmp)\
{ return N ## _vec_find_by_ ## NK(vec__tmp, key__tmp); }
#define __flatbuffers_define_default_find_by_string_field(N, NK) \
static inline size_t N ## _vec_find(N ## _vec_t vec__tmp, const char *s__tmp)\
{ return N ## _vec_find_by_ ## NK(vec__tmp, s__tmp); }\
static inline size_t N ## _vec_find_n(N ## _vec_t vec__tmp, const char *s__tmp, int n__tmp)\
{ return N ## _vec_find_n_by_ ## NK(vec__tmp, s__tmp, n__tmp); }
/* A = identity if searching scalar vectors rather than key fields. */
/* Returns lowest matching index or not_found. */
#define __flatbuffers_scan_by_field(b, e, A, V, E, L, K, Kn, T, D)\
{ T v__tmp; size_t i__tmp;\
  for (i__tmp = b; i__tmp < e; ++i__tmp) {\
    v__tmp = A(E(V, i__tmp));\
    if (D(v__tmp, (K), (Kn)) == 0) {\
       return i__tmp;\
    }\
  }\
  return flatbuffers_not_found;\
}
#define __flatbuffers_rscan_by_field(b, e, A, V, E, L, K, Kn, T, D)\
{ T v__tmp; size_t i__tmp = e;\
  while (i__tmp-- > b) {\
    v__tmp = A(E(V, i__tmp));\
    if (D(v__tmp, (K), (Kn)) == 0) {\
       return i__tmp;\
    }\
  }\
  return flatbuffers_not_found;\
}
#define __flatbuffers_scan_by_scalar_field(b, e, A, V, E, L, K, T)\
__flatbuffers_scan_by_field(b, e, A, V, E, L, K, 0, T, __flatbuffers_scalar_cmp)
#define __flatbuffers_scan_by_string_field(b, e, A, V, E, L, K)\
__flatbuffers_scan_by_field(b, e, A, V, E, L, K, 0, flatbuffers_string_t, __flatbuffers_string_cmp)
#define __flatbuffers_scan_by_string_n_field(b, e, A, V, E, L, K, Kn)\
__flatbuffers_scan_by_field(b, e, A, V, E, L, K, Kn, flatbuffers_string_t, __flatbuffers_string_n_cmp)
#define __flatbuffers_rscan_by_scalar_field(b, e, A, V, E, L, K, T)\
__flatbuffers_rscan_by_field(b, e, A, V, E, L, K, 0, T, __flatbuffers_scalar_cmp)
#define __flatbuffers_rscan_by_string_field(b, e, A, V, E, L, K)\
__flatbuffers_rscan_by_field(b, e, A, V, E, L, K, 0, flatbuffers_string_t, __flatbuffers_string_cmp)
#define __flatbuffers_rscan_by_string_n_field(b, e, A, V, E, L, K, Kn)\
__flatbuffers_rscan_by_field(b, e, A, V, E, L, K, Kn, flatbuffers_string_t, __flatbuffers_string_n_cmp)
#define __flatbuffers_define_scan_by_scalar_field(N, NK, T)\
static inline size_t N ## _vec_scan_by_ ## NK(N ## _vec_t vec__tmp, T key__tmp)\
__flatbuffers_scan_by_scalar_field(0, N ## _vec_len(vec__tmp), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, T)\
static inline size_t N ## _vec_scan_ex_by_ ## NK(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, T key__tmp)\
__flatbuffers_scan_by_scalar_field(begin__tmp, __flatbuffers_min(end__tmp, N ## _vec_len(vec__tmp)), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, T)\
static inline size_t N ## _vec_rscan_by_ ## NK(N ## _vec_t vec__tmp, T key__tmp)\
__flatbuffers_rscan_by_scalar_field(0, N ## _vec_len(vec__tmp), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, T)\
static inline size_t N ## _vec_rscan_ex_by_ ## NK(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, T key__tmp)\
__flatbuffers_rscan_by_scalar_field(begin__tmp, __flatbuffers_min(end__tmp, N ## _vec_len(vec__tmp)), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, T)
#define __flatbuffers_define_scalar_scan(N, T)\
static inline size_t N ## _vec_scan(N ## _vec_t vec__tmp, T key__tmp)\
__flatbuffers_scan_by_scalar_field(0, N ## _vec_len(vec__tmp), __flatbuffers_identity, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, T)\
static inline size_t N ## _vec_scan_ex(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, T key__tmp)\
__flatbuffers_scan_by_scalar_field(begin__tmp, __flatbuffers_min(end__tmp, N ## _vec_len(vec__tmp)), __flatbuffers_identity, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, T)\
static inline size_t N ## _vec_rscan(N ## _vec_t vec__tmp, T key__tmp)\
__flatbuffers_rscan_by_scalar_field(0, N ## _vec_len(vec__tmp), __flatbuffers_identity, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, T)\
static inline size_t N ## _vec_rscan_ex(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, T key__tmp)\
__flatbuffers_rscan_by_scalar_field(begin__tmp, __flatbuffers_min(end__tmp, N ## _vec_len(vec__tmp)), __flatbuffers_identity, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, T)
#define __flatbuffers_define_scan_by_string_field(N, NK) \
static inline size_t N ## _vec_scan_by_ ## NK(N ## _vec_t vec__tmp, const char *s__tmp)\
__flatbuffers_scan_by_string_field(0, N ## _vec_len(vec__tmp), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp)\
static inline size_t N ## _vec_scan_n_by_ ## NK(N ## _vec_t vec__tmp, const char *s__tmp, int n__tmp)\
__flatbuffers_scan_by_string_n_field(0, N ## _vec_len(vec__tmp), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp, n__tmp)\
static inline size_t N ## _vec_scan_ex_by_ ## NK(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, const char *s__tmp)\
__flatbuffers_scan_by_string_field(begin__tmp, __flatbuffers_min(end__tmp, N ## _vec_len(vec__tmp)), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp)\
static inline size_t N ## _vec_scan_ex_n_by_ ## NK(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, const char *s__tmp, int n__tmp)\
__flatbuffers_scan_by_string_n_field(begin__tmp, __flatbuffers_min( end__tmp, N ## _vec_len(vec__tmp)), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp, n__tmp)\
static inline size_t N ## _vec_rscan_by_ ## NK(N ## _vec_t vec__tmp, const char *s__tmp)\
__flatbuffers_rscan_by_string_field(0, N ## _vec_len(vec__tmp), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp)\
static inline size_t N ## _vec_rscan_n_by_ ## NK(N ## _vec_t vec__tmp, const char *s__tmp, int n__tmp)\
__flatbuffers_rscan_by_string_n_field(0, N ## _vec_len(vec__tmp), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp, n__tmp)\
static inline size_t N ## _vec_rscan_ex_by_ ## NK(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, const char *s__tmp)\
__flatbuffers_rscan_by_string_field(begin__tmp, __flatbuffers_min(end__tmp, N ## _vec_len(vec__tmp)), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp)\
static inline size_t N ## _vec_rscan_ex_n_by_ ## NK(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, const char *s__tmp, int n__tmp)\
__flatbuffers_rscan_by_string_n_field(begin__tmp, __flatbuffers_min( end__tmp, N ## _vec_len(vec__tmp)), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp, n__tmp)
#define __flatbuffers_define_default_scan_by_scalar_field(N, NK, TK)\
static inline size_t N ## _vec_scan(N ## _vec_t vec__tmp, TK key__tmp)\
{ return N ## _vec_scan_by_ ## NK(vec__tmp, key__tmp); }\
static inline size_t N ## _vec_scan_ex(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, TK key__tmp)\
{ return N ## _vec_scan_ex_by_ ## NK(vec__tmp, begin__tmp, end__tmp, key__tmp); }\
static inline size_t N ## _vec_rscan(N ## _vec_t vec__tmp, TK key__tmp)\
{ return N ## _vec_rscan_by_ ## NK(vec__tmp, key__tmp); }\
static inline size_t N ## _vec_rscan_ex(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, TK key__tmp)\
{ return N ## _vec_rscan_ex_by_ ## NK(vec__tmp, begin__tmp, end__tmp, key__tmp); }
#define __flatbuffers_define_default_scan_by_string_field(N, NK) \
static inline size_t N ## _vec_scan(N ## _vec_t vec__tmp, const char *s__tmp)\
{ return N ## _vec_scan_by_ ## NK(vec__tmp, s__tmp); }\
static inline size_t N ## _vec_scan_n(N ## _vec_t vec__tmp, const char *s__tmp, int n__tmp)\
{ return N ## _vec_scan_n_by_ ## NK(vec__tmp, s__tmp, n__tmp); }\
static inline size_t N ## _vec_scan_ex(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, const char *s__tmp)\
{ return N ## _vec_scan_ex_by_ ## NK(vec__tmp, begin__tmp, end__tmp, s__tmp); }\
static inline size_t N ## _vec_scan_ex_n(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, const char *s__tmp, int n__tmp)\
{ return N ## _vec_scan_ex_n_by_ ## NK(vec__tmp, begin__tmp, end__tmp, s__tmp, n__tmp); }\
static inline size_t N ## _vec_rscan(N ## _vec_t vec__tmp, const char *s__tmp)\
{ return N ## _vec_rscan_by_ ## NK(vec__tmp, s__tmp); }\
static inline size_t N ## _vec_rscan_n(N ## _vec_t vec__tmp, const char *s__tmp, int n__tmp)\
{ return N ## _vec_rscan_n_by_ ## NK(vec__tmp, s__tmp, n__tmp); }\
static inline size_t N ## _vec_rscan_ex(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, const char *s__tmp)\
{ return N ## _vec_rscan_ex_by_ ## NK(vec__tmp, begin__tmp, end__tmp, s__tmp); }\
static inline size_t N ## _vec_rscan_ex_n(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, const char *s__tmp, int n__tmp)\
{ return N ## _vec_rscan_ex_n_by_ ## NK(vec__tmp, begin__tmp, end__tmp, s__tmp, n__tmp); }
#define __flatbuffers_heap_sort(N, X, A, E, L, TK, TE, D, S)\
static inline void __ ## N ## X ## __heap_sift_down(\
        N ## _mutable_vec_t vec__tmp, size_t start__tmp, size_t end__tmp)\
{ size_t child__tmp, root__tmp; TK v1__tmp, v2__tmp, vroot__tmp;\
  root__tmp = start__tmp;\
  while ((root__tmp << 1) <= end__tmp) {\
    child__tmp = root__tmp << 1;\
    if (child__tmp < end__tmp) {\
      v1__tmp = A(E(vec__tmp, child__tmp));\
      v2__tmp = A(E(vec__tmp, child__tmp + 1));\
      if (D(v1__tmp, v2__tmp) < 0) {\
        child__tmp++;\
      }\
    }\
    vroot__tmp = A(E(vec__tmp, root__tmp));\
    v1__tmp = A(E(vec__tmp, child__tmp));\
    if (D(vroot__tmp, v1__tmp) < 0) {\
      S(vec__tmp, root__tmp, child__tmp, TE);\
      root__tmp = child__tmp;\
    } else {\
      return;\
    }\
  }\
}\
static inline void __ ## N ## X ## __heap_sort(N ## _mutable_vec_t vec__tmp)\
{ size_t start__tmp, end__tmp, size__tmp;\
  size__tmp = L(vec__tmp); if (size__tmp == 0) return; end__tmp = size__tmp - 1; start__tmp = size__tmp >> 1;\
  do { __ ## N ## X ## __heap_sift_down(vec__tmp, start__tmp, end__tmp); } while (start__tmp--);\
  while (end__tmp > 0) { \
    S(vec__tmp, 0, end__tmp, TE);\
    __ ## N ## X ## __heap_sift_down(vec__tmp, 0, --end__tmp); } }
#define __flatbuffers_define_sort_by_field(N, NK, TK, TE, D, S)\
  __flatbuffers_heap_sort(N, _sort_by_ ## NK, N ## _ ## NK ## _get, N ## _vec_at, N ## _vec_len, TK, TE, D, S)\
static inline void N ## _vec_sort_by_ ## NK(N ## _mutable_vec_t vec__tmp)\
{ __ ## N ## _sort_by_ ## NK ## __heap_sort(vec__tmp); }
#define __flatbuffers_define_sort(N, TK, TE, D, S)\
__flatbuffers_heap_sort(N, , __flatbuffers_identity, N ## _vec_at, N ## _vec_len, TK, TE, D, S)\
static inline void N ## _vec_sort(N ## _mutable_vec_t vec__tmp) { __ ## N ## __heap_sort(vec__tmp); }
#define __flatbuffers_scalar_diff(x, y) ((x) < (y) ? -1 : (x) > (y))
#define __flatbuffers_string_diff(x, y) __flatbuffers_string_n_cmp((x), (const char *)(y), flatbuffers_string_len(y))
#define __flatbuffers_scalar_swap(vec, a, b, TE) { TE x__tmp = vec[b]; vec[b] = vec[a]; vec[a] = x__tmp; }
#define __flatbuffers_string_swap(vec, a, b, TE)\
{ TE ta__tmp, tb__tmp, d__tmp;\
  d__tmp = (TE)((a - b) * sizeof(vec[0]));\
  ta__tmp =  __flatbuffers_uoffset_read_from_pe(vec + b) - d__tmp;\
  tb__tmp =  __flatbuffers_uoffset_read_from_pe(vec + a) + d__tmp;\
  __flatbuffers_uoffset_write_to_pe(vec + a, ta__tmp);\
  __flatbuffers_uoffset_write_to_pe(vec + b, tb__tmp); }
#define __flatbuffers_define_sort_by_scalar_field(N, NK, TK, TE)\
  __flatbuffers_define_sort_by_field(N, NK, TK, TE, __flatbuffers_scalar_diff, __flatbuffers_scalar_swap)
#define __flatbuffers_define_sort_by_string_field(N, NK)\
  __flatbuffers_define_sort_by_field(N, NK, flatbuffers_string_t, flatbuffers_uoffset_t, __flatbuffers_string_diff, __flatbuffers_string_swap)
#define __flatbuffers_define_scalar_sort(N, T) __flatbuffers_define_sort(N, T, T, __flatbuffers_scalar_diff, __flatbuffers_scalar_swap)
#define __flatbuffers_define_string_sort() __flatbuffers_define_sort(flatbuffers_string, flatbuffers_string_t, flatbuffers_uoffset_t, __flatbuffers_string_diff, __flatbuffers_string_swap)
#define __flatbuffers_define_scalar_vector(N, T)\
typedef const T *N ## _vec_t;\
typedef T *N ## _mutable_vec_t;\
__flatbuffers_define_scalar_vec_len(N)\
__flatbuffers_define_scalar_vec_at(N, T)\
__flatbuffers_define_scalar_find(N, T)\
__flatbuffers_define_scalar_scan(N, T)\
__flatbuffers_define_scalar_sort(N, T)

#define __flatbuffers_define_integer_type(N, T, W)\
__flatcc_define_integer_accessors(N, T, W, flatbuffers_endian)\
__flatbuffers_define_scalar_vector(N, T)
__flatbuffers_define_scalar_vector(flatbuffers_bool, flatbuffers_bool_t)
__flatbuffers_define_scalar_vector(flatbuffers_uint8, uint8_t)
__flatbuffers_define_scalar_vector(flatbuffers_int8, int8_t)
__flatbuffers_define_scalar_vector(flatbuffers_uint16, uint16_t)
__flatbuffers_define_scalar_vector(flatbuffers_int16, int16_t)
__flatbuffers_define_scalar_vector(flatbuffers_uint32, uint32_t)
__flatbuffers_define_scalar_vector(flatbuffers_int32, int32_t)
__flatbuffers_define_scalar_vector(flatbuffers_uint64, uint64_t)
__flatbuffers_define_scalar_vector(flatbuffers_int64, int64_t)
__flatbuffers_define_scalar_vector(flatbuffers_float, float)
__flatbuffers_define_scalar_vector(flatbuffers_double, double)
__flatbuffers_define_scalar_vector(flatbuffers_union_type, flatbuffers_union_type_t)
static inline size_t flatbuffers_string_vec_find(flatbuffers_string_vec_t vec, const char *s)
__flatbuffers_find_by_string_field(__flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s)
static inline size_t flatbuffers_string_vec_find_n(flatbuffers_string_vec_t vec, const char *s, size_t n)
__flatbuffers_find_by_string_n_field(__flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s, n)
static inline size_t flatbuffers_string_vec_scan(flatbuffers_string_vec_t vec, const char *s)
__flatbuffers_scan_by_string_field(0, flatbuffers_string_vec_len(vec), __flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s)
static inline size_t flatbuffers_string_vec_scan_n(flatbuffers_string_vec_t vec, const char *s, size_t n)
__flatbuffers_scan_by_string_n_field(0, flatbuffers_string_vec_len(vec), __flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s, n)
static inline size_t flatbuffers_string_vec_scan_ex(flatbuffers_string_vec_t vec, size_t begin, size_t end, const char *s)
__flatbuffers_scan_by_string_field(begin, __flatbuffers_min(end, flatbuffers_string_vec_len(vec)), __flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s)
static inline size_t flatbuffers_string_vec_scan_ex_n(flatbuffers_string_vec_t vec, size_t begin, size_t end, const char *s, size_t n)
__flatbuffers_scan_by_string_n_field(begin, __flatbuffers_min(end, flatbuffers_string_vec_len(vec)), __flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s, n)
static inline size_t flatbuffers_string_vec_rscan(flatbuffers_string_vec_t vec, const char *s)
__flatbuffers_rscan_by_string_field(0, flatbuffers_string_vec_len(vec), __flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s)
static inline size_t flatbuffers_string_vec_rscan_n(flatbuffers_string_vec_t vec, const char *s, size_t n)
__flatbuffers_rscan_by_string_n_field(0, flatbuffers_string_vec_len(vec), __flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s, n)
static inline size_t flatbuffers_string_vec_rscan_ex(flatbuffers_string_vec_t vec, size_t begin, size_t end, const char *s)
__flatbuffers_rscan_by_string_field(begin, __flatbuffers_min(end, flatbuffers_string_vec_len(vec)), __flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s)
static inline size_t flatbuffers_string_vec_rscan_ex_n(flatbuffers_string_vec_t vec, size_t begin, size_t end, const char *s, size_t n)
__flatbuffers_rscan_by_string_n_field(begin, __flatbuffers_min(end, flatbuffers_string_vec_len(vec)), __flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s, n)
__flatbuffers_define_string_sort()
#define __flatbuffers_define_struct_scalar_field(N, NK, TK, T)\
static inline T N ## _ ## NK ## _get(N ## _struct_t t__tmp)\
{ return t__tmp ? __flatbuffers_read_scalar(TK, &(t__tmp->NK)) : 0; }\
static inline const T *N ## _ ## NK ## _get_ptr(N ## _struct_t t__tmp)\
{ return t__tmp ? &(t__tmp->NK) : 0; }\
static inline T N ## _ ## NK (N ## _struct_t t__tmp)\
{ return t__tmp ? __flatbuffers_read_scalar(TK, &(t__tmp->NK)) : 0; }\
__flatbuffers_define_scan_by_scalar_field(N, NK, T)
#define __flatbuffers_define_struct_struct_field(N, NK, T)\
static inline T N ## _ ## NK ## _get(N ## _struct_t t__tmp) { return t__tmp ? &(t__tmp->NK) : 0; }\
static inline T N ## _ ## NK (N ## _struct_t t__tmp) { return t__tmp ? &(t__tmp->NK) : 0; }
/* If fid is null, the function returns true without testing as buffer is not expected to have any id. */
static inline int flatbuffers_has_Id(const void *buffer, const char *fid)
{ flatbuffers_thash_t id, id2 = 0; if (fid == 0) { return 1; };
  id2 = flatbuffers_type_hash_from_string(fid);
  id = __flatbuffers_thash_read_from_pe(((flatbuffers_uoffset_t *)buffer) + 1);
  return id2 == 0 || id == id2; }
static inline int flatbuffers_has_type_hash(const void *buffer, flatbuffers_thash_t thash)
{ return thash == 0 || (__flatbuffers_thash_read_from_pe((flatbuffers_uoffset_t *)buffer + 1) == thash); }

static inline flatbuffers_thash_t flatbuffers_get_type_hash(const void *buffer)
{ return __flatbuffers_thash_read_from_pe((flatbuffers_uoffset_t *)buffer + 1); }

#define flatbuffers_verify_endian() flatbuffers_has_Id("\x00\x00\x00\x00" "1234", "1234")
static inline void *flatbuffers_read_size_prefix(void *b, size_t *size_out)
{ if (size_out) { *size_out = (size_t)__flatbuffers_uoffset_read_from_pe(b); }
  return (uint8_t *)b + sizeof(flatbuffers_uoffset_t); }
/* Null file Id accepts anything, otherwise fid should be 4 characters. */
#define __flatbuffers_read_root(T, K, buffer, fid)\
  ((!buffer || !flatbuffers_has_Id(buffer, fid)) ? 0 :\
  ((T ## _ ## K ## t)(((uint8_t *)buffer) +\
    __flatbuffers_uoffset_read_from_pe(buffer))))
#define __flatbuffers_read_typed_root(T, K, buffer, thash)\
  ((!buffer || !flatbuffers_has_type_hash(buffer, thash)) ? 0 :\
  ((T ## _ ## K ## t)(((uint8_t *)buffer) +\
    __flatbuffers_uoffset_read_from_pe(buffer))))
#define __flatbuffers_nested_buffer_as_root(C, N, T, K)\
static inline T ## _ ## K ## t C ## _ ## N ## _as_root_with_Id(C ## _ ## table_t t__tmp, const char *fid__tmp)\
{ const uint8_t *buffer__tmp = C ## _ ## N(t__tmp); return __flatbuffers_read_root(T, K, buffer__tmp, fid__tmp); }\
static inline T ## _ ## K ## t C ## _ ## N ## _as_typed_root(C ## _ ## table_t t__tmp)\
{ const uint8_t *buffer__tmp = C ## _ ## N(t__tmp); return __flatbuffers_read_root(T, K, buffer__tmp, C ## _ ## type_Id); }\
static inline T ## _ ## K ## t C ## _ ## N ## _as_root(C ## _ ## table_t t__tmp)\
{ const char *fid__tmp = T ## _Id;\
  const uint8_t *buffer__tmp = C ## _ ## N(t__tmp); return __flatbuffers_read_root(T, K, buffer__tmp, fid__tmp); }
#define __flatbuffers_buffer_as_root(N, K)\
static inline N ## _ ## K ## t N ## _as_root_with_Id(const void *buffer__tmp, const char *fid__tmp)\
{ return __flatbuffers_read_root(N, K, buffer__tmp, fid__tmp); }\
static inline N ## _ ## K ## t N ## _as_root_with_type_hash(const void *buffer__tmp, flatbuffers_thash_t thash__tmp)\
{ return __flatbuffers_read_typed_root(N, K, buffer__tmp, thash__tmp); }\
static inline N ## _ ## K ## t N ## _as_root(const void *buffer__tmp)\
{ const char *fid__tmp = N ## _Id;\
  return __flatbuffers_read_root(N, K, buffer__tmp, fid__tmp); }\
static inline N ## _ ## K ## t N ## _as_typed_root(const void *buffer__tmp)\
{ return __flatbuffers_read_typed_root(N, K, buffer__tmp, N ## _type_hash); }
#define __flatbuffers_struct_as_root(N) __flatbuffers_buffer_as_root(N, struct_)
#define __flatbuffers_table_as_root(N) __flatbuffers_buffer_as_root(N, table_)

#include "flatcc/flatcc_epilogue.h"
#endif /* FLATBUFFERS_COMMON_H */
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#define FLATBUFFERS_COMMON_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

/* Common FlatBuffers build functionality for C. */

#include "flatcc/flatcc_prologue.h"
#ifndef FLATBUILDER_H
#include "flatcc/flatcc_builder.h"
#endif
typedef flatcc_builder_t flatbuffers_builder_t;
typedef flatcc_builder_ref_t flatbuffers_ref_t;
typedef flatcc_builder_ref_t flatbuffers_vec_ref_t;
typedef flatcc_builder_union_ref_t flatbuffers_union_ref_t;
typedef flatcc_builder_union_vec_ref_t flatbuffers_union_vec_ref_t;
/* integer return code (ref and ptr always fail on 0) */
#define flatbuffers_failed(x) ((x) < 0)
typedef flatbuffers_ref_t flatbuffers_root_t;
#define flatbuffers_root(ref) ((flatbuffers_root_t)(ref))

#define __flatbuffers_memoize_begin(B, src)\
do { flatcc_builder_ref_t _ref; if ((_ref = flatcc_builder_refmap_find((B), (src)))) return _ref; } while (0)
#define __flatbuffers_memoize_end(B, src, op) do { return flatcc_builder_refmap_insert((B), (src), (op)); } while (0)
#define __flatbuffers_memoize(B, src, op) do { __flatbuffers_memoize_begin(B, src); __flatbuffers_memoize_end(B, src, op); } while (0)

#define __flatbuffers_build_buffer(NS)\
typedef NS ## ref_t NS ## buffer_ref_t;\
static inline int NS ## buffer_start(NS ## builder_t *B, const NS ##fid_t fid)\
{ return flatcc_builder_start_buffer(B, fid, 0, 0); }\
static inline int NS ## buffer_start_with_size(NS ## builder_t *B, const NS ##fid_t fid)\
{ return flatcc_builder_start_buffer(B, fid, 0, flatcc_builder_with_size); }\
static inline int NS ## buffer_start_aligned(NS ## builder_t *B, NS ##fid_t fid, uint16_t block_align)\
{ return flatcc_builder_start_buffer(B, fid, block_align, 0); }\
static inline int NS ## buffer_start_aligned_with_size(NS ## builder_t *B, NS ##fid_t fid, uint16_t block_align)\
{ return flatcc_builder_start_buffer(B, fid, block_align, flatcc_builder_with_size); }\
static inline NS ## buffer_ref_t NS ## buffer_end(NS ## builder_t *B, NS ## ref_t root)\
{ return flatcc_builder_end_buffer(B, root); }

#define __flatbuffers_build_table_root(NS, N, FID, TFID)\
static inline int N ## _start_as_root(NS ## builder_t *B)\
{ return NS ## buffer_start(B, FID) ? -1 : N ## _start(B); }\
static inline int N ## _start_as_root_with_size(NS ## builder_t *B)\
{ return NS ## buffer_start_with_size(B, FID) ? -1 : N ## _start(B); }\
static inline int N ## _start_as_typed_root(NS ## builder_t *B)\
{ return NS ## buffer_start(B, TFID) ? -1 : N ## _start(B); }\
static inline int N ## _start_as_typed_root_with_size(NS ## builder_t *B)\
{ return NS ## buffer_start_with_size(B, TFID) ? -1 : N ## _start(B); }\
static inline NS ## buffer_ref_t N ## _end_as_root(NS ## builder_t *B)\
{ return NS ## buffer_end(B, N ## _end(B)); }\
static inline NS ## buffer_ref_t N ## _end_as_typed_root(NS ## builder_t *B)\
{ return NS ## buffer_end(B, N ## _end(B)); }\
static inline NS ## buffer_ref_t N ## _create_as_root(NS ## builder_t *B __ ## N ## _formal_args)\
{ if (NS ## buffer_start(B, FID)) return 0; return NS ## buffer_end(B, N ## _create(B __ ## N ## _call_args)); }\
static inline NS ## buffer_ref_t N ## _create_as_root_with_size(NS ## builder_t *B __ ## N ## _formal_args)\
{ if (NS ## buffer_start_with_size(B, FID)) return 0; return NS ## buffer_end(B, N ## _create(B __ ## N ## _call_args)); }\
static inline NS ## buffer_ref_t N ## _create_as_typed_root(NS ## builder_t *B __ ## N ## _formal_args)\
{ if (NS ## buffer_start(B, TFID)) return 0; return NS ## buffer_end(B, N ## _create(B __ ## N ## _call_args)); }\
static inline NS ## buffer_ref_t N ## _create_as_typed_root_with_size(NS ## builder_t *B __ ## N ## _formal_args)\
{ if (NS ## buffer_start_with_size(B, TFID)) return 0; return NS ## buffer_end(B, N ## _create(B __ ## N ## _call_args)); }\
static inline NS ## buffer_ref_t N ## _clone_as_root(NS ## builder_t *B, N ## _table_t t)\
{ if (NS ## buffer_start(B, FID)) return 0; return NS ## buffer_end(B, N ## _clone(B, t)); }\
static inline NS ## buffer_ref_t N ## _clone_as_root_with_size(NS ## builder_t *B, N ## _table_t t)\
{ if (NS ## buffer_start_with_size(B, FID)) return 0; return NS ## buffer_end(B, N ## _clone(B, t)); }\
static inline NS ## buffer_ref_t N ## _clone_as_typed_root(NS ## builder_t *B, N ## _table_t t)\
{ if (NS ## buffer_start(B, TFID)) return 0;return NS ## buffer_end(B, N ## _clone(B, t)); }\
static inline NS ## buffer_ref_t N ## _clone_as_typed_root_with_size(NS ## builder_t *B, N ## _table_t t)\
{ if (NS ## buffer_start_with_size(B, TFID)) return 0; return NS ## buffer_end(B, N ## _clone(B, t)); }

#define __flatbuffers_build_table_prolog(NS, N, FID, TFID)\
__flatbuffers_build_table_vector_ops(NS, N ## _vec, N)\
__flatbuffers_build_table_root(NS, N, FID, TFID)

#define __flatbuffers_build_struct_root(NS, N, A, FID, TFID)\
static inline N ## _t *N ## _start_as_root(NS ## builder_t *B)\
{ return NS ## buffer_start(B, FID) ? 0 : N ## _start(B); }\
static inline N ## _t *N ## _start_as_root_with_size(NS ## builder_t *B)\
{ return NS ## buffer_start_with_size(B, FID) ? 0 : N ## _start(B); }\
static inline N ## _t *N ## _start_as_typed_root(NS ## builder_t *B)\
{ return NS ## buffer_start(B, TFID) ? 0 : N ## _start(B); }\
static inline N ## _t *N ## _start_as_typed_root_with_size(NS ## builder_t *B)\
{ return NS ## buffer_start_with_size(B, TFID) ? 0 : N ## _start(B); }\
static inline NS ## buffer_ref_t N ## _end_as_root(NS ## builder_t *B)\
{ return NS ## buffer_end(B, N ## _end(B)); }\
static inline NS ## buffer_ref_t N ## _end_as_typed_root(NS ## builder_t *B)\
{ return NS ## buffer_end(B, N ## _end(B)); }\
static inline NS ## buffer_ref_t N ## _end_pe_as_root(NS ## builder_t *B)\
{ return NS ## buffer_end(B, N ## _end_pe(B)); }\
static inline NS ## buffer_ref_t N ## _end_pe_as_typed_root(NS ## builder_t *B)\
{ return NS ## buffer_end(B, N ## _end_pe(B)); }\
static inline NS ## buffer_ref_t N ## _create_as_root(NS ## builder_t *B __ ## N ## _formal_args)\
{ return flatcc_builder_create_buffer(B, FID, 0,\
  N ## _create(B __ ## N ## _call_args), A, 0); }\
static inline NS ## buffer_ref_t N ## _create_as_root_with_size(NS ## builder_t *B __ ## N ## _formal_args)\
{ return flatcc_builder_create_buffer(B, FID, 0,\
  N ## _create(B __ ## N ## _call_args), A, flatcc_builder_with_size); }\
static inline NS ## buffer_ref_t N ## _create_as_typed_root(NS ## builder_t *B __ ## N ## _formal_args)\
{ return flatcc_builder_create_buffer(B, TFID, 0,\
  N ## _create(B __ ## N ## _call_args), A, 0); }\
static inline NS ## buffer_ref_t N ## _create_as_typed_root_with_size(NS ## builder_t *B __ ## N ## _formal_args)\
{ return flatcc_builder_create_buffer(B, TFID, 0,\
  N ## _create(B __ ## N ## _call_args), A, flatcc_builder_with_size); }\
static inline NS ## buffer_ref_t N ## _clone_as_root(NS ## builder_t *B, N ## _struct_t p)\
{ return flatcc_builder_create_buffer(B, FID, 0, N ## _clone(B, p), A, 0); }\
static inline NS ## buffer_ref_t N ## _clone_as_root_with_size(NS ## builder_t *B, N ## _struct_t p)\
{ return flatcc_builder_create_buffer(B, FID, 0, N ## _clone(B, p), A, flatcc_builder_with_size); }\
static inline NS ## buffer_ref_t N ## _clone_as_typed_root(NS ## builder_t *B, N ## _struct_t p)\
{ return flatcc_builder_create_buffer(B, TFID, 0, N ## _clone(B, p), A, 0); }\
static inline NS ## buffer_ref_t N ## _clone_as_typed_root_with_size(NS ## builder_t *B, N ## _struct_t p)\
{ return flatcc_builder_create_buffer(B, TFID, 0, N ## _clone(B, p), A, flatcc_builder_with_size); }

#define __flatbuffers_build_nested_table_root(NS, N, TN, FID, TFID)\
static inline int N ## _start_as_root(NS ## builder_t *B)\
{ return NS ## buffer_start(B, FID) ? -1 : TN ## _start(B); }\
static inline int N ## _start_as_typed_root(NS ## builder_t *B)\
{ return NS ## buffer_start(B, TFID) ? -1 : TN ## _start(B); }\
static inline int N ## _end_as_root(NS ## builder_t *B)\
{ return N ## _add(B, NS ## buffer_end(B, TN ## _end(B))); }\
static inline int N ## _end_as_typed_root(NS ## builder_t *B)\
{ return N ## _add(B, NS ## buffer_end(B, TN ## _end(B))); }\
static inline int N ## _nest(NS ## builder_t *B, void *data, size_t size, uint16_t align)\
{ return N ## _add(B, flatcc_builder_create_vector(B, data, size, 1,\
  align ? align : 8, FLATBUFFERS_COUNT_MAX(1))); }\
static inline int N ## _typed_nest(NS ## builder_t *B, void *data, size_t size, uint16_t align)\
{ return N ## _add(B, flatcc_builder_create_vector(B, data, size, 1,\
  align ? align : 8, FLATBUFFERS_COUNT_MAX(1))); }\
static inline int N ## _clone_as_root(NS ## builder_t *B, TN ## _table_t t)\
{ return N ## _add(B, TN ## _clone_as_root(B, t)); }\
static inline int N ## _clone_as_typed_root(NS ## builder_t *B, TN ## _table_t t)\
{ return N ## _add(B, TN ## _clone_as_typed_root(B, t)); }

#define __flatbuffers_build_nested_struct_root(NS, N, TN, A, FID, TFID)\
static inline TN ## _t *N ## _start_as_root(NS ## builder_t *B)\
{ return NS ## buffer_start(B, FID) ? 0 : TN ## _start(B); }\
static inline TN ## _t *N ## _start_as_typed_root(NS ## builder_t *B)\
{ return NS ## buffer_start(B, FID) ? 0 : TN ## _start(B); }\
static inline int N ## _end_as_root(NS ## builder_t *B)\
{ return N ## _add(B, NS ## buffer_end(B, TN ## _end(B))); }\
static inline int N ## _end_as_typed_root(NS ## builder_t *B)\
{ return N ## _add(B, NS ## buffer_end(B, TN ## _end(B))); }\
static inline int N ## _end_pe_as_root(NS ## builder_t *B)\
{ return N ## _add(B, NS ## buffer_end(B, TN ## _end_pe(B))); }\
static inline int N ## _create_as_root(NS ## builder_t *B __ ## TN ## _formal_args)\
{ return N ## _add(B, flatcc_builder_create_buffer(B, FID, 0,\
  TN ## _create(B __ ## TN ## _call_args), A, flatcc_builder_is_nested)); }\
static inline int N ## _create_as_typed_root(NS ## builder_t *B __ ## TN ## _formal_args)\
{ return N ## _add(B, flatcc_builder_create_buffer(B, TFID, 0,\
  TN ## _create(B __ ## TN ## _call_args), A, flatcc_builder_is_nested)); }\
static inline int N ## _nest(NS ## builder_t *B, void *data, size_t size, uint16_t align)\
{ return N ## _add(B, flatcc_builder_create_vector(B, data, size, 1,\
  align < A ? A : align, FLATBUFFERS_COUNT_MAX(1))); }\
static inline int N ## _typed_nest(NS ## builder_t *B, void *data, size_t size, uint16_t align)\
{ return N ## _add(B, flatcc_builder_create_vector(B, data, size, 1,\
  align < A ? A : align, FLATBUFFERS_COUNT_MAX(1))); }\
static inline int N ## _clone_as_root(NS ## builder_t *B, TN ## _struct_t p)\
{ return N ## _add(B, TN ## _clone_as_root(B, p)); }\
static inline int N ## _clone_as_typed_root(NS ## builder_t *B, TN ## _struct_t p)\
{ return N ## _add(B, TN ## _clone_as_typed_root(B, p)); }

#define __flatbuffers_build_vector_ops(NS, V, N, TN, T)\
static inline T *V ## _extend(NS ## builder_t *B, size_t len)\
{ return (T *)flatcc_builder_extend_vector(B, len); }\
static inline T *V ## _append(NS ## builder_t *B, const T *data, size_t len)\
{ return (T *)flatcc_builder_append_vector(B, data, len); }\
static inline int V ## _truncate(NS ## builder_t *B, size_t len)\
{ return flatcc_builder_truncate_vector(B, len); }\
static inline T *V ## _edit(NS ## builder_t *B)\
{ return (T *)flatcc_builder_vector_edit(B); }\
static inline size_t V ## _reserved_len(NS ## builder_t *B)\
{ return flatcc_builder_vector_count(B); }\
static inline T *V ## _push(NS ## builder_t *B, const T *p)\
{ T *_p; return (_p = (T *)flatcc_builder_extend_vector(B, 1)) ? (memcpy(_p, p, TN ## __size()), _p) : 0; }\
static inline T *V ## _push_copy(NS ## builder_t *B, const T *p)\
{ T *_p; return (_p = (T *)flatcc_builder_extend_vector(B, 1)) ? TN ## _copy(_p, p) : 0; }\
static inline T *V ## _push_clone(NS ## builder_t *B, const T *p)\
{ T *_p; return (_p = (T *)flatcc_builder_extend_vector(B, 1)) ? TN ## _copy(_p, p) : 0; }\
static inline T *V ## _push_create(NS ## builder_t *B __ ## TN ## _formal_args)\
{ T *_p; return (_p = (T *)flatcc_builder_extend_vector(B, 1)) ? TN ## _assign(_p __ ## TN ## _call_args) : 0; }

#define __flatbuffers_build_vector(NS, N, T, S, A)\
typedef NS ## ref_t N ## _vec_ref_t;\
static inline int N ## _vec_start(NS ## builder_t *B)\
{ return flatcc_builder_start_vector(B, S, A, FLATBUFFERS_COUNT_MAX(S)); }\
static inline N ## _vec_ref_t N ## _vec_end_pe(NS ## builder_t *B)\
{ return flatcc_builder_end_vector(B); }\
static inline N ## _vec_ref_t N ## _vec_end(NS ## builder_t *B)\
{ if (!NS ## is_native_pe()) { size_t i, n; T *p = (T *)flatcc_builder_vector_edit(B);\
    for (i = 0, n = flatcc_builder_vector_count(B); i < n; ++i)\
    { N ## _to_pe(N ## __ptr_add(p, i)); }} return flatcc_builder_end_vector(B); }\
static inline N ## _vec_ref_t N ## _vec_create_pe(NS ## builder_t *B, const T *data, size_t len)\
{ return flatcc_builder_create_vector(B, data, len, S, A, FLATBUFFERS_COUNT_MAX(S)); }\
static inline N ## _vec_ref_t N ## _vec_create(NS ## builder_t *B, const T *data, size_t len)\
{ if (!NS ## is_native_pe()) { size_t i; T *p; int ret = flatcc_builder_start_vector(B, S, A, FLATBUFFERS_COUNT_MAX(S)); if (ret) { return ret; }\
  p = (T *)flatcc_builder_extend_vector(B, len); if (!p) return 0;\
  for (i = 0; i < len; ++i) { N ## _copy_to_pe(N ## __ptr_add(p, i), N ## __const_ptr_add(data, i)); }\
  return flatcc_builder_end_vector(B); } else return flatcc_builder_create_vector(B, data, len, S, A, FLATBUFFERS_COUNT_MAX(S)); }\
static inline N ## _vec_ref_t N ## _vec_clone(NS ## builder_t *B, N ##_vec_t vec)\
{ __flatbuffers_memoize(B, vec, flatcc_builder_create_vector(B, vec, N ## _vec_len(vec), S, A, FLATBUFFERS_COUNT_MAX(S))); }\
static inline N ## _vec_ref_t N ## _vec_slice(NS ## builder_t *B, N ##_vec_t vec, size_t index, size_t len)\
{ size_t n = N ## _vec_len(vec); if (index >= n) index = n; n -= index; if (len > n) len = n;\
  return flatcc_builder_create_vector(B, N ## __const_ptr_add(vec, index), len, S, A, FLATBUFFERS_COUNT_MAX(S)); }\
__flatbuffers_build_vector_ops(NS, N ## _vec, N, N, T)

#define __flatbuffers_build_union_vector_ops(NS, V, N, TN)\
static inline TN ## _union_ref_t *V ## _extend(NS ## builder_t *B, size_t len)\
{ return flatcc_builder_extend_union_vector(B, len); }\
static inline TN ## _union_ref_t *V ## _append(NS ## builder_t *B, const TN ## _union_ref_t *data, size_t len)\
{ return flatcc_builder_append_union_vector(B, data, len); }\
static inline int V ## _truncate(NS ## builder_t *B, size_t len)\
{ return flatcc_builder_truncate_union_vector(B, len); }\
static inline TN ## _union_ref_t *V ## _edit(NS ## builder_t *B)\
{ return (TN ## _union_ref_t *) flatcc_builder_union_vector_edit(B); }\
static inline size_t V ## _reserved_len(NS ## builder_t *B)\
{ return flatcc_builder_union_vector_count(B); }\
static inline TN ## _union_ref_t *V ## _push(NS ## builder_t *B, const TN ## _union_ref_t ref)\
{ return flatcc_builder_union_vector_push(B, ref); }\
static inline TN ## _union_ref_t *V ## _push_clone(NS ## builder_t *B, TN ## _union_t u)\
{ return TN ## _vec_push(B, TN ## _clone(B, u)); }

#define __flatbuffers_build_union_vector(NS, N)\
static inline int N ## _vec_start(NS ## builder_t *B)\
{ return flatcc_builder_start_union_vector(B); }\
static inline N ## _union_vec_ref_t N ## _vec_end(NS ## builder_t *B)\
{ return flatcc_builder_end_union_vector(B); }\
static inline N ## _union_vec_ref_t N ## _vec_create(NS ## builder_t *B, const N ## _union_ref_t *data, size_t len)\
{ return flatcc_builder_create_union_vector(B, data, len); }\
__flatbuffers_build_union_vector_ops(NS, N ## _vec, N, N)\
/* Preserves DAG structure separately for type and value vector, so a type vector could be shared for many value vectors. */\
static inline N ## _union_vec_ref_t N ## _vec_clone(NS ## builder_t *B, N ##_union_vec_t vec)\
{ N ## _union_vec_ref_t _uvref, _ret = { 0, 0 }; NS ## union_ref_t _uref; size_t _i, _len; flatcc_builder_ref_t *_p;\
  if (vec.type == 0) return _ret;\
  _uvref.type = flatcc_builder_refmap_find(B, vec.type); _uvref.value = flatcc_builder_refmap_find(B, vec.value);\
  _len = N ## _union_vec_len(vec); if (_uvref.type == 0) {\
  _uvref.type = flatcc_builder_refmap_insert(B, vec.type, (flatcc_builder_create_type_vector(B, vec.type, _len))); }\
  if (_uvref.type == 0) return _ret; if (_uvref.value == 0) {\
    if (flatcc_builder_start_offset_vector(B)) return _ret;\
    _p = flatcc_builder_extend_offset_vector(B, _len); if (!_p) return _ret;\
   for (_i = 0; _i < _len; ++_i) { _uref = N ## _clone(B, N ## _union_vec_at(vec, _i)); _p[_i] = _uref.value; }\
  _uvref.value = flatcc_builder_refmap_insert(B, vec.value, flatcc_builder_end_offset_vector(B));\
  if (_uvref.value == 0) return _ret; } return _uvref; }

#define __flatbuffers_build_string_vector_ops(NS, N)\
static inline int N ## _push_start(NS ## builder_t *B)\
{ return NS ## string_start(B); }\
static inline NS ## string_ref_t *N ## _push_end(NS ## builder_t *B)\
{ return NS ## string_vec_push(B, NS ## string_end(B)); }\
static inline NS ## string_ref_t *N ## _push_create(NS ## builder_t *B, const char *s, size_t len)\
{ return NS ## string_vec_push(B, NS ## string_create(B, s, len)); }\
static inline NS ## string_ref_t *N ## _push_create_str(NS ## builder_t *B, const char *s)\
{ return NS ## string_vec_push(B, NS ## string_create_str(B, s)); }\
static inline NS ## string_ref_t *N ## _push_create_strn(NS ## builder_t *B, const char *s, size_t max_len)\
{ return NS ## string_vec_push(B, NS ## string_create_strn(B, s, max_len)); }\
static inline NS ## string_ref_t *N ## _push_clone(NS ## builder_t *B, NS ## string_t string)\
{ return NS ## string_vec_push(B, NS ## string_clone(B, string)); }\
static inline NS ## string_ref_t *N ## _push_slice(NS ## builder_t *B, NS ## string_t string, size_t index, size_t len)\
{ return NS ## string_vec_push(B, NS ## string_slice(B, string, index, len)); }

#define __flatbuffers_build_table_vector_ops(NS, N, TN)\
static inline int N ## _push_start(NS ## builder_t *B)\
{ return TN ## _start(B); }\
static inline TN ## _ref_t *N ## _push_end(NS ## builder_t *B)\
{ return N ## _push(B, TN ## _end(B)); }\
static inline TN ## _ref_t *N ## _push_create(NS ## builder_t *B __ ## TN ##_formal_args)\
{ return N ## _push(B, TN ## _create(B __ ## TN ## _call_args)); }

#define __flatbuffers_build_offset_vector_ops(NS, V, N, TN)\
static inline TN ## _ref_t *V ## _extend(NS ## builder_t *B, size_t len)\
{ return flatcc_builder_extend_offset_vector(B, len); }\
static inline TN ## _ref_t *V ## _append(NS ## builder_t *B, const TN ## _ref_t *data, size_t len)\
{ return flatcc_builder_append_offset_vector(B, data, len); }\
static inline int V ## _truncate(NS ## builder_t *B, size_t len)\
{ return flatcc_builder_truncate_offset_vector(B, len); }\
static inline TN ## _ref_t *V ## _edit(NS ## builder_t *B)\
{ return (TN ## _ref_t *)flatcc_builder_offset_vector_edit(B); }\
static inline size_t V ## _reserved_len(NS ## builder_t *B)\
{ return flatcc_builder_offset_vector_count(B); }\
static inline TN ## _ref_t *V ## _push(NS ## builder_t *B, const TN ## _ref_t ref)\
{ return ref ? flatcc_builder_offset_vector_push(B, ref) : 0; }

#define __flatbuffers_build_offset_vector(NS, N)\
typedef NS ## ref_t N ## _vec_ref_t;\
static inline int N ## _vec_start(NS ## builder_t *B)\
{ return flatcc_builder_start_offset_vector(B); }\
static inline N ## _vec_ref_t N ## _vec_end(NS ## builder_t *B)\
{ return flatcc_builder_end_offset_vector(B); }\
static inline N ## _vec_ref_t N ## _vec_create(NS ## builder_t *B, const N ## _ref_t *data, size_t len)\
{ return flatcc_builder_create_offset_vector(B, data, len); }\
__flatbuffers_build_offset_vector_ops(NS, N ## _vec, N, N)\
static inline N ## _vec_ref_t N ## _vec_clone(NS ## builder_t *B, N ##_vec_t vec)\
{ int _ret; N ## _ref_t *_p; size_t _i, _len; __flatbuffers_memoize_begin(B, vec);\
 _len = N ## _vec_len(vec); if (flatcc_builder_start_offset_vector(B)) return 0;\
  _p = flatcc_builder_extend_offset_vector(B, _len); if (!_p) return 0;\
  for (_i = 0; _i < _len; ++_i) { if (!(_p[_i] = N ## _clone(B, N ## _vec_at(vec, _i)))) return 0; }\
  __flatbuffers_memoize_end(B, vec, flatcc_builder_end_offset_vector(B)); }\

#define __flatbuffers_build_string_ops(NS, N)\
static inline char *N ## _append(NS ## builder_t *B, const char *s, size_t len)\
{ return flatcc_builder_append_string(B, s, len); }\
static inline char *N ## _append_str(NS ## builder_t *B, const char *s)\
{ return flatcc_builder_append_string_str(B, s); }\
static inline char *N ## _append_strn(NS ## builder_t *B, const char *s, size_t len)\
{ return flatcc_builder_append_string_strn(B, s, len); }\
static inline size_t N ## _reserved_len(NS ## builder_t *B)\
{ return flatcc_builder_string_len(B); }\
static inline char *N ## _extend(NS ## builder_t *B, size_t len)\
{ return flatcc_builder_extend_string(B, len); }\
static inline char *N ## _edit(NS ## builder_t *B)\
{ return flatcc_builder_string_edit(B); }\
static inline int N ## _truncate(NS ## builder_t *B, size_t len)\
{ return flatcc_builder_truncate_string(B, len); }

#define __flatbuffers_build_string(NS)\
typedef NS ## ref_t NS ## string_ref_t;\
static inline int NS ## string_start(NS ## builder_t *B)\
{ return flatcc_builder_start_string(B); }\
static inline NS ## string_ref_t NS ## string_end(NS ## builder_t *B)\
{ return flatcc_builder_end_string(B); }\
static inline NS ## ref_t NS ## string_create(NS ## builder_t *B, const char *s, size_t len)\
{ return flatcc_builder_create_string(B, s, len); }\
static inline NS ## ref_t NS ## string_create_str(NS ## builder_t *B, const char *s)\
{ return flatcc_builder_create_string_str(B, s); }\
static inline NS ## ref_t NS ## string_create_strn(NS ## builder_t *B, const char *s, size_t len)\
{ return flatcc_builder_create_string_strn(B, s, len); }\
static inline NS ## string_ref_t NS ## string_clone(NS ## builder_t *B, NS ## string_t string)\
{ __flatbuffers_memoize(B, string, flatcc_builder_create_string(B, string, NS ## string_len(string))); }\
static inline NS ## string_ref_t NS ## string_slice(NS ## builder_t *B, NS ## string_t string, size_t index, size_t len)\
{ size_t n = NS ## string_len(string); if (index >= n) index = n; n -= index; if (len > n) len = n;\
  return flatcc_builder_create_string(B, string + index, len); }\
__flatbuffers_build_string_ops(NS, NS ## string)\
__flatbuffers_build_offset_vector(NS, NS ## string)

#define __flatbuffers_copy_from_pe(P, P2, N) (*(P) = N ## _cast_from_pe(*P2), (P))
#define __flatbuffers_from_pe(P, N) (*(P) = N ## _cast_from_pe(*P), (P))
#define __flatbuffers_copy_to_pe(P, P2, N) (*(P) = N ## _cast_to_pe(*P2), (P))
#define __flatbuffers_to_pe(P, N) (*(P) = N ## _cast_to_pe(*P), (P))
#define __flatbuffers_define_scalar_primitives(NS, N, T)\
static inline T *N ## _from_pe(T *p) { return __ ## NS ## from_pe(p, N); }\
static inline T *N ## _to_pe(T *p) { return __ ## NS ## to_pe(p, N); }\
static inline T *N ## _copy(T *p, const T *p2) { *p = *p2; return p; }\
static inline T *N ## _copy_from_pe(T *p, const T *p2)\
{ return __ ## NS ## copy_from_pe(p, p2, N); }\
static inline T *N ## _copy_to_pe(T *p, const T *p2) \
{ return __ ## NS ## copy_to_pe(p, p2, N); }\
static inline T *N ## _assign(T *p, const T v0) { *p = v0; return p; }\
static inline T *N ## _assign_from_pe(T *p, T v0)\
{ *p = N ## _cast_from_pe(v0); return p; }\
static inline T *N ## _assign_to_pe(T *p, T v0)\
{ *p = N ## _cast_to_pe(v0); return p; }
#define __flatbuffers_build_scalar(NS, N, T)\
__ ## NS ## define_scalar_primitives(NS, N, T)\
__ ## NS ## build_vector(NS, N, T, sizeof(T), sizeof(T))
/* Depends on generated copy_to/from_pe functions, and the type. */
#define __flatbuffers_define_struct_primitives(NS, N)\
static inline N ## _t *N ##_to_pe(N ## _t *p)\
{ if (!NS ## is_native_pe()) { N ## _copy_to_pe(p, p); }; return p; }\
static inline N ## _t *N ##_from_pe(N ## _t *p)\
{ if (!NS ## is_native_pe()) { N ## _copy_from_pe(p, p); }; return p; }\
static inline N ## _t *N ## _clear(N ## _t *p) { return (N ## _t *)memset(p, 0, N ## __size()); }

/* Depends on generated copy/assign_to/from_pe functions, and the type. */
#define __flatbuffers_build_struct(NS, N, S, A, FID, TFID)\
__ ## NS ## define_struct_primitives(NS, N)\
typedef NS ## ref_t N ## _ref_t;\
static inline N ## _t *N ## _start(NS ## builder_t *B)\
{ return (N ## _t *)flatcc_builder_start_struct(B, S, A); }\
static inline N ## _ref_t N ## _end(NS ## builder_t *B)\
{ if (!NS ## is_native_pe()) { N ## _to_pe((N ## _t *)flatcc_builder_struct_edit(B)); }\
  return flatcc_builder_end_struct(B); }\
static inline N ## _ref_t N ## _end_pe(NS ## builder_t *B)\
{ return flatcc_builder_end_struct(B); }\
static inline N ## _ref_t N ## _create(NS ## builder_t *B __ ## N ## _formal_args)\
{ N ## _t *_p = N ## _start(B); if (!_p) return 0; N ##_assign_to_pe(_p __ ## N ## _call_args);\
  return N ## _end_pe(B); }\
static inline N ## _ref_t N ## _clone(NS ## builder_t *B, N ## _struct_t p)\
{ N ## _t *_p; __flatbuffers_memoize_begin(B, p); _p = N ## _start(B); if (!_p) return 0;\
  N ## _copy(_p, p); __flatbuffers_memoize_end(B, p, N ##_end_pe(B)); }\
__flatbuffers_build_vector(NS, N, N ## _t, S, A)\
__flatbuffers_build_struct_root(NS, N, A, FID, TFID)

#define __flatbuffers_build_table(NS, N, K)\
static inline int N ## _start(NS ## builder_t *B)\
{ return flatcc_builder_start_table(B, K); }\
static inline N ## _ref_t N ## _end(NS ## builder_t *B)\
{ assert(flatcc_builder_check_required(B, __ ## N ## _required,\
  sizeof(__ ## N ## _required) / sizeof(__ ## N ## _required[0]) - 1));\
  return flatcc_builder_end_table(B); }\
__flatbuffers_build_offset_vector(NS, N)

#define __flatbuffers_build_table_field(ID, NS, N, TN, TT)\
static inline int N ## _add(NS ## builder_t *B, TN ## _ref_t ref)\
{ TN ## _ref_t *_p; return (ref && (_p = flatcc_builder_table_add_offset(B, ID))) ?\
  ((*_p = ref), 0) : -1; }\
static inline int N ## _start(NS ## builder_t *B)\
{ return TN ## _start(B); }\
static inline int N ## _end(NS ## builder_t *B)\
{ return N ## _add(B, TN ## _end(B)); }\
static inline TN ## _ref_t N ## _create(NS ## builder_t *B __ ## TN ##_formal_args)\
{ return N ## _add(B, TN ## _create(B __ ## TN ## _call_args)); }\
static inline int N ## _clone(NS ## builder_t *B, TN ## _table_t p)\
{ return N ## _add(B, TN ## _clone(B, p)); }\
static inline int N ## _pick(NS ## builder_t *B, TT ## _table_t t)\
{ TN ## _table_t _p = N ## _get(t); return _p ? N ## _clone(B, _p) : 0; }

#define __flatbuffers_build_union_field(ID, NS, N, TN, TT)\
static inline int N ## _add(NS ## builder_t *B, TN ## _union_ref_t uref)\
{ NS ## ref_t *_p; TN ## _union_type_t *_pt; if (uref.type == TN ## _NONE) return 0; if (uref.value == 0) return -1;\
  if (!(_pt = (TN ## _union_type_t *)flatcc_builder_table_add(B, ID - 1, sizeof(*_pt), sizeof(*_pt))) ||\
  !(_p = flatcc_builder_table_add_offset(B, ID))) return -1; *_pt = uref.type; *_p = uref.value; return 0; }\
static inline int N ## _add_type(NS ## builder_t *B, TN ## _union_type_t type)\
{ TN ## _union_type_t *_pt; if (type == TN ## _NONE) return 0; return (_pt = (TN ## _union_type_t *)flatcc_builder_table_add(B, ID - 1,\
  sizeof(*_pt), sizeof(*_pt))) ? ((*_pt = type), 0) : -1; }\
static inline int N ## _add_value(NS ## builder_t *B, TN ## _union_ref_t uref)\
{ NS ## ref_t *p; if (uref.type == TN ## _NONE) return 0; return (p = flatcc_builder_table_add_offset(B, ID)) ?\
  ((*p = uref.value), 0) : -1; }\
static inline int N ## _clone(NS ## builder_t *B, TN ## _union_t p)\
{ return N ## _add(B, TN ## _clone(B, p)); }\
static inline int N ## _pick(NS ## builder_t *B, TT ## _table_t t)\
{ TN ## _union_t _p = N ## _union(t); return _p.type ? N ## _clone(B, _p) : 0; }

/* M is the union value name and T is its type, i.e. the qualified name. */
#define __flatbuffers_build_union_table_value_field(NS, N, NU, M, T)\
static inline int N ## _ ## M ## _add(NS ## builder_t *B, T ## _ref_t ref)\
{ return N ## _add(B, NU ## _as_ ## M (ref)); }\
static inline int N ## _ ## M ## _start(NS ## builder_t *B)\
{ return T ## _start(B); }\
static inline int N ## _ ## M ## _end(NS ## builder_t *B)\
{ T ## _ref_t ref = T ## _end(B);\
  return ref ? N ## _ ## M ## _add(B, ref) : -1; }\
static inline int N ## _ ## M ## _create(NS ## builder_t *B __ ## T ##_formal_args)\
{ T ## _ref_t ref = T ## _create(B __ ## T ## _call_args);\
  return ref ? N ## _add(B, NU ## _as_ ## M(ref)) : -1; }\
static inline int N ## _ ## M ## _clone(NS ## builder_t *B, T ## _table_t t)\
{ T ## _ref_t ref = T ## _clone(B, t);\
  return ref ? N ## _add(B, NU ## _as_ ## M(ref)) : -1; }

/* M is the union value name and T is its type, i.e. the qualified name. */
#define __flatbuffers_build_union_struct_value_field(NS, N, NU, M, T)\
static inline int N ## _ ## M ## _add(NS ## builder_t *B, T ## _ref_t ref)\
{ return N ## _add(B, NU ## _as_ ## M (ref)); }\
static inline T ## _t *N ## _ ## M ## _start(NS ## builder_t *B)\
{ return T ## _start(B); }\
static inline int N ## _ ## M ## _end(NS ## builder_t *B)\
{ T ## _ref_t ref = T ## _end(B);\
  return ref ? N ## _ ## M ## _add(B, ref) : -1; }\
static inline int N ## _ ## M ## _create(NS ## builder_t *B __ ## T ##_formal_args)\
{ T ## _ref_t ref = T ## _create(B __ ## T ## _call_args);\
  return ref ? N ## _add(B, NU ## _as_ ## M(ref)) : -1; }\
static inline int N ## _ ## M ## _end_pe(NS ## builder_t *B)\
{ T ## _ref_t ref = T ## _end_pe(B);\
  return ref ? N ## _add(B, NU ## _as_ ## M(ref)) : -1; }\
static inline int N ## _ ## M ## _clone(NS ## builder_t *B, T ## _struct_t p)\
{ T ## _ref_t ref = T ## _clone(B, p);\
  return ref ? N ## _add(B, NU ## _as_ ## M(ref)) : -1; }
#define __flatbuffers_build_union_string_value_field(NS, N, NU, M)\
static inline int N ## _ ## M ## _add(NS ## builder_t *B, NS ## string_ref_t ref)\
{ return N ## _add(B, NU ## _as_ ## M (ref)); }\
__flatbuffers_build_string_field_ops(NS, N ## _ ## M)

/* NS: common namespace, ID: table field id (not offset), TN: name of type T, TT: name of table type
 * S: sizeof of scalar type, A: alignment of type T, default value V of type T. */
#define __flatbuffers_build_scalar_field(ID, NS, N, TN, T, S, A, V, TT)\
static inline int N ## _add(NS ## builder_t *B, const T v)\
{ T *_p; if (v == V) return 0; if (!(_p = (T *)flatcc_builder_table_add(B, ID, S, A))) return -1;\
  TN ## _assign_to_pe(_p, v); return 0; }\
static inline int N ## _force_add(NS ## builder_t *B, const T v)\
{ T *_p; if (!(_p = (T *)flatcc_builder_table_add(B, ID, S, A))) return -1;\
  TN ## _assign_to_pe(_p, v); return 0; }\
/* Clone does not skip default values and expects pe endian content. */\
static inline int N ## _clone(NS ## builder_t *B, const T *p)\
{ return 0 == flatcc_builder_table_add_copy(B, ID, p, S, A) ? -1 : 0; }\
/* Transferring a missing field is a nop success with 0 as result. */\
static inline int N ## _pick(NS ## builder_t *B, TT ## _table_t t)\
{ const T *_p = N ## _get_ptr(t); return _p ? N ## _clone(B, _p) : 0; }

#define __flatbuffers_build_struct_field(ID, NS, N, TN, S, A, TT)\
static inline TN ## _t *N ## _start(NS ## builder_t *B)\
{ return (TN ## _t *)flatcc_builder_table_add(B, ID, S, A); }\
static inline int N ## _end(NS ## builder_t *B)\
{ if (!NS ## is_native_pe()) { TN ## _to_pe((TN ## _t *)flatcc_builder_table_edit(B, S)); } return 0; }\
static inline int N ## _end_pe(NS ## builder_t *B) { return 0; }\
static inline int N ## _create(NS ## builder_t *B __ ## TN ## _formal_args)\
{ TN ## _t *_p = N ## _start(B); if (!_p) return 0; TN ##_assign_to_pe(_p __ ## TN ## _call_args);\
 return 0; }\
static inline int N ## _add(NS ## builder_t *B, const TN ## _t *p)\
{ TN ## _t *_p = N ## _start(B); if (!_p) return -1; TN ##_copy_to_pe(_p, p); return 0; }\
static inline int N ## _clone(NS ## builder_t *B, TN ## _struct_t p)\
{ return 0 == flatcc_builder_table_add_copy(B, ID, p, S, A) ? -1 : 0; }\
static inline int N ## _pick(NS ## builder_t *B, TT ## _table_t t)\
{ TN ## _struct_t _p = N ## _get(t); return _p ? N ## _clone(B, _p) : 0; }

#define __flatbuffers_build_vector_field(ID, NS, N, TN, T, TT)\
static inline int N ## _add(NS ## builder_t *B, TN ## _vec_ref_t ref)\
{ TN ## _vec_ref_t *_p; return (ref && (_p = flatcc_builder_table_add_offset(B, ID))) ? ((*_p = ref), 0) : -1; }\
static inline int N ## _start(NS ## builder_t *B)\
{ return TN ## _vec_start(B); }\
static inline int N ## _end_pe(NS ## builder_t *B)\
{ return N ## _add(B, TN ## _vec_end_pe(B)); }\
static inline int N ## _end(NS ## builder_t *B)\
{ return N ## _add(B, TN ## _vec_end(B)); }\
static inline int N ## _create_pe(NS ## builder_t *B, T *data, size_t len)\
{ return N ## _add(B, TN ## _vec_create_pe(B, data, len)); }\
static inline int N ## _create(NS ## builder_t *B, T *data, size_t len)\
{ return N ## _add(B, TN ## _vec_create(B, data, len)); }\
static inline int N ## _slice(NS ## builder_t *B, TN ## _vec_t vec, size_t index, size_t len)\
{ return N ## _add(B, TN ## _vec_slice(B, vec, index, len)); }\
static inline int N ## _clone(NS ## builder_t *B, TN ## _vec_t vec)\
{ return N ## _add(B, TN ## _vec_clone(B, vec)); }\
static inline int N ## _pick(NS ## builder_t *B, TT ## _table_t t)\
{ TN ## _vec_t _p = N ## _get(t); return _p ? N ## _clone(B, _p) : 0; }\
__flatbuffers_build_vector_ops(NS, N, N, TN, T)\

#define __flatbuffers_build_offset_vector_field(ID, NS, N, TN, TT)\
static inline int N ## _add(NS ## builder_t *B, TN ## _vec_ref_t ref)\
{ TN ## _vec_ref_t *_p; return (ref && (_p = flatcc_builder_table_add_offset(B, ID))) ? ((*_p = ref), 0) : -1; }\
static inline int N ## _start(NS ## builder_t *B)\
{ return flatcc_builder_start_offset_vector(B); }\
static inline int N ## _end(NS ## builder_t *B)\
{ return N ## _add(B, flatcc_builder_end_offset_vector(B)); }\
static inline int N ## _create(NS ## builder_t *B, const TN ## _ref_t *data, size_t len)\
{ return N ## _add(B, flatcc_builder_create_offset_vector(B, data, len)); }\
__flatbuffers_build_offset_vector_ops(NS, N, N, TN)\
static inline int N ## _clone(NS ## builder_t *B, TN ## _vec_t vec)\
{ return N ## _add(B, TN ## _vec_clone(B, vec)); }\
static inline int N ## _pick(NS ## builder_t *B, TT ## _table_t t)\
{ TN ## _vec_t _p = N ## _get(t); return _p ? N ## _clone(B, _p) : 0; }

/* depends on N ## _add which differs for union member fields and ordinary fields */\
#define __flatbuffers_build_string_field_ops(NS, N)\
static inline int N ## _start(NS ## builder_t *B)\
{ return flatcc_builder_start_string(B); }\
static inline int N ## _end(NS ## builder_t *B)\
{ return N ## _add(B, flatcc_builder_end_string(B)); }\
static inline int N ## _create(NS ## builder_t *B, const char *s, size_t len)\
{ return N ## _add(B, flatcc_builder_create_string(B, s, len)); }\
static inline int N ## _create_str(NS ## builder_t *B, const char *s)\
{ return N ## _add(B, flatcc_builder_create_string_str(B, s)); }\
static inline int N ## _create_strn(NS ## builder_t *B, const char *s, size_t max_len)\
{ return N ## _add(B, flatcc_builder_create_string_strn(B, s, max_len)); }\
static inline int N ## _clone(NS ## builder_t *B, NS ## string_t string)\
{ return N ## _add(B, NS ## string_clone(B, string)); }\
static inline int N ## _slice(NS ## builder_t *B, NS ## string_t string, size_t index, size_t len)\
{ return N ## _add(B, NS ## string_slice(B, string, index, len)); }\
__flatbuffers_build_string_ops(NS, N)

#define __flatbuffers_build_string_field(ID, NS, N, TT)\
static inline int N ## _add(NS ## builder_t *B, NS ## string_ref_t ref)\
{ NS ## string_ref_t *_p; return (ref && (_p = flatcc_builder_table_add_offset(B, ID))) ? ((*_p = ref), 0) : -1; }\
__flatbuffers_build_string_field_ops(NS, N)\
static inline int N ## _pick(NS ## builder_t *B, TT ## _table_t t)\
{ NS ## string_t _p = N ## _get(t); return _p ? N ## _clone(B, _p) : 0; }

#define __flatbuffers_build_table_vector_field(ID, NS, N, TN, TT)\
__flatbuffers_build_offset_vector_field(ID, NS, N, TN, TT)\
__flatbuffers_build_table_vector_ops(NS, N, TN)

#define __flatbuffers_build_union_vector_field(ID, NS, N, TN, TT)\
static inline int N ## _add(NS ## builder_t *B, TN ## _union_vec_ref_t uvref)\
{ NS ## vec_ref_t *_p; if (!uvref.type || !uvref.value) return uvref.type == uvref.value ? 0 : -1;\
  if (!(_p = flatcc_builder_table_add_offset(B, ID - 1))) return -1; *_p = uvref.type;\
  if (!(_p = flatcc_builder_table_add_offset(B, ID))) return -1; *_p = uvref.value; return 0; }\
static inline int N ## _start(NS ## builder_t *B)\
{ return flatcc_builder_start_union_vector(B); }\
static inline int N ## _end(NS ## builder_t *B)\
{ return N ## _add(B, flatcc_builder_end_union_vector(B)); }\
static inline int N ## _create(NS ## builder_t *B, const TN ## _union_ref_t *data, size_t len)\
{ return N ## _add(B, flatcc_builder_create_union_vector(B, data, len)); }\
__flatbuffers_build_union_vector_ops(NS, N, N, TN)\
static inline int N ## _clone(NS ## builder_t *B, TN ## _union_vec_t vec)\
{ return N ## _add(B, TN ## _vec_clone(B, vec)); }\
static inline int N ## _pick(NS ## builder_t *B, TT ## _table_t t)\
{ TN ## _union_vec_t _p = N ## _union(t); return _p.type ? N ## _clone(B, _p) : 0; }

#define __flatbuffers_build_union_table_vector_value_field(NS, N, NU, M, T)\
static inline int N ## _ ## M ## _push_start(NS ## builder_t *B)\
{ return T ## _start(B); }\
static inline NU ## _union_ref_t *N ## _ ## M ## _push_end(NS ## builder_t *B)\
{ return NU ## _vec_push(B, NU ## _as_ ## M (T ## _end(B))); }\
static inline NU ## _union_ref_t *N ## _ ## M ## _push(NS ## builder_t *B, T ## _ref_t ref)\
{ return NU ## _vec_push(B, NU ## _as_ ## M (ref)); }\
static inline NU ## _union_ref_t *N ## _ ## M ## _push_create(NS ## builder_t *B __ ## T ##_formal_args)\
{ return NU ## _vec_push(B, NU ## _as_ ## M(T ## _create(B __ ## T ## _call_args))); }\
static inline NU ## _union_ref_t *N ## _ ## M ## _push_clone(NS ## builder_t *B, T ## _table_t t)\
{ return NU ## _vec_push(B, NU ## _as_ ## M(T ## _clone(B, t))); }

#define __flatbuffers_build_union_struct_vector_value_field(NS, N, NU, M, T)\
static inline T ## _t *N ## _ ## M ## _push_start(NS ## builder_t *B)\
{ return T ## _start(B); }\
static inline NU ## _union_ref_t *N ## _ ## M ## _push_end(NS ## builder_t *B)\
{ return NU ## _vec_push(B, NU ## _as_ ## M (T ## _end(B))); }\
static inline NU ## _union_ref_t *N ## _ ## M ## _push(NS ## builder_t *B, T ## _ref_t ref)\
{ return NU ## _vec_push(B, NU ## _as_ ## M (ref)); }\
static inline NU ## _union_ref_t *N ## _ ## M ## _push_create(NS ## builder_t *B __ ## T ##_formal_args)\
{ return NU ## _vec_push(B, NU ## _as_ ## M(T ## _create(B __ ## T ## _call_args))); }\
static inline NU ## _union_ref_t *N ## _ ## M ## _push_clone(NS ## builder_t *B, T ## _struct_t p)\
{ return NU ## _vec_push(B, NU ## _as_ ## M(T ## _clone(B, p))); }

#define __flatbuffers_build_union_string_vector_value_field(NS, N, NU, M)\
static inline NU ## _union_ref_t *N ## _ ## M ## _push(NS ## builder_t *B, NS ## string_ref_t ref)\
{ return NU ## _vec_push(B, NU ## _as_ ## M (ref)); }\
static inline int N ## _ ## M ## _push_start(NS ## builder_t *B)\
{ return NS ## string_start(B); }\
static inline NU ## _union_ref_t *N ## _ ## M ## _push_end(NS ## builder_t *B)\
{ return NU ## _vec_push(B, NU ## _as_ ## M(NS ## string_end(B))); }\
static inline NU ## _union_ref_t *N ## _ ## M ## _push_create(NS ## builder_t *B, const char *s, size_t len)\
{ return NU ## _vec_push(B, NU ## _as_ ## M(NS ## string_create(B, s, len))); }\
static inline NU ## _union_ref_t *N ## _ ## M ## _push_create_str(NS ## builder_t *B, const char *s)\
{ return NU ## _vec_push(B, NU ## _as_ ## M(NS ## string_create_str(B, s))); }\
static inline NU ## _union_ref_t *N ## _ ## M ## _push_create_strn(NS ## builder_t *B, const char *s, size_t max_len)\
{ return NU ## _vec_push(B, NU ## _as_ ## M(NS ## string_create_strn(B, s, max_len))); }\
static inline NU ## _union_ref_t *N ## _ ## M ## _push_clone(NS ## builder_t *B, NS ## string_t string)\
{ return NU ## _vec_push(B, NU ## _as_ ## M(NS ## string_clone(B, string))); }\
static inline NU ## _union_ref_t *N ## _ ## M ## _push_slice(NS ## builder_t *B, NS ## string_t string, size_t index, size_t len)\
{ return NU ## _vec_push(B, NU ## _as_ ## M(NS ## string_slice(B, string, index, len))); }

#define __flatbuffers_build_string_vector_field(ID, NS, N, TT)\
__flatbuffers_build_offset_vector_field(ID, NS, N, NS ## string, TT)\
__flatbuffers_build_string_vector_ops(NS, N)

#define __flatbuffers_uint8_formal_args , uint8_t v0
#define __flatbuffers_uint8_call_args , v0
#define __flatbuffers_int8_formal_args , int8_t v0
#define __flatbuffers_int8_call_args , v0
#define __flatbuffers_bool_formal_args , flatbuffers_bool_t v0
#define __flatbuffers_bool_call_args , v0
#define __flatbuffers_uint16_formal_args , uint16_t v0
#define __flatbuffers_uint16_call_args , v0
#define __flatbuffers_uint32_formal_args , uint32_t v0
#define __flatbuffers_uint32_call_args , v0
#define __flatbuffers_uint64_formal_args , uint64_t v0
#define __flatbuffers_uint64_call_args , v0
#define __flatbuffers_int16_formal_args , int16_t v0
#define __flatbuffers_int16_call_args , v0
#define __flatbuffers_int32_formal_args , int32_t v0
#define __flatbuffers_int32_call_args , v0
#define __flatbuffers_int64_formal_args , int64_t v0
#define __flatbuffers_int64_call_args , v0
#define __flatbuffers_float_formal_args , float v0
#define __flatbuffers_float_call_args , v0
#define __flatbuffers_double_formal_args , double v0
#define __flatbuffers_double_call_args , v0

__flatbuffers_build_scalar(flatbuffers_, flatbuffers_uint8, uint8_t)
__flatbuffers_build_scalar(flatbuffers_, flatbuffers_int8, int8_t)
__flatbuffers_build_scalar(flatbuffers_, flatbuffers_bool, flatbuffers_bool_t)
__flatbuffers_build_scalar(flatbuffers_, flatbuffers_uint16, uint16_t)
__flatbuffers_build_scalar(flatbuffers_, flatbuffers_uint32, uint32_t)
__flatbuffers_build_scalar(flatbuffers_, flatbuffers_uint64, uint64_t)
__flatbuffers_build_scalar(flatbuffers_, flatbuffers_int16, int16_t)
__flatbuffers_build_scalar(flatbuffers_, flatbuffers_int32, int32_t)
__flatbuffers_build_scalar(flatbuffers_, flatbuffers_int64, int64_t)
__flatbuffers_build_scalar(flatbuffers_, flatbuffers_float, float)
__flatbuffers_build_scalar(flatbuffers_, flatbuffers_double, double)

__flatbuffers_build_string(flatbuffers_)

__flatbuffers_build_buffer(flatbuffers_)
#include "flatcc/flatcc_epilogue.h"
#endif /* FLATBUFFERS_COMMON_BUILDER_H */
#ifndef EXTRAS_READER_H
#define EXTRAS_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_Extras_table *AllWatchSerialize_Extras_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_Extras_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_Extras_mutable_vec_t;
#ifndef AllWatchSerialize_Extras_Id
#define AllWatchSerialize_Extras_Id flatbuffers_Id
#endif
#define AllWatchSerialize_Extras_type_hash ((flatbuffers_thash_t)0x5b1b5da8)
#define AllWatchSerialize_Extras_type_Id "\xa8\x5d\x1b\x5b"



struct AllWatchSerialize_Extras_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_Extras_vec_len(AllWatchSerialize_Extras_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_Extras_table_t AllWatchSerialize_Extras_vec_at(AllWatchSerialize_Extras_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_Extras_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_Extras)

__flatbuffers_define_string_field(0, AllWatchSerialize_Extras, key, 0)
__flatbuffers_define_string_field(1, AllWatchSerialize_Extras, value, 0)

#include "flatcc/flatcc_epilogue.h"
#endif /* EXTRAS_READER_H */
#ifndef EXTRAS_BUILDER_H
#define EXTRAS_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef EXTRAS_READER_H
#include "Extras_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

static const flatbuffers_voffset_t __AllWatchSerialize_Extras_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_Extras_ref_t;
static AllWatchSerialize_Extras_ref_t AllWatchSerialize_Extras_clone(flatbuffers_builder_t *B, AllWatchSerialize_Extras_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_Extras, 2)

#define __AllWatchSerialize_Extras_formal_args , flatbuffers_string_ref_t v0, flatbuffers_string_ref_t v1
#define __AllWatchSerialize_Extras_call_args , v0, v1
static inline AllWatchSerialize_Extras_ref_t AllWatchSerialize_Extras_create(flatbuffers_builder_t *B __AllWatchSerialize_Extras_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_Extras, AllWatchSerialize_Extras_Id, AllWatchSerialize_Extras_type_Id)

__flatbuffers_build_string_field(0, flatbuffers_, AllWatchSerialize_Extras_key, AllWatchSerialize_Extras)
__flatbuffers_build_string_field(1, flatbuffers_, AllWatchSerialize_Extras_value, AllWatchSerialize_Extras)

static inline AllWatchSerialize_Extras_ref_t AllWatchSerialize_Extras_create(flatbuffers_builder_t *B __AllWatchSerialize_Extras_formal_args)
{
    if (AllWatchSerialize_Extras_start(B)
        || AllWatchSerialize_Extras_key_add(B, v0)
        || AllWatchSerialize_Extras_value_add(B, v1)) {
        return 0;
    }
    return AllWatchSerialize_Extras_end(B);
}

static AllWatchSerialize_Extras_ref_t AllWatchSerialize_Extras_clone(flatbuffers_builder_t *B, AllWatchSerialize_Extras_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_Extras_start(B)
        || AllWatchSerialize_Extras_key_pick(B, t)
        || AllWatchSerialize_Extras_value_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_Extras_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* EXTRAS_BUILDER_H */
#ifndef EXTRAS_VERIFIER_H
#define EXTRAS_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef EXTRAS_READER_H
#include "Extras_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_Extras_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_Extras_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_string_field(td, 0, 0) /* key */)) return ret;
    if ((ret = flatcc_verify_string_field(td, 1, 0) /* value */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_Extras_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Extras_Id, &AllWatchSerialize_Extras_verify_table);
}

static inline int AllWatchSerialize_Extras_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Extras_type_Id, &AllWatchSerialize_Extras_verify_table);
}

static inline int AllWatchSerialize_Extras_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_Extras_verify_table);
}

static inline int AllWatchSerialize_Extras_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_Extras_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* EXTRAS_VERIFIER_H */
#ifndef ACTION_READER_H
#define ACTION_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#ifndef EXTRAS_READER_H
#include "Extras_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_Action_table *AllWatchSerialize_Action_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_Action_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_Action_mutable_vec_t;
#ifndef AllWatchSerialize_Action_Id
#define AllWatchSerialize_Action_Id flatbuffers_Id
#endif
#define AllWatchSerialize_Action_type_hash ((flatbuffers_thash_t)0x899c121d)
#define AllWatchSerialize_Action_type_Id "\x1d\x12\x9c\x89"



struct AllWatchSerialize_Action_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_Action_vec_len(AllWatchSerialize_Action_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_Action_table_t AllWatchSerialize_Action_vec_at(AllWatchSerialize_Action_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_Action_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_Action)

__flatbuffers_define_string_field(0, AllWatchSerialize_Action, actionName, 0)
__flatbuffers_define_string_field(1, AllWatchSerialize_Action, callback, 0)
__flatbuffers_define_vector_field(2, AllWatchSerialize_Action, extras, AllWatchSerialize_Extras_vec_t, 0)

#include "flatcc/flatcc_epilogue.h"
#endif /* ACTION_READER_H */
#ifndef ACTION_BUILDER_H
#define ACTION_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef ACTION_READER_H
#include "Action_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#ifndef EXTRAS_BUILDER_H
#include "Extras_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

static const flatbuffers_voffset_t __AllWatchSerialize_Action_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_Action_ref_t;
static AllWatchSerialize_Action_ref_t AllWatchSerialize_Action_clone(flatbuffers_builder_t *B, AllWatchSerialize_Action_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_Action, 3)

#define __AllWatchSerialize_Action_formal_args , flatbuffers_string_ref_t v0, flatbuffers_string_ref_t v1, AllWatchSerialize_Extras_vec_ref_t v2
#define __AllWatchSerialize_Action_call_args , v0, v1, v2
static inline AllWatchSerialize_Action_ref_t AllWatchSerialize_Action_create(flatbuffers_builder_t *B __AllWatchSerialize_Action_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_Action, AllWatchSerialize_Action_Id, AllWatchSerialize_Action_type_Id)

__flatbuffers_build_string_field(0, flatbuffers_, AllWatchSerialize_Action_actionName, AllWatchSerialize_Action)
__flatbuffers_build_string_field(1, flatbuffers_, AllWatchSerialize_Action_callback, AllWatchSerialize_Action)
__flatbuffers_build_table_vector_field(2, flatbuffers_, AllWatchSerialize_Action_extras, AllWatchSerialize_Extras, AllWatchSerialize_Action)

static inline AllWatchSerialize_Action_ref_t AllWatchSerialize_Action_create(flatbuffers_builder_t *B __AllWatchSerialize_Action_formal_args)
{
    if (AllWatchSerialize_Action_start(B)
        || AllWatchSerialize_Action_actionName_add(B, v0)
        || AllWatchSerialize_Action_callback_add(B, v1)
        || AllWatchSerialize_Action_extras_add(B, v2)) {
        return 0;
    }
    return AllWatchSerialize_Action_end(B);
}

static AllWatchSerialize_Action_ref_t AllWatchSerialize_Action_clone(flatbuffers_builder_t *B, AllWatchSerialize_Action_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_Action_start(B)
        || AllWatchSerialize_Action_actionName_pick(B, t)
        || AllWatchSerialize_Action_callback_pick(B, t)
        || AllWatchSerialize_Action_extras_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_Action_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* ACTION_BUILDER_H */
#ifndef ACTION_VERIFIER_H
#define ACTION_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef ACTION_READER_H
#include "Action_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#ifndef EXTRAS_VERIFIER_H
#include "Extras_verifier.h"
#endif
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_Action_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_Action_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_string_field(td, 0, 0) /* actionName */)) return ret;
    if ((ret = flatcc_verify_string_field(td, 1, 0) /* callback */)) return ret;
    if ((ret = flatcc_verify_table_vector_field(td, 2, 0, &AllWatchSerialize_Extras_verify_table) /* extras */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_Action_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Action_Id, &AllWatchSerialize_Action_verify_table);
}

static inline int AllWatchSerialize_Action_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Action_type_Id, &AllWatchSerialize_Action_verify_table);
}

static inline int AllWatchSerialize_Action_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_Action_verify_table);
}

static inline int AllWatchSerialize_Action_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_Action_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* ACTION_VERIFIER_H */
#ifndef DATABINDING_READER_H
#define DATABINDING_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_PropertyBinding_table *AllWatchSerialize_PropertyBinding_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_PropertyBinding_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_PropertyBinding_mutable_vec_t;
typedef const struct AllWatchSerialize_DataBinding_table *AllWatchSerialize_DataBinding_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_DataBinding_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_DataBinding_mutable_vec_t;
#ifndef AllWatchSerialize_PropertyBinding_Id
#define AllWatchSerialize_PropertyBinding_Id flatbuffers_Id
#endif
#define AllWatchSerialize_PropertyBinding_type_hash ((flatbuffers_thash_t)0x3d7ca86b)
#define AllWatchSerialize_PropertyBinding_type_Id "\x6b\xa8\x7c\x3d"
#ifndef AllWatchSerialize_DataBinding_Id
#define AllWatchSerialize_DataBinding_Id flatbuffers_Id
#endif
#define AllWatchSerialize_DataBinding_type_hash ((flatbuffers_thash_t)0xb903b9e0)
#define AllWatchSerialize_DataBinding_type_Id "\xe0\xb9\x03\xb9"



struct AllWatchSerialize_PropertyBinding_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_PropertyBinding_vec_len(AllWatchSerialize_PropertyBinding_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_PropertyBinding_table_t AllWatchSerialize_PropertyBinding_vec_at(AllWatchSerialize_PropertyBinding_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_PropertyBinding_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_PropertyBinding)

__flatbuffers_define_string_field(0, AllWatchSerialize_PropertyBinding, propertyName, 0)
__flatbuffers_define_string_field(1, AllWatchSerialize_PropertyBinding, value, 0)

struct AllWatchSerialize_DataBinding_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_DataBinding_vec_len(AllWatchSerialize_DataBinding_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_DataBinding_table_t AllWatchSerialize_DataBinding_vec_at(AllWatchSerialize_DataBinding_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_DataBinding_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_DataBinding)

__flatbuffers_define_string_field(0, AllWatchSerialize_DataBinding, id, 0)
__flatbuffers_define_vector_field(1, AllWatchSerialize_DataBinding, bindings, AllWatchSerialize_PropertyBinding_vec_t, 0)

#include "flatcc/flatcc_epilogue.h"
#endif /* DATABINDING_READER_H */
#ifndef DATABINDING_BUILDER_H
#define DATABINDING_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef DATABINDING_READER_H
#include "DataBinding_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

static const flatbuffers_voffset_t __AllWatchSerialize_PropertyBinding_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_PropertyBinding_ref_t;
static AllWatchSerialize_PropertyBinding_ref_t AllWatchSerialize_PropertyBinding_clone(flatbuffers_builder_t *B, AllWatchSerialize_PropertyBinding_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_PropertyBinding, 2)

static const flatbuffers_voffset_t __AllWatchSerialize_DataBinding_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_DataBinding_ref_t;
static AllWatchSerialize_DataBinding_ref_t AllWatchSerialize_DataBinding_clone(flatbuffers_builder_t *B, AllWatchSerialize_DataBinding_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_DataBinding, 2)

#define __AllWatchSerialize_PropertyBinding_formal_args , flatbuffers_string_ref_t v0, flatbuffers_string_ref_t v1
#define __AllWatchSerialize_PropertyBinding_call_args , v0, v1
static inline AllWatchSerialize_PropertyBinding_ref_t AllWatchSerialize_PropertyBinding_create(flatbuffers_builder_t *B __AllWatchSerialize_PropertyBinding_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_PropertyBinding, AllWatchSerialize_PropertyBinding_Id, AllWatchSerialize_PropertyBinding_type_Id)

#define __AllWatchSerialize_DataBinding_formal_args , flatbuffers_string_ref_t v0, AllWatchSerialize_PropertyBinding_vec_ref_t v1
#define __AllWatchSerialize_DataBinding_call_args , v0, v1
static inline AllWatchSerialize_DataBinding_ref_t AllWatchSerialize_DataBinding_create(flatbuffers_builder_t *B __AllWatchSerialize_DataBinding_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_DataBinding, AllWatchSerialize_DataBinding_Id, AllWatchSerialize_DataBinding_type_Id)

__flatbuffers_build_string_field(0, flatbuffers_, AllWatchSerialize_PropertyBinding_propertyName, AllWatchSerialize_PropertyBinding)
__flatbuffers_build_string_field(1, flatbuffers_, AllWatchSerialize_PropertyBinding_value, AllWatchSerialize_PropertyBinding)

static inline AllWatchSerialize_PropertyBinding_ref_t AllWatchSerialize_PropertyBinding_create(flatbuffers_builder_t *B __AllWatchSerialize_PropertyBinding_formal_args)
{
    if (AllWatchSerialize_PropertyBinding_start(B)
        || AllWatchSerialize_PropertyBinding_propertyName_add(B, v0)
        || AllWatchSerialize_PropertyBinding_value_add(B, v1)) {
        return 0;
    }
    return AllWatchSerialize_PropertyBinding_end(B);
}

static AllWatchSerialize_PropertyBinding_ref_t AllWatchSerialize_PropertyBinding_clone(flatbuffers_builder_t *B, AllWatchSerialize_PropertyBinding_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_PropertyBinding_start(B)
        || AllWatchSerialize_PropertyBinding_propertyName_pick(B, t)
        || AllWatchSerialize_PropertyBinding_value_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_PropertyBinding_end(B));
}

__flatbuffers_build_string_field(0, flatbuffers_, AllWatchSerialize_DataBinding_id, AllWatchSerialize_DataBinding)
__flatbuffers_build_table_vector_field(1, flatbuffers_, AllWatchSerialize_DataBinding_bindings, AllWatchSerialize_PropertyBinding, AllWatchSerialize_DataBinding)

static inline AllWatchSerialize_DataBinding_ref_t AllWatchSerialize_DataBinding_create(flatbuffers_builder_t *B __AllWatchSerialize_DataBinding_formal_args)
{
    if (AllWatchSerialize_DataBinding_start(B)
        || AllWatchSerialize_DataBinding_id_add(B, v0)
        || AllWatchSerialize_DataBinding_bindings_add(B, v1)) {
        return 0;
    }
    return AllWatchSerialize_DataBinding_end(B);
}

static AllWatchSerialize_DataBinding_ref_t AllWatchSerialize_DataBinding_clone(flatbuffers_builder_t *B, AllWatchSerialize_DataBinding_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_DataBinding_start(B)
        || AllWatchSerialize_DataBinding_id_pick(B, t)
        || AllWatchSerialize_DataBinding_bindings_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_DataBinding_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* DATABINDING_BUILDER_H */
#ifndef DATABINDING_VERIFIER_H
#define DATABINDING_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef DATABINDING_READER_H
#include "DataBinding_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_PropertyBinding_verify_table(flatcc_table_verifier_descriptor_t *td);
static int AllWatchSerialize_DataBinding_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_PropertyBinding_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_string_field(td, 0, 0) /* propertyName */)) return ret;
    if ((ret = flatcc_verify_string_field(td, 1, 0) /* value */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_PropertyBinding_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_PropertyBinding_Id, &AllWatchSerialize_PropertyBinding_verify_table);
}

static inline int AllWatchSerialize_PropertyBinding_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_PropertyBinding_type_Id, &AllWatchSerialize_PropertyBinding_verify_table);
}

static inline int AllWatchSerialize_PropertyBinding_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_PropertyBinding_verify_table);
}

static inline int AllWatchSerialize_PropertyBinding_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_PropertyBinding_verify_table);
}

static int AllWatchSerialize_DataBinding_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_string_field(td, 0, 0) /* id */)) return ret;
    if ((ret = flatcc_verify_table_vector_field(td, 1, 0, &AllWatchSerialize_PropertyBinding_verify_table) /* bindings */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_DataBinding_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_DataBinding_Id, &AllWatchSerialize_DataBinding_verify_table);
}

static inline int AllWatchSerialize_DataBinding_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_DataBinding_type_Id, &AllWatchSerialize_DataBinding_verify_table);
}

static inline int AllWatchSerialize_DataBinding_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_DataBinding_verify_table);
}

static inline int AllWatchSerialize_DataBinding_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_DataBinding_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* DATABINDING_VERIFIER_H */
#ifndef CARDATTRIBUTES_READER_H
#define CARDATTRIBUTES_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#ifndef ACTION_READER_H
#include "Action_reader.h"
#endif
#ifndef TEMPLATE_READER_H
#include "Template_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_CardAttributes_table *AllWatchSerialize_CardAttributes_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_CardAttributes_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_CardAttributes_mutable_vec_t;
#ifndef AllWatchSerialize_CardAttributes_Id
#define AllWatchSerialize_CardAttributes_Id flatbuffers_Id
#endif
#define AllWatchSerialize_CardAttributes_type_hash ((flatbuffers_thash_t)0x53fd77f8)
#define AllWatchSerialize_CardAttributes_type_Id "\xf8\x77\xfd\x53"



struct AllWatchSerialize_CardAttributes_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_CardAttributes_vec_len(AllWatchSerialize_CardAttributes_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_CardAttributes_table_t AllWatchSerialize_CardAttributes_vec_at(AllWatchSerialize_CardAttributes_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_CardAttributes_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_CardAttributes)

__flatbuffers_define_string_field(0, AllWatchSerialize_CardAttributes, title, 0)
__flatbuffers_define_vector_field(1, AllWatchSerialize_CardAttributes, image, flatbuffers_int8_vec_t, 0)
__flatbuffers_define_vector_field(2, AllWatchSerialize_CardAttributes, avatar, flatbuffers_int8_vec_t, 0)
__flatbuffers_define_vector_field(3, AllWatchSerialize_CardAttributes, actions, AllWatchSerialize_Action_vec_t, 0)

#include "flatcc/flatcc_epilogue.h"
#endif /* CARDATTRIBUTES_READER_H */
#ifndef CARDATTRIBUTES_BUILDER_H
#define CARDATTRIBUTES_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef CARDATTRIBUTES_READER_H
#include "CardAttributes_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#ifndef ACTION_BUILDER_H
#include "Action_builder.h"
#endif
#ifndef TEMPLATE_BUILDER_H
#include "Template_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

static const flatbuffers_voffset_t __AllWatchSerialize_CardAttributes_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_CardAttributes_ref_t;
static AllWatchSerialize_CardAttributes_ref_t AllWatchSerialize_CardAttributes_clone(flatbuffers_builder_t *B, AllWatchSerialize_CardAttributes_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_CardAttributes, 4)

#define __AllWatchSerialize_CardAttributes_formal_args , flatbuffers_string_ref_t v0, flatbuffers_int8_vec_ref_t v1, flatbuffers_int8_vec_ref_t v2, AllWatchSerialize_Action_vec_ref_t v3
#define __AllWatchSerialize_CardAttributes_call_args , v0, v1, v2, v3
static inline AllWatchSerialize_CardAttributes_ref_t AllWatchSerialize_CardAttributes_create(flatbuffers_builder_t *B __AllWatchSerialize_CardAttributes_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_CardAttributes, AllWatchSerialize_CardAttributes_Id, AllWatchSerialize_CardAttributes_type_Id)

__flatbuffers_build_string_field(0, flatbuffers_, AllWatchSerialize_CardAttributes_title, AllWatchSerialize_CardAttributes)
__flatbuffers_build_vector_field(1, flatbuffers_, AllWatchSerialize_CardAttributes_image, flatbuffers_int8, int8_t, AllWatchSerialize_CardAttributes)
__flatbuffers_build_vector_field(2, flatbuffers_, AllWatchSerialize_CardAttributes_avatar, flatbuffers_int8, int8_t, AllWatchSerialize_CardAttributes)
__flatbuffers_build_table_vector_field(3, flatbuffers_, AllWatchSerialize_CardAttributes_actions, AllWatchSerialize_Action, AllWatchSerialize_CardAttributes)

static inline AllWatchSerialize_CardAttributes_ref_t AllWatchSerialize_CardAttributes_create(flatbuffers_builder_t *B __AllWatchSerialize_CardAttributes_formal_args)
{
    if (AllWatchSerialize_CardAttributes_start(B)
        || AllWatchSerialize_CardAttributes_title_add(B, v0)
        || AllWatchSerialize_CardAttributes_image_add(B, v1)
        || AllWatchSerialize_CardAttributes_avatar_add(B, v2)
        || AllWatchSerialize_CardAttributes_actions_add(B, v3)) {
        return 0;
    }
    return AllWatchSerialize_CardAttributes_end(B);
}

static AllWatchSerialize_CardAttributes_ref_t AllWatchSerialize_CardAttributes_clone(flatbuffers_builder_t *B, AllWatchSerialize_CardAttributes_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_CardAttributes_start(B)
        || AllWatchSerialize_CardAttributes_title_pick(B, t)
        || AllWatchSerialize_CardAttributes_image_pick(B, t)
        || AllWatchSerialize_CardAttributes_avatar_pick(B, t)
        || AllWatchSerialize_CardAttributes_actions_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_CardAttributes_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* CARDATTRIBUTES_BUILDER_H */
#ifndef CARDATTRIBUTES_VERIFIER_H
#define CARDATTRIBUTES_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef CARDATTRIBUTES_READER_H
#include "CardAttributes_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#ifndef ACTION_VERIFIER_H
#include "Action_verifier.h"
#endif
#ifndef TEMPLATE_VERIFIER_H
#include "Template_verifier.h"
#endif
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_CardAttributes_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_CardAttributes_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_string_field(td, 0, 0) /* title */)) return ret;
    if ((ret = flatcc_verify_vector_field(td, 1, 0, 1, 1, INT64_C(4294967295)) /* image */)) return ret;
    if ((ret = flatcc_verify_vector_field(td, 2, 0, 1, 1, INT64_C(4294967295)) /* avatar */)) return ret;
    if ((ret = flatcc_verify_table_vector_field(td, 3, 0, &AllWatchSerialize_Action_verify_table) /* actions */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_CardAttributes_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_CardAttributes_Id, &AllWatchSerialize_CardAttributes_verify_table);
}

static inline int AllWatchSerialize_CardAttributes_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_CardAttributes_type_Id, &AllWatchSerialize_CardAttributes_verify_table);
}

static inline int AllWatchSerialize_CardAttributes_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_CardAttributes_verify_table);
}

static inline int AllWatchSerialize_CardAttributes_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_CardAttributes_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* CARDATTRIBUTES_VERIFIER_H */
#ifndef SHAPEATTRIBUTES_READER_H
#define SHAPEATTRIBUTES_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_ShapeAttributes_table *AllWatchSerialize_ShapeAttributes_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_ShapeAttributes_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_ShapeAttributes_mutable_vec_t;
#ifndef AllWatchSerialize_ShapeAttributes_Id
#define AllWatchSerialize_ShapeAttributes_Id flatbuffers_Id
#endif
#define AllWatchSerialize_ShapeAttributes_type_hash ((flatbuffers_thash_t)0x1a7d05f9)
#define AllWatchSerialize_ShapeAttributes_type_Id "\xf9\x05\x7d\x1a"

typedef int16_t AllWatchSerialize_Shape_enum_t;
__flatbuffers_define_integer_type(AllWatchSerialize_Shape, AllWatchSerialize_Shape_enum_t, 16)
#define AllWatchSerialize_Shape_Ellipse ((AllWatchSerialize_Shape_enum_t)INT16_C(0))
#define AllWatchSerialize_Shape_Rectangle ((AllWatchSerialize_Shape_enum_t)INT16_C(1))

static inline const char *AllWatchSerialize_Shape_name(AllWatchSerialize_Shape_enum_t value)
{
    switch (value) {
    case AllWatchSerialize_Shape_Ellipse: return "Ellipse";
    case AllWatchSerialize_Shape_Rectangle: return "Rectangle";
    default: return "";
    }
}

static inline int AllWatchSerialize_Shape_is_known_value(AllWatchSerialize_Shape_enum_t value)
{
    switch (value) {
    case AllWatchSerialize_Shape_Ellipse: return 1;
    case AllWatchSerialize_Shape_Rectangle: return 1;
    default: return 0;
    }
}



struct AllWatchSerialize_ShapeAttributes_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_ShapeAttributes_vec_len(AllWatchSerialize_ShapeAttributes_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_ShapeAttributes_table_t AllWatchSerialize_ShapeAttributes_vec_at(AllWatchSerialize_ShapeAttributes_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_ShapeAttributes_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_ShapeAttributes)

__flatbuffers_define_scalar_field(0, AllWatchSerialize_ShapeAttributes, type, AllWatchSerialize_Shape, AllWatchSerialize_Shape_enum_t, INT16_C(0))
__flatbuffers_define_scalar_field(1, AllWatchSerialize_ShapeAttributes, fill, flatbuffers_bool, flatbuffers_bool_t, UINT8_C(0))

#include "flatcc/flatcc_epilogue.h"
#endif /* SHAPEATTRIBUTES_READER_H */
#ifndef SHAPEATTRIBUTES_BUILDER_H
#define SHAPEATTRIBUTES_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef SHAPEATTRIBUTES_READER_H
#include "ShapeAttributes_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

#define __AllWatchSerialize_Shape_formal_args , AllWatchSerialize_Shape_enum_t v0
#define __AllWatchSerialize_Shape_call_args , v0
__flatbuffers_build_scalar(flatbuffers_, AllWatchSerialize_Shape, AllWatchSerialize_Shape_enum_t)

static const flatbuffers_voffset_t __AllWatchSerialize_ShapeAttributes_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_ShapeAttributes_ref_t;
static AllWatchSerialize_ShapeAttributes_ref_t AllWatchSerialize_ShapeAttributes_clone(flatbuffers_builder_t *B, AllWatchSerialize_ShapeAttributes_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_ShapeAttributes, 2)

#define __AllWatchSerialize_ShapeAttributes_formal_args , AllWatchSerialize_Shape_enum_t v0, flatbuffers_bool_t v1
#define __AllWatchSerialize_ShapeAttributes_call_args , v0, v1
static inline AllWatchSerialize_ShapeAttributes_ref_t AllWatchSerialize_ShapeAttributes_create(flatbuffers_builder_t *B __AllWatchSerialize_ShapeAttributes_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_ShapeAttributes, AllWatchSerialize_ShapeAttributes_Id, AllWatchSerialize_ShapeAttributes_type_Id)

__flatbuffers_build_scalar_field(0, flatbuffers_, AllWatchSerialize_ShapeAttributes_type, AllWatchSerialize_Shape, AllWatchSerialize_Shape_enum_t, 2, 2, INT16_C(0), AllWatchSerialize_ShapeAttributes)
__flatbuffers_build_scalar_field(1, flatbuffers_, AllWatchSerialize_ShapeAttributes_fill, flatbuffers_bool, flatbuffers_bool_t, 1, 1, UINT8_C(0), AllWatchSerialize_ShapeAttributes)

static inline AllWatchSerialize_ShapeAttributes_ref_t AllWatchSerialize_ShapeAttributes_create(flatbuffers_builder_t *B __AllWatchSerialize_ShapeAttributes_formal_args)
{
    if (AllWatchSerialize_ShapeAttributes_start(B)
        || AllWatchSerialize_ShapeAttributes_type_add(B, v0)
        || AllWatchSerialize_ShapeAttributes_fill_add(B, v1)) {
        return 0;
    }
    return AllWatchSerialize_ShapeAttributes_end(B);
}

static AllWatchSerialize_ShapeAttributes_ref_t AllWatchSerialize_ShapeAttributes_clone(flatbuffers_builder_t *B, AllWatchSerialize_ShapeAttributes_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_ShapeAttributes_start(B)
        || AllWatchSerialize_ShapeAttributes_type_pick(B, t)
        || AllWatchSerialize_ShapeAttributes_fill_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_ShapeAttributes_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* SHAPEATTRIBUTES_BUILDER_H */
#ifndef SHAPEATTRIBUTES_VERIFIER_H
#define SHAPEATTRIBUTES_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef SHAPEATTRIBUTES_READER_H
#include "ShapeAttributes_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_ShapeAttributes_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_ShapeAttributes_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_field(td, 0, 2, 2) /* type */)) return ret;
    if ((ret = flatcc_verify_field(td, 1, 1, 1) /* fill */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_ShapeAttributes_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_ShapeAttributes_Id, &AllWatchSerialize_ShapeAttributes_verify_table);
}

static inline int AllWatchSerialize_ShapeAttributes_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_ShapeAttributes_type_Id, &AllWatchSerialize_ShapeAttributes_verify_table);
}

static inline int AllWatchSerialize_ShapeAttributes_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_ShapeAttributes_verify_table);
}

static inline int AllWatchSerialize_ShapeAttributes_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_ShapeAttributes_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* SHAPEATTRIBUTES_VERIFIER_H */
#ifndef TEXTATTRIBUTES_READER_H
#define TEXTATTRIBUTES_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_TextAttributes_table *AllWatchSerialize_TextAttributes_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_TextAttributes_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_TextAttributes_mutable_vec_t;
#ifndef AllWatchSerialize_TextAttributes_Id
#define AllWatchSerialize_TextAttributes_Id flatbuffers_Id
#endif
#define AllWatchSerialize_TextAttributes_type_hash ((flatbuffers_thash_t)0x46c4b2a9)
#define AllWatchSerialize_TextAttributes_type_Id "\xa9\xb2\xc4\x46"



struct AllWatchSerialize_TextAttributes_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_TextAttributes_vec_len(AllWatchSerialize_TextAttributes_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_TextAttributes_table_t AllWatchSerialize_TextAttributes_vec_at(AllWatchSerialize_TextAttributes_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_TextAttributes_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_TextAttributes)

__flatbuffers_define_scalar_field(0, AllWatchSerialize_TextAttributes, fontSize, flatbuffers_int16, int16_t, INT16_C(0))
__flatbuffers_define_string_field(1, AllWatchSerialize_TextAttributes, fontFamily, 0)
__flatbuffers_define_string_field(2, AllWatchSerialize_TextAttributes, text, 0)
__flatbuffers_define_scalar_field(3, AllWatchSerialize_TextAttributes, color, flatbuffers_int32, int32_t, INT32_C(0))

#include "flatcc/flatcc_epilogue.h"
#endif /* TEXTATTRIBUTES_READER_H */
#ifndef TEXTATTRIBUTES_BUILDER_H
#define TEXTATTRIBUTES_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef TEXTATTRIBUTES_READER_H
#include "TextAttributes_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

static const flatbuffers_voffset_t __AllWatchSerialize_TextAttributes_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_TextAttributes_ref_t;
static AllWatchSerialize_TextAttributes_ref_t AllWatchSerialize_TextAttributes_clone(flatbuffers_builder_t *B, AllWatchSerialize_TextAttributes_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_TextAttributes, 4)

#define __AllWatchSerialize_TextAttributes_formal_args , int16_t v0, flatbuffers_string_ref_t v1, flatbuffers_string_ref_t v2, int32_t v3
#define __AllWatchSerialize_TextAttributes_call_args , v0, v1, v2, v3
static inline AllWatchSerialize_TextAttributes_ref_t AllWatchSerialize_TextAttributes_create(flatbuffers_builder_t *B __AllWatchSerialize_TextAttributes_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_TextAttributes, AllWatchSerialize_TextAttributes_Id, AllWatchSerialize_TextAttributes_type_Id)

__flatbuffers_build_scalar_field(0, flatbuffers_, AllWatchSerialize_TextAttributes_fontSize, flatbuffers_int16, int16_t, 2, 2, INT16_C(0), AllWatchSerialize_TextAttributes)
__flatbuffers_build_string_field(1, flatbuffers_, AllWatchSerialize_TextAttributes_fontFamily, AllWatchSerialize_TextAttributes)
__flatbuffers_build_string_field(2, flatbuffers_, AllWatchSerialize_TextAttributes_text, AllWatchSerialize_TextAttributes)
__flatbuffers_build_scalar_field(3, flatbuffers_, AllWatchSerialize_TextAttributes_color, flatbuffers_int32, int32_t, 4, 4, INT32_C(0), AllWatchSerialize_TextAttributes)

static inline AllWatchSerialize_TextAttributes_ref_t AllWatchSerialize_TextAttributes_create(flatbuffers_builder_t *B __AllWatchSerialize_TextAttributes_formal_args)
{
    if (AllWatchSerialize_TextAttributes_start(B)
        || AllWatchSerialize_TextAttributes_fontFamily_add(B, v1)
        || AllWatchSerialize_TextAttributes_text_add(B, v2)
        || AllWatchSerialize_TextAttributes_color_add(B, v3)
        || AllWatchSerialize_TextAttributes_fontSize_add(B, v0)) {
        return 0;
    }
    return AllWatchSerialize_TextAttributes_end(B);
}

static AllWatchSerialize_TextAttributes_ref_t AllWatchSerialize_TextAttributes_clone(flatbuffers_builder_t *B, AllWatchSerialize_TextAttributes_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_TextAttributes_start(B)
        || AllWatchSerialize_TextAttributes_fontFamily_pick(B, t)
        || AllWatchSerialize_TextAttributes_text_pick(B, t)
        || AllWatchSerialize_TextAttributes_color_pick(B, t)
        || AllWatchSerialize_TextAttributes_fontSize_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_TextAttributes_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* TEXTATTRIBUTES_BUILDER_H */
#ifndef TEXTATTRIBUTES_VERIFIER_H
#define TEXTATTRIBUTES_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef TEXTATTRIBUTES_READER_H
#include "TextAttributes_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_TextAttributes_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_TextAttributes_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_field(td, 0, 2, 2) /* fontSize */)) return ret;
    if ((ret = flatcc_verify_string_field(td, 1, 0) /* fontFamily */)) return ret;
    if ((ret = flatcc_verify_string_field(td, 2, 0) /* text */)) return ret;
    if ((ret = flatcc_verify_field(td, 3, 4, 4) /* color */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_TextAttributes_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_TextAttributes_Id, &AllWatchSerialize_TextAttributes_verify_table);
}

static inline int AllWatchSerialize_TextAttributes_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_TextAttributes_type_Id, &AllWatchSerialize_TextAttributes_verify_table);
}

static inline int AllWatchSerialize_TextAttributes_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_TextAttributes_verify_table);
}

static inline int AllWatchSerialize_TextAttributes_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_TextAttributes_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* TEXTATTRIBUTES_VERIFIER_H */
#ifndef LAYOUTATTRIBUTES_READER_H
#define LAYOUTATTRIBUTES_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_LayoutAttributes_table *AllWatchSerialize_LayoutAttributes_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_LayoutAttributes_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_LayoutAttributes_mutable_vec_t;
#ifndef AllWatchSerialize_LayoutAttributes_Id
#define AllWatchSerialize_LayoutAttributes_Id flatbuffers_Id
#endif
#define AllWatchSerialize_LayoutAttributes_type_hash ((flatbuffers_thash_t)0xc54bd01c)
#define AllWatchSerialize_LayoutAttributes_type_Id "\x1c\xd0\x4b\xc5"



struct AllWatchSerialize_LayoutAttributes_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_LayoutAttributes_vec_len(AllWatchSerialize_LayoutAttributes_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_LayoutAttributes_table_t AllWatchSerialize_LayoutAttributes_vec_at(AllWatchSerialize_LayoutAttributes_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_LayoutAttributes_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_LayoutAttributes)

__flatbuffers_define_scalar_field(0, AllWatchSerialize_LayoutAttributes, spacing, flatbuffers_int16, int16_t, INT16_C(0))

#include "flatcc/flatcc_epilogue.h"
#endif /* LAYOUTATTRIBUTES_READER_H */
#ifndef LAYOUTATTRIBUTES_BUILDER_H
#define LAYOUTATTRIBUTES_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef LAYOUTATTRIBUTES_READER_H
#include "LayoutAttributes_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

static const flatbuffers_voffset_t __AllWatchSerialize_LayoutAttributes_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_LayoutAttributes_ref_t;
static AllWatchSerialize_LayoutAttributes_ref_t AllWatchSerialize_LayoutAttributes_clone(flatbuffers_builder_t *B, AllWatchSerialize_LayoutAttributes_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_LayoutAttributes, 1)

#define __AllWatchSerialize_LayoutAttributes_formal_args , int16_t v0
#define __AllWatchSerialize_LayoutAttributes_call_args , v0
static inline AllWatchSerialize_LayoutAttributes_ref_t AllWatchSerialize_LayoutAttributes_create(flatbuffers_builder_t *B __AllWatchSerialize_LayoutAttributes_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_LayoutAttributes, AllWatchSerialize_LayoutAttributes_Id, AllWatchSerialize_LayoutAttributes_type_Id)

__flatbuffers_build_scalar_field(0, flatbuffers_, AllWatchSerialize_LayoutAttributes_spacing, flatbuffers_int16, int16_t, 2, 2, INT16_C(0), AllWatchSerialize_LayoutAttributes)

static inline AllWatchSerialize_LayoutAttributes_ref_t AllWatchSerialize_LayoutAttributes_create(flatbuffers_builder_t *B __AllWatchSerialize_LayoutAttributes_formal_args)
{
    if (AllWatchSerialize_LayoutAttributes_start(B)
        || AllWatchSerialize_LayoutAttributes_spacing_add(B, v0)) {
        return 0;
    }
    return AllWatchSerialize_LayoutAttributes_end(B);
}

static AllWatchSerialize_LayoutAttributes_ref_t AllWatchSerialize_LayoutAttributes_clone(flatbuffers_builder_t *B, AllWatchSerialize_LayoutAttributes_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_LayoutAttributes_start(B)
        || AllWatchSerialize_LayoutAttributes_spacing_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_LayoutAttributes_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* LAYOUTATTRIBUTES_BUILDER_H */
#ifndef LAYOUTATTRIBUTES_VERIFIER_H
#define LAYOUTATTRIBUTES_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef LAYOUTATTRIBUTES_READER_H
#include "LayoutAttributes_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_LayoutAttributes_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_LayoutAttributes_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_field(td, 0, 2, 2) /* spacing */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_LayoutAttributes_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_LayoutAttributes_Id, &AllWatchSerialize_LayoutAttributes_verify_table);
}

static inline int AllWatchSerialize_LayoutAttributes_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_LayoutAttributes_type_Id, &AllWatchSerialize_LayoutAttributes_verify_table);
}

static inline int AllWatchSerialize_LayoutAttributes_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_LayoutAttributes_verify_table);
}

static inline int AllWatchSerialize_LayoutAttributes_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_LayoutAttributes_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* LAYOUTATTRIBUTES_VERIFIER_H */
#ifndef BACKGROUND_READER_H
#define BACKGROUND_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_Background_table *AllWatchSerialize_Background_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_Background_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_Background_mutable_vec_t;
#ifndef AllWatchSerialize_Background_Id
#define AllWatchSerialize_Background_Id flatbuffers_Id
#endif
#define AllWatchSerialize_Background_type_hash ((flatbuffers_thash_t)0xe07f766b)
#define AllWatchSerialize_Background_type_Id "\x6b\x76\x7f\xe0"



struct AllWatchSerialize_Background_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_Background_vec_len(AllWatchSerialize_Background_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_Background_table_t AllWatchSerialize_Background_vec_at(AllWatchSerialize_Background_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_Background_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_Background)

__flatbuffers_define_scalar_field(0, AllWatchSerialize_Background, backgroundColor, flatbuffers_int32, int32_t, INT32_C(0))
__flatbuffers_define_vector_field(1, AllWatchSerialize_Background, backgroundImage, flatbuffers_int8_vec_t, 0)

#include "flatcc/flatcc_epilogue.h"
#endif /* BACKGROUND_READER_H */
#ifndef BACKGROUND_BUILDER_H
#define BACKGROUND_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef BACKGROUND_READER_H
#include "Background_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

static const flatbuffers_voffset_t __AllWatchSerialize_Background_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_Background_ref_t;
static AllWatchSerialize_Background_ref_t AllWatchSerialize_Background_clone(flatbuffers_builder_t *B, AllWatchSerialize_Background_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_Background, 2)

#define __AllWatchSerialize_Background_formal_args , int32_t v0, flatbuffers_int8_vec_ref_t v1
#define __AllWatchSerialize_Background_call_args , v0, v1
static inline AllWatchSerialize_Background_ref_t AllWatchSerialize_Background_create(flatbuffers_builder_t *B __AllWatchSerialize_Background_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_Background, AllWatchSerialize_Background_Id, AllWatchSerialize_Background_type_Id)

__flatbuffers_build_scalar_field(0, flatbuffers_, AllWatchSerialize_Background_backgroundColor, flatbuffers_int32, int32_t, 4, 4, INT32_C(0), AllWatchSerialize_Background)
__flatbuffers_build_vector_field(1, flatbuffers_, AllWatchSerialize_Background_backgroundImage, flatbuffers_int8, int8_t, AllWatchSerialize_Background)

static inline AllWatchSerialize_Background_ref_t AllWatchSerialize_Background_create(flatbuffers_builder_t *B __AllWatchSerialize_Background_formal_args)
{
    if (AllWatchSerialize_Background_start(B)
        || AllWatchSerialize_Background_backgroundColor_add(B, v0)
        || AllWatchSerialize_Background_backgroundImage_add(B, v1)) {
        return 0;
    }
    return AllWatchSerialize_Background_end(B);
}

static AllWatchSerialize_Background_ref_t AllWatchSerialize_Background_clone(flatbuffers_builder_t *B, AllWatchSerialize_Background_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_Background_start(B)
        || AllWatchSerialize_Background_backgroundColor_pick(B, t)
        || AllWatchSerialize_Background_backgroundImage_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_Background_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* BACKGROUND_BUILDER_H */
#ifndef BACKGROUND_VERIFIER_H
#define BACKGROUND_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef BACKGROUND_READER_H
#include "Background_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_Background_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_Background_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_field(td, 0, 4, 4) /* backgroundColor */)) return ret;
    if ((ret = flatcc_verify_vector_field(td, 1, 0, 1, 1, INT64_C(4294967295)) /* backgroundImage */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_Background_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Background_Id, &AllWatchSerialize_Background_verify_table);
}

static inline int AllWatchSerialize_Background_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Background_type_Id, &AllWatchSerialize_Background_verify_table);
}

static inline int AllWatchSerialize_Background_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_Background_verify_table);
}

static inline int AllWatchSerialize_Background_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_Background_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* BACKGROUND_VERIFIER_H */
#ifndef STYLE_READER_H
#define STYLE_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#ifndef BACKGROUND_READER_H
#include "Background_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_Style_table *AllWatchSerialize_Style_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_Style_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_Style_mutable_vec_t;
#ifndef AllWatchSerialize_Style_Id
#define AllWatchSerialize_Style_Id flatbuffers_Id
#endif
#define AllWatchSerialize_Style_type_hash ((flatbuffers_thash_t)0xedf8dd8)
#define AllWatchSerialize_Style_type_Id "\xd8\x8d\xdf\x0e"



struct AllWatchSerialize_Style_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_Style_vec_len(AllWatchSerialize_Style_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_Style_table_t AllWatchSerialize_Style_vec_at(AllWatchSerialize_Style_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_Style_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_Style)

__flatbuffers_define_scalar_field(0, AllWatchSerialize_Style, absoluteWidth, flatbuffers_int16, int16_t, INT16_C(0))
__flatbuffers_define_scalar_field(1, AllWatchSerialize_Style, absoluteHeight, flatbuffers_int16, int16_t, INT16_C(0))
__flatbuffers_define_scalar_field(2, AllWatchSerialize_Style, backgroundColor, flatbuffers_int64, int64_t, INT64_C(0))
__flatbuffers_define_scalar_field(3, AllWatchSerialize_Style, borderColor, flatbuffers_int64, int64_t, INT64_C(0))
__flatbuffers_define_table_field(4, AllWatchSerialize_Style, background, AllWatchSerialize_Background_table_t, 0)
__flatbuffers_define_scalar_field(5, AllWatchSerialize_Style, x, flatbuffers_int16, int16_t, INT16_C(0))
__flatbuffers_define_scalar_field(6, AllWatchSerialize_Style, y, flatbuffers_int16, int16_t, INT16_C(0))
__flatbuffers_define_scalar_field(7, AllWatchSerialize_Style, marginTop, flatbuffers_int16, int16_t, INT16_C(0))
__flatbuffers_define_scalar_field(8, AllWatchSerialize_Style, marginBottom, flatbuffers_int16, int16_t, INT16_C(0))
__flatbuffers_define_scalar_field(9, AllWatchSerialize_Style, marginLeft, flatbuffers_int16, int16_t, INT16_C(0))
__flatbuffers_define_scalar_field(10, AllWatchSerialize_Style, marginRight, flatbuffers_int16, int16_t, INT16_C(0))
__flatbuffers_define_scalar_field(11, AllWatchSerialize_Style, width, flatbuffers_double, double, 0.000000)
__flatbuffers_define_scalar_field(12, AllWatchSerialize_Style, height, flatbuffers_double, double, 0.000000)
__flatbuffers_define_scalar_field(13, AllWatchSerialize_Style, offsetX, flatbuffers_double, double, 0.000000)
__flatbuffers_define_scalar_field(14, AllWatchSerialize_Style, offsetY, flatbuffers_double, double, 0.000000)

#include "flatcc/flatcc_epilogue.h"
#endif /* STYLE_READER_H */
#ifndef STYLE_BUILDER_H
#define STYLE_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef STYLE_READER_H
#include "Style_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#ifndef BACKGROUND_BUILDER_H
#include "Background_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

static const flatbuffers_voffset_t __AllWatchSerialize_Style_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_Style_ref_t;
static AllWatchSerialize_Style_ref_t AllWatchSerialize_Style_clone(flatbuffers_builder_t *B, AllWatchSerialize_Style_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_Style, 15)

#define __AllWatchSerialize_Style_formal_args ,\
  int16_t v0, int16_t v1, int64_t v2, int64_t v3,\
  AllWatchSerialize_Background_ref_t v4, int16_t v5, int16_t v6, int16_t v7,\
  int16_t v8, int16_t v9, int16_t v10, double v11,\
  double v12, double v13, double v14
#define __AllWatchSerialize_Style_call_args ,\
  v0, v1, v2, v3,\
  v4, v5, v6, v7,\
  v8, v9, v10, v11,\
  v12, v13, v14
static inline AllWatchSerialize_Style_ref_t AllWatchSerialize_Style_create(flatbuffers_builder_t *B __AllWatchSerialize_Style_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_Style, AllWatchSerialize_Style_Id, AllWatchSerialize_Style_type_Id)

__flatbuffers_build_scalar_field(0, flatbuffers_, AllWatchSerialize_Style_absoluteWidth, flatbuffers_int16, int16_t, 2, 2, INT16_C(0), AllWatchSerialize_Style)
__flatbuffers_build_scalar_field(1, flatbuffers_, AllWatchSerialize_Style_absoluteHeight, flatbuffers_int16, int16_t, 2, 2, INT16_C(0), AllWatchSerialize_Style)
__flatbuffers_build_scalar_field(2, flatbuffers_, AllWatchSerialize_Style_backgroundColor, flatbuffers_int64, int64_t, 8, 8, INT64_C(0), AllWatchSerialize_Style)
__flatbuffers_build_scalar_field(3, flatbuffers_, AllWatchSerialize_Style_borderColor, flatbuffers_int64, int64_t, 8, 8, INT64_C(0), AllWatchSerialize_Style)
__flatbuffers_build_table_field(4, flatbuffers_, AllWatchSerialize_Style_background, AllWatchSerialize_Background, AllWatchSerialize_Style)
__flatbuffers_build_scalar_field(5, flatbuffers_, AllWatchSerialize_Style_x, flatbuffers_int16, int16_t, 2, 2, INT16_C(0), AllWatchSerialize_Style)
__flatbuffers_build_scalar_field(6, flatbuffers_, AllWatchSerialize_Style_y, flatbuffers_int16, int16_t, 2, 2, INT16_C(0), AllWatchSerialize_Style)
__flatbuffers_build_scalar_field(7, flatbuffers_, AllWatchSerialize_Style_marginTop, flatbuffers_int16, int16_t, 2, 2, INT16_C(0), AllWatchSerialize_Style)
__flatbuffers_build_scalar_field(8, flatbuffers_, AllWatchSerialize_Style_marginBottom, flatbuffers_int16, int16_t, 2, 2, INT16_C(0), AllWatchSerialize_Style)
__flatbuffers_build_scalar_field(9, flatbuffers_, AllWatchSerialize_Style_marginLeft, flatbuffers_int16, int16_t, 2, 2, INT16_C(0), AllWatchSerialize_Style)
__flatbuffers_build_scalar_field(10, flatbuffers_, AllWatchSerialize_Style_marginRight, flatbuffers_int16, int16_t, 2, 2, INT16_C(0), AllWatchSerialize_Style)
__flatbuffers_build_scalar_field(11, flatbuffers_, AllWatchSerialize_Style_width, flatbuffers_double, double, 8, 8, 0.000000, AllWatchSerialize_Style)
__flatbuffers_build_scalar_field(12, flatbuffers_, AllWatchSerialize_Style_height, flatbuffers_double, double, 8, 8, 0.000000, AllWatchSerialize_Style)
__flatbuffers_build_scalar_field(13, flatbuffers_, AllWatchSerialize_Style_offsetX, flatbuffers_double, double, 8, 8, 0.000000, AllWatchSerialize_Style)
__flatbuffers_build_scalar_field(14, flatbuffers_, AllWatchSerialize_Style_offsetY, flatbuffers_double, double, 8, 8, 0.000000, AllWatchSerialize_Style)

static inline AllWatchSerialize_Style_ref_t AllWatchSerialize_Style_create(flatbuffers_builder_t *B __AllWatchSerialize_Style_formal_args)
{
    if (AllWatchSerialize_Style_start(B)
        || AllWatchSerialize_Style_backgroundColor_add(B, v2)
        || AllWatchSerialize_Style_borderColor_add(B, v3)
        || AllWatchSerialize_Style_width_add(B, v11)
        || AllWatchSerialize_Style_height_add(B, v12)
        || AllWatchSerialize_Style_offsetX_add(B, v13)
        || AllWatchSerialize_Style_offsetY_add(B, v14)
        || AllWatchSerialize_Style_background_add(B, v4)
        || AllWatchSerialize_Style_absoluteWidth_add(B, v0)
        || AllWatchSerialize_Style_absoluteHeight_add(B, v1)
        || AllWatchSerialize_Style_x_add(B, v5)
        || AllWatchSerialize_Style_y_add(B, v6)
        || AllWatchSerialize_Style_marginTop_add(B, v7)
        || AllWatchSerialize_Style_marginBottom_add(B, v8)
        || AllWatchSerialize_Style_marginLeft_add(B, v9)
        || AllWatchSerialize_Style_marginRight_add(B, v10)) {
        return 0;
    }
    return AllWatchSerialize_Style_end(B);
}

static AllWatchSerialize_Style_ref_t AllWatchSerialize_Style_clone(flatbuffers_builder_t *B, AllWatchSerialize_Style_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_Style_start(B)
        || AllWatchSerialize_Style_backgroundColor_pick(B, t)
        || AllWatchSerialize_Style_borderColor_pick(B, t)
        || AllWatchSerialize_Style_width_pick(B, t)
        || AllWatchSerialize_Style_height_pick(B, t)
        || AllWatchSerialize_Style_offsetX_pick(B, t)
        || AllWatchSerialize_Style_offsetY_pick(B, t)
        || AllWatchSerialize_Style_background_pick(B, t)
        || AllWatchSerialize_Style_absoluteWidth_pick(B, t)
        || AllWatchSerialize_Style_absoluteHeight_pick(B, t)
        || AllWatchSerialize_Style_x_pick(B, t)
        || AllWatchSerialize_Style_y_pick(B, t)
        || AllWatchSerialize_Style_marginTop_pick(B, t)
        || AllWatchSerialize_Style_marginBottom_pick(B, t)
        || AllWatchSerialize_Style_marginLeft_pick(B, t)
        || AllWatchSerialize_Style_marginRight_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_Style_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* STYLE_BUILDER_H */
#ifndef STYLE_VERIFIER_H
#define STYLE_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef STYLE_READER_H
#include "Style_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#ifndef BACKGROUND_VERIFIER_H
#include "Background_verifier.h"
#endif
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_Style_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_Style_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_field(td, 0, 2, 2) /* absoluteWidth */)) return ret;
    if ((ret = flatcc_verify_field(td, 1, 2, 2) /* absoluteHeight */)) return ret;
    if ((ret = flatcc_verify_field(td, 2, 8, 8) /* backgroundColor */)) return ret;
    if ((ret = flatcc_verify_field(td, 3, 8, 8) /* borderColor */)) return ret;
    if ((ret = flatcc_verify_table_field(td, 4, 0, &AllWatchSerialize_Background_verify_table) /* background */)) return ret;
    if ((ret = flatcc_verify_field(td, 5, 2, 2) /* x */)) return ret;
    if ((ret = flatcc_verify_field(td, 6, 2, 2) /* y */)) return ret;
    if ((ret = flatcc_verify_field(td, 7, 2, 2) /* marginTop */)) return ret;
    if ((ret = flatcc_verify_field(td, 8, 2, 2) /* marginBottom */)) return ret;
    if ((ret = flatcc_verify_field(td, 9, 2, 2) /* marginLeft */)) return ret;
    if ((ret = flatcc_verify_field(td, 10, 2, 2) /* marginRight */)) return ret;
    if ((ret = flatcc_verify_field(td, 11, 8, 8) /* width */)) return ret;
    if ((ret = flatcc_verify_field(td, 12, 8, 8) /* height */)) return ret;
    if ((ret = flatcc_verify_field(td, 13, 8, 8) /* offsetX */)) return ret;
    if ((ret = flatcc_verify_field(td, 14, 8, 8) /* offsetY */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_Style_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Style_Id, &AllWatchSerialize_Style_verify_table);
}

static inline int AllWatchSerialize_Style_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Style_type_Id, &AllWatchSerialize_Style_verify_table);
}

static inline int AllWatchSerialize_Style_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_Style_verify_table);
}

static inline int AllWatchSerialize_Style_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_Style_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* STYLE_VERIFIER_H */
#ifndef TEMPLATE_READER_H
#define TEMPLATE_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#ifndef CARDATTRIBUTES_READER_H
#include "CardAttributes_reader.h"
#endif
#ifndef SHAPEATTRIBUTES_READER_H
#include "ShapeAttributes_reader.h"
#endif
#ifndef TEXTATTRIBUTES_READER_H
#include "TextAttributes_reader.h"
#endif
#ifndef LAYOUTATTRIBUTES_READER_H
#include "LayoutAttributes_reader.h"
#endif
#ifndef ACTION_READER_H
#include "Action_reader.h"
#endif
#ifndef STYLE_READER_H
#include "Style_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_Template_table *AllWatchSerialize_Template_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_Template_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_Template_mutable_vec_t;
#ifndef AllWatchSerialize_Template_Id
#define AllWatchSerialize_Template_Id flatbuffers_Id
#endif
#define AllWatchSerialize_Template_type_hash ((flatbuffers_thash_t)0x506fd485)
#define AllWatchSerialize_Template_type_Id "\x85\xd4\x6f\x50"

typedef int16_t AllWatchSerialize_Type_enum_t;
__flatbuffers_define_integer_type(AllWatchSerialize_Type, AllWatchSerialize_Type_enum_t, 16)
#define AllWatchSerialize_Type_HorizontalLayout ((AllWatchSerialize_Type_enum_t)INT16_C(0))
#define AllWatchSerialize_Type_VerticalLayout ((AllWatchSerialize_Type_enum_t)INT16_C(1))
#define AllWatchSerialize_Type_Text ((AllWatchSerialize_Type_enum_t)INT16_C(2))
#define AllWatchSerialize_Type_Label ((AllWatchSerialize_Type_enum_t)INT16_C(3))
#define AllWatchSerialize_Type_Item ((AllWatchSerialize_Type_enum_t)INT16_C(4))
#define AllWatchSerialize_Type_Container ((AllWatchSerialize_Type_enum_t)INT16_C(5))
#define AllWatchSerialize_Type_Shape ((AllWatchSerialize_Type_enum_t)INT16_C(6))
#define AllWatchSerialize_Type_Card ((AllWatchSerialize_Type_enum_t)INT16_C(7))

static inline const char *AllWatchSerialize_Type_name(AllWatchSerialize_Type_enum_t value)
{
    switch (value) {
    case AllWatchSerialize_Type_HorizontalLayout: return "HorizontalLayout";
    case AllWatchSerialize_Type_VerticalLayout: return "VerticalLayout";
    case AllWatchSerialize_Type_Text: return "Text";
    case AllWatchSerialize_Type_Label: return "Label";
    case AllWatchSerialize_Type_Item: return "Item";
    case AllWatchSerialize_Type_Container: return "Container";
    case AllWatchSerialize_Type_Shape: return "Shape";
    case AllWatchSerialize_Type_Card: return "Card";
    default: return "";
    }
}

static inline int AllWatchSerialize_Type_is_known_value(AllWatchSerialize_Type_enum_t value)
{
    switch (value) {
    case AllWatchSerialize_Type_HorizontalLayout: return 1;
    case AllWatchSerialize_Type_VerticalLayout: return 1;
    case AllWatchSerialize_Type_Text: return 1;
    case AllWatchSerialize_Type_Label: return 1;
    case AllWatchSerialize_Type_Item: return 1;
    case AllWatchSerialize_Type_Container: return 1;
    case AllWatchSerialize_Type_Shape: return 1;
    case AllWatchSerialize_Type_Card: return 1;
    default: return 0;
    }
}


typedef uint8_t AllWatchSerialize_Attributes_union_type_t;
__flatbuffers_define_integer_type(AllWatchSerialize_Attributes, AllWatchSerialize_Attributes_union_type_t, 8)
__flatbuffers_define_union(flatbuffers_, AllWatchSerialize_Attributes)
#define AllWatchSerialize_Attributes_NONE ((AllWatchSerialize_Attributes_union_type_t)UINT8_C(0))
#define AllWatchSerialize_Attributes_LayoutAttributes ((AllWatchSerialize_Attributes_union_type_t)UINT8_C(1))
#define AllWatchSerialize_Attributes_TextAttributes ((AllWatchSerialize_Attributes_union_type_t)UINT8_C(2))
#define AllWatchSerialize_Attributes_ShapeAttributes ((AllWatchSerialize_Attributes_union_type_t)UINT8_C(3))
#define AllWatchSerialize_Attributes_CardAttributes ((AllWatchSerialize_Attributes_union_type_t)UINT8_C(4))

static inline const char *AllWatchSerialize_Attributes_type_name(AllWatchSerialize_Attributes_union_type_t type)
{
    switch (type) {
    case AllWatchSerialize_Attributes_NONE: return "NONE";
    case AllWatchSerialize_Attributes_LayoutAttributes: return "LayoutAttributes";
    case AllWatchSerialize_Attributes_TextAttributes: return "TextAttributes";
    case AllWatchSerialize_Attributes_ShapeAttributes: return "ShapeAttributes";
    case AllWatchSerialize_Attributes_CardAttributes: return "CardAttributes";
    default: return "";
    }
}

static inline int AllWatchSerialize_Attributes_is_known_type(AllWatchSerialize_Attributes_union_type_t type)
{
    switch (type) {
    case AllWatchSerialize_Attributes_NONE: return 1;
    case AllWatchSerialize_Attributes_LayoutAttributes: return 1;
    case AllWatchSerialize_Attributes_TextAttributes: return 1;
    case AllWatchSerialize_Attributes_ShapeAttributes: return 1;
    case AllWatchSerialize_Attributes_CardAttributes: return 1;
    default: return 0;
    }
}


struct AllWatchSerialize_Template_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_Template_vec_len(AllWatchSerialize_Template_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_Template_table_t AllWatchSerialize_Template_vec_at(AllWatchSerialize_Template_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_Template_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_Template)

__flatbuffers_define_scalar_field(0, AllWatchSerialize_Template, type, AllWatchSerialize_Type, AllWatchSerialize_Type_enum_t, INT16_C(0))
__flatbuffers_define_table_field(1, AllWatchSerialize_Template, style, AllWatchSerialize_Style_table_t, 0)
__flatbuffers_define_table_field(2, AllWatchSerialize_Template, action, AllWatchSerialize_Action_table_t, 0)
__flatbuffers_define_union_field(flatbuffers_, 4, AllWatchSerialize_Template, attributes, AllWatchSerialize_Attributes, 0)
__flatbuffers_define_string_field(5, AllWatchSerialize_Template, id, 0)
__flatbuffers_define_vector_field(6, AllWatchSerialize_Template, children, AllWatchSerialize_Template_vec_t, 0)

#include "flatcc/flatcc_epilogue.h"
#endif /* TEMPLATE_READER_H */
#ifndef TEMPLATE_BUILDER_H
#define TEMPLATE_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef TEMPLATE_READER_H
#include "Template_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#ifndef CARDATTRIBUTES_BUILDER_H
#include "CardAttributes_builder.h"
#endif
#ifndef SHAPEATTRIBUTES_BUILDER_H
#include "ShapeAttributes_builder.h"
#endif
#ifndef TEXTATTRIBUTES_BUILDER_H
#include "TextAttributes_builder.h"
#endif
#ifndef LAYOUTATTRIBUTES_BUILDER_H
#include "LayoutAttributes_builder.h"
#endif
#ifndef ACTION_BUILDER_H
#include "Action_builder.h"
#endif
#ifndef STYLE_BUILDER_H
#include "Style_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

#define __AllWatchSerialize_Type_formal_args , AllWatchSerialize_Type_enum_t v0
#define __AllWatchSerialize_Type_call_args , v0
__flatbuffers_build_scalar(flatbuffers_, AllWatchSerialize_Type, AllWatchSerialize_Type_enum_t)

typedef flatbuffers_union_ref_t AllWatchSerialize_Attributes_union_ref_t;
typedef flatbuffers_union_vec_ref_t AllWatchSerialize_Attributes_union_vec_ref_t;
static AllWatchSerialize_Attributes_union_ref_t AllWatchSerialize_Attributes_clone(flatbuffers_builder_t *B, AllWatchSerialize_Attributes_union_t t);

static const flatbuffers_voffset_t __AllWatchSerialize_Template_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_Template_ref_t;
static AllWatchSerialize_Template_ref_t AllWatchSerialize_Template_clone(flatbuffers_builder_t *B, AllWatchSerialize_Template_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_Template, 7)

#define __AllWatchSerialize_Template_formal_args ,\
  AllWatchSerialize_Type_enum_t v0, AllWatchSerialize_Style_ref_t v1, AllWatchSerialize_Action_ref_t v2, AllWatchSerialize_Attributes_union_ref_t v4, flatbuffers_string_ref_t v5, AllWatchSerialize_Template_vec_ref_t v6
#define __AllWatchSerialize_Template_call_args ,\
  v0, v1, v2, v4, v5, v6
static inline AllWatchSerialize_Template_ref_t AllWatchSerialize_Template_create(flatbuffers_builder_t *B __AllWatchSerialize_Template_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_Template, AllWatchSerialize_Template_Id, AllWatchSerialize_Template_type_Id)

static inline AllWatchSerialize_Attributes_union_ref_t AllWatchSerialize_Attributes_as_NONE()
{ AllWatchSerialize_Attributes_union_ref_t uref; uref.type = AllWatchSerialize_Attributes_NONE; uref.value = 0; return uref; }
static inline AllWatchSerialize_Attributes_union_ref_t AllWatchSerialize_Attributes_as_LayoutAttributes(AllWatchSerialize_LayoutAttributes_ref_t ref)
{ AllWatchSerialize_Attributes_union_ref_t uref; uref.type = AllWatchSerialize_Attributes_LayoutAttributes; uref.value = ref; return uref; }
static inline AllWatchSerialize_Attributes_union_ref_t AllWatchSerialize_Attributes_as_TextAttributes(AllWatchSerialize_TextAttributes_ref_t ref)
{ AllWatchSerialize_Attributes_union_ref_t uref; uref.type = AllWatchSerialize_Attributes_TextAttributes; uref.value = ref; return uref; }
static inline AllWatchSerialize_Attributes_union_ref_t AllWatchSerialize_Attributes_as_ShapeAttributes(AllWatchSerialize_ShapeAttributes_ref_t ref)
{ AllWatchSerialize_Attributes_union_ref_t uref; uref.type = AllWatchSerialize_Attributes_ShapeAttributes; uref.value = ref; return uref; }
static inline AllWatchSerialize_Attributes_union_ref_t AllWatchSerialize_Attributes_as_CardAttributes(AllWatchSerialize_CardAttributes_ref_t ref)
{ AllWatchSerialize_Attributes_union_ref_t uref; uref.type = AllWatchSerialize_Attributes_CardAttributes; uref.value = ref; return uref; }
__flatbuffers_build_union_vector(flatbuffers_, AllWatchSerialize_Attributes)

static AllWatchSerialize_Attributes_union_ref_t AllWatchSerialize_Attributes_clone(flatbuffers_builder_t *B, AllWatchSerialize_Attributes_union_t u)
{
    switch (u.type) {
    case 1: return AllWatchSerialize_Attributes_as_LayoutAttributes(AllWatchSerialize_LayoutAttributes_clone(B, (AllWatchSerialize_LayoutAttributes_table_t)u.value));
    case 2: return AllWatchSerialize_Attributes_as_TextAttributes(AllWatchSerialize_TextAttributes_clone(B, (AllWatchSerialize_TextAttributes_table_t)u.value));
    case 3: return AllWatchSerialize_Attributes_as_ShapeAttributes(AllWatchSerialize_ShapeAttributes_clone(B, (AllWatchSerialize_ShapeAttributes_table_t)u.value));
    case 4: return AllWatchSerialize_Attributes_as_CardAttributes(AllWatchSerialize_CardAttributes_clone(B, (AllWatchSerialize_CardAttributes_table_t)u.value));
    default: return AllWatchSerialize_Attributes_as_NONE();
    }
}

__flatbuffers_build_scalar_field(0, flatbuffers_, AllWatchSerialize_Template_type, AllWatchSerialize_Type, AllWatchSerialize_Type_enum_t, 2, 2, INT16_C(0), AllWatchSerialize_Template)
__flatbuffers_build_table_field(1, flatbuffers_, AllWatchSerialize_Template_style, AllWatchSerialize_Style, AllWatchSerialize_Template)
__flatbuffers_build_table_field(2, flatbuffers_, AllWatchSerialize_Template_action, AllWatchSerialize_Action, AllWatchSerialize_Template)
__flatbuffers_build_union_field(4, flatbuffers_, AllWatchSerialize_Template_attributes, AllWatchSerialize_Attributes, AllWatchSerialize_Template)
__flatbuffers_build_union_table_value_field(flatbuffers_, AllWatchSerialize_Template_attributes, AllWatchSerialize_Attributes, LayoutAttributes, AllWatchSerialize_LayoutAttributes)
__flatbuffers_build_union_table_value_field(flatbuffers_, AllWatchSerialize_Template_attributes, AllWatchSerialize_Attributes, TextAttributes, AllWatchSerialize_TextAttributes)
__flatbuffers_build_union_table_value_field(flatbuffers_, AllWatchSerialize_Template_attributes, AllWatchSerialize_Attributes, ShapeAttributes, AllWatchSerialize_ShapeAttributes)
__flatbuffers_build_union_table_value_field(flatbuffers_, AllWatchSerialize_Template_attributes, AllWatchSerialize_Attributes, CardAttributes, AllWatchSerialize_CardAttributes)
__flatbuffers_build_string_field(5, flatbuffers_, AllWatchSerialize_Template_id, AllWatchSerialize_Template)
__flatbuffers_build_table_vector_field(6, flatbuffers_, AllWatchSerialize_Template_children, AllWatchSerialize_Template, AllWatchSerialize_Template)

static inline AllWatchSerialize_Template_ref_t AllWatchSerialize_Template_create(flatbuffers_builder_t *B __AllWatchSerialize_Template_formal_args)
{
    if (AllWatchSerialize_Template_start(B)
        || AllWatchSerialize_Template_style_add(B, v1)
        || AllWatchSerialize_Template_action_add(B, v2)
        || AllWatchSerialize_Template_attributes_add_value(B, v4)
        || AllWatchSerialize_Template_id_add(B, v5)
        || AllWatchSerialize_Template_children_add(B, v6)
        || AllWatchSerialize_Template_type_add(B, v0)
        || AllWatchSerialize_Template_attributes_add_type(B, v4.type)) {
        return 0;
    }
    return AllWatchSerialize_Template_end(B);
}

static AllWatchSerialize_Template_ref_t AllWatchSerialize_Template_clone(flatbuffers_builder_t *B, AllWatchSerialize_Template_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_Template_start(B)
        || AllWatchSerialize_Template_style_pick(B, t)
        || AllWatchSerialize_Template_action_pick(B, t)
        || AllWatchSerialize_Template_attributes_pick(B, t)
        || AllWatchSerialize_Template_id_pick(B, t)
        || AllWatchSerialize_Template_children_pick(B, t)
        || AllWatchSerialize_Template_type_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_Template_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* TEMPLATE_BUILDER_H */
#ifndef TEMPLATE_VERIFIER_H
#define TEMPLATE_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef TEMPLATE_READER_H
#include "Template_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#ifndef CARDATTRIBUTES_VERIFIER_H
#include "CardAttributes_verifier.h"
#endif
#ifndef SHAPEATTRIBUTES_VERIFIER_H
#include "ShapeAttributes_verifier.h"
#endif
#ifndef TEXTATTRIBUTES_VERIFIER_H
#include "TextAttributes_verifier.h"
#endif
#ifndef LAYOUTATTRIBUTES_VERIFIER_H
#include "LayoutAttributes_verifier.h"
#endif
#ifndef ACTION_VERIFIER_H
#include "Action_verifier.h"
#endif
#ifndef STYLE_VERIFIER_H
#include "Style_verifier.h"
#endif
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_Template_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_Attributes_union_verifier(flatcc_union_verifier_descriptor_t *ud)
{
    switch (ud->type) {
    case 1: return flatcc_verify_union_table(ud, AllWatchSerialize_LayoutAttributes_verify_table); /* LayoutAttributes */
    case 2: return flatcc_verify_union_table(ud, AllWatchSerialize_TextAttributes_verify_table); /* TextAttributes */
    case 3: return flatcc_verify_union_table(ud, AllWatchSerialize_ShapeAttributes_verify_table); /* ShapeAttributes */
    case 4: return flatcc_verify_union_table(ud, AllWatchSerialize_CardAttributes_verify_table); /* CardAttributes */
    default: return flatcc_verify_ok;
    }
}

static int AllWatchSerialize_Template_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_field(td, 0, 2, 2) /* type */)) return ret;
    if ((ret = flatcc_verify_table_field(td, 1, 0, &AllWatchSerialize_Style_verify_table) /* style */)) return ret;
    if ((ret = flatcc_verify_table_field(td, 2, 0, &AllWatchSerialize_Action_verify_table) /* action */)) return ret;
    if ((ret = flatcc_verify_union_field(td, 4, 0, &AllWatchSerialize_Attributes_union_verifier) /* attributes */)) return ret;
    if ((ret = flatcc_verify_string_field(td, 5, 0) /* id */)) return ret;
    if ((ret = flatcc_verify_table_vector_field(td, 6, 0, &AllWatchSerialize_Template_verify_table) /* children */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_Template_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Template_Id, &AllWatchSerialize_Template_verify_table);
}

static inline int AllWatchSerialize_Template_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Template_type_Id, &AllWatchSerialize_Template_verify_table);
}

static inline int AllWatchSerialize_Template_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_Template_verify_table);
}

static inline int AllWatchSerialize_Template_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_Template_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* TEMPLATE_VERIFIER_H */
#ifndef TEMPLATEROOT_READER_H
#define TEMPLATEROOT_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#ifndef DATABINDING_READER_H
#include "DataBinding_reader.h"
#endif
#ifndef EXTRAS_READER_H
#include "Extras_reader.h"
#endif
#ifndef TEMPLATE_READER_H
#include "Template_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_TemplateRoot_table *AllWatchSerialize_TemplateRoot_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_TemplateRoot_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_TemplateRoot_mutable_vec_t;
#ifndef AllWatchSerialize_TemplateRoot_Id
#define AllWatchSerialize_TemplateRoot_Id flatbuffers_Id
#endif
#define AllWatchSerialize_TemplateRoot_type_hash ((flatbuffers_thash_t)0x6ab2b525)
#define AllWatchSerialize_TemplateRoot_type_Id "\x25\xb5\xb2\x6a"



struct AllWatchSerialize_TemplateRoot_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_TemplateRoot_vec_len(AllWatchSerialize_TemplateRoot_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_TemplateRoot_table_t AllWatchSerialize_TemplateRoot_vec_at(AllWatchSerialize_TemplateRoot_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_TemplateRoot_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_TemplateRoot)

__flatbuffers_define_string_field(0, AllWatchSerialize_TemplateRoot, name, 0)
__flatbuffers_define_table_field(1, AllWatchSerialize_TemplateRoot, layout, AllWatchSerialize_Template_table_t, 0)
__flatbuffers_define_vector_field(2, AllWatchSerialize_TemplateRoot, dataBindings, AllWatchSerialize_DataBinding_vec_t, 0)

#include "flatcc/flatcc_epilogue.h"
#endif /* TEMPLATEROOT_READER_H */
#ifndef TEMPLATEROOT_BUILDER_H
#define TEMPLATEROOT_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef TEMPLATEROOT_READER_H
#include "TemplateRoot_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#ifndef DATABINDING_BUILDER_H
#include "DataBinding_builder.h"
#endif
#ifndef EXTRAS_BUILDER_H
#include "Extras_builder.h"
#endif
#ifndef TEMPLATE_BUILDER_H
#include "Template_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

static const flatbuffers_voffset_t __AllWatchSerialize_TemplateRoot_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_TemplateRoot_ref_t;
static AllWatchSerialize_TemplateRoot_ref_t AllWatchSerialize_TemplateRoot_clone(flatbuffers_builder_t *B, AllWatchSerialize_TemplateRoot_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_TemplateRoot, 3)

#define __AllWatchSerialize_TemplateRoot_formal_args , flatbuffers_string_ref_t v0, AllWatchSerialize_Template_ref_t v1, AllWatchSerialize_DataBinding_vec_ref_t v2
#define __AllWatchSerialize_TemplateRoot_call_args , v0, v1, v2
static inline AllWatchSerialize_TemplateRoot_ref_t AllWatchSerialize_TemplateRoot_create(flatbuffers_builder_t *B __AllWatchSerialize_TemplateRoot_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_TemplateRoot, AllWatchSerialize_TemplateRoot_Id, AllWatchSerialize_TemplateRoot_type_Id)

__flatbuffers_build_string_field(0, flatbuffers_, AllWatchSerialize_TemplateRoot_name, AllWatchSerialize_TemplateRoot)
__flatbuffers_build_table_field(1, flatbuffers_, AllWatchSerialize_TemplateRoot_layout, AllWatchSerialize_Template, AllWatchSerialize_TemplateRoot)
__flatbuffers_build_table_vector_field(2, flatbuffers_, AllWatchSerialize_TemplateRoot_dataBindings, AllWatchSerialize_DataBinding, AllWatchSerialize_TemplateRoot)

static inline AllWatchSerialize_TemplateRoot_ref_t AllWatchSerialize_TemplateRoot_create(flatbuffers_builder_t *B __AllWatchSerialize_TemplateRoot_formal_args)
{
    if (AllWatchSerialize_TemplateRoot_start(B)
        || AllWatchSerialize_TemplateRoot_name_add(B, v0)
        || AllWatchSerialize_TemplateRoot_layout_add(B, v1)
        || AllWatchSerialize_TemplateRoot_dataBindings_add(B, v2)) {
        return 0;
    }
    return AllWatchSerialize_TemplateRoot_end(B);
}

static AllWatchSerialize_TemplateRoot_ref_t AllWatchSerialize_TemplateRoot_clone(flatbuffers_builder_t *B, AllWatchSerialize_TemplateRoot_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_TemplateRoot_start(B)
        || AllWatchSerialize_TemplateRoot_name_pick(B, t)
        || AllWatchSerialize_TemplateRoot_layout_pick(B, t)
        || AllWatchSerialize_TemplateRoot_dataBindings_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_TemplateRoot_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* TEMPLATEROOT_BUILDER_H */
#ifndef TEMPLATEROOT_VERIFIER_H
#define TEMPLATEROOT_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef TEMPLATEROOT_READER_H
#include "TemplateRoot_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#ifndef DATABINDING_VERIFIER_H
#include "DataBinding_verifier.h"
#endif
#ifndef EXTRAS_VERIFIER_H
#include "Extras_verifier.h"
#endif
#ifndef TEMPLATE_VERIFIER_H
#include "Template_verifier.h"
#endif
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_TemplateRoot_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_TemplateRoot_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_string_field(td, 0, 0) /* name */)) return ret;
    if ((ret = flatcc_verify_table_field(td, 1, 0, &AllWatchSerialize_Template_verify_table) /* layout */)) return ret;
    if ((ret = flatcc_verify_table_vector_field(td, 2, 0, &AllWatchSerialize_DataBinding_verify_table) /* dataBindings */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_TemplateRoot_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_TemplateRoot_Id, &AllWatchSerialize_TemplateRoot_verify_table);
}

static inline int AllWatchSerialize_TemplateRoot_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_TemplateRoot_type_Id, &AllWatchSerialize_TemplateRoot_verify_table);
}

static inline int AllWatchSerialize_TemplateRoot_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_TemplateRoot_verify_table);
}

static inline int AllWatchSerialize_TemplateRoot_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_TemplateRoot_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* TEMPLATEROOT_VERIFIER_H */
#ifndef Id_READER_H
#define Id_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_Id_table *AllWatchSerialize_Id_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_Id_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_Id_mutable_vec_t;
#ifndef AllWatchSerialize_Id_Id
#define AllWatchSerialize_Id_Id flatbuffers_Id
#endif
#define AllWatchSerialize_Id_type_hash ((flatbuffers_thash_t)0xb03cc80c)
#define AllWatchSerialize_Id_type_Id "\x0c\xc8\x3c\xb0"



struct AllWatchSerialize_Id_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_Id_vec_len(AllWatchSerialize_Id_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_Id_table_t AllWatchSerialize_Id_vec_at(AllWatchSerialize_Id_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_Id_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_Id)

__flatbuffers_define_string_field(0, AllWatchSerialize_Id, packageName, 0)
__flatbuffers_define_find_by_string_field(AllWatchSerialize_Id, packageName)
__flatbuffers_define_sort_by_string_field(AllWatchSerialize_Id, packageName)
__flatbuffers_define_default_find_by_string_field(AllWatchSerialize_Id, packageName)
__flatbuffers_define_default_scan_by_string_field(AllWatchSerialize_Id, packageName)
#define AllWatchSerialize_Id_vec_sort AllWatchSerialize_Id_vec_sort_by_packageName
__flatbuffers_define_string_field(1, AllWatchSerialize_Id, friendlyName, 0)

#include "flatcc/flatcc_epilogue.h"
#endif /* Id_READER_H */
#ifndef Id_BUILDER_H
#define Id_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef Id_READER_H
#include "Id_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

static const flatbuffers_voffset_t __AllWatchSerialize_Id_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_Id_ref_t;
static AllWatchSerialize_Id_ref_t AllWatchSerialize_Id_clone(flatbuffers_builder_t *B, AllWatchSerialize_Id_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_Id, 2)

#define __AllWatchSerialize_Id_formal_args , flatbuffers_string_ref_t v0, flatbuffers_string_ref_t v1
#define __AllWatchSerialize_Id_call_args , v0, v1
static inline AllWatchSerialize_Id_ref_t AllWatchSerialize_Id_create(flatbuffers_builder_t *B __AllWatchSerialize_Id_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_Id, AllWatchSerialize_Id_Id, AllWatchSerialize_Id_type_Id)

__flatbuffers_build_string_field(0, flatbuffers_, AllWatchSerialize_Id_packageName, AllWatchSerialize_Id)
__flatbuffers_build_string_field(1, flatbuffers_, AllWatchSerialize_Id_friendlyName, AllWatchSerialize_Id)

static inline AllWatchSerialize_Id_ref_t AllWatchSerialize_Id_create(flatbuffers_builder_t *B __AllWatchSerialize_Id_formal_args)
{
    if (AllWatchSerialize_Id_start(B)
        || AllWatchSerialize_Id_packageName_add(B, v0)
        || AllWatchSerialize_Id_friendlyName_add(B, v1)) {
        return 0;
    }
    return AllWatchSerialize_Id_end(B);
}

static AllWatchSerialize_Id_ref_t AllWatchSerialize_Id_clone(flatbuffers_builder_t *B, AllWatchSerialize_Id_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_Id_start(B)
        || AllWatchSerialize_Id_packageName_pick(B, t)
        || AllWatchSerialize_Id_friendlyName_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_Id_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* Id_BUILDER_H */
#ifndef Id_VERIFIER_H
#define Id_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef Id_READER_H
#include "Id_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_Id_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_Id_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_string_field(td, 0, 0) /* packageName */)) return ret;
    if ((ret = flatcc_verify_string_field(td, 1, 0) /* friendlyName */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_Id_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Id_Id, &AllWatchSerialize_Id_verify_table);
}

static inline int AllWatchSerialize_Id_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Id_type_Id, &AllWatchSerialize_Id_verify_table);
}

static inline int AllWatchSerialize_Id_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_Id_verify_table);
}

static inline int AllWatchSerialize_Id_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_Id_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* Id_VERIFIER_H */
#ifndef WIDGET_READER_H
#define WIDGET_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#ifndef TEMPLATEROOT_READER_H
#include "TemplateRoot_reader.h"
#endif
#ifndef Id_READER_H
#include "Id_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_Widget_table *AllWatchSerialize_Widget_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_Widget_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_Widget_mutable_vec_t;
#ifndef AllWatchSerialize_Widget_Id
#define AllWatchSerialize_Widget_Id flatbuffers_Id
#endif
#define AllWatchSerialize_Widget_type_hash ((flatbuffers_thash_t)0xb5c9588f)
#define AllWatchSerialize_Widget_type_Id "\x8f\x58\xc9\xb5"



struct AllWatchSerialize_Widget_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_Widget_vec_len(AllWatchSerialize_Widget_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_Widget_table_t AllWatchSerialize_Widget_vec_at(AllWatchSerialize_Widget_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_Widget_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_Widget)

__flatbuffers_define_scalar_field(0, AllWatchSerialize_Widget, refresh, flatbuffers_int64, int64_t, INT64_C(0))
__flatbuffers_define_table_field(1, AllWatchSerialize_Widget, template, AllWatchSerialize_TemplateRoot_table_t, 0)
__flatbuffers_define_table_field(2, AllWatchSerialize_Widget, id, AllWatchSerialize_Id_table_t, 0)

#include "flatcc/flatcc_epilogue.h"
#endif /* WIDGET_READER_H */
#ifndef WIDGET_BUILDER_H
#define WIDGET_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef WIDGET_READER_H
#include "Widget_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#ifndef TEMPLATEROOT_BUILDER_H
#include "TemplateRoot_builder.h"
#endif
#ifndef Id_BUILDER_H
#include "Id_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

static const flatbuffers_voffset_t __AllWatchSerialize_Widget_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_Widget_ref_t;
static AllWatchSerialize_Widget_ref_t AllWatchSerialize_Widget_clone(flatbuffers_builder_t *B, AllWatchSerialize_Widget_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_Widget, 3)

#define __AllWatchSerialize_Widget_formal_args , int64_t v0, AllWatchSerialize_TemplateRoot_ref_t v1, AllWatchSerialize_Id_ref_t v2
#define __AllWatchSerialize_Widget_call_args , v0, v1, v2
static inline AllWatchSerialize_Widget_ref_t AllWatchSerialize_Widget_create(flatbuffers_builder_t *B __AllWatchSerialize_Widget_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_Widget, AllWatchSerialize_Widget_Id, AllWatchSerialize_Widget_type_Id)

__flatbuffers_build_scalar_field(0, flatbuffers_, AllWatchSerialize_Widget_refresh, flatbuffers_int64, int64_t, 8, 8, INT64_C(0), AllWatchSerialize_Widget)
__flatbuffers_build_table_field(1, flatbuffers_, AllWatchSerialize_Widget_template, AllWatchSerialize_TemplateRoot, AllWatchSerialize_Widget)
__flatbuffers_build_table_field(2, flatbuffers_, AllWatchSerialize_Widget_id, AllWatchSerialize_Id, AllWatchSerialize_Widget)

static inline AllWatchSerialize_Widget_ref_t AllWatchSerialize_Widget_create(flatbuffers_builder_t *B __AllWatchSerialize_Widget_formal_args)
{
    if (AllWatchSerialize_Widget_start(B)
        || AllWatchSerialize_Widget_refresh_add(B, v0)
        || AllWatchSerialize_Widget_template_add(B, v1)
        || AllWatchSerialize_Widget_id_add(B, v2)) {
        return 0;
    }
    return AllWatchSerialize_Widget_end(B);
}

static AllWatchSerialize_Widget_ref_t AllWatchSerialize_Widget_clone(flatbuffers_builder_t *B, AllWatchSerialize_Widget_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_Widget_start(B)
        || AllWatchSerialize_Widget_refresh_pick(B, t)
        || AllWatchSerialize_Widget_template_pick(B, t)
        || AllWatchSerialize_Widget_id_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_Widget_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* WIDGET_BUILDER_H */
#ifndef WIDGET_VERIFIER_H
#define WIDGET_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef WIDGET_READER_H
#include "Widget_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#ifndef TEMPLATEROOT_VERIFIER_H
#include "TemplateRoot_verifier.h"
#endif
#ifndef Id_VERIFIER_H
#include "Id_verifier.h"
#endif
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_Widget_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_Widget_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_field(td, 0, 8, 8) /* refresh */)) return ret;
    if ((ret = flatcc_verify_table_field(td, 1, 0, &AllWatchSerialize_TemplateRoot_verify_table) /* template */)) return ret;
    if ((ret = flatcc_verify_table_field(td, 2, 0, &AllWatchSerialize_Id_verify_table) /* id */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_Widget_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Widget_Id, &AllWatchSerialize_Widget_verify_table);
}

static inline int AllWatchSerialize_Widget_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Widget_type_Id, &AllWatchSerialize_Widget_verify_table);
}

static inline int AllWatchSerialize_Widget_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_Widget_verify_table);
}

static inline int AllWatchSerialize_Widget_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_Widget_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* WIDGET_VERIFIER_H */
#ifndef REQUIREMENTS_READER_H
#define REQUIREMENTS_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif



typedef int16_t AllWatchSerialize_Requirements_enum_t;
__flatbuffers_define_integer_type(AllWatchSerialize_Requirements, AllWatchSerialize_Requirements_enum_t, 16)
#define AllWatchSerialize_Requirements_color ((AllWatchSerialize_Requirements_enum_t)INT16_C(0))
#define AllWatchSerialize_Requirements_images ((AllWatchSerialize_Requirements_enum_t)INT16_C(1))
#define AllWatchSerialize_Requirements_templates ((AllWatchSerialize_Requirements_enum_t)INT16_C(2))
#define AllWatchSerialize_Requirements_unicode ((AllWatchSerialize_Requirements_enum_t)INT16_C(3))
#define AllWatchSerialize_Requirements_icons ((AllWatchSerialize_Requirements_enum_t)INT16_C(4))
#define AllWatchSerialize_Requirements_png ((AllWatchSerialize_Requirements_enum_t)INT16_C(5))
#define AllWatchSerialize_Requirements_touchscreen ((AllWatchSerialize_Requirements_enum_t)INT16_C(6))

static inline const char *AllWatchSerialize_Requirements_name(AllWatchSerialize_Requirements_enum_t value)
{
    switch (value) {
    case AllWatchSerialize_Requirements_color: return "color";
    case AllWatchSerialize_Requirements_images: return "images";
    case AllWatchSerialize_Requirements_templates: return "templates";
    case AllWatchSerialize_Requirements_unicode: return "unicode";
    case AllWatchSerialize_Requirements_icons: return "icons";
    case AllWatchSerialize_Requirements_png: return "png";
    case AllWatchSerialize_Requirements_touchscreen: return "touchscreen";
    default: return "";
    }
}

static inline int AllWatchSerialize_Requirements_is_known_value(AllWatchSerialize_Requirements_enum_t value)
{
    switch (value) {
    case AllWatchSerialize_Requirements_color: return 1;
    case AllWatchSerialize_Requirements_images: return 1;
    case AllWatchSerialize_Requirements_templates: return 1;
    case AllWatchSerialize_Requirements_unicode: return 1;
    case AllWatchSerialize_Requirements_icons: return 1;
    case AllWatchSerialize_Requirements_png: return 1;
    case AllWatchSerialize_Requirements_touchscreen: return 1;
    default: return 0;
    }
}



#include "flatcc/flatcc_epilogue.h"
#endif /* REQUIREMENTS_READER_H */
#ifndef REQUIREMENTS_BUILDER_H
#define REQUIREMENTS_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef REQUIREMENTS_READER_H
#include "Requirements_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

#define __AllWatchSerialize_Requirements_formal_args , AllWatchSerialize_Requirements_enum_t v0
#define __AllWatchSerialize_Requirements_call_args , v0
__flatbuffers_build_scalar(flatbuffers_, AllWatchSerialize_Requirements, AllWatchSerialize_Requirements_enum_t)

#include "flatcc/flatcc_epilogue.h"
#endif /* REQUIREMENTS_BUILDER_H */
#ifndef REQUIREMENTS_VERIFIER_H
#define REQUIREMENTS_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef REQUIREMENTS_READER_H
#include "Requirements_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#include "flatcc/flatcc_prologue.h"


#include "flatcc/flatcc_epilogue.h"
#endif /* REQUIREMENTS_VERIFIER_H */
#ifndef APPLICATION_READER_H
#define APPLICATION_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#ifndef WIDGET_READER_H
#include "Widget_reader.h"
#endif
#ifndef REQUIREMENTS_READER_H
#include "Requirements_reader.h"
#endif
#ifndef Id_READER_H
#include "Id_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_Application_table *AllWatchSerialize_Application_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_Application_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_Application_mutable_vec_t;
#ifndef AllWatchSerialize_Application_Id
#define AllWatchSerialize_Application_Id flatbuffers_Id
#endif
#define AllWatchSerialize_Application_type_hash ((flatbuffers_thash_t)0x198a96bf)
#define AllWatchSerialize_Application_type_Id "\xbf\x96\x8a\x19"



struct AllWatchSerialize_Application_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_Application_vec_len(AllWatchSerialize_Application_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_Application_table_t AllWatchSerialize_Application_vec_at(AllWatchSerialize_Application_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_Application_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_Application)

__flatbuffers_define_scalar_field(0, AllWatchSerialize_Application, reinstall, flatbuffers_bool, flatbuffers_bool_t, UINT8_C(0))
__flatbuffers_define_table_field(1, AllWatchSerialize_Application, Id, AllWatchSerialize_Id_table_t, 0)
__flatbuffers_define_vector_field(2, AllWatchSerialize_Application, icon, flatbuffers_int8_vec_t, 0)
__flatbuffers_define_vector_field(3, AllWatchSerialize_Application, requirements, AllWatchSerialize_Requirements_vec_t, 0)
__flatbuffers_define_vector_field(4, AllWatchSerialize_Application, voicePhrases, flatbuffers_string_vec_t, 0)
__flatbuffers_define_table_field(5, AllWatchSerialize_Application, widget, AllWatchSerialize_Widget_table_t, 0)

#include "flatcc/flatcc_epilogue.h"
#endif /* APPLICATION_READER_H */
#ifndef APPLICATION_BUILDER_H
#define APPLICATION_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef APPLICATION_READER_H
#include "Application_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#ifndef WIDGET_BUILDER_H
#include "Widget_builder.h"
#endif
#ifndef REQUIREMENTS_BUILDER_H
#include "Requirements_builder.h"
#endif
#ifndef Id_BUILDER_H
#include "Id_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

static const flatbuffers_voffset_t __AllWatchSerialize_Application_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_Application_ref_t;
static AllWatchSerialize_Application_ref_t AllWatchSerialize_Application_clone(flatbuffers_builder_t *B, AllWatchSerialize_Application_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_Application, 6)

#define __AllWatchSerialize_Application_formal_args ,\
  flatbuffers_bool_t v0, AllWatchSerialize_Id_ref_t v1, flatbuffers_int8_vec_ref_t v2, AllWatchSerialize_Requirements_vec_ref_t v3, flatbuffers_string_vec_ref_t v4, AllWatchSerialize_Widget_ref_t v5
#define __AllWatchSerialize_Application_call_args ,\
  v0, v1, v2, v3, v4, v5
static inline AllWatchSerialize_Application_ref_t AllWatchSerialize_Application_create(flatbuffers_builder_t *B __AllWatchSerialize_Application_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_Application, AllWatchSerialize_Application_Id, AllWatchSerialize_Application_type_Id)

__flatbuffers_build_scalar_field(0, flatbuffers_, AllWatchSerialize_Application_reinstall, flatbuffers_bool, flatbuffers_bool_t, 1, 1, UINT8_C(0), AllWatchSerialize_Application)
__flatbuffers_build_table_field(1, flatbuffers_, AllWatchSerialize_Application_Id, AllWatchSerialize_Id, AllWatchSerialize_Application)
__flatbuffers_build_vector_field(2, flatbuffers_, AllWatchSerialize_Application_icon, flatbuffers_int8, int8_t, AllWatchSerialize_Application)
__flatbuffers_build_vector_field(3, flatbuffers_, AllWatchSerialize_Application_requirements, AllWatchSerialize_Requirements, AllWatchSerialize_Requirements_enum_t, AllWatchSerialize_Application)
__flatbuffers_build_string_vector_field(4, flatbuffers_, AllWatchSerialize_Application_voicePhrases, AllWatchSerialize_Application)
__flatbuffers_build_table_field(5, flatbuffers_, AllWatchSerialize_Application_widget, AllWatchSerialize_Widget, AllWatchSerialize_Application)

static inline AllWatchSerialize_Application_ref_t AllWatchSerialize_Application_create(flatbuffers_builder_t *B __AllWatchSerialize_Application_formal_args)
{
    if (AllWatchSerialize_Application_start(B)
        || AllWatchSerialize_Application_Id_add(B, v1)
        || AllWatchSerialize_Application_icon_add(B, v2)
        || AllWatchSerialize_Application_requirements_add(B, v3)
        || AllWatchSerialize_Application_voicePhrases_add(B, v4)
        || AllWatchSerialize_Application_widget_add(B, v5)
        || AllWatchSerialize_Application_reinstall_add(B, v0)) {
        return 0;
    }
    return AllWatchSerialize_Application_end(B);
}

static AllWatchSerialize_Application_ref_t AllWatchSerialize_Application_clone(flatbuffers_builder_t *B, AllWatchSerialize_Application_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_Application_start(B)
        || AllWatchSerialize_Application_Id_pick(B, t)
        || AllWatchSerialize_Application_icon_pick(B, t)
        || AllWatchSerialize_Application_requirements_pick(B, t)
        || AllWatchSerialize_Application_voicePhrases_pick(B, t)
        || AllWatchSerialize_Application_widget_pick(B, t)
        || AllWatchSerialize_Application_reinstall_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_Application_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* APPLICATION_BUILDER_H */
#ifndef APPLICATION_VERIFIER_H
#define APPLICATION_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef APPLICATION_READER_H
#include "Application_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#ifndef WIDGET_VERIFIER_H
#include "Widget_verifier.h"
#endif
#ifndef REQUIREMENTS_VERIFIER_H
#include "Requirements_verifier.h"
#endif
#ifndef Id_VERIFIER_H
#include "Id_verifier.h"
#endif
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_Application_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_Application_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_field(td, 0, 1, 1) /* reinstall */)) return ret;
    if ((ret = flatcc_verify_table_field(td, 1, 0, &AllWatchSerialize_Id_verify_table) /* Id */)) return ret;
    if ((ret = flatcc_verify_vector_field(td, 2, 0, 1, 1, INT64_C(4294967295)) /* icon */)) return ret;
    if ((ret = flatcc_verify_vector_field(td, 3, 0, 2, 2, INT64_C(2147483647)) /* requirements */)) return ret;
    if ((ret = flatcc_verify_string_vector_field(td, 4, 0) /* voicePhrases */)) return ret;
    if ((ret = flatcc_verify_table_field(td, 5, 0, &AllWatchSerialize_Widget_verify_table) /* widget */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_Application_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Application_Id, &AllWatchSerialize_Application_verify_table);
}

static inline int AllWatchSerialize_Application_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Application_type_Id, &AllWatchSerialize_Application_verify_table);
}

static inline int AllWatchSerialize_Application_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_Application_verify_table);
}

static inline int AllWatchSerialize_Application_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_Application_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* APPLICATION_VERIFIER_H */
#ifndef SIMPLELISTENTRY_READER_H
#define SIMPLELISTENTRY_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#ifndef ACTION_READER_H
#include "Action_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_SimpleListEntry_table *AllWatchSerialize_SimpleListEntry_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_SimpleListEntry_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_SimpleListEntry_mutable_vec_t;
#ifndef AllWatchSerialize_SimpleListEntry_Id
#define AllWatchSerialize_SimpleListEntry_Id flatbuffers_Id
#endif
#define AllWatchSerialize_SimpleListEntry_type_hash ((flatbuffers_thash_t)0x420b50d7)
#define AllWatchSerialize_SimpleListEntry_type_Id "\xd7\x50\x0b\x42"

typedef int16_t AllWatchSerialize_Layout_enum_t;
__flatbuffers_define_integer_type(AllWatchSerialize_Layout, AllWatchSerialize_Layout_enum_t, 16)
#define AllWatchSerialize_Layout_Text ((AllWatchSerialize_Layout_enum_t)INT16_C(0))
#define AllWatchSerialize_Layout_MultilineText ((AllWatchSerialize_Layout_enum_t)INT16_C(1))
#define AllWatchSerialize_Layout_WithIcon ((AllWatchSerialize_Layout_enum_t)INT16_C(2))
#define AllWatchSerialize_Layout_Menu ((AllWatchSerialize_Layout_enum_t)INT16_C(3))

static inline const char *AllWatchSerialize_Layout_name(AllWatchSerialize_Layout_enum_t value)
{
    switch (value) {
    case AllWatchSerialize_Layout_Text: return "Text";
    case AllWatchSerialize_Layout_MultilineText: return "MultilineText";
    case AllWatchSerialize_Layout_WithIcon: return "WithIcon";
    case AllWatchSerialize_Layout_Menu: return "Menu";
    default: return "";
    }
}

static inline int AllWatchSerialize_Layout_is_known_value(AllWatchSerialize_Layout_enum_t value)
{
    switch (value) {
    case AllWatchSerialize_Layout_Text: return 1;
    case AllWatchSerialize_Layout_MultilineText: return 1;
    case AllWatchSerialize_Layout_WithIcon: return 1;
    case AllWatchSerialize_Layout_Menu: return 1;
    default: return 0;
    }
}



struct AllWatchSerialize_SimpleListEntry_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_SimpleListEntry_vec_len(AllWatchSerialize_SimpleListEntry_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_SimpleListEntry_table_t AllWatchSerialize_SimpleListEntry_vec_at(AllWatchSerialize_SimpleListEntry_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_SimpleListEntry_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_SimpleListEntry)

__flatbuffers_define_scalar_field(0, AllWatchSerialize_SimpleListEntry, layout, AllWatchSerialize_Layout, AllWatchSerialize_Layout_enum_t, INT16_C(0))
__flatbuffers_define_table_field(1, AllWatchSerialize_SimpleListEntry, mainAction, AllWatchSerialize_Action_table_t, 0)
__flatbuffers_define_vector_field(2, AllWatchSerialize_SimpleListEntry, sideActions, AllWatchSerialize_Action_vec_t, 0)
__flatbuffers_define_vector_field(3, AllWatchSerialize_SimpleListEntry, lines, flatbuffers_string_vec_t, 0)
__flatbuffers_define_vector_field(4, AllWatchSerialize_SimpleListEntry, icon, flatbuffers_int8_vec_t, 0)

#include "flatcc/flatcc_epilogue.h"
#endif /* SIMPLELISTENTRY_READER_H */
#ifndef SIMPLELISTENTRY_BUILDER_H
#define SIMPLELISTENTRY_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef SIMPLELISTENTRY_READER_H
#include "SimpleListEntry_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#ifndef ACTION_BUILDER_H
#include "Action_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

#define __AllWatchSerialize_Layout_formal_args , AllWatchSerialize_Layout_enum_t v0
#define __AllWatchSerialize_Layout_call_args , v0
__flatbuffers_build_scalar(flatbuffers_, AllWatchSerialize_Layout, AllWatchSerialize_Layout_enum_t)

static const flatbuffers_voffset_t __AllWatchSerialize_SimpleListEntry_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_SimpleListEntry_ref_t;
static AllWatchSerialize_SimpleListEntry_ref_t AllWatchSerialize_SimpleListEntry_clone(flatbuffers_builder_t *B, AllWatchSerialize_SimpleListEntry_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_SimpleListEntry, 5)

#define __AllWatchSerialize_SimpleListEntry_formal_args ,\
  AllWatchSerialize_Layout_enum_t v0, AllWatchSerialize_Action_ref_t v1, AllWatchSerialize_Action_vec_ref_t v2, flatbuffers_string_vec_ref_t v3, flatbuffers_int8_vec_ref_t v4
#define __AllWatchSerialize_SimpleListEntry_call_args ,\
  v0, v1, v2, v3, v4
static inline AllWatchSerialize_SimpleListEntry_ref_t AllWatchSerialize_SimpleListEntry_create(flatbuffers_builder_t *B __AllWatchSerialize_SimpleListEntry_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_SimpleListEntry, AllWatchSerialize_SimpleListEntry_Id, AllWatchSerialize_SimpleListEntry_type_Id)

__flatbuffers_build_scalar_field(0, flatbuffers_, AllWatchSerialize_SimpleListEntry_layout, AllWatchSerialize_Layout, AllWatchSerialize_Layout_enum_t, 2, 2, INT16_C(0), AllWatchSerialize_SimpleListEntry)
__flatbuffers_build_table_field(1, flatbuffers_, AllWatchSerialize_SimpleListEntry_mainAction, AllWatchSerialize_Action, AllWatchSerialize_SimpleListEntry)
__flatbuffers_build_table_vector_field(2, flatbuffers_, AllWatchSerialize_SimpleListEntry_sideActions, AllWatchSerialize_Action, AllWatchSerialize_SimpleListEntry)
__flatbuffers_build_string_vector_field(3, flatbuffers_, AllWatchSerialize_SimpleListEntry_lines, AllWatchSerialize_SimpleListEntry)
__flatbuffers_build_vector_field(4, flatbuffers_, AllWatchSerialize_SimpleListEntry_icon, flatbuffers_int8, int8_t, AllWatchSerialize_SimpleListEntry)

static inline AllWatchSerialize_SimpleListEntry_ref_t AllWatchSerialize_SimpleListEntry_create(flatbuffers_builder_t *B __AllWatchSerialize_SimpleListEntry_formal_args)
{
    if (AllWatchSerialize_SimpleListEntry_start(B)
        || AllWatchSerialize_SimpleListEntry_mainAction_add(B, v1)
        || AllWatchSerialize_SimpleListEntry_sideActions_add(B, v2)
        || AllWatchSerialize_SimpleListEntry_lines_add(B, v3)
        || AllWatchSerialize_SimpleListEntry_icon_add(B, v4)
        || AllWatchSerialize_SimpleListEntry_layout_add(B, v0)) {
        return 0;
    }
    return AllWatchSerialize_SimpleListEntry_end(B);
}

static AllWatchSerialize_SimpleListEntry_ref_t AllWatchSerialize_SimpleListEntry_clone(flatbuffers_builder_t *B, AllWatchSerialize_SimpleListEntry_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_SimpleListEntry_start(B)
        || AllWatchSerialize_SimpleListEntry_mainAction_pick(B, t)
        || AllWatchSerialize_SimpleListEntry_sideActions_pick(B, t)
        || AllWatchSerialize_SimpleListEntry_lines_pick(B, t)
        || AllWatchSerialize_SimpleListEntry_icon_pick(B, t)
        || AllWatchSerialize_SimpleListEntry_layout_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_SimpleListEntry_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* SIMPLELISTENTRY_BUILDER_H */
#ifndef SIMPLELISTENTRY_VERIFIER_H
#define SIMPLELISTENTRY_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef SIMPLELISTENTRY_READER_H
#include "SimpleListEntry_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#ifndef ACTION_VERIFIER_H
#include "Action_verifier.h"
#endif
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_SimpleListEntry_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_SimpleListEntry_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_field(td, 0, 2, 2) /* layout */)) return ret;
    if ((ret = flatcc_verify_table_field(td, 1, 0, &AllWatchSerialize_Action_verify_table) /* mainAction */)) return ret;
    if ((ret = flatcc_verify_table_vector_field(td, 2, 0, &AllWatchSerialize_Action_verify_table) /* sideActions */)) return ret;
    if ((ret = flatcc_verify_string_vector_field(td, 3, 0) /* lines */)) return ret;
    if ((ret = flatcc_verify_vector_field(td, 4, 0, 1, 1, INT64_C(4294967295)) /* icon */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_SimpleListEntry_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_SimpleListEntry_Id, &AllWatchSerialize_SimpleListEntry_verify_table);
}

static inline int AllWatchSerialize_SimpleListEntry_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_SimpleListEntry_type_Id, &AllWatchSerialize_SimpleListEntry_verify_table);
}

static inline int AllWatchSerialize_SimpleListEntry_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_SimpleListEntry_verify_table);
}

static inline int AllWatchSerialize_SimpleListEntry_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_SimpleListEntry_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* SIMPLELISTENTRY_VERIFIER_H */
#ifndef LISTDATA_READER_H
#define LISTDATA_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#ifndef TEMPLATEROOT_READER_H
#include "TemplateRoot_reader.h"
#endif
#ifndef SIMPLELISTENTRY_READER_H
#include "SimpleListEntry_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_ListData_table *AllWatchSerialize_ListData_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_ListData_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_ListData_mutable_vec_t;
#ifndef AllWatchSerialize_ListData_Id
#define AllWatchSerialize_ListData_Id flatbuffers_Id
#endif
#define AllWatchSerialize_ListData_type_hash ((flatbuffers_thash_t)0x8a342237)
#define AllWatchSerialize_ListData_type_Id "\x37\x22\x34\x8a"



struct AllWatchSerialize_ListData_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_ListData_vec_len(AllWatchSerialize_ListData_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_ListData_table_t AllWatchSerialize_ListData_vec_at(AllWatchSerialize_ListData_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_ListData_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_ListData)

__flatbuffers_define_scalar_field(0, AllWatchSerialize_ListData, useCustomTemplate, flatbuffers_bool, flatbuffers_bool_t, UINT8_C(0))
__flatbuffers_define_vector_field(1, AllWatchSerialize_ListData, customContent, AllWatchSerialize_Template_vec_t, 0)
__flatbuffers_define_vector_field(2, AllWatchSerialize_ListData, simpleEntries, AllWatchSerialize_SimpleListEntry_vec_t, 0)

#include "flatcc/flatcc_epilogue.h"
#endif /* LISTDATA_READER_H */
#ifndef LISTDATA_BUILDER_H
#define LISTDATA_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef LISTDATA_READER_H
#include "ListData_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#ifndef TEMPLATEROOT_BUILDER_H
#include "TemplateRoot_builder.h"
#endif
#ifndef SIMPLELISTENTRY_BUILDER_H
#include "SimpleListEntry_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

static const flatbuffers_voffset_t __AllWatchSerialize_ListData_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_ListData_ref_t;
static AllWatchSerialize_ListData_ref_t AllWatchSerialize_ListData_clone(flatbuffers_builder_t *B, AllWatchSerialize_ListData_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_ListData, 3)

#define __AllWatchSerialize_ListData_formal_args , flatbuffers_bool_t v0, AllWatchSerialize_Template_vec_ref_t v1, AllWatchSerialize_SimpleListEntry_vec_ref_t v2
#define __AllWatchSerialize_ListData_call_args , v0, v1, v2
static inline AllWatchSerialize_ListData_ref_t AllWatchSerialize_ListData_create(flatbuffers_builder_t *B __AllWatchSerialize_ListData_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_ListData, AllWatchSerialize_ListData_Id, AllWatchSerialize_ListData_type_Id)

__flatbuffers_build_scalar_field(0, flatbuffers_, AllWatchSerialize_ListData_useCustomTemplate, flatbuffers_bool, flatbuffers_bool_t, 1, 1, UINT8_C(0), AllWatchSerialize_ListData)
__flatbuffers_build_table_vector_field(1, flatbuffers_, AllWatchSerialize_ListData_customContent, AllWatchSerialize_Template, AllWatchSerialize_ListData)
__flatbuffers_build_table_vector_field(2, flatbuffers_, AllWatchSerialize_ListData_simpleEntries, AllWatchSerialize_SimpleListEntry, AllWatchSerialize_ListData)

static inline AllWatchSerialize_ListData_ref_t AllWatchSerialize_ListData_create(flatbuffers_builder_t *B __AllWatchSerialize_ListData_formal_args)
{
    if (AllWatchSerialize_ListData_start(B)
        || AllWatchSerialize_ListData_customContent_add(B, v1)
        || AllWatchSerialize_ListData_simpleEntries_add(B, v2)
        || AllWatchSerialize_ListData_useCustomTemplate_add(B, v0)) {
        return 0;
    }
    return AllWatchSerialize_ListData_end(B);
}

static AllWatchSerialize_ListData_ref_t AllWatchSerialize_ListData_clone(flatbuffers_builder_t *B, AllWatchSerialize_ListData_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_ListData_start(B)
        || AllWatchSerialize_ListData_customContent_pick(B, t)
        || AllWatchSerialize_ListData_simpleEntries_pick(B, t)
        || AllWatchSerialize_ListData_useCustomTemplate_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_ListData_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* LISTDATA_BUILDER_H */
#ifndef LISTDATA_VERIFIER_H
#define LISTDATA_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef LISTDATA_READER_H
#include "ListData_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#ifndef TEMPLATEROOT_VERIFIER_H
#include "TemplateRoot_verifier.h"
#endif
#ifndef SIMPLELISTENTRY_VERIFIER_H
#include "SimpleListEntry_verifier.h"
#endif
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_ListData_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_ListData_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_field(td, 0, 1, 1) /* useCustomTemplate */)) return ret;
    if ((ret = flatcc_verify_table_vector_field(td, 1, 0, &AllWatchSerialize_Template_verify_table) /* customContent */)) return ret;
    if ((ret = flatcc_verify_table_vector_field(td, 2, 0, &AllWatchSerialize_SimpleListEntry_verify_table) /* simpleEntries */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_ListData_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_ListData_Id, &AllWatchSerialize_ListData_verify_table);
}

static inline int AllWatchSerialize_ListData_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_ListData_type_Id, &AllWatchSerialize_ListData_verify_table);
}

static inline int AllWatchSerialize_ListData_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_ListData_verify_table);
}

static inline int AllWatchSerialize_ListData_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_ListData_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* LISTDATA_VERIFIER_H */
#ifndef COMPONENTS_READER_H
#define COMPONENTS_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_ProgressBar_table *AllWatchSerialize_ProgressBar_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_ProgressBar_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_ProgressBar_mutable_vec_t;
typedef const struct AllWatchSerialize_ImageBackground_table *AllWatchSerialize_ImageBackground_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_ImageBackground_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_ImageBackground_mutable_vec_t;
typedef const struct AllWatchSerialize_Component_table *AllWatchSerialize_Component_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_Component_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_Component_mutable_vec_t;
#ifndef AllWatchSerialize_ProgressBar_Id
#define AllWatchSerialize_ProgressBar_Id flatbuffers_Id
#endif
#define AllWatchSerialize_ProgressBar_type_hash ((flatbuffers_thash_t)0xc934bc9d)
#define AllWatchSerialize_ProgressBar_type_Id "\x9d\xbc\x34\xc9"
#ifndef AllWatchSerialize_ImageBackground_Id
#define AllWatchSerialize_ImageBackground_Id flatbuffers_Id
#endif
#define AllWatchSerialize_ImageBackground_type_hash ((flatbuffers_thash_t)0x799c6728)
#define AllWatchSerialize_ImageBackground_type_Id "\x28\x67\x9c\x79"
#ifndef AllWatchSerialize_Component_Id
#define AllWatchSerialize_Component_Id flatbuffers_Id
#endif
#define AllWatchSerialize_Component_type_hash ((flatbuffers_thash_t)0xcc524402)
#define AllWatchSerialize_Component_type_Id "\x02\x44\x52\xcc"



struct AllWatchSerialize_ProgressBar_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_ProgressBar_vec_len(AllWatchSerialize_ProgressBar_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_ProgressBar_table_t AllWatchSerialize_ProgressBar_vec_at(AllWatchSerialize_ProgressBar_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_ProgressBar_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_ProgressBar)

__flatbuffers_define_scalar_field(0, AllWatchSerialize_ProgressBar, progress, flatbuffers_float, float, 0.000000f)

struct AllWatchSerialize_ImageBackground_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_ImageBackground_vec_len(AllWatchSerialize_ImageBackground_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_ImageBackground_table_t AllWatchSerialize_ImageBackground_vec_at(AllWatchSerialize_ImageBackground_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_ImageBackground_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_ImageBackground)

__flatbuffers_define_vector_field(0, AllWatchSerialize_ImageBackground, image, flatbuffers_int8_vec_t, 0)
typedef uint8_t AllWatchSerialize_Components_union_type_t;
__flatbuffers_define_integer_type(AllWatchSerialize_Components, AllWatchSerialize_Components_union_type_t, 8)
__flatbuffers_define_union(flatbuffers_, AllWatchSerialize_Components)
#define AllWatchSerialize_Components_NONE ((AllWatchSerialize_Components_union_type_t)UINT8_C(0))
#define AllWatchSerialize_Components_ProgressBar ((AllWatchSerialize_Components_union_type_t)UINT8_C(1))
#define AllWatchSerialize_Components_ImageBackground ((AllWatchSerialize_Components_union_type_t)UINT8_C(2))

static inline const char *AllWatchSerialize_Components_type_name(AllWatchSerialize_Components_union_type_t type)
{
    switch (type) {
    case AllWatchSerialize_Components_NONE: return "NONE";
    case AllWatchSerialize_Components_ProgressBar: return "ProgressBar";
    case AllWatchSerialize_Components_ImageBackground: return "ImageBackground";
    default: return "";
    }
}

static inline int AllWatchSerialize_Components_is_known_type(AllWatchSerialize_Components_union_type_t type)
{
    switch (type) {
    case AllWatchSerialize_Components_NONE: return 1;
    case AllWatchSerialize_Components_ProgressBar: return 1;
    case AllWatchSerialize_Components_ImageBackground: return 1;
    default: return 0;
    }
}


struct AllWatchSerialize_Component_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_Component_vec_len(AllWatchSerialize_Component_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_Component_table_t AllWatchSerialize_Component_vec_at(AllWatchSerialize_Component_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_Component_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_Component)

__flatbuffers_define_union_field(flatbuffers_, 1, AllWatchSerialize_Component, cmp, AllWatchSerialize_Components, 0)

#include "flatcc/flatcc_epilogue.h"
#endif /* COMPONENTS_READER_H */
#ifndef COMPONENTS_BUILDER_H
#define COMPONENTS_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef COMPONENTS_READER_H
#include "Components_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

typedef flatbuffers_union_ref_t AllWatchSerialize_Components_union_ref_t;
typedef flatbuffers_union_vec_ref_t AllWatchSerialize_Components_union_vec_ref_t;
static AllWatchSerialize_Components_union_ref_t AllWatchSerialize_Components_clone(flatbuffers_builder_t *B, AllWatchSerialize_Components_union_t t);

static const flatbuffers_voffset_t __AllWatchSerialize_ProgressBar_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_ProgressBar_ref_t;
static AllWatchSerialize_ProgressBar_ref_t AllWatchSerialize_ProgressBar_clone(flatbuffers_builder_t *B, AllWatchSerialize_ProgressBar_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_ProgressBar, 1)

static const flatbuffers_voffset_t __AllWatchSerialize_ImageBackground_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_ImageBackground_ref_t;
static AllWatchSerialize_ImageBackground_ref_t AllWatchSerialize_ImageBackground_clone(flatbuffers_builder_t *B, AllWatchSerialize_ImageBackground_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_ImageBackground, 1)

static const flatbuffers_voffset_t __AllWatchSerialize_Component_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_Component_ref_t;
static AllWatchSerialize_Component_ref_t AllWatchSerialize_Component_clone(flatbuffers_builder_t *B, AllWatchSerialize_Component_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_Component, 2)

#define __AllWatchSerialize_ProgressBar_formal_args , float v0
#define __AllWatchSerialize_ProgressBar_call_args , v0
static inline AllWatchSerialize_ProgressBar_ref_t AllWatchSerialize_ProgressBar_create(flatbuffers_builder_t *B __AllWatchSerialize_ProgressBar_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_ProgressBar, AllWatchSerialize_ProgressBar_Id, AllWatchSerialize_ProgressBar_type_Id)

#define __AllWatchSerialize_ImageBackground_formal_args , flatbuffers_int8_vec_ref_t v0
#define __AllWatchSerialize_ImageBackground_call_args , v0
static inline AllWatchSerialize_ImageBackground_ref_t AllWatchSerialize_ImageBackground_create(flatbuffers_builder_t *B __AllWatchSerialize_ImageBackground_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_ImageBackground, AllWatchSerialize_ImageBackground_Id, AllWatchSerialize_ImageBackground_type_Id)

#define __AllWatchSerialize_Component_formal_args , AllWatchSerialize_Components_union_ref_t v1
#define __AllWatchSerialize_Component_call_args , v1
static inline AllWatchSerialize_Component_ref_t AllWatchSerialize_Component_create(flatbuffers_builder_t *B __AllWatchSerialize_Component_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_Component, AllWatchSerialize_Component_Id, AllWatchSerialize_Component_type_Id)

static inline AllWatchSerialize_Components_union_ref_t AllWatchSerialize_Components_as_NONE()
{ AllWatchSerialize_Components_union_ref_t uref; uref.type = AllWatchSerialize_Components_NONE; uref.value = 0; return uref; }
static inline AllWatchSerialize_Components_union_ref_t AllWatchSerialize_Components_as_ProgressBar(AllWatchSerialize_ProgressBar_ref_t ref)
{ AllWatchSerialize_Components_union_ref_t uref; uref.type = AllWatchSerialize_Components_ProgressBar; uref.value = ref; return uref; }
static inline AllWatchSerialize_Components_union_ref_t AllWatchSerialize_Components_as_ImageBackground(AllWatchSerialize_ImageBackground_ref_t ref)
{ AllWatchSerialize_Components_union_ref_t uref; uref.type = AllWatchSerialize_Components_ImageBackground; uref.value = ref; return uref; }
__flatbuffers_build_union_vector(flatbuffers_, AllWatchSerialize_Components)

static AllWatchSerialize_Components_union_ref_t AllWatchSerialize_Components_clone(flatbuffers_builder_t *B, AllWatchSerialize_Components_union_t u)
{
    switch (u.type) {
    case 1: return AllWatchSerialize_Components_as_ProgressBar(AllWatchSerialize_ProgressBar_clone(B, (AllWatchSerialize_ProgressBar_table_t)u.value));
    case 2: return AllWatchSerialize_Components_as_ImageBackground(AllWatchSerialize_ImageBackground_clone(B, (AllWatchSerialize_ImageBackground_table_t)u.value));
    default: return AllWatchSerialize_Components_as_NONE();
    }
}

__flatbuffers_build_scalar_field(0, flatbuffers_, AllWatchSerialize_ProgressBar_progress, flatbuffers_float, float, 4, 4, 0.000000f, AllWatchSerialize_ProgressBar)

static inline AllWatchSerialize_ProgressBar_ref_t AllWatchSerialize_ProgressBar_create(flatbuffers_builder_t *B __AllWatchSerialize_ProgressBar_formal_args)
{
    if (AllWatchSerialize_ProgressBar_start(B)
        || AllWatchSerialize_ProgressBar_progress_add(B, v0)) {
        return 0;
    }
    return AllWatchSerialize_ProgressBar_end(B);
}

static AllWatchSerialize_ProgressBar_ref_t AllWatchSerialize_ProgressBar_clone(flatbuffers_builder_t *B, AllWatchSerialize_ProgressBar_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_ProgressBar_start(B)
        || AllWatchSerialize_ProgressBar_progress_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_ProgressBar_end(B));
}

__flatbuffers_build_vector_field(0, flatbuffers_, AllWatchSerialize_ImageBackground_image, flatbuffers_int8, int8_t, AllWatchSerialize_ImageBackground)

static inline AllWatchSerialize_ImageBackground_ref_t AllWatchSerialize_ImageBackground_create(flatbuffers_builder_t *B __AllWatchSerialize_ImageBackground_formal_args)
{
    if (AllWatchSerialize_ImageBackground_start(B)
        || AllWatchSerialize_ImageBackground_image_add(B, v0)) {
        return 0;
    }
    return AllWatchSerialize_ImageBackground_end(B);
}

static AllWatchSerialize_ImageBackground_ref_t AllWatchSerialize_ImageBackground_clone(flatbuffers_builder_t *B, AllWatchSerialize_ImageBackground_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_ImageBackground_start(B)
        || AllWatchSerialize_ImageBackground_image_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_ImageBackground_end(B));
}

__flatbuffers_build_union_field(1, flatbuffers_, AllWatchSerialize_Component_cmp, AllWatchSerialize_Components, AllWatchSerialize_Component)
__flatbuffers_build_union_table_value_field(flatbuffers_, AllWatchSerialize_Component_cmp, AllWatchSerialize_Components, ProgressBar, AllWatchSerialize_ProgressBar)
__flatbuffers_build_union_table_value_field(flatbuffers_, AllWatchSerialize_Component_cmp, AllWatchSerialize_Components, ImageBackground, AllWatchSerialize_ImageBackground)

static inline AllWatchSerialize_Component_ref_t AllWatchSerialize_Component_create(flatbuffers_builder_t *B __AllWatchSerialize_Component_formal_args)
{
    if (AllWatchSerialize_Component_start(B)
        || AllWatchSerialize_Component_cmp_add_value(B, v1)
        || AllWatchSerialize_Component_cmp_add_type(B, v1.type)) {
        return 0;
    }
    return AllWatchSerialize_Component_end(B);
}

static AllWatchSerialize_Component_ref_t AllWatchSerialize_Component_clone(flatbuffers_builder_t *B, AllWatchSerialize_Component_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_Component_start(B)
        || AllWatchSerialize_Component_cmp_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_Component_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* COMPONENTS_BUILDER_H */
#ifndef COMPONENTS_VERIFIER_H
#define COMPONENTS_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef COMPONENTS_READER_H
#include "Components_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_ProgressBar_verify_table(flatcc_table_verifier_descriptor_t *td);
static int AllWatchSerialize_ImageBackground_verify_table(flatcc_table_verifier_descriptor_t *td);
static int AllWatchSerialize_Component_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_Components_union_verifier(flatcc_union_verifier_descriptor_t *ud)
{
    switch (ud->type) {
    case 1: return flatcc_verify_union_table(ud, AllWatchSerialize_ProgressBar_verify_table); /* ProgressBar */
    case 2: return flatcc_verify_union_table(ud, AllWatchSerialize_ImageBackground_verify_table); /* ImageBackground */
    default: return flatcc_verify_ok;
    }
}

static int AllWatchSerialize_ProgressBar_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_field(td, 0, 4, 4) /* progress */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_ProgressBar_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_ProgressBar_Id, &AllWatchSerialize_ProgressBar_verify_table);
}

static inline int AllWatchSerialize_ProgressBar_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_ProgressBar_type_Id, &AllWatchSerialize_ProgressBar_verify_table);
}

static inline int AllWatchSerialize_ProgressBar_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_ProgressBar_verify_table);
}

static inline int AllWatchSerialize_ProgressBar_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_ProgressBar_verify_table);
}

static int AllWatchSerialize_ImageBackground_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_vector_field(td, 0, 0, 1, 1, INT64_C(4294967295)) /* image */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_ImageBackground_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_ImageBackground_Id, &AllWatchSerialize_ImageBackground_verify_table);
}

static inline int AllWatchSerialize_ImageBackground_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_ImageBackground_type_Id, &AllWatchSerialize_ImageBackground_verify_table);
}

static inline int AllWatchSerialize_ImageBackground_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_ImageBackground_verify_table);
}

static inline int AllWatchSerialize_ImageBackground_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_ImageBackground_verify_table);
}

static int AllWatchSerialize_Component_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_union_field(td, 1, 0, &AllWatchSerialize_Components_union_verifier) /* cmp */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_Component_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Component_Id, &AllWatchSerialize_Component_verify_table);
}

static inline int AllWatchSerialize_Component_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Component_type_Id, &AllWatchSerialize_Component_verify_table);
}

static inline int AllWatchSerialize_Component_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_Component_verify_table);
}

static inline int AllWatchSerialize_Component_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_Component_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* COMPONENTS_VERIFIER_H */
#ifndef TEXTDATA_READER_H
#define TEXTDATA_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#ifndef COMPONENTS_READER_H
#include "Components_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_TextData_table *AllWatchSerialize_TextData_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_TextData_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_TextData_mutable_vec_t;
#ifndef AllWatchSerialize_TextData_Id
#define AllWatchSerialize_TextData_Id flatbuffers_Id
#endif
#define AllWatchSerialize_TextData_type_hash ((flatbuffers_thash_t)0xc9bca268)
#define AllWatchSerialize_TextData_type_Id "\x68\xa2\xbc\xc9"



struct AllWatchSerialize_TextData_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_TextData_vec_len(AllWatchSerialize_TextData_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_TextData_table_t AllWatchSerialize_TextData_vec_at(AllWatchSerialize_TextData_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_TextData_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_TextData)

__flatbuffers_define_string_field(0, AllWatchSerialize_TextData, major, 0)
__flatbuffers_define_string_field(1, AllWatchSerialize_TextData, minor, 0)
__flatbuffers_define_vector_field(2, AllWatchSerialize_TextData, additionalComponents, AllWatchSerialize_Component_vec_t, 0)

#include "flatcc/flatcc_epilogue.h"
#endif /* TEXTDATA_READER_H */
#ifndef TEXTDATA_BUILDER_H
#define TEXTDATA_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef TEXTDATA_READER_H
#include "TextData_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#ifndef COMPONENTS_BUILDER_H
#include "Components_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

static const flatbuffers_voffset_t __AllWatchSerialize_TextData_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_TextData_ref_t;
static AllWatchSerialize_TextData_ref_t AllWatchSerialize_TextData_clone(flatbuffers_builder_t *B, AllWatchSerialize_TextData_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_TextData, 3)

#define __AllWatchSerialize_TextData_formal_args , flatbuffers_string_ref_t v0, flatbuffers_string_ref_t v1, AllWatchSerialize_Component_vec_ref_t v2
#define __AllWatchSerialize_TextData_call_args , v0, v1, v2
static inline AllWatchSerialize_TextData_ref_t AllWatchSerialize_TextData_create(flatbuffers_builder_t *B __AllWatchSerialize_TextData_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_TextData, AllWatchSerialize_TextData_Id, AllWatchSerialize_TextData_type_Id)

__flatbuffers_build_string_field(0, flatbuffers_, AllWatchSerialize_TextData_major, AllWatchSerialize_TextData)
__flatbuffers_build_string_field(1, flatbuffers_, AllWatchSerialize_TextData_minor, AllWatchSerialize_TextData)
__flatbuffers_build_table_vector_field(2, flatbuffers_, AllWatchSerialize_TextData_additionalComponents, AllWatchSerialize_Component, AllWatchSerialize_TextData)

static inline AllWatchSerialize_TextData_ref_t AllWatchSerialize_TextData_create(flatbuffers_builder_t *B __AllWatchSerialize_TextData_formal_args)
{
    if (AllWatchSerialize_TextData_start(B)
        || AllWatchSerialize_TextData_major_add(B, v0)
        || AllWatchSerialize_TextData_minor_add(B, v1)
        || AllWatchSerialize_TextData_additionalComponents_add(B, v2)) {
        return 0;
    }
    return AllWatchSerialize_TextData_end(B);
}

static AllWatchSerialize_TextData_ref_t AllWatchSerialize_TextData_clone(flatbuffers_builder_t *B, AllWatchSerialize_TextData_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_TextData_start(B)
        || AllWatchSerialize_TextData_major_pick(B, t)
        || AllWatchSerialize_TextData_minor_pick(B, t)
        || AllWatchSerialize_TextData_additionalComponents_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_TextData_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* TEXTDATA_BUILDER_H */
#ifndef TEXTDATA_VERIFIER_H
#define TEXTDATA_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef TEXTDATA_READER_H
#include "TextData_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#ifndef COMPONENTS_VERIFIER_H
#include "Components_verifier.h"
#endif
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_TextData_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_TextData_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_string_field(td, 0, 0) /* major */)) return ret;
    if ((ret = flatcc_verify_string_field(td, 1, 0) /* minor */)) return ret;
    if ((ret = flatcc_verify_table_vector_field(td, 2, 0, &AllWatchSerialize_Component_verify_table) /* additionalComponents */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_TextData_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_TextData_Id, &AllWatchSerialize_TextData_verify_table);
}

static inline int AllWatchSerialize_TextData_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_TextData_type_Id, &AllWatchSerialize_TextData_verify_table);
}

static inline int AllWatchSerialize_TextData_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_TextData_verify_table);
}

static inline int AllWatchSerialize_TextData_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_TextData_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* TEXTDATA_VERIFIER_H */
#ifndef DEFAULTDATATYPES_READER_H
#define DEFAULTDATATYPES_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif



typedef int16_t AllWatchSerialize_DefaultDatatypes_enum_t;
__flatbuffers_define_integer_type(AllWatchSerialize_DefaultDatatypes, AllWatchSerialize_DefaultDatatypes_enum_t, 16)
#define AllWatchSerialize_DefaultDatatypes_Text ((AllWatchSerialize_DefaultDatatypes_enum_t)INT16_C(0))
#define AllWatchSerialize_DefaultDatatypes_Media ((AllWatchSerialize_DefaultDatatypes_enum_t)INT16_C(1))
#define AllWatchSerialize_DefaultDatatypes_List ((AllWatchSerialize_DefaultDatatypes_enum_t)INT16_C(2))
#define AllWatchSerialize_DefaultDatatypes_Map ((AllWatchSerialize_DefaultDatatypes_enum_t)INT16_C(3))
#define AllWatchSerialize_DefaultDatatypes_Custom ((AllWatchSerialize_DefaultDatatypes_enum_t)INT16_C(4))

static inline const char *AllWatchSerialize_DefaultDatatypes_name(AllWatchSerialize_DefaultDatatypes_enum_t value)
{
    switch (value) {
    case AllWatchSerialize_DefaultDatatypes_Text: return "Text";
    case AllWatchSerialize_DefaultDatatypes_Media: return "Media";
    case AllWatchSerialize_DefaultDatatypes_List: return "List";
    case AllWatchSerialize_DefaultDatatypes_Map: return "Map";
    case AllWatchSerialize_DefaultDatatypes_Custom: return "Custom";
    default: return "";
    }
}

static inline int AllWatchSerialize_DefaultDatatypes_is_known_value(AllWatchSerialize_DefaultDatatypes_enum_t value)
{
    switch (value) {
    case AllWatchSerialize_DefaultDatatypes_Text: return 1;
    case AllWatchSerialize_DefaultDatatypes_Media: return 1;
    case AllWatchSerialize_DefaultDatatypes_List: return 1;
    case AllWatchSerialize_DefaultDatatypes_Map: return 1;
    case AllWatchSerialize_DefaultDatatypes_Custom: return 1;
    default: return 0;
    }
}



#include "flatcc/flatcc_epilogue.h"
#endif /* DEFAULTDATATYPES_READER_H */
#ifndef DEFAULTDATATYPES_BUILDER_H
#define DEFAULTDATATYPES_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef DEFAULTDATATYPES_READER_H
#include "DefaultDatatypes_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

#define __AllWatchSerialize_DefaultDatatypes_formal_args , AllWatchSerialize_DefaultDatatypes_enum_t v0
#define __AllWatchSerialize_DefaultDatatypes_call_args , v0
__flatbuffers_build_scalar(flatbuffers_, AllWatchSerialize_DefaultDatatypes, AllWatchSerialize_DefaultDatatypes_enum_t)

#include "flatcc/flatcc_epilogue.h"
#endif /* DEFAULTDATATYPES_BUILDER_H */
#ifndef DEFAULTDATATYPES_VERIFIER_H
#define DEFAULTDATATYPES_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef DEFAULTDATATYPES_READER_H
#include "DefaultDatatypes_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#include "flatcc/flatcc_prologue.h"


#include "flatcc/flatcc_epilogue.h"
#endif /* DEFAULTDATATYPES_VERIFIER_H */
#ifndef VIEW_READER_H
#define VIEW_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#ifndef LISTDATA_READER_H
#include "ListData_reader.h"
#endif
#ifndef TEXTDATA_READER_H
#include "TextData_reader.h"
#endif
#ifndef ACTION_READER_H
#include "Action_reader.h"
#endif
#ifndef DEFAULTDATATYPES_READER_H
#include "DefaultDatatypes_reader.h"
#endif
#ifndef TEMPLATEROOT_READER_H
#include "TemplateRoot_reader.h"
#endif
#ifndef Id_READER_H
#include "Id_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_View_table *AllWatchSerialize_View_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_View_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_View_mutable_vec_t;
#ifndef AllWatchSerialize_View_Id
#define AllWatchSerialize_View_Id flatbuffers_Id
#endif
#define AllWatchSerialize_View_type_hash ((flatbuffers_thash_t)0x10a39382)
#define AllWatchSerialize_View_type_Id "\x82\x93\xa3\x10"

typedef int16_t AllWatchSerialize_DefaultStyle_enum_t;
__flatbuffers_define_integer_type(AllWatchSerialize_DefaultStyle, AllWatchSerialize_DefaultStyle_enum_t, 16)
#define AllWatchSerialize_DefaultStyle_Notification ((AllWatchSerialize_DefaultStyle_enum_t)INT16_C(0))
#define AllWatchSerialize_DefaultStyle_TextWall ((AllWatchSerialize_DefaultStyle_enum_t)INT16_C(1))
#define AllWatchSerialize_DefaultStyle_ToBottom ((AllWatchSerialize_DefaultStyle_enum_t)INT16_C(2))
#define AllWatchSerialize_DefaultStyle_ToTop ((AllWatchSerialize_DefaultStyle_enum_t)INT16_C(3))
#define AllWatchSerialize_DefaultStyle_Center ((AllWatchSerialize_DefaultStyle_enum_t)INT16_C(4))

static inline const char *AllWatchSerialize_DefaultStyle_name(AllWatchSerialize_DefaultStyle_enum_t value)
{
    switch (value) {
    case AllWatchSerialize_DefaultStyle_Notification: return "Notification";
    case AllWatchSerialize_DefaultStyle_TextWall: return "TextWall";
    case AllWatchSerialize_DefaultStyle_ToBottom: return "ToBottom";
    case AllWatchSerialize_DefaultStyle_ToTop: return "ToTop";
    case AllWatchSerialize_DefaultStyle_Center: return "Center";
    default: return "";
    }
}

static inline int AllWatchSerialize_DefaultStyle_is_known_value(AllWatchSerialize_DefaultStyle_enum_t value)
{
    switch (value) {
    case AllWatchSerialize_DefaultStyle_Notification: return 1;
    case AllWatchSerialize_DefaultStyle_TextWall: return 1;
    case AllWatchSerialize_DefaultStyle_ToBottom: return 1;
    case AllWatchSerialize_DefaultStyle_ToTop: return 1;
    case AllWatchSerialize_DefaultStyle_Center: return 1;
    default: return 0;
    }
}


typedef uint8_t AllWatchSerialize_ViewData_union_type_t;
__flatbuffers_define_integer_type(AllWatchSerialize_ViewData, AllWatchSerialize_ViewData_union_type_t, 8)
__flatbuffers_define_union(flatbuffers_, AllWatchSerialize_ViewData)
#define AllWatchSerialize_ViewData_NONE ((AllWatchSerialize_ViewData_union_type_t)UINT8_C(0))
#define AllWatchSerialize_ViewData_TextData ((AllWatchSerialize_ViewData_union_type_t)UINT8_C(1))
#define AllWatchSerialize_ViewData_ListData ((AllWatchSerialize_ViewData_union_type_t)UINT8_C(2))

static inline const char *AllWatchSerialize_ViewData_type_name(AllWatchSerialize_ViewData_union_type_t type)
{
    switch (type) {
    case AllWatchSerialize_ViewData_NONE: return "NONE";
    case AllWatchSerialize_ViewData_TextData: return "TextData";
    case AllWatchSerialize_ViewData_ListData: return "ListData";
    default: return "";
    }
}

static inline int AllWatchSerialize_ViewData_is_known_type(AllWatchSerialize_ViewData_union_type_t type)
{
    switch (type) {
    case AllWatchSerialize_ViewData_NONE: return 1;
    case AllWatchSerialize_ViewData_TextData: return 1;
    case AllWatchSerialize_ViewData_ListData: return 1;
    default: return 0;
    }
}


struct AllWatchSerialize_View_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_View_vec_len(AllWatchSerialize_View_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_View_table_t AllWatchSerialize_View_vec_at(AllWatchSerialize_View_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_View_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_View)

__flatbuffers_define_table_field(0, AllWatchSerialize_View, id, AllWatchSerialize_Id_table_t, 0)
__flatbuffers_define_string_field(1, AllWatchSerialize_View, name, 0)
__flatbuffers_define_scalar_field(2, AllWatchSerialize_View, datatype, AllWatchSerialize_DefaultDatatypes, AllWatchSerialize_DefaultDatatypes_enum_t, INT16_C(0))
__flatbuffers_define_scalar_field(3, AllWatchSerialize_View, usesTemplate, flatbuffers_bool, flatbuffers_bool_t, UINT8_C(0))
__flatbuffers_define_table_field(4, AllWatchSerialize_View, template, AllWatchSerialize_TemplateRoot_table_t, 0)
__flatbuffers_define_union_field(flatbuffers_, 6, AllWatchSerialize_View, data, AllWatchSerialize_ViewData, 0)
__flatbuffers_define_vector_field(7, AllWatchSerialize_View, actions, AllWatchSerialize_Action_vec_t, 0)
__flatbuffers_define_scalar_field(8, AllWatchSerialize_View, defaultStyle, AllWatchSerialize_DefaultStyle, AllWatchSerialize_DefaultStyle_enum_t, INT16_C(0))

#include "flatcc/flatcc_epilogue.h"
#endif /* VIEW_READER_H */
#ifndef VIEW_BUILDER_H
#define VIEW_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef VIEW_READER_H
#include "View_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#ifndef LISTDATA_BUILDER_H
#include "ListData_builder.h"
#endif
#ifndef TEXTDATA_BUILDER_H
#include "TextData_builder.h"
#endif
#ifndef ACTION_BUILDER_H
#include "Action_builder.h"
#endif
#ifndef DEFAULTDATATYPES_BUILDER_H
#include "DefaultDatatypes_builder.h"
#endif
#ifndef TEMPLATEROOT_BUILDER_H
#include "TemplateRoot_builder.h"
#endif
#ifndef Id_BUILDER_H
#include "Id_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

#define __AllWatchSerialize_DefaultStyle_formal_args , AllWatchSerialize_DefaultStyle_enum_t v0
#define __AllWatchSerialize_DefaultStyle_call_args , v0
__flatbuffers_build_scalar(flatbuffers_, AllWatchSerialize_DefaultStyle, AllWatchSerialize_DefaultStyle_enum_t)

typedef flatbuffers_union_ref_t AllWatchSerialize_ViewData_union_ref_t;
typedef flatbuffers_union_vec_ref_t AllWatchSerialize_ViewData_union_vec_ref_t;
static AllWatchSerialize_ViewData_union_ref_t AllWatchSerialize_ViewData_clone(flatbuffers_builder_t *B, AllWatchSerialize_ViewData_union_t t);

static const flatbuffers_voffset_t __AllWatchSerialize_View_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_View_ref_t;
static AllWatchSerialize_View_ref_t AllWatchSerialize_View_clone(flatbuffers_builder_t *B, AllWatchSerialize_View_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_View, 9)

#define __AllWatchSerialize_View_formal_args ,\
  AllWatchSerialize_Id_ref_t v0, flatbuffers_string_ref_t v1, AllWatchSerialize_DefaultDatatypes_enum_t v2, flatbuffers_bool_t v3,\
  AllWatchSerialize_TemplateRoot_ref_t v4, AllWatchSerialize_ViewData_union_ref_t v6, AllWatchSerialize_Action_vec_ref_t v7, AllWatchSerialize_DefaultStyle_enum_t v8
#define __AllWatchSerialize_View_call_args ,\
  v0, v1, v2, v3,\
  v4, v6, v7, v8
static inline AllWatchSerialize_View_ref_t AllWatchSerialize_View_create(flatbuffers_builder_t *B __AllWatchSerialize_View_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_View, AllWatchSerialize_View_Id, AllWatchSerialize_View_type_Id)

static inline AllWatchSerialize_ViewData_union_ref_t AllWatchSerialize_ViewData_as_NONE()
{ AllWatchSerialize_ViewData_union_ref_t uref; uref.type = AllWatchSerialize_ViewData_NONE; uref.value = 0; return uref; }
static inline AllWatchSerialize_ViewData_union_ref_t AllWatchSerialize_ViewData_as_TextData(AllWatchSerialize_TextData_ref_t ref)
{ AllWatchSerialize_ViewData_union_ref_t uref; uref.type = AllWatchSerialize_ViewData_TextData; uref.value = ref; return uref; }
static inline AllWatchSerialize_ViewData_union_ref_t AllWatchSerialize_ViewData_as_ListData(AllWatchSerialize_ListData_ref_t ref)
{ AllWatchSerialize_ViewData_union_ref_t uref; uref.type = AllWatchSerialize_ViewData_ListData; uref.value = ref; return uref; }
__flatbuffers_build_union_vector(flatbuffers_, AllWatchSerialize_ViewData)

static AllWatchSerialize_ViewData_union_ref_t AllWatchSerialize_ViewData_clone(flatbuffers_builder_t *B, AllWatchSerialize_ViewData_union_t u)
{
    switch (u.type) {
    case 1: return AllWatchSerialize_ViewData_as_TextData(AllWatchSerialize_TextData_clone(B, (AllWatchSerialize_TextData_table_t)u.value));
    case 2: return AllWatchSerialize_ViewData_as_ListData(AllWatchSerialize_ListData_clone(B, (AllWatchSerialize_ListData_table_t)u.value));
    default: return AllWatchSerialize_ViewData_as_NONE();
    }
}

__flatbuffers_build_table_field(0, flatbuffers_, AllWatchSerialize_View_id, AllWatchSerialize_Id, AllWatchSerialize_View)
__flatbuffers_build_string_field(1, flatbuffers_, AllWatchSerialize_View_name, AllWatchSerialize_View)
__flatbuffers_build_scalar_field(2, flatbuffers_, AllWatchSerialize_View_datatype, AllWatchSerialize_DefaultDatatypes, AllWatchSerialize_DefaultDatatypes_enum_t, 2, 2, INT16_C(0), AllWatchSerialize_View)
__flatbuffers_build_scalar_field(3, flatbuffers_, AllWatchSerialize_View_usesTemplate, flatbuffers_bool, flatbuffers_bool_t, 1, 1, UINT8_C(0), AllWatchSerialize_View)
__flatbuffers_build_table_field(4, flatbuffers_, AllWatchSerialize_View_template, AllWatchSerialize_TemplateRoot, AllWatchSerialize_View)
__flatbuffers_build_union_field(6, flatbuffers_, AllWatchSerialize_View_data, AllWatchSerialize_ViewData, AllWatchSerialize_View)
__flatbuffers_build_union_table_value_field(flatbuffers_, AllWatchSerialize_View_data, AllWatchSerialize_ViewData, TextData, AllWatchSerialize_TextData)
__flatbuffers_build_union_table_value_field(flatbuffers_, AllWatchSerialize_View_data, AllWatchSerialize_ViewData, ListData, AllWatchSerialize_ListData)
__flatbuffers_build_table_vector_field(7, flatbuffers_, AllWatchSerialize_View_actions, AllWatchSerialize_Action, AllWatchSerialize_View)
__flatbuffers_build_scalar_field(8, flatbuffers_, AllWatchSerialize_View_defaultStyle, AllWatchSerialize_DefaultStyle, AllWatchSerialize_DefaultStyle_enum_t, 2, 2, INT16_C(0), AllWatchSerialize_View)

static inline AllWatchSerialize_View_ref_t AllWatchSerialize_View_create(flatbuffers_builder_t *B __AllWatchSerialize_View_formal_args)
{
    if (AllWatchSerialize_View_start(B)
        || AllWatchSerialize_View_id_add(B, v0)
        || AllWatchSerialize_View_name_add(B, v1)
        || AllWatchSerialize_View_template_add(B, v4)
        || AllWatchSerialize_View_data_add_value(B, v6)
        || AllWatchSerialize_View_actions_add(B, v7)
        || AllWatchSerialize_View_datatype_add(B, v2)
        || AllWatchSerialize_View_defaultStyle_add(B, v8)
        || AllWatchSerialize_View_usesTemplate_add(B, v3)
        || AllWatchSerialize_View_data_add_type(B, v6.type)) {
        return 0;
    }
    return AllWatchSerialize_View_end(B);
}

static AllWatchSerialize_View_ref_t AllWatchSerialize_View_clone(flatbuffers_builder_t *B, AllWatchSerialize_View_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_View_start(B)
        || AllWatchSerialize_View_id_pick(B, t)
        || AllWatchSerialize_View_name_pick(B, t)
        || AllWatchSerialize_View_template_pick(B, t)
        || AllWatchSerialize_View_data_pick(B, t)
        || AllWatchSerialize_View_actions_pick(B, t)
        || AllWatchSerialize_View_datatype_pick(B, t)
        || AllWatchSerialize_View_defaultStyle_pick(B, t)
        || AllWatchSerialize_View_usesTemplate_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_View_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* VIEW_BUILDER_H */
#ifndef VIEW_VERIFIER_H
#define VIEW_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef VIEW_READER_H
#include "View_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#ifndef LISTDATA_VERIFIER_H
#include "ListData_verifier.h"
#endif
#ifndef TEXTDATA_VERIFIER_H
#include "TextData_verifier.h"
#endif
#ifndef ACTION_VERIFIER_H
#include "Action_verifier.h"
#endif
#ifndef DEFAULTDATATYPES_VERIFIER_H
#include "DefaultDatatypes_verifier.h"
#endif
#ifndef TEMPLATEROOT_VERIFIER_H
#include "TemplateRoot_verifier.h"
#endif
#ifndef Id_VERIFIER_H
#include "Id_verifier.h"
#endif
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_View_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_ViewData_union_verifier(flatcc_union_verifier_descriptor_t *ud)
{
    switch (ud->type) {
    case 1: return flatcc_verify_union_table(ud, AllWatchSerialize_TextData_verify_table); /* TextData */
    case 2: return flatcc_verify_union_table(ud, AllWatchSerialize_ListData_verify_table); /* ListData */
    default: return flatcc_verify_ok;
    }
}

static int AllWatchSerialize_View_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_table_field(td, 0, 0, &AllWatchSerialize_Id_verify_table) /* id */)) return ret;
    if ((ret = flatcc_verify_string_field(td, 1, 0) /* name */)) return ret;
    if ((ret = flatcc_verify_field(td, 2, 2, 2) /* datatype */)) return ret;
    if ((ret = flatcc_verify_field(td, 3, 1, 1) /* usesTemplate */)) return ret;
    if ((ret = flatcc_verify_table_field(td, 4, 0, &AllWatchSerialize_TemplateRoot_verify_table) /* template */)) return ret;
    if ((ret = flatcc_verify_union_field(td, 6, 0, &AllWatchSerialize_ViewData_union_verifier) /* data */)) return ret;
    if ((ret = flatcc_verify_table_vector_field(td, 7, 0, &AllWatchSerialize_Action_verify_table) /* actions */)) return ret;
    if ((ret = flatcc_verify_field(td, 8, 2, 2) /* defaultStyle */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_View_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_View_Id, &AllWatchSerialize_View_verify_table);
}

static inline int AllWatchSerialize_View_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_View_type_Id, &AllWatchSerialize_View_verify_table);
}

static inline int AllWatchSerialize_View_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_View_verify_table);
}

static inline int AllWatchSerialize_View_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_View_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* VIEW_VERIFIER_H */
#ifndef HANDSHAKE_READER_H
#define HANDSHAKE_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#ifndef REQUIREMENTS_READER_H
#include "Requirements_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_Handshake_table *AllWatchSerialize_Handshake_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_Handshake_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_Handshake_mutable_vec_t;
#ifndef AllWatchSerialize_Handshake_Id
#define AllWatchSerialize_Handshake_Id flatbuffers_Id
#endif
#define AllWatchSerialize_Handshake_type_hash ((flatbuffers_thash_t)0xb7040d68)
#define AllWatchSerialize_Handshake_type_Id "\x68\x0d\x04\xb7"



struct AllWatchSerialize_Handshake_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_Handshake_vec_len(AllWatchSerialize_Handshake_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_Handshake_table_t AllWatchSerialize_Handshake_vec_at(AllWatchSerialize_Handshake_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_Handshake_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_Handshake)

__flatbuffers_define_string_field(0, AllWatchSerialize_Handshake, manufacturer, 0)
__flatbuffers_define_string_field(1, AllWatchSerialize_Handshake, modelName, 0)
__flatbuffers_define_string_field(2, AllWatchSerialize_Handshake, extraModelInfo, 0)
__flatbuffers_define_string_field(3, AllWatchSerialize_Handshake, firmwareVersion, 0)
__flatbuffers_define_scalar_field(4, AllWatchSerialize_Handshake, bufferKbSize, flatbuffers_uint16, uint16_t, UINT16_C(0))
__flatbuffers_define_scalar_field(5, AllWatchSerialize_Handshake, usesEncryption, flatbuffers_bool, flatbuffers_bool_t, UINT8_C(0))
__flatbuffers_define_vector_field(6, AllWatchSerialize_Handshake, requirements, AllWatchSerialize_Requirements_vec_t, 0)

#include "flatcc/flatcc_epilogue.h"
#endif /* HANDSHAKE_READER_H */
#ifndef HANDSHAKE_BUILDER_H
#define HANDSHAKE_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef HANDSHAKE_READER_H
#include "Handshake_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#ifndef REQUIREMENTS_BUILDER_H
#include "Requirements_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

static const flatbuffers_voffset_t __AllWatchSerialize_Handshake_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_Handshake_ref_t;
static AllWatchSerialize_Handshake_ref_t AllWatchSerialize_Handshake_clone(flatbuffers_builder_t *B, AllWatchSerialize_Handshake_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_Handshake, 7)

#define __AllWatchSerialize_Handshake_formal_args ,\
  flatbuffers_string_ref_t v0, flatbuffers_string_ref_t v1, flatbuffers_string_ref_t v2, flatbuffers_string_ref_t v3,\
  uint16_t v4, flatbuffers_bool_t v5, AllWatchSerialize_Requirements_vec_ref_t v6
#define __AllWatchSerialize_Handshake_call_args ,\
  v0, v1, v2, v3,\
  v4, v5, v6
static inline AllWatchSerialize_Handshake_ref_t AllWatchSerialize_Handshake_create(flatbuffers_builder_t *B __AllWatchSerialize_Handshake_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_Handshake, AllWatchSerialize_Handshake_Id, AllWatchSerialize_Handshake_type_Id)

__flatbuffers_build_string_field(0, flatbuffers_, AllWatchSerialize_Handshake_manufacturer, AllWatchSerialize_Handshake)
__flatbuffers_build_string_field(1, flatbuffers_, AllWatchSerialize_Handshake_modelName, AllWatchSerialize_Handshake)
__flatbuffers_build_string_field(2, flatbuffers_, AllWatchSerialize_Handshake_extraModelInfo, AllWatchSerialize_Handshake)
__flatbuffers_build_string_field(3, flatbuffers_, AllWatchSerialize_Handshake_firmwareVersion, AllWatchSerialize_Handshake)
__flatbuffers_build_scalar_field(4, flatbuffers_, AllWatchSerialize_Handshake_bufferKbSize, flatbuffers_uint16, uint16_t, 2, 2, UINT16_C(0), AllWatchSerialize_Handshake)
__flatbuffers_build_scalar_field(5, flatbuffers_, AllWatchSerialize_Handshake_usesEncryption, flatbuffers_bool, flatbuffers_bool_t, 1, 1, UINT8_C(0), AllWatchSerialize_Handshake)
__flatbuffers_build_vector_field(6, flatbuffers_, AllWatchSerialize_Handshake_requirements, AllWatchSerialize_Requirements, AllWatchSerialize_Requirements_enum_t, AllWatchSerialize_Handshake)

static inline AllWatchSerialize_Handshake_ref_t AllWatchSerialize_Handshake_create(flatbuffers_builder_t *B __AllWatchSerialize_Handshake_formal_args)
{
    if (AllWatchSerialize_Handshake_start(B)
        || AllWatchSerialize_Handshake_manufacturer_add(B, v0)
        || AllWatchSerialize_Handshake_modelName_add(B, v1)
        || AllWatchSerialize_Handshake_extraModelInfo_add(B, v2)
        || AllWatchSerialize_Handshake_firmwareVersion_add(B, v3)
        || AllWatchSerialize_Handshake_requirements_add(B, v6)
        || AllWatchSerialize_Handshake_bufferKbSize_add(B, v4)
        || AllWatchSerialize_Handshake_usesEncryption_add(B, v5)) {
        return 0;
    }
    return AllWatchSerialize_Handshake_end(B);
}

static AllWatchSerialize_Handshake_ref_t AllWatchSerialize_Handshake_clone(flatbuffers_builder_t *B, AllWatchSerialize_Handshake_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_Handshake_start(B)
        || AllWatchSerialize_Handshake_manufacturer_pick(B, t)
        || AllWatchSerialize_Handshake_modelName_pick(B, t)
        || AllWatchSerialize_Handshake_extraModelInfo_pick(B, t)
        || AllWatchSerialize_Handshake_firmwareVersion_pick(B, t)
        || AllWatchSerialize_Handshake_requirements_pick(B, t)
        || AllWatchSerialize_Handshake_bufferKbSize_pick(B, t)
        || AllWatchSerialize_Handshake_usesEncryption_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_Handshake_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* HANDSHAKE_BUILDER_H */
#ifndef HANDSHAKE_VERIFIER_H
#define HANDSHAKE_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef HANDSHAKE_READER_H
#include "Handshake_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#ifndef REQUIREMENTS_VERIFIER_H
#include "Requirements_verifier.h"
#endif
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_Handshake_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_Handshake_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_string_field(td, 0, 0) /* manufacturer */)) return ret;
    if ((ret = flatcc_verify_string_field(td, 1, 0) /* modelName */)) return ret;
    if ((ret = flatcc_verify_string_field(td, 2, 0) /* extraModelInfo */)) return ret;
    if ((ret = flatcc_verify_string_field(td, 3, 0) /* firmwareVersion */)) return ret;
    if ((ret = flatcc_verify_field(td, 4, 2, 2) /* bufferKbSize */)) return ret;
    if ((ret = flatcc_verify_field(td, 5, 1, 1) /* usesEncryption */)) return ret;
    if ((ret = flatcc_verify_vector_field(td, 6, 0, 2, 2, INT64_C(2147483647)) /* requirements */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_Handshake_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Handshake_Id, &AllWatchSerialize_Handshake_verify_table);
}

static inline int AllWatchSerialize_Handshake_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Handshake_type_Id, &AllWatchSerialize_Handshake_verify_table);
}

static inline int AllWatchSerialize_Handshake_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_Handshake_verify_table);
}

static inline int AllWatchSerialize_Handshake_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_Handshake_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* HANDSHAKE_VERIFIER_H */
#ifndef COMMAND_READER_H
#define COMMAND_READER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#ifndef ACTION_READER_H
#include "Action_reader.h"
#endif
#ifndef APPLICATION_READER_H
#include "Application_reader.h"
#endif
#ifndef VIEW_READER_H
#include "View_reader.h"
#endif
#ifndef Id_READER_H
#include "Id_reader.h"
#endif
#ifndef HANDSHAKE_READER_H
#include "Handshake_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct AllWatchSerialize_Command_table *AllWatchSerialize_Command_table_t;
typedef const flatbuffers_uoffset_t *AllWatchSerialize_Command_vec_t;
typedef flatbuffers_uoffset_t *AllWatchSerialize_Command_mutable_vec_t;
#ifndef AllWatchSerialize_Command_Id
#define AllWatchSerialize_Command_Id flatbuffers_Id
#endif
#define AllWatchSerialize_Command_type_hash ((flatbuffers_thash_t)0xd4b1d714)
#define AllWatchSerialize_Command_type_Id "\x14\xd7\xb1\xd4"


typedef uint8_t AllWatchSerialize_CommandType_union_type_t;
__flatbuffers_define_integer_type(AllWatchSerialize_CommandType, AllWatchSerialize_CommandType_union_type_t, 8)
__flatbuffers_define_union(flatbuffers_, AllWatchSerialize_CommandType)
#define AllWatchSerialize_CommandType_NONE ((AllWatchSerialize_CommandType_union_type_t)UINT8_C(0))
#define AllWatchSerialize_CommandType_Handshake ((AllWatchSerialize_CommandType_union_type_t)UINT8_C(1))
#define AllWatchSerialize_CommandType_Application ((AllWatchSerialize_CommandType_union_type_t)UINT8_C(2))
#define AllWatchSerialize_CommandType_Action ((AllWatchSerialize_CommandType_union_type_t)UINT8_C(3))
#define AllWatchSerialize_CommandType_View ((AllWatchSerialize_CommandType_union_type_t)UINT8_C(4))

static inline const char *AllWatchSerialize_CommandType_type_name(AllWatchSerialize_CommandType_union_type_t type)
{
    switch (type) {
    case AllWatchSerialize_CommandType_NONE: return "NONE";
    case AllWatchSerialize_CommandType_Handshake: return "Handshake";
    case AllWatchSerialize_CommandType_Application: return "Application";
    case AllWatchSerialize_CommandType_Action: return "Action";
    case AllWatchSerialize_CommandType_View: return "View";
    default: return "";
    }
}

static inline int AllWatchSerialize_CommandType_is_known_type(AllWatchSerialize_CommandType_union_type_t type)
{
    switch (type) {
    case AllWatchSerialize_CommandType_NONE: return 1;
    case AllWatchSerialize_CommandType_Handshake: return 1;
    case AllWatchSerialize_CommandType_Application: return 1;
    case AllWatchSerialize_CommandType_Action: return 1;
    case AllWatchSerialize_CommandType_View: return 1;
    default: return 0;
    }
}


struct AllWatchSerialize_Command_table { uint8_t unused__; };

static inline size_t AllWatchSerialize_Command_vec_len(AllWatchSerialize_Command_vec_t vec)
__flatbuffers_vec_len(vec)
static inline AllWatchSerialize_Command_table_t AllWatchSerialize_Command_vec_at(AllWatchSerialize_Command_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(AllWatchSerialize_Command_table_t, vec, i, 0)
__flatbuffers_table_as_root(AllWatchSerialize_Command)

__flatbuffers_define_union_field(flatbuffers_, 1, AllWatchSerialize_Command, command, AllWatchSerialize_CommandType, 0)
__flatbuffers_define_table_field(2, AllWatchSerialize_Command, id, AllWatchSerialize_Id_table_t, 0)

#include "flatcc/flatcc_epilogue.h"
#endif /* COMMAND_READER_H */
#ifndef COMMAND_BUILDER_H
#define COMMAND_BUILDER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef COMMAND_READER_H
#include "Command_reader.h"
#endif
#ifndef FLATBUFFERS_COMMON_BUILDER_H
#include "flatbuffers_common_builder.h"
#endif
#ifndef ACTION_BUILDER_H
#include "Action_builder.h"
#endif
#ifndef APPLICATION_BUILDER_H
#include "Application_builder.h"
#endif
#ifndef VIEW_BUILDER_H
#include "View_builder.h"
#endif
#ifndef Id_BUILDER_H
#include "Id_builder.h"
#endif
#ifndef HANDSHAKE_BUILDER_H
#include "Handshake_builder.h"
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_Id
#define flatbuffers_Id 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif

typedef flatbuffers_union_ref_t AllWatchSerialize_CommandType_union_ref_t;
typedef flatbuffers_union_vec_ref_t AllWatchSerialize_CommandType_union_vec_ref_t;
static AllWatchSerialize_CommandType_union_ref_t AllWatchSerialize_CommandType_clone(flatbuffers_builder_t *B, AllWatchSerialize_CommandType_union_t t);

static const flatbuffers_voffset_t __AllWatchSerialize_Command_required[] = { 0 };
typedef flatbuffers_ref_t AllWatchSerialize_Command_ref_t;
static AllWatchSerialize_Command_ref_t AllWatchSerialize_Command_clone(flatbuffers_builder_t *B, AllWatchSerialize_Command_table_t t);
__flatbuffers_build_table(flatbuffers_, AllWatchSerialize_Command, 3)

#define __AllWatchSerialize_Command_formal_args , AllWatchSerialize_CommandType_union_ref_t v1, AllWatchSerialize_Id_ref_t v2
#define __AllWatchSerialize_Command_call_args , v1, v2
static inline AllWatchSerialize_Command_ref_t AllWatchSerialize_Command_create(flatbuffers_builder_t *B __AllWatchSerialize_Command_formal_args);
__flatbuffers_build_table_prolog(flatbuffers_, AllWatchSerialize_Command, AllWatchSerialize_Command_Id, AllWatchSerialize_Command_type_Id)

static inline AllWatchSerialize_CommandType_union_ref_t AllWatchSerialize_CommandType_as_NONE()
{ AllWatchSerialize_CommandType_union_ref_t uref; uref.type = AllWatchSerialize_CommandType_NONE; uref.value = 0; return uref; }
static inline AllWatchSerialize_CommandType_union_ref_t AllWatchSerialize_CommandType_as_Handshake(AllWatchSerialize_Handshake_ref_t ref)
{ AllWatchSerialize_CommandType_union_ref_t uref; uref.type = AllWatchSerialize_CommandType_Handshake; uref.value = ref; return uref; }
static inline AllWatchSerialize_CommandType_union_ref_t AllWatchSerialize_CommandType_as_Application(AllWatchSerialize_Application_ref_t ref)
{ AllWatchSerialize_CommandType_union_ref_t uref; uref.type = AllWatchSerialize_CommandType_Application; uref.value = ref; return uref; }
static inline AllWatchSerialize_CommandType_union_ref_t AllWatchSerialize_CommandType_as_Action(AllWatchSerialize_Action_ref_t ref)
{ AllWatchSerialize_CommandType_union_ref_t uref; uref.type = AllWatchSerialize_CommandType_Action; uref.value = ref; return uref; }
static inline AllWatchSerialize_CommandType_union_ref_t AllWatchSerialize_CommandType_as_View(AllWatchSerialize_View_ref_t ref)
{ AllWatchSerialize_CommandType_union_ref_t uref; uref.type = AllWatchSerialize_CommandType_View; uref.value = ref; return uref; }
__flatbuffers_build_union_vector(flatbuffers_, AllWatchSerialize_CommandType)

static AllWatchSerialize_CommandType_union_ref_t AllWatchSerialize_CommandType_clone(flatbuffers_builder_t *B, AllWatchSerialize_CommandType_union_t u)
{
    switch (u.type) {
    case 1: return AllWatchSerialize_CommandType_as_Handshake(AllWatchSerialize_Handshake_clone(B, (AllWatchSerialize_Handshake_table_t)u.value));
    case 2: return AllWatchSerialize_CommandType_as_Application(AllWatchSerialize_Application_clone(B, (AllWatchSerialize_Application_table_t)u.value));
    case 3: return AllWatchSerialize_CommandType_as_Action(AllWatchSerialize_Action_clone(B, (AllWatchSerialize_Action_table_t)u.value));
    case 4: return AllWatchSerialize_CommandType_as_View(AllWatchSerialize_View_clone(B, (AllWatchSerialize_View_table_t)u.value));
    default: return AllWatchSerialize_CommandType_as_NONE();
    }
}

__flatbuffers_build_union_field(1, flatbuffers_, AllWatchSerialize_Command_command, AllWatchSerialize_CommandType, AllWatchSerialize_Command)
__flatbuffers_build_union_table_value_field(flatbuffers_, AllWatchSerialize_Command_command, AllWatchSerialize_CommandType, Handshake, AllWatchSerialize_Handshake)
__flatbuffers_build_union_table_value_field(flatbuffers_, AllWatchSerialize_Command_command, AllWatchSerialize_CommandType, Application, AllWatchSerialize_Application)
__flatbuffers_build_union_table_value_field(flatbuffers_, AllWatchSerialize_Command_command, AllWatchSerialize_CommandType, Action, AllWatchSerialize_Action)
__flatbuffers_build_union_table_value_field(flatbuffers_, AllWatchSerialize_Command_command, AllWatchSerialize_CommandType, View, AllWatchSerialize_View)
__flatbuffers_build_table_field(2, flatbuffers_, AllWatchSerialize_Command_id, AllWatchSerialize_Id, AllWatchSerialize_Command)

static inline AllWatchSerialize_Command_ref_t AllWatchSerialize_Command_create(flatbuffers_builder_t *B __AllWatchSerialize_Command_formal_args)
{
    if (AllWatchSerialize_Command_start(B)
        || AllWatchSerialize_Command_command_add_value(B, v1)
        || AllWatchSerialize_Command_id_add(B, v2)
        || AllWatchSerialize_Command_command_add_type(B, v1.type)) {
        return 0;
    }
    return AllWatchSerialize_Command_end(B);
}

static AllWatchSerialize_Command_ref_t AllWatchSerialize_Command_clone(flatbuffers_builder_t *B, AllWatchSerialize_Command_table_t t)
{
    __flatbuffers_memoize_begin(B, t);
    if (AllWatchSerialize_Command_start(B)
        || AllWatchSerialize_Command_command_pick(B, t)
        || AllWatchSerialize_Command_id_pick(B, t)) {
        return 0;
    }
    __flatbuffers_memoize_end(B, t, AllWatchSerialize_Command_end(B));
}

#include "flatcc/flatcc_epilogue.h"
#endif /* COMMAND_BUILDER_H */
#ifndef COMMAND_VERIFIER_H
#define COMMAND_VERIFIER_H

/* Generated by flatcc 0.5.2 FlatBuffers schema compiler for C by dvide.com */

#ifndef COMMAND_READER_H
#include "Command_reader.h"
#endif
#include "flatcc/flatcc_verifier.h"
#ifndef ACTION_VERIFIER_H
#include "Action_verifier.h"
#endif
#ifndef APPLICATION_VERIFIER_H
#include "Application_verifier.h"
#endif
#ifndef VIEW_VERIFIER_H
#include "View_verifier.h"
#endif
#ifndef Id_VERIFIER_H
#include "Id_verifier.h"
#endif
#ifndef HANDSHAKE_VERIFIER_H
#include "Handshake_verifier.h"
#endif
#include "flatcc/flatcc_prologue.h"

static int AllWatchSerialize_Command_verify_table(flatcc_table_verifier_descriptor_t *td);

static int AllWatchSerialize_CommandType_union_verifier(flatcc_union_verifier_descriptor_t *ud)
{
    switch (ud->type) {
    case 1: return flatcc_verify_union_table(ud, AllWatchSerialize_Handshake_verify_table); /* Handshake */
    case 2: return flatcc_verify_union_table(ud, AllWatchSerialize_Application_verify_table); /* Application */
    case 3: return flatcc_verify_union_table(ud, AllWatchSerialize_Action_verify_table); /* Action */
    case 4: return flatcc_verify_union_table(ud, AllWatchSerialize_View_verify_table); /* View */
    default: return flatcc_verify_ok;
    }
}

static int AllWatchSerialize_Command_verify_table(flatcc_table_verifier_descriptor_t *td)
{
    int ret;
    if ((ret = flatcc_verify_union_field(td, 1, 0, &AllWatchSerialize_CommandType_union_verifier) /* command */)) return ret;
    if ((ret = flatcc_verify_table_field(td, 2, 0, &AllWatchSerialize_Id_verify_table) /* id */)) return ret;
    return flatcc_verify_ok;
}

static inline int AllWatchSerialize_Command_verify_as_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Command_Id, &AllWatchSerialize_Command_verify_table);
}

static inline int AllWatchSerialize_Command_verify_as_typed_root(const void *buf, size_t bufsiz)
{
    return flatcc_verify_table_as_root(buf, bufsiz, AllWatchSerialize_Command_type_Id, &AllWatchSerialize_Command_verify_table);
}

static inline int AllWatchSerialize_Command_verify_as_root_with_Id(const void *buf, size_t bufsiz, const char *fid)
{
    return flatcc_verify_table_as_root(buf, bufsiz, fid, &AllWatchSerialize_Command_verify_table);
}

static inline int AllWatchSerialize_Command_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash)
{
    return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &AllWatchSerialize_Command_verify_table);
}

#include "flatcc/flatcc_epilogue.h"
#endif /* COMMAND_VERIFIER_H */
