github.com/google/syzkaller@v0.0.0-20240517125934-c0f1611a36d6/pkg/flatrpc/flatrpc.h (about)

     1  // automatically generated by the FlatBuffers compiler, do not modify
     2  
     3  
     4  #ifndef FLATBUFFERS_GENERATED_FLATRPC_RPC_H_
     5  #define FLATBUFFERS_GENERATED_FLATRPC_RPC_H_
     6  
     7  #include "flatbuffers/flatbuffers.h"
     8  
     9  // Ensure the included flatbuffers.h is the same version as when this file was
    10  // generated, otherwise it may not be compatible.
    11  static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
    12                FLATBUFFERS_VERSION_MINOR == 0 &&
    13                FLATBUFFERS_VERSION_REVISION == 8,
    14               "Non-compatible flatbuffers version included");
    15  
    16  namespace rpc {
    17  
    18  struct ConnectRequestRaw;
    19  struct ConnectRequestRawBuilder;
    20  struct ConnectRequestRawT;
    21  
    22  struct ConnectReplyRaw;
    23  struct ConnectReplyRawBuilder;
    24  struct ConnectReplyRawT;
    25  
    26  struct InfoRequestRaw;
    27  struct InfoRequestRawBuilder;
    28  struct InfoRequestRawT;
    29  
    30  struct InfoReplyRaw;
    31  struct InfoReplyRawBuilder;
    32  struct InfoReplyRawT;
    33  
    34  struct FileInfoRaw;
    35  struct FileInfoRawBuilder;
    36  struct FileInfoRawT;
    37  
    38  struct GlobInfoRaw;
    39  struct GlobInfoRawBuilder;
    40  struct GlobInfoRawT;
    41  
    42  struct FeatureInfoRaw;
    43  struct FeatureInfoRawBuilder;
    44  struct FeatureInfoRawT;
    45  
    46  struct HostMessageRaw;
    47  struct HostMessageRawBuilder;
    48  struct HostMessageRawT;
    49  
    50  struct ExecutorMessageRaw;
    51  struct ExecutorMessageRawBuilder;
    52  struct ExecutorMessageRawT;
    53  
    54  struct ExecRequestRaw;
    55  struct ExecRequestRawBuilder;
    56  struct ExecRequestRawT;
    57  
    58  struct SignalUpdateRaw;
    59  struct SignalUpdateRawBuilder;
    60  struct SignalUpdateRawT;
    61  
    62  struct ExecutingMessageRaw;
    63  struct ExecutingMessageRawBuilder;
    64  struct ExecutingMessageRawT;
    65  
    66  struct CallInfoRaw;
    67  struct CallInfoRawBuilder;
    68  struct CallInfoRawT;
    69  
    70  struct ComparisonRaw;
    71  
    72  struct ProgInfoRaw;
    73  struct ProgInfoRawBuilder;
    74  struct ProgInfoRawT;
    75  
    76  struct ExecResultRaw;
    77  struct ExecResultRawBuilder;
    78  struct ExecResultRawT;
    79  
    80  enum class Feature : uint64_t {
    81    Coverage = 1ULL,
    82    Comparisons = 2ULL,
    83    ExtraCoverage = 4ULL,
    84    DelayKcovMmap = 8ULL,
    85    SandboxSetuid = 16ULL,
    86    SandboxNamespace = 32ULL,
    87    SandboxAndroid = 64ULL,
    88    Fault = 128ULL,
    89    Leak = 256ULL,
    90    NetInjection = 512ULL,
    91    NetDevices = 1024ULL,
    92    KCSAN = 2048ULL,
    93    DevlinkPCI = 4096ULL,
    94    NicVF = 8192ULL,
    95    USBEmulation = 16384ULL,
    96    VhciInjection = 32768ULL,
    97    WifiEmulation = 65536ULL,
    98    LRWPANEmulation = 131072ULL,
    99    BinFmtMisc = 262144ULL,
   100    Swap = 524288ULL,
   101    NONE = 0,
   102    ANY = 1048575ULL
   103  };
   104  FLATBUFFERS_DEFINE_BITMASK_OPERATORS(Feature, uint64_t)
   105  
   106  inline const Feature (&EnumValuesFeature())[20] {
   107    static const Feature values[] = {
   108      Feature::Coverage,
   109      Feature::Comparisons,
   110      Feature::ExtraCoverage,
   111      Feature::DelayKcovMmap,
   112      Feature::SandboxSetuid,
   113      Feature::SandboxNamespace,
   114      Feature::SandboxAndroid,
   115      Feature::Fault,
   116      Feature::Leak,
   117      Feature::NetInjection,
   118      Feature::NetDevices,
   119      Feature::KCSAN,
   120      Feature::DevlinkPCI,
   121      Feature::NicVF,
   122      Feature::USBEmulation,
   123      Feature::VhciInjection,
   124      Feature::WifiEmulation,
   125      Feature::LRWPANEmulation,
   126      Feature::BinFmtMisc,
   127      Feature::Swap
   128    };
   129    return values;
   130  }
   131  
   132  inline const char *EnumNameFeature(Feature e) {
   133    switch (e) {
   134      case Feature::Coverage: return "Coverage";
   135      case Feature::Comparisons: return "Comparisons";
   136      case Feature::ExtraCoverage: return "ExtraCoverage";
   137      case Feature::DelayKcovMmap: return "DelayKcovMmap";
   138      case Feature::SandboxSetuid: return "SandboxSetuid";
   139      case Feature::SandboxNamespace: return "SandboxNamespace";
   140      case Feature::SandboxAndroid: return "SandboxAndroid";
   141      case Feature::Fault: return "Fault";
   142      case Feature::Leak: return "Leak";
   143      case Feature::NetInjection: return "NetInjection";
   144      case Feature::NetDevices: return "NetDevices";
   145      case Feature::KCSAN: return "KCSAN";
   146      case Feature::DevlinkPCI: return "DevlinkPCI";
   147      case Feature::NicVF: return "NicVF";
   148      case Feature::USBEmulation: return "USBEmulation";
   149      case Feature::VhciInjection: return "VhciInjection";
   150      case Feature::WifiEmulation: return "WifiEmulation";
   151      case Feature::LRWPANEmulation: return "LRWPANEmulation";
   152      case Feature::BinFmtMisc: return "BinFmtMisc";
   153      case Feature::Swap: return "Swap";
   154      default: return "";
   155    }
   156  }
   157  
   158  enum class HostMessagesRaw : uint8_t {
   159    NONE = 0,
   160    ExecRequest = 1,
   161    SignalUpdate = 2,
   162    MIN = NONE,
   163    MAX = SignalUpdate
   164  };
   165  
   166  inline const HostMessagesRaw (&EnumValuesHostMessagesRaw())[3] {
   167    static const HostMessagesRaw values[] = {
   168      HostMessagesRaw::NONE,
   169      HostMessagesRaw::ExecRequest,
   170      HostMessagesRaw::SignalUpdate
   171    };
   172    return values;
   173  }
   174  
   175  inline const char * const *EnumNamesHostMessagesRaw() {
   176    static const char * const names[4] = {
   177      "NONE",
   178      "ExecRequest",
   179      "SignalUpdate",
   180      nullptr
   181    };
   182    return names;
   183  }
   184  
   185  inline const char *EnumNameHostMessagesRaw(HostMessagesRaw e) {
   186    if (flatbuffers::IsOutRange(e, HostMessagesRaw::NONE, HostMessagesRaw::SignalUpdate)) return "";
   187    const size_t index = static_cast<size_t>(e);
   188    return EnumNamesHostMessagesRaw()[index];
   189  }
   190  
   191  template<typename T> struct HostMessagesRawTraits {
   192    static const HostMessagesRaw enum_value = HostMessagesRaw::NONE;
   193  };
   194  
   195  template<> struct HostMessagesRawTraits<rpc::ExecRequestRaw> {
   196    static const HostMessagesRaw enum_value = HostMessagesRaw::ExecRequest;
   197  };
   198  
   199  template<> struct HostMessagesRawTraits<rpc::SignalUpdateRaw> {
   200    static const HostMessagesRaw enum_value = HostMessagesRaw::SignalUpdate;
   201  };
   202  
   203  template<typename T> struct HostMessagesRawUnionTraits {
   204    static const HostMessagesRaw enum_value = HostMessagesRaw::NONE;
   205  };
   206  
   207  template<> struct HostMessagesRawUnionTraits<rpc::ExecRequestRawT> {
   208    static const HostMessagesRaw enum_value = HostMessagesRaw::ExecRequest;
   209  };
   210  
   211  template<> struct HostMessagesRawUnionTraits<rpc::SignalUpdateRawT> {
   212    static const HostMessagesRaw enum_value = HostMessagesRaw::SignalUpdate;
   213  };
   214  
   215  struct HostMessagesRawUnion {
   216    HostMessagesRaw type;
   217    void *value;
   218  
   219    HostMessagesRawUnion() : type(HostMessagesRaw::NONE), value(nullptr) {}
   220    HostMessagesRawUnion(HostMessagesRawUnion&& u) FLATBUFFERS_NOEXCEPT :
   221      type(HostMessagesRaw::NONE), value(nullptr)
   222      { std::swap(type, u.type); std::swap(value, u.value); }
   223    HostMessagesRawUnion(const HostMessagesRawUnion &);
   224    HostMessagesRawUnion &operator=(const HostMessagesRawUnion &u)
   225      { HostMessagesRawUnion t(u); std::swap(type, t.type); std::swap(value, t.value); return *this; }
   226    HostMessagesRawUnion &operator=(HostMessagesRawUnion &&u) FLATBUFFERS_NOEXCEPT
   227      { std::swap(type, u.type); std::swap(value, u.value); return *this; }
   228    ~HostMessagesRawUnion() { Reset(); }
   229  
   230    void Reset();
   231  
   232    template <typename T>
   233    void Set(T&& val) {
   234      typedef typename std::remove_reference<T>::type RT;
   235      Reset();
   236      type = HostMessagesRawUnionTraits<RT>::enum_value;
   237      if (type != HostMessagesRaw::NONE) {
   238        value = new RT(std::forward<T>(val));
   239      }
   240    }
   241  
   242    static void *UnPack(const void *obj, HostMessagesRaw type, const flatbuffers::resolver_function_t *resolver);
   243    flatbuffers::Offset<void> Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const;
   244  
   245    rpc::ExecRequestRawT *AsExecRequest() {
   246      return type == HostMessagesRaw::ExecRequest ?
   247        reinterpret_cast<rpc::ExecRequestRawT *>(value) : nullptr;
   248    }
   249    const rpc::ExecRequestRawT *AsExecRequest() const {
   250      return type == HostMessagesRaw::ExecRequest ?
   251        reinterpret_cast<const rpc::ExecRequestRawT *>(value) : nullptr;
   252    }
   253    rpc::SignalUpdateRawT *AsSignalUpdate() {
   254      return type == HostMessagesRaw::SignalUpdate ?
   255        reinterpret_cast<rpc::SignalUpdateRawT *>(value) : nullptr;
   256    }
   257    const rpc::SignalUpdateRawT *AsSignalUpdate() const {
   258      return type == HostMessagesRaw::SignalUpdate ?
   259        reinterpret_cast<const rpc::SignalUpdateRawT *>(value) : nullptr;
   260    }
   261  };
   262  
   263  bool VerifyHostMessagesRaw(flatbuffers::Verifier &verifier, const void *obj, HostMessagesRaw type);
   264  bool VerifyHostMessagesRawVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<HostMessagesRaw> *types);
   265  
   266  enum class ExecutorMessagesRaw : uint8_t {
   267    NONE = 0,
   268    ExecResult = 1,
   269    Executing = 2,
   270    MIN = NONE,
   271    MAX = Executing
   272  };
   273  
   274  inline const ExecutorMessagesRaw (&EnumValuesExecutorMessagesRaw())[3] {
   275    static const ExecutorMessagesRaw values[] = {
   276      ExecutorMessagesRaw::NONE,
   277      ExecutorMessagesRaw::ExecResult,
   278      ExecutorMessagesRaw::Executing
   279    };
   280    return values;
   281  }
   282  
   283  inline const char * const *EnumNamesExecutorMessagesRaw() {
   284    static const char * const names[4] = {
   285      "NONE",
   286      "ExecResult",
   287      "Executing",
   288      nullptr
   289    };
   290    return names;
   291  }
   292  
   293  inline const char *EnumNameExecutorMessagesRaw(ExecutorMessagesRaw e) {
   294    if (flatbuffers::IsOutRange(e, ExecutorMessagesRaw::NONE, ExecutorMessagesRaw::Executing)) return "";
   295    const size_t index = static_cast<size_t>(e);
   296    return EnumNamesExecutorMessagesRaw()[index];
   297  }
   298  
   299  template<typename T> struct ExecutorMessagesRawTraits {
   300    static const ExecutorMessagesRaw enum_value = ExecutorMessagesRaw::NONE;
   301  };
   302  
   303  template<> struct ExecutorMessagesRawTraits<rpc::ExecResultRaw> {
   304    static const ExecutorMessagesRaw enum_value = ExecutorMessagesRaw::ExecResult;
   305  };
   306  
   307  template<> struct ExecutorMessagesRawTraits<rpc::ExecutingMessageRaw> {
   308    static const ExecutorMessagesRaw enum_value = ExecutorMessagesRaw::Executing;
   309  };
   310  
   311  template<typename T> struct ExecutorMessagesRawUnionTraits {
   312    static const ExecutorMessagesRaw enum_value = ExecutorMessagesRaw::NONE;
   313  };
   314  
   315  template<> struct ExecutorMessagesRawUnionTraits<rpc::ExecResultRawT> {
   316    static const ExecutorMessagesRaw enum_value = ExecutorMessagesRaw::ExecResult;
   317  };
   318  
   319  template<> struct ExecutorMessagesRawUnionTraits<rpc::ExecutingMessageRawT> {
   320    static const ExecutorMessagesRaw enum_value = ExecutorMessagesRaw::Executing;
   321  };
   322  
   323  struct ExecutorMessagesRawUnion {
   324    ExecutorMessagesRaw type;
   325    void *value;
   326  
   327    ExecutorMessagesRawUnion() : type(ExecutorMessagesRaw::NONE), value(nullptr) {}
   328    ExecutorMessagesRawUnion(ExecutorMessagesRawUnion&& u) FLATBUFFERS_NOEXCEPT :
   329      type(ExecutorMessagesRaw::NONE), value(nullptr)
   330      { std::swap(type, u.type); std::swap(value, u.value); }
   331    ExecutorMessagesRawUnion(const ExecutorMessagesRawUnion &);
   332    ExecutorMessagesRawUnion &operator=(const ExecutorMessagesRawUnion &u)
   333      { ExecutorMessagesRawUnion t(u); std::swap(type, t.type); std::swap(value, t.value); return *this; }
   334    ExecutorMessagesRawUnion &operator=(ExecutorMessagesRawUnion &&u) FLATBUFFERS_NOEXCEPT
   335      { std::swap(type, u.type); std::swap(value, u.value); return *this; }
   336    ~ExecutorMessagesRawUnion() { Reset(); }
   337  
   338    void Reset();
   339  
   340    template <typename T>
   341    void Set(T&& val) {
   342      typedef typename std::remove_reference<T>::type RT;
   343      Reset();
   344      type = ExecutorMessagesRawUnionTraits<RT>::enum_value;
   345      if (type != ExecutorMessagesRaw::NONE) {
   346        value = new RT(std::forward<T>(val));
   347      }
   348    }
   349  
   350    static void *UnPack(const void *obj, ExecutorMessagesRaw type, const flatbuffers::resolver_function_t *resolver);
   351    flatbuffers::Offset<void> Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const;
   352  
   353    rpc::ExecResultRawT *AsExecResult() {
   354      return type == ExecutorMessagesRaw::ExecResult ?
   355        reinterpret_cast<rpc::ExecResultRawT *>(value) : nullptr;
   356    }
   357    const rpc::ExecResultRawT *AsExecResult() const {
   358      return type == ExecutorMessagesRaw::ExecResult ?
   359        reinterpret_cast<const rpc::ExecResultRawT *>(value) : nullptr;
   360    }
   361    rpc::ExecutingMessageRawT *AsExecuting() {
   362      return type == ExecutorMessagesRaw::Executing ?
   363        reinterpret_cast<rpc::ExecutingMessageRawT *>(value) : nullptr;
   364    }
   365    const rpc::ExecutingMessageRawT *AsExecuting() const {
   366      return type == ExecutorMessagesRaw::Executing ?
   367        reinterpret_cast<const rpc::ExecutingMessageRawT *>(value) : nullptr;
   368    }
   369  };
   370  
   371  bool VerifyExecutorMessagesRaw(flatbuffers::Verifier &verifier, const void *obj, ExecutorMessagesRaw type);
   372  bool VerifyExecutorMessagesRawVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<ExecutorMessagesRaw> *types);
   373  
   374  enum class RequestFlag : uint64_t {
   375    IsBinary = 1ULL,
   376    NewSignal = 2ULL,
   377    ResetState = 4ULL,
   378    ReturnOutput = 8ULL,
   379    ReturnError = 16ULL,
   380    NONE = 0,
   381    ANY = 31ULL
   382  };
   383  FLATBUFFERS_DEFINE_BITMASK_OPERATORS(RequestFlag, uint64_t)
   384  
   385  inline const RequestFlag (&EnumValuesRequestFlag())[5] {
   386    static const RequestFlag values[] = {
   387      RequestFlag::IsBinary,
   388      RequestFlag::NewSignal,
   389      RequestFlag::ResetState,
   390      RequestFlag::ReturnOutput,
   391      RequestFlag::ReturnError
   392    };
   393    return values;
   394  }
   395  
   396  inline const char * const *EnumNamesRequestFlag() {
   397    static const char * const names[17] = {
   398      "IsBinary",
   399      "NewSignal",
   400      "",
   401      "ResetState",
   402      "",
   403      "",
   404      "",
   405      "ReturnOutput",
   406      "",
   407      "",
   408      "",
   409      "",
   410      "",
   411      "",
   412      "",
   413      "ReturnError",
   414      nullptr
   415    };
   416    return names;
   417  }
   418  
   419  inline const char *EnumNameRequestFlag(RequestFlag e) {
   420    if (flatbuffers::IsOutRange(e, RequestFlag::IsBinary, RequestFlag::ReturnError)) return "";
   421    const size_t index = static_cast<size_t>(e) - static_cast<size_t>(RequestFlag::IsBinary);
   422    return EnumNamesRequestFlag()[index];
   423  }
   424  
   425  enum class ExecEnv : uint64_t {
   426    Debug = 1ULL,
   427    Signal = 2ULL,
   428    SandboxSetuid = 4ULL,
   429    SandboxNamespace = 8ULL,
   430    SandboxAndroid = 16ULL,
   431    ExtraCover = 32ULL,
   432    EnableTun = 64ULL,
   433    EnableNetDev = 128ULL,
   434    EnableNetReset = 256ULL,
   435    EnableCgroups = 512ULL,
   436    EnableCloseFds = 1024ULL,
   437    EnableDevlinkPCI = 2048ULL,
   438    EnableVhciInjection = 4096ULL,
   439    EnableWifi = 8192ULL,
   440    DelayKcovMmap = 16384ULL,
   441    EnableNicVF = 32768ULL,
   442    NONE = 0,
   443    ANY = 65535ULL
   444  };
   445  FLATBUFFERS_DEFINE_BITMASK_OPERATORS(ExecEnv, uint64_t)
   446  
   447  inline const ExecEnv (&EnumValuesExecEnv())[16] {
   448    static const ExecEnv values[] = {
   449      ExecEnv::Debug,
   450      ExecEnv::Signal,
   451      ExecEnv::SandboxSetuid,
   452      ExecEnv::SandboxNamespace,
   453      ExecEnv::SandboxAndroid,
   454      ExecEnv::ExtraCover,
   455      ExecEnv::EnableTun,
   456      ExecEnv::EnableNetDev,
   457      ExecEnv::EnableNetReset,
   458      ExecEnv::EnableCgroups,
   459      ExecEnv::EnableCloseFds,
   460      ExecEnv::EnableDevlinkPCI,
   461      ExecEnv::EnableVhciInjection,
   462      ExecEnv::EnableWifi,
   463      ExecEnv::DelayKcovMmap,
   464      ExecEnv::EnableNicVF
   465    };
   466    return values;
   467  }
   468  
   469  inline const char *EnumNameExecEnv(ExecEnv e) {
   470    switch (e) {
   471      case ExecEnv::Debug: return "Debug";
   472      case ExecEnv::Signal: return "Signal";
   473      case ExecEnv::SandboxSetuid: return "SandboxSetuid";
   474      case ExecEnv::SandboxNamespace: return "SandboxNamespace";
   475      case ExecEnv::SandboxAndroid: return "SandboxAndroid";
   476      case ExecEnv::ExtraCover: return "ExtraCover";
   477      case ExecEnv::EnableTun: return "EnableTun";
   478      case ExecEnv::EnableNetDev: return "EnableNetDev";
   479      case ExecEnv::EnableNetReset: return "EnableNetReset";
   480      case ExecEnv::EnableCgroups: return "EnableCgroups";
   481      case ExecEnv::EnableCloseFds: return "EnableCloseFds";
   482      case ExecEnv::EnableDevlinkPCI: return "EnableDevlinkPCI";
   483      case ExecEnv::EnableVhciInjection: return "EnableVhciInjection";
   484      case ExecEnv::EnableWifi: return "EnableWifi";
   485      case ExecEnv::DelayKcovMmap: return "DelayKcovMmap";
   486      case ExecEnv::EnableNicVF: return "EnableNicVF";
   487      default: return "";
   488    }
   489  }
   490  
   491  enum class ExecFlag : uint64_t {
   492    CollectSignal = 1ULL,
   493    CollectCover = 2ULL,
   494    DedupCover = 4ULL,
   495    CollectComps = 8ULL,
   496    Threaded = 16ULL,
   497    CoverFilter = 32ULL,
   498    NONE = 0,
   499    ANY = 63ULL
   500  };
   501  FLATBUFFERS_DEFINE_BITMASK_OPERATORS(ExecFlag, uint64_t)
   502  
   503  inline const ExecFlag (&EnumValuesExecFlag())[6] {
   504    static const ExecFlag values[] = {
   505      ExecFlag::CollectSignal,
   506      ExecFlag::CollectCover,
   507      ExecFlag::DedupCover,
   508      ExecFlag::CollectComps,
   509      ExecFlag::Threaded,
   510      ExecFlag::CoverFilter
   511    };
   512    return values;
   513  }
   514  
   515  inline const char *EnumNameExecFlag(ExecFlag e) {
   516    switch (e) {
   517      case ExecFlag::CollectSignal: return "CollectSignal";
   518      case ExecFlag::CollectCover: return "CollectCover";
   519      case ExecFlag::DedupCover: return "DedupCover";
   520      case ExecFlag::CollectComps: return "CollectComps";
   521      case ExecFlag::Threaded: return "Threaded";
   522      case ExecFlag::CoverFilter: return "CoverFilter";
   523      default: return "";
   524    }
   525  }
   526  
   527  enum class CallFlag : uint8_t {
   528    Executed = 1,
   529    Finished = 2,
   530    Blocked = 4,
   531    FaultInjected = 8,
   532    NONE = 0,
   533    ANY = 15
   534  };
   535  FLATBUFFERS_DEFINE_BITMASK_OPERATORS(CallFlag, uint8_t)
   536  
   537  inline const CallFlag (&EnumValuesCallFlag())[4] {
   538    static const CallFlag values[] = {
   539      CallFlag::Executed,
   540      CallFlag::Finished,
   541      CallFlag::Blocked,
   542      CallFlag::FaultInjected
   543    };
   544    return values;
   545  }
   546  
   547  inline const char * const *EnumNamesCallFlag() {
   548    static const char * const names[9] = {
   549      "Executed",
   550      "Finished",
   551      "",
   552      "Blocked",
   553      "",
   554      "",
   555      "",
   556      "FaultInjected",
   557      nullptr
   558    };
   559    return names;
   560  }
   561  
   562  inline const char *EnumNameCallFlag(CallFlag e) {
   563    if (flatbuffers::IsOutRange(e, CallFlag::Executed, CallFlag::FaultInjected)) return "";
   564    const size_t index = static_cast<size_t>(e) - static_cast<size_t>(CallFlag::Executed);
   565    return EnumNamesCallFlag()[index];
   566  }
   567  
   568  FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) ComparisonRaw FLATBUFFERS_FINAL_CLASS {
   569   private:
   570    uint64_t op1_;
   571    uint64_t op2_;
   572  
   573   public:
   574    ComparisonRaw()
   575        : op1_(0),
   576          op2_(0) {
   577    }
   578    ComparisonRaw(uint64_t _op1, uint64_t _op2)
   579        : op1_(flatbuffers::EndianScalar(_op1)),
   580          op2_(flatbuffers::EndianScalar(_op2)) {
   581    }
   582    uint64_t op1() const {
   583      return flatbuffers::EndianScalar(op1_);
   584    }
   585    uint64_t op2() const {
   586      return flatbuffers::EndianScalar(op2_);
   587    }
   588  };
   589  FLATBUFFERS_STRUCT_END(ComparisonRaw, 16);
   590  
   591  struct ConnectRequestRawT : public flatbuffers::NativeTable {
   592    typedef ConnectRequestRaw TableType;
   593    std::string name{};
   594    std::string arch{};
   595    std::string git_revision{};
   596    std::string syz_revision{};
   597  };
   598  
   599  struct ConnectRequestRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
   600    typedef ConnectRequestRawT NativeTableType;
   601    typedef ConnectRequestRawBuilder Builder;
   602    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
   603      VT_NAME = 4,
   604      VT_ARCH = 6,
   605      VT_GIT_REVISION = 8,
   606      VT_SYZ_REVISION = 10
   607    };
   608    const flatbuffers::String *name() const {
   609      return GetPointer<const flatbuffers::String *>(VT_NAME);
   610    }
   611    const flatbuffers::String *arch() const {
   612      return GetPointer<const flatbuffers::String *>(VT_ARCH);
   613    }
   614    const flatbuffers::String *git_revision() const {
   615      return GetPointer<const flatbuffers::String *>(VT_GIT_REVISION);
   616    }
   617    const flatbuffers::String *syz_revision() const {
   618      return GetPointer<const flatbuffers::String *>(VT_SYZ_REVISION);
   619    }
   620    bool Verify(flatbuffers::Verifier &verifier) const {
   621      return VerifyTableStart(verifier) &&
   622             VerifyOffset(verifier, VT_NAME) &&
   623             verifier.VerifyString(name()) &&
   624             VerifyOffset(verifier, VT_ARCH) &&
   625             verifier.VerifyString(arch()) &&
   626             VerifyOffset(verifier, VT_GIT_REVISION) &&
   627             verifier.VerifyString(git_revision()) &&
   628             VerifyOffset(verifier, VT_SYZ_REVISION) &&
   629             verifier.VerifyString(syz_revision()) &&
   630             verifier.EndTable();
   631    }
   632    ConnectRequestRawT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
   633    void UnPackTo(ConnectRequestRawT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
   634    static flatbuffers::Offset<ConnectRequestRaw> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ConnectRequestRawT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
   635  };
   636  
   637  struct ConnectRequestRawBuilder {
   638    typedef ConnectRequestRaw Table;
   639    flatbuffers::FlatBufferBuilder &fbb_;
   640    flatbuffers::uoffset_t start_;
   641    void add_name(flatbuffers::Offset<flatbuffers::String> name) {
   642      fbb_.AddOffset(ConnectRequestRaw::VT_NAME, name);
   643    }
   644    void add_arch(flatbuffers::Offset<flatbuffers::String> arch) {
   645      fbb_.AddOffset(ConnectRequestRaw::VT_ARCH, arch);
   646    }
   647    void add_git_revision(flatbuffers::Offset<flatbuffers::String> git_revision) {
   648      fbb_.AddOffset(ConnectRequestRaw::VT_GIT_REVISION, git_revision);
   649    }
   650    void add_syz_revision(flatbuffers::Offset<flatbuffers::String> syz_revision) {
   651      fbb_.AddOffset(ConnectRequestRaw::VT_SYZ_REVISION, syz_revision);
   652    }
   653    explicit ConnectRequestRawBuilder(flatbuffers::FlatBufferBuilder &_fbb)
   654          : fbb_(_fbb) {
   655      start_ = fbb_.StartTable();
   656    }
   657    flatbuffers::Offset<ConnectRequestRaw> Finish() {
   658      const auto end = fbb_.EndTable(start_);
   659      auto o = flatbuffers::Offset<ConnectRequestRaw>(end);
   660      return o;
   661    }
   662  };
   663  
   664  inline flatbuffers::Offset<ConnectRequestRaw> CreateConnectRequestRaw(
   665      flatbuffers::FlatBufferBuilder &_fbb,
   666      flatbuffers::Offset<flatbuffers::String> name = 0,
   667      flatbuffers::Offset<flatbuffers::String> arch = 0,
   668      flatbuffers::Offset<flatbuffers::String> git_revision = 0,
   669      flatbuffers::Offset<flatbuffers::String> syz_revision = 0) {
   670    ConnectRequestRawBuilder builder_(_fbb);
   671    builder_.add_syz_revision(syz_revision);
   672    builder_.add_git_revision(git_revision);
   673    builder_.add_arch(arch);
   674    builder_.add_name(name);
   675    return builder_.Finish();
   676  }
   677  
   678  inline flatbuffers::Offset<ConnectRequestRaw> CreateConnectRequestRawDirect(
   679      flatbuffers::FlatBufferBuilder &_fbb,
   680      const char *name = nullptr,
   681      const char *arch = nullptr,
   682      const char *git_revision = nullptr,
   683      const char *syz_revision = nullptr) {
   684    auto name__ = name ? _fbb.CreateString(name) : 0;
   685    auto arch__ = arch ? _fbb.CreateString(arch) : 0;
   686    auto git_revision__ = git_revision ? _fbb.CreateString(git_revision) : 0;
   687    auto syz_revision__ = syz_revision ? _fbb.CreateString(syz_revision) : 0;
   688    return rpc::CreateConnectRequestRaw(
   689        _fbb,
   690        name__,
   691        arch__,
   692        git_revision__,
   693        syz_revision__);
   694  }
   695  
   696  flatbuffers::Offset<ConnectRequestRaw> CreateConnectRequestRaw(flatbuffers::FlatBufferBuilder &_fbb, const ConnectRequestRawT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
   697  
   698  struct ConnectReplyRawT : public flatbuffers::NativeTable {
   699    typedef ConnectReplyRaw TableType;
   700    std::vector<std::string> leak_frames{};
   701    std::vector<std::string> race_frames{};
   702    rpc::Feature features = static_cast<rpc::Feature>(0);
   703    std::vector<std::string> files{};
   704    std::vector<std::string> globs{};
   705  };
   706  
   707  struct ConnectReplyRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
   708    typedef ConnectReplyRawT NativeTableType;
   709    typedef ConnectReplyRawBuilder Builder;
   710    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
   711      VT_LEAK_FRAMES = 4,
   712      VT_RACE_FRAMES = 6,
   713      VT_FEATURES = 8,
   714      VT_FILES = 10,
   715      VT_GLOBS = 12
   716    };
   717    const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *leak_frames() const {
   718      return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_LEAK_FRAMES);
   719    }
   720    const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *race_frames() const {
   721      return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_RACE_FRAMES);
   722    }
   723    rpc::Feature features() const {
   724      return static_cast<rpc::Feature>(GetField<uint64_t>(VT_FEATURES, 0));
   725    }
   726    const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *files() const {
   727      return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_FILES);
   728    }
   729    const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *globs() const {
   730      return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_GLOBS);
   731    }
   732    bool Verify(flatbuffers::Verifier &verifier) const {
   733      return VerifyTableStart(verifier) &&
   734             VerifyOffset(verifier, VT_LEAK_FRAMES) &&
   735             verifier.VerifyVector(leak_frames()) &&
   736             verifier.VerifyVectorOfStrings(leak_frames()) &&
   737             VerifyOffset(verifier, VT_RACE_FRAMES) &&
   738             verifier.VerifyVector(race_frames()) &&
   739             verifier.VerifyVectorOfStrings(race_frames()) &&
   740             VerifyField<uint64_t>(verifier, VT_FEATURES, 8) &&
   741             VerifyOffset(verifier, VT_FILES) &&
   742             verifier.VerifyVector(files()) &&
   743             verifier.VerifyVectorOfStrings(files()) &&
   744             VerifyOffset(verifier, VT_GLOBS) &&
   745             verifier.VerifyVector(globs()) &&
   746             verifier.VerifyVectorOfStrings(globs()) &&
   747             verifier.EndTable();
   748    }
   749    ConnectReplyRawT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
   750    void UnPackTo(ConnectReplyRawT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
   751    static flatbuffers::Offset<ConnectReplyRaw> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ConnectReplyRawT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
   752  };
   753  
   754  struct ConnectReplyRawBuilder {
   755    typedef ConnectReplyRaw Table;
   756    flatbuffers::FlatBufferBuilder &fbb_;
   757    flatbuffers::uoffset_t start_;
   758    void add_leak_frames(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> leak_frames) {
   759      fbb_.AddOffset(ConnectReplyRaw::VT_LEAK_FRAMES, leak_frames);
   760    }
   761    void add_race_frames(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> race_frames) {
   762      fbb_.AddOffset(ConnectReplyRaw::VT_RACE_FRAMES, race_frames);
   763    }
   764    void add_features(rpc::Feature features) {
   765      fbb_.AddElement<uint64_t>(ConnectReplyRaw::VT_FEATURES, static_cast<uint64_t>(features), 0);
   766    }
   767    void add_files(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> files) {
   768      fbb_.AddOffset(ConnectReplyRaw::VT_FILES, files);
   769    }
   770    void add_globs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> globs) {
   771      fbb_.AddOffset(ConnectReplyRaw::VT_GLOBS, globs);
   772    }
   773    explicit ConnectReplyRawBuilder(flatbuffers::FlatBufferBuilder &_fbb)
   774          : fbb_(_fbb) {
   775      start_ = fbb_.StartTable();
   776    }
   777    flatbuffers::Offset<ConnectReplyRaw> Finish() {
   778      const auto end = fbb_.EndTable(start_);
   779      auto o = flatbuffers::Offset<ConnectReplyRaw>(end);
   780      return o;
   781    }
   782  };
   783  
   784  inline flatbuffers::Offset<ConnectReplyRaw> CreateConnectReplyRaw(
   785      flatbuffers::FlatBufferBuilder &_fbb,
   786      flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> leak_frames = 0,
   787      flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> race_frames = 0,
   788      rpc::Feature features = static_cast<rpc::Feature>(0),
   789      flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> files = 0,
   790      flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> globs = 0) {
   791    ConnectReplyRawBuilder builder_(_fbb);
   792    builder_.add_features(features);
   793    builder_.add_globs(globs);
   794    builder_.add_files(files);
   795    builder_.add_race_frames(race_frames);
   796    builder_.add_leak_frames(leak_frames);
   797    return builder_.Finish();
   798  }
   799  
   800  inline flatbuffers::Offset<ConnectReplyRaw> CreateConnectReplyRawDirect(
   801      flatbuffers::FlatBufferBuilder &_fbb,
   802      const std::vector<flatbuffers::Offset<flatbuffers::String>> *leak_frames = nullptr,
   803      const std::vector<flatbuffers::Offset<flatbuffers::String>> *race_frames = nullptr,
   804      rpc::Feature features = static_cast<rpc::Feature>(0),
   805      const std::vector<flatbuffers::Offset<flatbuffers::String>> *files = nullptr,
   806      const std::vector<flatbuffers::Offset<flatbuffers::String>> *globs = nullptr) {
   807    auto leak_frames__ = leak_frames ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*leak_frames) : 0;
   808    auto race_frames__ = race_frames ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*race_frames) : 0;
   809    auto files__ = files ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*files) : 0;
   810    auto globs__ = globs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*globs) : 0;
   811    return rpc::CreateConnectReplyRaw(
   812        _fbb,
   813        leak_frames__,
   814        race_frames__,
   815        features,
   816        files__,
   817        globs__);
   818  }
   819  
   820  flatbuffers::Offset<ConnectReplyRaw> CreateConnectReplyRaw(flatbuffers::FlatBufferBuilder &_fbb, const ConnectReplyRawT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
   821  
   822  struct InfoRequestRawT : public flatbuffers::NativeTable {
   823    typedef InfoRequestRaw TableType;
   824    std::string error{};
   825    std::vector<std::unique_ptr<rpc::FeatureInfoRawT>> features{};
   826    std::vector<std::unique_ptr<rpc::FileInfoRawT>> files{};
   827    std::vector<std::unique_ptr<rpc::GlobInfoRawT>> globs{};
   828    InfoRequestRawT() = default;
   829    InfoRequestRawT(const InfoRequestRawT &o);
   830    InfoRequestRawT(InfoRequestRawT&&) FLATBUFFERS_NOEXCEPT = default;
   831    InfoRequestRawT &operator=(InfoRequestRawT o) FLATBUFFERS_NOEXCEPT;
   832  };
   833  
   834  struct InfoRequestRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
   835    typedef InfoRequestRawT NativeTableType;
   836    typedef InfoRequestRawBuilder Builder;
   837    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
   838      VT_ERROR = 4,
   839      VT_FEATURES = 6,
   840      VT_FILES = 8,
   841      VT_GLOBS = 10
   842    };
   843    const flatbuffers::String *error() const {
   844      return GetPointer<const flatbuffers::String *>(VT_ERROR);
   845    }
   846    const flatbuffers::Vector<flatbuffers::Offset<rpc::FeatureInfoRaw>> *features() const {
   847      return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<rpc::FeatureInfoRaw>> *>(VT_FEATURES);
   848    }
   849    const flatbuffers::Vector<flatbuffers::Offset<rpc::FileInfoRaw>> *files() const {
   850      return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<rpc::FileInfoRaw>> *>(VT_FILES);
   851    }
   852    const flatbuffers::Vector<flatbuffers::Offset<rpc::GlobInfoRaw>> *globs() const {
   853      return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<rpc::GlobInfoRaw>> *>(VT_GLOBS);
   854    }
   855    bool Verify(flatbuffers::Verifier &verifier) const {
   856      return VerifyTableStart(verifier) &&
   857             VerifyOffset(verifier, VT_ERROR) &&
   858             verifier.VerifyString(error()) &&
   859             VerifyOffset(verifier, VT_FEATURES) &&
   860             verifier.VerifyVector(features()) &&
   861             verifier.VerifyVectorOfTables(features()) &&
   862             VerifyOffset(verifier, VT_FILES) &&
   863             verifier.VerifyVector(files()) &&
   864             verifier.VerifyVectorOfTables(files()) &&
   865             VerifyOffset(verifier, VT_GLOBS) &&
   866             verifier.VerifyVector(globs()) &&
   867             verifier.VerifyVectorOfTables(globs()) &&
   868             verifier.EndTable();
   869    }
   870    InfoRequestRawT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
   871    void UnPackTo(InfoRequestRawT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
   872    static flatbuffers::Offset<InfoRequestRaw> Pack(flatbuffers::FlatBufferBuilder &_fbb, const InfoRequestRawT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
   873  };
   874  
   875  struct InfoRequestRawBuilder {
   876    typedef InfoRequestRaw Table;
   877    flatbuffers::FlatBufferBuilder &fbb_;
   878    flatbuffers::uoffset_t start_;
   879    void add_error(flatbuffers::Offset<flatbuffers::String> error) {
   880      fbb_.AddOffset(InfoRequestRaw::VT_ERROR, error);
   881    }
   882    void add_features(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<rpc::FeatureInfoRaw>>> features) {
   883      fbb_.AddOffset(InfoRequestRaw::VT_FEATURES, features);
   884    }
   885    void add_files(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<rpc::FileInfoRaw>>> files) {
   886      fbb_.AddOffset(InfoRequestRaw::VT_FILES, files);
   887    }
   888    void add_globs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<rpc::GlobInfoRaw>>> globs) {
   889      fbb_.AddOffset(InfoRequestRaw::VT_GLOBS, globs);
   890    }
   891    explicit InfoRequestRawBuilder(flatbuffers::FlatBufferBuilder &_fbb)
   892          : fbb_(_fbb) {
   893      start_ = fbb_.StartTable();
   894    }
   895    flatbuffers::Offset<InfoRequestRaw> Finish() {
   896      const auto end = fbb_.EndTable(start_);
   897      auto o = flatbuffers::Offset<InfoRequestRaw>(end);
   898      return o;
   899    }
   900  };
   901  
   902  inline flatbuffers::Offset<InfoRequestRaw> CreateInfoRequestRaw(
   903      flatbuffers::FlatBufferBuilder &_fbb,
   904      flatbuffers::Offset<flatbuffers::String> error = 0,
   905      flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<rpc::FeatureInfoRaw>>> features = 0,
   906      flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<rpc::FileInfoRaw>>> files = 0,
   907      flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<rpc::GlobInfoRaw>>> globs = 0) {
   908    InfoRequestRawBuilder builder_(_fbb);
   909    builder_.add_globs(globs);
   910    builder_.add_files(files);
   911    builder_.add_features(features);
   912    builder_.add_error(error);
   913    return builder_.Finish();
   914  }
   915  
   916  inline flatbuffers::Offset<InfoRequestRaw> CreateInfoRequestRawDirect(
   917      flatbuffers::FlatBufferBuilder &_fbb,
   918      const char *error = nullptr,
   919      const std::vector<flatbuffers::Offset<rpc::FeatureInfoRaw>> *features = nullptr,
   920      const std::vector<flatbuffers::Offset<rpc::FileInfoRaw>> *files = nullptr,
   921      const std::vector<flatbuffers::Offset<rpc::GlobInfoRaw>> *globs = nullptr) {
   922    auto error__ = error ? _fbb.CreateString(error) : 0;
   923    auto features__ = features ? _fbb.CreateVector<flatbuffers::Offset<rpc::FeatureInfoRaw>>(*features) : 0;
   924    auto files__ = files ? _fbb.CreateVector<flatbuffers::Offset<rpc::FileInfoRaw>>(*files) : 0;
   925    auto globs__ = globs ? _fbb.CreateVector<flatbuffers::Offset<rpc::GlobInfoRaw>>(*globs) : 0;
   926    return rpc::CreateInfoRequestRaw(
   927        _fbb,
   928        error__,
   929        features__,
   930        files__,
   931        globs__);
   932  }
   933  
   934  flatbuffers::Offset<InfoRequestRaw> CreateInfoRequestRaw(flatbuffers::FlatBufferBuilder &_fbb, const InfoRequestRawT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
   935  
   936  struct InfoReplyRawT : public flatbuffers::NativeTable {
   937    typedef InfoReplyRaw TableType;
   938    std::vector<uint8_t> cover_filter{};
   939  };
   940  
   941  struct InfoReplyRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
   942    typedef InfoReplyRawT NativeTableType;
   943    typedef InfoReplyRawBuilder Builder;
   944    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
   945      VT_COVER_FILTER = 4
   946    };
   947    const flatbuffers::Vector<uint8_t> *cover_filter() const {
   948      return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_COVER_FILTER);
   949    }
   950    bool Verify(flatbuffers::Verifier &verifier) const {
   951      return VerifyTableStart(verifier) &&
   952             VerifyOffset(verifier, VT_COVER_FILTER) &&
   953             verifier.VerifyVector(cover_filter()) &&
   954             verifier.EndTable();
   955    }
   956    InfoReplyRawT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
   957    void UnPackTo(InfoReplyRawT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
   958    static flatbuffers::Offset<InfoReplyRaw> Pack(flatbuffers::FlatBufferBuilder &_fbb, const InfoReplyRawT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
   959  };
   960  
   961  struct InfoReplyRawBuilder {
   962    typedef InfoReplyRaw Table;
   963    flatbuffers::FlatBufferBuilder &fbb_;
   964    flatbuffers::uoffset_t start_;
   965    void add_cover_filter(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> cover_filter) {
   966      fbb_.AddOffset(InfoReplyRaw::VT_COVER_FILTER, cover_filter);
   967    }
   968    explicit InfoReplyRawBuilder(flatbuffers::FlatBufferBuilder &_fbb)
   969          : fbb_(_fbb) {
   970      start_ = fbb_.StartTable();
   971    }
   972    flatbuffers::Offset<InfoReplyRaw> Finish() {
   973      const auto end = fbb_.EndTable(start_);
   974      auto o = flatbuffers::Offset<InfoReplyRaw>(end);
   975      return o;
   976    }
   977  };
   978  
   979  inline flatbuffers::Offset<InfoReplyRaw> CreateInfoReplyRaw(
   980      flatbuffers::FlatBufferBuilder &_fbb,
   981      flatbuffers::Offset<flatbuffers::Vector<uint8_t>> cover_filter = 0) {
   982    InfoReplyRawBuilder builder_(_fbb);
   983    builder_.add_cover_filter(cover_filter);
   984    return builder_.Finish();
   985  }
   986  
   987  inline flatbuffers::Offset<InfoReplyRaw> CreateInfoReplyRawDirect(
   988      flatbuffers::FlatBufferBuilder &_fbb,
   989      const std::vector<uint8_t> *cover_filter = nullptr) {
   990    auto cover_filter__ = cover_filter ? _fbb.CreateVector<uint8_t>(*cover_filter) : 0;
   991    return rpc::CreateInfoReplyRaw(
   992        _fbb,
   993        cover_filter__);
   994  }
   995  
   996  flatbuffers::Offset<InfoReplyRaw> CreateInfoReplyRaw(flatbuffers::FlatBufferBuilder &_fbb, const InfoReplyRawT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
   997  
   998  struct FileInfoRawT : public flatbuffers::NativeTable {
   999    typedef FileInfoRaw TableType;
  1000    std::string name{};
  1001    bool exists = false;
  1002    std::string error{};
  1003    std::vector<uint8_t> data{};
  1004  };
  1005  
  1006  struct FileInfoRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
  1007    typedef FileInfoRawT NativeTableType;
  1008    typedef FileInfoRawBuilder Builder;
  1009    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
  1010      VT_NAME = 4,
  1011      VT_EXISTS = 6,
  1012      VT_ERROR = 8,
  1013      VT_DATA = 10
  1014    };
  1015    const flatbuffers::String *name() const {
  1016      return GetPointer<const flatbuffers::String *>(VT_NAME);
  1017    }
  1018    bool exists() const {
  1019      return GetField<uint8_t>(VT_EXISTS, 0) != 0;
  1020    }
  1021    const flatbuffers::String *error() const {
  1022      return GetPointer<const flatbuffers::String *>(VT_ERROR);
  1023    }
  1024    const flatbuffers::Vector<uint8_t> *data() const {
  1025      return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
  1026    }
  1027    bool Verify(flatbuffers::Verifier &verifier) const {
  1028      return VerifyTableStart(verifier) &&
  1029             VerifyOffset(verifier, VT_NAME) &&
  1030             verifier.VerifyString(name()) &&
  1031             VerifyField<uint8_t>(verifier, VT_EXISTS, 1) &&
  1032             VerifyOffset(verifier, VT_ERROR) &&
  1033             verifier.VerifyString(error()) &&
  1034             VerifyOffset(verifier, VT_DATA) &&
  1035             verifier.VerifyVector(data()) &&
  1036             verifier.EndTable();
  1037    }
  1038    FileInfoRawT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1039    void UnPackTo(FileInfoRawT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1040    static flatbuffers::Offset<FileInfoRaw> Pack(flatbuffers::FlatBufferBuilder &_fbb, const FileInfoRawT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1041  };
  1042  
  1043  struct FileInfoRawBuilder {
  1044    typedef FileInfoRaw Table;
  1045    flatbuffers::FlatBufferBuilder &fbb_;
  1046    flatbuffers::uoffset_t start_;
  1047    void add_name(flatbuffers::Offset<flatbuffers::String> name) {
  1048      fbb_.AddOffset(FileInfoRaw::VT_NAME, name);
  1049    }
  1050    void add_exists(bool exists) {
  1051      fbb_.AddElement<uint8_t>(FileInfoRaw::VT_EXISTS, static_cast<uint8_t>(exists), 0);
  1052    }
  1053    void add_error(flatbuffers::Offset<flatbuffers::String> error) {
  1054      fbb_.AddOffset(FileInfoRaw::VT_ERROR, error);
  1055    }
  1056    void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
  1057      fbb_.AddOffset(FileInfoRaw::VT_DATA, data);
  1058    }
  1059    explicit FileInfoRawBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  1060          : fbb_(_fbb) {
  1061      start_ = fbb_.StartTable();
  1062    }
  1063    flatbuffers::Offset<FileInfoRaw> Finish() {
  1064      const auto end = fbb_.EndTable(start_);
  1065      auto o = flatbuffers::Offset<FileInfoRaw>(end);
  1066      return o;
  1067    }
  1068  };
  1069  
  1070  inline flatbuffers::Offset<FileInfoRaw> CreateFileInfoRaw(
  1071      flatbuffers::FlatBufferBuilder &_fbb,
  1072      flatbuffers::Offset<flatbuffers::String> name = 0,
  1073      bool exists = false,
  1074      flatbuffers::Offset<flatbuffers::String> error = 0,
  1075      flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
  1076    FileInfoRawBuilder builder_(_fbb);
  1077    builder_.add_data(data);
  1078    builder_.add_error(error);
  1079    builder_.add_name(name);
  1080    builder_.add_exists(exists);
  1081    return builder_.Finish();
  1082  }
  1083  
  1084  inline flatbuffers::Offset<FileInfoRaw> CreateFileInfoRawDirect(
  1085      flatbuffers::FlatBufferBuilder &_fbb,
  1086      const char *name = nullptr,
  1087      bool exists = false,
  1088      const char *error = nullptr,
  1089      const std::vector<uint8_t> *data = nullptr) {
  1090    auto name__ = name ? _fbb.CreateString(name) : 0;
  1091    auto error__ = error ? _fbb.CreateString(error) : 0;
  1092    auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
  1093    return rpc::CreateFileInfoRaw(
  1094        _fbb,
  1095        name__,
  1096        exists,
  1097        error__,
  1098        data__);
  1099  }
  1100  
  1101  flatbuffers::Offset<FileInfoRaw> CreateFileInfoRaw(flatbuffers::FlatBufferBuilder &_fbb, const FileInfoRawT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1102  
  1103  struct GlobInfoRawT : public flatbuffers::NativeTable {
  1104    typedef GlobInfoRaw TableType;
  1105    std::string name{};
  1106    std::vector<std::string> files{};
  1107  };
  1108  
  1109  struct GlobInfoRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
  1110    typedef GlobInfoRawT NativeTableType;
  1111    typedef GlobInfoRawBuilder Builder;
  1112    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
  1113      VT_NAME = 4,
  1114      VT_FILES = 6
  1115    };
  1116    const flatbuffers::String *name() const {
  1117      return GetPointer<const flatbuffers::String *>(VT_NAME);
  1118    }
  1119    const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *files() const {
  1120      return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_FILES);
  1121    }
  1122    bool Verify(flatbuffers::Verifier &verifier) const {
  1123      return VerifyTableStart(verifier) &&
  1124             VerifyOffset(verifier, VT_NAME) &&
  1125             verifier.VerifyString(name()) &&
  1126             VerifyOffset(verifier, VT_FILES) &&
  1127             verifier.VerifyVector(files()) &&
  1128             verifier.VerifyVectorOfStrings(files()) &&
  1129             verifier.EndTable();
  1130    }
  1131    GlobInfoRawT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1132    void UnPackTo(GlobInfoRawT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1133    static flatbuffers::Offset<GlobInfoRaw> Pack(flatbuffers::FlatBufferBuilder &_fbb, const GlobInfoRawT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1134  };
  1135  
  1136  struct GlobInfoRawBuilder {
  1137    typedef GlobInfoRaw Table;
  1138    flatbuffers::FlatBufferBuilder &fbb_;
  1139    flatbuffers::uoffset_t start_;
  1140    void add_name(flatbuffers::Offset<flatbuffers::String> name) {
  1141      fbb_.AddOffset(GlobInfoRaw::VT_NAME, name);
  1142    }
  1143    void add_files(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> files) {
  1144      fbb_.AddOffset(GlobInfoRaw::VT_FILES, files);
  1145    }
  1146    explicit GlobInfoRawBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  1147          : fbb_(_fbb) {
  1148      start_ = fbb_.StartTable();
  1149    }
  1150    flatbuffers::Offset<GlobInfoRaw> Finish() {
  1151      const auto end = fbb_.EndTable(start_);
  1152      auto o = flatbuffers::Offset<GlobInfoRaw>(end);
  1153      return o;
  1154    }
  1155  };
  1156  
  1157  inline flatbuffers::Offset<GlobInfoRaw> CreateGlobInfoRaw(
  1158      flatbuffers::FlatBufferBuilder &_fbb,
  1159      flatbuffers::Offset<flatbuffers::String> name = 0,
  1160      flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> files = 0) {
  1161    GlobInfoRawBuilder builder_(_fbb);
  1162    builder_.add_files(files);
  1163    builder_.add_name(name);
  1164    return builder_.Finish();
  1165  }
  1166  
  1167  inline flatbuffers::Offset<GlobInfoRaw> CreateGlobInfoRawDirect(
  1168      flatbuffers::FlatBufferBuilder &_fbb,
  1169      const char *name = nullptr,
  1170      const std::vector<flatbuffers::Offset<flatbuffers::String>> *files = nullptr) {
  1171    auto name__ = name ? _fbb.CreateString(name) : 0;
  1172    auto files__ = files ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*files) : 0;
  1173    return rpc::CreateGlobInfoRaw(
  1174        _fbb,
  1175        name__,
  1176        files__);
  1177  }
  1178  
  1179  flatbuffers::Offset<GlobInfoRaw> CreateGlobInfoRaw(flatbuffers::FlatBufferBuilder &_fbb, const GlobInfoRawT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1180  
  1181  struct FeatureInfoRawT : public flatbuffers::NativeTable {
  1182    typedef FeatureInfoRaw TableType;
  1183    rpc::Feature id = static_cast<rpc::Feature>(0);
  1184    bool need_setup = false;
  1185    std::string reason{};
  1186  };
  1187  
  1188  struct FeatureInfoRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
  1189    typedef FeatureInfoRawT NativeTableType;
  1190    typedef FeatureInfoRawBuilder Builder;
  1191    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
  1192      VT_ID = 4,
  1193      VT_NEED_SETUP = 6,
  1194      VT_REASON = 8
  1195    };
  1196    rpc::Feature id() const {
  1197      return static_cast<rpc::Feature>(GetField<uint64_t>(VT_ID, 0));
  1198    }
  1199    bool need_setup() const {
  1200      return GetField<uint8_t>(VT_NEED_SETUP, 0) != 0;
  1201    }
  1202    const flatbuffers::String *reason() const {
  1203      return GetPointer<const flatbuffers::String *>(VT_REASON);
  1204    }
  1205    bool Verify(flatbuffers::Verifier &verifier) const {
  1206      return VerifyTableStart(verifier) &&
  1207             VerifyField<uint64_t>(verifier, VT_ID, 8) &&
  1208             VerifyField<uint8_t>(verifier, VT_NEED_SETUP, 1) &&
  1209             VerifyOffset(verifier, VT_REASON) &&
  1210             verifier.VerifyString(reason()) &&
  1211             verifier.EndTable();
  1212    }
  1213    FeatureInfoRawT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1214    void UnPackTo(FeatureInfoRawT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1215    static flatbuffers::Offset<FeatureInfoRaw> Pack(flatbuffers::FlatBufferBuilder &_fbb, const FeatureInfoRawT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1216  };
  1217  
  1218  struct FeatureInfoRawBuilder {
  1219    typedef FeatureInfoRaw Table;
  1220    flatbuffers::FlatBufferBuilder &fbb_;
  1221    flatbuffers::uoffset_t start_;
  1222    void add_id(rpc::Feature id) {
  1223      fbb_.AddElement<uint64_t>(FeatureInfoRaw::VT_ID, static_cast<uint64_t>(id), 0);
  1224    }
  1225    void add_need_setup(bool need_setup) {
  1226      fbb_.AddElement<uint8_t>(FeatureInfoRaw::VT_NEED_SETUP, static_cast<uint8_t>(need_setup), 0);
  1227    }
  1228    void add_reason(flatbuffers::Offset<flatbuffers::String> reason) {
  1229      fbb_.AddOffset(FeatureInfoRaw::VT_REASON, reason);
  1230    }
  1231    explicit FeatureInfoRawBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  1232          : fbb_(_fbb) {
  1233      start_ = fbb_.StartTable();
  1234    }
  1235    flatbuffers::Offset<FeatureInfoRaw> Finish() {
  1236      const auto end = fbb_.EndTable(start_);
  1237      auto o = flatbuffers::Offset<FeatureInfoRaw>(end);
  1238      return o;
  1239    }
  1240  };
  1241  
  1242  inline flatbuffers::Offset<FeatureInfoRaw> CreateFeatureInfoRaw(
  1243      flatbuffers::FlatBufferBuilder &_fbb,
  1244      rpc::Feature id = static_cast<rpc::Feature>(0),
  1245      bool need_setup = false,
  1246      flatbuffers::Offset<flatbuffers::String> reason = 0) {
  1247    FeatureInfoRawBuilder builder_(_fbb);
  1248    builder_.add_id(id);
  1249    builder_.add_reason(reason);
  1250    builder_.add_need_setup(need_setup);
  1251    return builder_.Finish();
  1252  }
  1253  
  1254  inline flatbuffers::Offset<FeatureInfoRaw> CreateFeatureInfoRawDirect(
  1255      flatbuffers::FlatBufferBuilder &_fbb,
  1256      rpc::Feature id = static_cast<rpc::Feature>(0),
  1257      bool need_setup = false,
  1258      const char *reason = nullptr) {
  1259    auto reason__ = reason ? _fbb.CreateString(reason) : 0;
  1260    return rpc::CreateFeatureInfoRaw(
  1261        _fbb,
  1262        id,
  1263        need_setup,
  1264        reason__);
  1265  }
  1266  
  1267  flatbuffers::Offset<FeatureInfoRaw> CreateFeatureInfoRaw(flatbuffers::FlatBufferBuilder &_fbb, const FeatureInfoRawT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1268  
  1269  struct HostMessageRawT : public flatbuffers::NativeTable {
  1270    typedef HostMessageRaw TableType;
  1271    rpc::HostMessagesRawUnion msg{};
  1272  };
  1273  
  1274  struct HostMessageRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
  1275    typedef HostMessageRawT NativeTableType;
  1276    typedef HostMessageRawBuilder Builder;
  1277    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
  1278      VT_MSG_TYPE = 4,
  1279      VT_MSG = 6
  1280    };
  1281    rpc::HostMessagesRaw msg_type() const {
  1282      return static_cast<rpc::HostMessagesRaw>(GetField<uint8_t>(VT_MSG_TYPE, 0));
  1283    }
  1284    const void *msg() const {
  1285      return GetPointer<const void *>(VT_MSG);
  1286    }
  1287    template<typename T> const T *msg_as() const;
  1288    const rpc::ExecRequestRaw *msg_as_ExecRequest() const {
  1289      return msg_type() == rpc::HostMessagesRaw::ExecRequest ? static_cast<const rpc::ExecRequestRaw *>(msg()) : nullptr;
  1290    }
  1291    const rpc::SignalUpdateRaw *msg_as_SignalUpdate() const {
  1292      return msg_type() == rpc::HostMessagesRaw::SignalUpdate ? static_cast<const rpc::SignalUpdateRaw *>(msg()) : nullptr;
  1293    }
  1294    bool Verify(flatbuffers::Verifier &verifier) const {
  1295      return VerifyTableStart(verifier) &&
  1296             VerifyField<uint8_t>(verifier, VT_MSG_TYPE, 1) &&
  1297             VerifyOffset(verifier, VT_MSG) &&
  1298             VerifyHostMessagesRaw(verifier, msg(), msg_type()) &&
  1299             verifier.EndTable();
  1300    }
  1301    HostMessageRawT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1302    void UnPackTo(HostMessageRawT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1303    static flatbuffers::Offset<HostMessageRaw> Pack(flatbuffers::FlatBufferBuilder &_fbb, const HostMessageRawT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1304  };
  1305  
  1306  template<> inline const rpc::ExecRequestRaw *HostMessageRaw::msg_as<rpc::ExecRequestRaw>() const {
  1307    return msg_as_ExecRequest();
  1308  }
  1309  
  1310  template<> inline const rpc::SignalUpdateRaw *HostMessageRaw::msg_as<rpc::SignalUpdateRaw>() const {
  1311    return msg_as_SignalUpdate();
  1312  }
  1313  
  1314  struct HostMessageRawBuilder {
  1315    typedef HostMessageRaw Table;
  1316    flatbuffers::FlatBufferBuilder &fbb_;
  1317    flatbuffers::uoffset_t start_;
  1318    void add_msg_type(rpc::HostMessagesRaw msg_type) {
  1319      fbb_.AddElement<uint8_t>(HostMessageRaw::VT_MSG_TYPE, static_cast<uint8_t>(msg_type), 0);
  1320    }
  1321    void add_msg(flatbuffers::Offset<void> msg) {
  1322      fbb_.AddOffset(HostMessageRaw::VT_MSG, msg);
  1323    }
  1324    explicit HostMessageRawBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  1325          : fbb_(_fbb) {
  1326      start_ = fbb_.StartTable();
  1327    }
  1328    flatbuffers::Offset<HostMessageRaw> Finish() {
  1329      const auto end = fbb_.EndTable(start_);
  1330      auto o = flatbuffers::Offset<HostMessageRaw>(end);
  1331      return o;
  1332    }
  1333  };
  1334  
  1335  inline flatbuffers::Offset<HostMessageRaw> CreateHostMessageRaw(
  1336      flatbuffers::FlatBufferBuilder &_fbb,
  1337      rpc::HostMessagesRaw msg_type = rpc::HostMessagesRaw::NONE,
  1338      flatbuffers::Offset<void> msg = 0) {
  1339    HostMessageRawBuilder builder_(_fbb);
  1340    builder_.add_msg(msg);
  1341    builder_.add_msg_type(msg_type);
  1342    return builder_.Finish();
  1343  }
  1344  
  1345  flatbuffers::Offset<HostMessageRaw> CreateHostMessageRaw(flatbuffers::FlatBufferBuilder &_fbb, const HostMessageRawT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1346  
  1347  struct ExecutorMessageRawT : public flatbuffers::NativeTable {
  1348    typedef ExecutorMessageRaw TableType;
  1349    rpc::ExecutorMessagesRawUnion msg{};
  1350  };
  1351  
  1352  struct ExecutorMessageRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
  1353    typedef ExecutorMessageRawT NativeTableType;
  1354    typedef ExecutorMessageRawBuilder Builder;
  1355    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
  1356      VT_MSG_TYPE = 4,
  1357      VT_MSG = 6
  1358    };
  1359    rpc::ExecutorMessagesRaw msg_type() const {
  1360      return static_cast<rpc::ExecutorMessagesRaw>(GetField<uint8_t>(VT_MSG_TYPE, 0));
  1361    }
  1362    const void *msg() const {
  1363      return GetPointer<const void *>(VT_MSG);
  1364    }
  1365    template<typename T> const T *msg_as() const;
  1366    const rpc::ExecResultRaw *msg_as_ExecResult() const {
  1367      return msg_type() == rpc::ExecutorMessagesRaw::ExecResult ? static_cast<const rpc::ExecResultRaw *>(msg()) : nullptr;
  1368    }
  1369    const rpc::ExecutingMessageRaw *msg_as_Executing() const {
  1370      return msg_type() == rpc::ExecutorMessagesRaw::Executing ? static_cast<const rpc::ExecutingMessageRaw *>(msg()) : nullptr;
  1371    }
  1372    bool Verify(flatbuffers::Verifier &verifier) const {
  1373      return VerifyTableStart(verifier) &&
  1374             VerifyField<uint8_t>(verifier, VT_MSG_TYPE, 1) &&
  1375             VerifyOffset(verifier, VT_MSG) &&
  1376             VerifyExecutorMessagesRaw(verifier, msg(), msg_type()) &&
  1377             verifier.EndTable();
  1378    }
  1379    ExecutorMessageRawT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1380    void UnPackTo(ExecutorMessageRawT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1381    static flatbuffers::Offset<ExecutorMessageRaw> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ExecutorMessageRawT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1382  };
  1383  
  1384  template<> inline const rpc::ExecResultRaw *ExecutorMessageRaw::msg_as<rpc::ExecResultRaw>() const {
  1385    return msg_as_ExecResult();
  1386  }
  1387  
  1388  template<> inline const rpc::ExecutingMessageRaw *ExecutorMessageRaw::msg_as<rpc::ExecutingMessageRaw>() const {
  1389    return msg_as_Executing();
  1390  }
  1391  
  1392  struct ExecutorMessageRawBuilder {
  1393    typedef ExecutorMessageRaw Table;
  1394    flatbuffers::FlatBufferBuilder &fbb_;
  1395    flatbuffers::uoffset_t start_;
  1396    void add_msg_type(rpc::ExecutorMessagesRaw msg_type) {
  1397      fbb_.AddElement<uint8_t>(ExecutorMessageRaw::VT_MSG_TYPE, static_cast<uint8_t>(msg_type), 0);
  1398    }
  1399    void add_msg(flatbuffers::Offset<void> msg) {
  1400      fbb_.AddOffset(ExecutorMessageRaw::VT_MSG, msg);
  1401    }
  1402    explicit ExecutorMessageRawBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  1403          : fbb_(_fbb) {
  1404      start_ = fbb_.StartTable();
  1405    }
  1406    flatbuffers::Offset<ExecutorMessageRaw> Finish() {
  1407      const auto end = fbb_.EndTable(start_);
  1408      auto o = flatbuffers::Offset<ExecutorMessageRaw>(end);
  1409      return o;
  1410    }
  1411  };
  1412  
  1413  inline flatbuffers::Offset<ExecutorMessageRaw> CreateExecutorMessageRaw(
  1414      flatbuffers::FlatBufferBuilder &_fbb,
  1415      rpc::ExecutorMessagesRaw msg_type = rpc::ExecutorMessagesRaw::NONE,
  1416      flatbuffers::Offset<void> msg = 0) {
  1417    ExecutorMessageRawBuilder builder_(_fbb);
  1418    builder_.add_msg(msg);
  1419    builder_.add_msg_type(msg_type);
  1420    return builder_.Finish();
  1421  }
  1422  
  1423  flatbuffers::Offset<ExecutorMessageRaw> CreateExecutorMessageRaw(flatbuffers::FlatBufferBuilder &_fbb, const ExecutorMessageRawT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1424  
  1425  struct ExecRequestRawT : public flatbuffers::NativeTable {
  1426    typedef ExecRequestRaw TableType;
  1427    int64_t id = 0;
  1428    std::vector<uint8_t> prog_data{};
  1429    rpc::RequestFlag flags = static_cast<rpc::RequestFlag>(0);
  1430    rpc::ExecEnv exec_env = static_cast<rpc::ExecEnv>(0);
  1431    rpc::ExecFlag exec_flags = static_cast<rpc::ExecFlag>(0);
  1432    int64_t sandbox_arg = 0;
  1433    std::vector<uint32_t> signal_filter{};
  1434    int32_t signal_filter_call = 0;
  1435    int32_t repeat = 0;
  1436  };
  1437  
  1438  struct ExecRequestRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
  1439    typedef ExecRequestRawT NativeTableType;
  1440    typedef ExecRequestRawBuilder Builder;
  1441    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
  1442      VT_ID = 4,
  1443      VT_PROG_DATA = 6,
  1444      VT_FLAGS = 8,
  1445      VT_EXEC_ENV = 10,
  1446      VT_EXEC_FLAGS = 12,
  1447      VT_SANDBOX_ARG = 14,
  1448      VT_SIGNAL_FILTER = 16,
  1449      VT_SIGNAL_FILTER_CALL = 18,
  1450      VT_REPEAT = 20
  1451    };
  1452    int64_t id() const {
  1453      return GetField<int64_t>(VT_ID, 0);
  1454    }
  1455    const flatbuffers::Vector<uint8_t> *prog_data() const {
  1456      return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_PROG_DATA);
  1457    }
  1458    rpc::RequestFlag flags() const {
  1459      return static_cast<rpc::RequestFlag>(GetField<uint64_t>(VT_FLAGS, 0));
  1460    }
  1461    rpc::ExecEnv exec_env() const {
  1462      return static_cast<rpc::ExecEnv>(GetField<uint64_t>(VT_EXEC_ENV, 0));
  1463    }
  1464    rpc::ExecFlag exec_flags() const {
  1465      return static_cast<rpc::ExecFlag>(GetField<uint64_t>(VT_EXEC_FLAGS, 0));
  1466    }
  1467    int64_t sandbox_arg() const {
  1468      return GetField<int64_t>(VT_SANDBOX_ARG, 0);
  1469    }
  1470    const flatbuffers::Vector<uint32_t> *signal_filter() const {
  1471      return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_SIGNAL_FILTER);
  1472    }
  1473    int32_t signal_filter_call() const {
  1474      return GetField<int32_t>(VT_SIGNAL_FILTER_CALL, 0);
  1475    }
  1476    int32_t repeat() const {
  1477      return GetField<int32_t>(VT_REPEAT, 0);
  1478    }
  1479    bool Verify(flatbuffers::Verifier &verifier) const {
  1480      return VerifyTableStart(verifier) &&
  1481             VerifyField<int64_t>(verifier, VT_ID, 8) &&
  1482             VerifyOffset(verifier, VT_PROG_DATA) &&
  1483             verifier.VerifyVector(prog_data()) &&
  1484             VerifyField<uint64_t>(verifier, VT_FLAGS, 8) &&
  1485             VerifyField<uint64_t>(verifier, VT_EXEC_ENV, 8) &&
  1486             VerifyField<uint64_t>(verifier, VT_EXEC_FLAGS, 8) &&
  1487             VerifyField<int64_t>(verifier, VT_SANDBOX_ARG, 8) &&
  1488             VerifyOffset(verifier, VT_SIGNAL_FILTER) &&
  1489             verifier.VerifyVector(signal_filter()) &&
  1490             VerifyField<int32_t>(verifier, VT_SIGNAL_FILTER_CALL, 4) &&
  1491             VerifyField<int32_t>(verifier, VT_REPEAT, 4) &&
  1492             verifier.EndTable();
  1493    }
  1494    ExecRequestRawT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1495    void UnPackTo(ExecRequestRawT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1496    static flatbuffers::Offset<ExecRequestRaw> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ExecRequestRawT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1497  };
  1498  
  1499  struct ExecRequestRawBuilder {
  1500    typedef ExecRequestRaw Table;
  1501    flatbuffers::FlatBufferBuilder &fbb_;
  1502    flatbuffers::uoffset_t start_;
  1503    void add_id(int64_t id) {
  1504      fbb_.AddElement<int64_t>(ExecRequestRaw::VT_ID, id, 0);
  1505    }
  1506    void add_prog_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> prog_data) {
  1507      fbb_.AddOffset(ExecRequestRaw::VT_PROG_DATA, prog_data);
  1508    }
  1509    void add_flags(rpc::RequestFlag flags) {
  1510      fbb_.AddElement<uint64_t>(ExecRequestRaw::VT_FLAGS, static_cast<uint64_t>(flags), 0);
  1511    }
  1512    void add_exec_env(rpc::ExecEnv exec_env) {
  1513      fbb_.AddElement<uint64_t>(ExecRequestRaw::VT_EXEC_ENV, static_cast<uint64_t>(exec_env), 0);
  1514    }
  1515    void add_exec_flags(rpc::ExecFlag exec_flags) {
  1516      fbb_.AddElement<uint64_t>(ExecRequestRaw::VT_EXEC_FLAGS, static_cast<uint64_t>(exec_flags), 0);
  1517    }
  1518    void add_sandbox_arg(int64_t sandbox_arg) {
  1519      fbb_.AddElement<int64_t>(ExecRequestRaw::VT_SANDBOX_ARG, sandbox_arg, 0);
  1520    }
  1521    void add_signal_filter(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> signal_filter) {
  1522      fbb_.AddOffset(ExecRequestRaw::VT_SIGNAL_FILTER, signal_filter);
  1523    }
  1524    void add_signal_filter_call(int32_t signal_filter_call) {
  1525      fbb_.AddElement<int32_t>(ExecRequestRaw::VT_SIGNAL_FILTER_CALL, signal_filter_call, 0);
  1526    }
  1527    void add_repeat(int32_t repeat) {
  1528      fbb_.AddElement<int32_t>(ExecRequestRaw::VT_REPEAT, repeat, 0);
  1529    }
  1530    explicit ExecRequestRawBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  1531          : fbb_(_fbb) {
  1532      start_ = fbb_.StartTable();
  1533    }
  1534    flatbuffers::Offset<ExecRequestRaw> Finish() {
  1535      const auto end = fbb_.EndTable(start_);
  1536      auto o = flatbuffers::Offset<ExecRequestRaw>(end);
  1537      return o;
  1538    }
  1539  };
  1540  
  1541  inline flatbuffers::Offset<ExecRequestRaw> CreateExecRequestRaw(
  1542      flatbuffers::FlatBufferBuilder &_fbb,
  1543      int64_t id = 0,
  1544      flatbuffers::Offset<flatbuffers::Vector<uint8_t>> prog_data = 0,
  1545      rpc::RequestFlag flags = static_cast<rpc::RequestFlag>(0),
  1546      rpc::ExecEnv exec_env = static_cast<rpc::ExecEnv>(0),
  1547      rpc::ExecFlag exec_flags = static_cast<rpc::ExecFlag>(0),
  1548      int64_t sandbox_arg = 0,
  1549      flatbuffers::Offset<flatbuffers::Vector<uint32_t>> signal_filter = 0,
  1550      int32_t signal_filter_call = 0,
  1551      int32_t repeat = 0) {
  1552    ExecRequestRawBuilder builder_(_fbb);
  1553    builder_.add_sandbox_arg(sandbox_arg);
  1554    builder_.add_exec_flags(exec_flags);
  1555    builder_.add_exec_env(exec_env);
  1556    builder_.add_flags(flags);
  1557    builder_.add_id(id);
  1558    builder_.add_repeat(repeat);
  1559    builder_.add_signal_filter_call(signal_filter_call);
  1560    builder_.add_signal_filter(signal_filter);
  1561    builder_.add_prog_data(prog_data);
  1562    return builder_.Finish();
  1563  }
  1564  
  1565  inline flatbuffers::Offset<ExecRequestRaw> CreateExecRequestRawDirect(
  1566      flatbuffers::FlatBufferBuilder &_fbb,
  1567      int64_t id = 0,
  1568      const std::vector<uint8_t> *prog_data = nullptr,
  1569      rpc::RequestFlag flags = static_cast<rpc::RequestFlag>(0),
  1570      rpc::ExecEnv exec_env = static_cast<rpc::ExecEnv>(0),
  1571      rpc::ExecFlag exec_flags = static_cast<rpc::ExecFlag>(0),
  1572      int64_t sandbox_arg = 0,
  1573      const std::vector<uint32_t> *signal_filter = nullptr,
  1574      int32_t signal_filter_call = 0,
  1575      int32_t repeat = 0) {
  1576    auto prog_data__ = prog_data ? _fbb.CreateVector<uint8_t>(*prog_data) : 0;
  1577    auto signal_filter__ = signal_filter ? _fbb.CreateVector<uint32_t>(*signal_filter) : 0;
  1578    return rpc::CreateExecRequestRaw(
  1579        _fbb,
  1580        id,
  1581        prog_data__,
  1582        flags,
  1583        exec_env,
  1584        exec_flags,
  1585        sandbox_arg,
  1586        signal_filter__,
  1587        signal_filter_call,
  1588        repeat);
  1589  }
  1590  
  1591  flatbuffers::Offset<ExecRequestRaw> CreateExecRequestRaw(flatbuffers::FlatBufferBuilder &_fbb, const ExecRequestRawT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1592  
  1593  struct SignalUpdateRawT : public flatbuffers::NativeTable {
  1594    typedef SignalUpdateRaw TableType;
  1595    std::vector<uint32_t> new_max{};
  1596    std::vector<uint32_t> drop_max{};
  1597  };
  1598  
  1599  struct SignalUpdateRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
  1600    typedef SignalUpdateRawT NativeTableType;
  1601    typedef SignalUpdateRawBuilder Builder;
  1602    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
  1603      VT_NEW_MAX = 4,
  1604      VT_DROP_MAX = 6
  1605    };
  1606    const flatbuffers::Vector<uint32_t> *new_max() const {
  1607      return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_NEW_MAX);
  1608    }
  1609    const flatbuffers::Vector<uint32_t> *drop_max() const {
  1610      return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_DROP_MAX);
  1611    }
  1612    bool Verify(flatbuffers::Verifier &verifier) const {
  1613      return VerifyTableStart(verifier) &&
  1614             VerifyOffset(verifier, VT_NEW_MAX) &&
  1615             verifier.VerifyVector(new_max()) &&
  1616             VerifyOffset(verifier, VT_DROP_MAX) &&
  1617             verifier.VerifyVector(drop_max()) &&
  1618             verifier.EndTable();
  1619    }
  1620    SignalUpdateRawT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1621    void UnPackTo(SignalUpdateRawT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1622    static flatbuffers::Offset<SignalUpdateRaw> Pack(flatbuffers::FlatBufferBuilder &_fbb, const SignalUpdateRawT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1623  };
  1624  
  1625  struct SignalUpdateRawBuilder {
  1626    typedef SignalUpdateRaw Table;
  1627    flatbuffers::FlatBufferBuilder &fbb_;
  1628    flatbuffers::uoffset_t start_;
  1629    void add_new_max(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> new_max) {
  1630      fbb_.AddOffset(SignalUpdateRaw::VT_NEW_MAX, new_max);
  1631    }
  1632    void add_drop_max(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> drop_max) {
  1633      fbb_.AddOffset(SignalUpdateRaw::VT_DROP_MAX, drop_max);
  1634    }
  1635    explicit SignalUpdateRawBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  1636          : fbb_(_fbb) {
  1637      start_ = fbb_.StartTable();
  1638    }
  1639    flatbuffers::Offset<SignalUpdateRaw> Finish() {
  1640      const auto end = fbb_.EndTable(start_);
  1641      auto o = flatbuffers::Offset<SignalUpdateRaw>(end);
  1642      return o;
  1643    }
  1644  };
  1645  
  1646  inline flatbuffers::Offset<SignalUpdateRaw> CreateSignalUpdateRaw(
  1647      flatbuffers::FlatBufferBuilder &_fbb,
  1648      flatbuffers::Offset<flatbuffers::Vector<uint32_t>> new_max = 0,
  1649      flatbuffers::Offset<flatbuffers::Vector<uint32_t>> drop_max = 0) {
  1650    SignalUpdateRawBuilder builder_(_fbb);
  1651    builder_.add_drop_max(drop_max);
  1652    builder_.add_new_max(new_max);
  1653    return builder_.Finish();
  1654  }
  1655  
  1656  inline flatbuffers::Offset<SignalUpdateRaw> CreateSignalUpdateRawDirect(
  1657      flatbuffers::FlatBufferBuilder &_fbb,
  1658      const std::vector<uint32_t> *new_max = nullptr,
  1659      const std::vector<uint32_t> *drop_max = nullptr) {
  1660    auto new_max__ = new_max ? _fbb.CreateVector<uint32_t>(*new_max) : 0;
  1661    auto drop_max__ = drop_max ? _fbb.CreateVector<uint32_t>(*drop_max) : 0;
  1662    return rpc::CreateSignalUpdateRaw(
  1663        _fbb,
  1664        new_max__,
  1665        drop_max__);
  1666  }
  1667  
  1668  flatbuffers::Offset<SignalUpdateRaw> CreateSignalUpdateRaw(flatbuffers::FlatBufferBuilder &_fbb, const SignalUpdateRawT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1669  
  1670  struct ExecutingMessageRawT : public flatbuffers::NativeTable {
  1671    typedef ExecutingMessageRaw TableType;
  1672    int64_t id = 0;
  1673    int32_t proc_id = 0;
  1674    int32_t try_ = 0;
  1675    int64_t wait_duration = 0;
  1676  };
  1677  
  1678  struct ExecutingMessageRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
  1679    typedef ExecutingMessageRawT NativeTableType;
  1680    typedef ExecutingMessageRawBuilder Builder;
  1681    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
  1682      VT_ID = 4,
  1683      VT_PROC_ID = 6,
  1684      VT_TRY_ = 8,
  1685      VT_WAIT_DURATION = 10
  1686    };
  1687    int64_t id() const {
  1688      return GetField<int64_t>(VT_ID, 0);
  1689    }
  1690    int32_t proc_id() const {
  1691      return GetField<int32_t>(VT_PROC_ID, 0);
  1692    }
  1693    int32_t try_() const {
  1694      return GetField<int32_t>(VT_TRY_, 0);
  1695    }
  1696    int64_t wait_duration() const {
  1697      return GetField<int64_t>(VT_WAIT_DURATION, 0);
  1698    }
  1699    bool Verify(flatbuffers::Verifier &verifier) const {
  1700      return VerifyTableStart(verifier) &&
  1701             VerifyField<int64_t>(verifier, VT_ID, 8) &&
  1702             VerifyField<int32_t>(verifier, VT_PROC_ID, 4) &&
  1703             VerifyField<int32_t>(verifier, VT_TRY_, 4) &&
  1704             VerifyField<int64_t>(verifier, VT_WAIT_DURATION, 8) &&
  1705             verifier.EndTable();
  1706    }
  1707    ExecutingMessageRawT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1708    void UnPackTo(ExecutingMessageRawT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1709    static flatbuffers::Offset<ExecutingMessageRaw> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ExecutingMessageRawT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1710  };
  1711  
  1712  struct ExecutingMessageRawBuilder {
  1713    typedef ExecutingMessageRaw Table;
  1714    flatbuffers::FlatBufferBuilder &fbb_;
  1715    flatbuffers::uoffset_t start_;
  1716    void add_id(int64_t id) {
  1717      fbb_.AddElement<int64_t>(ExecutingMessageRaw::VT_ID, id, 0);
  1718    }
  1719    void add_proc_id(int32_t proc_id) {
  1720      fbb_.AddElement<int32_t>(ExecutingMessageRaw::VT_PROC_ID, proc_id, 0);
  1721    }
  1722    void add_try_(int32_t try_) {
  1723      fbb_.AddElement<int32_t>(ExecutingMessageRaw::VT_TRY_, try_, 0);
  1724    }
  1725    void add_wait_duration(int64_t wait_duration) {
  1726      fbb_.AddElement<int64_t>(ExecutingMessageRaw::VT_WAIT_DURATION, wait_duration, 0);
  1727    }
  1728    explicit ExecutingMessageRawBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  1729          : fbb_(_fbb) {
  1730      start_ = fbb_.StartTable();
  1731    }
  1732    flatbuffers::Offset<ExecutingMessageRaw> Finish() {
  1733      const auto end = fbb_.EndTable(start_);
  1734      auto o = flatbuffers::Offset<ExecutingMessageRaw>(end);
  1735      return o;
  1736    }
  1737  };
  1738  
  1739  inline flatbuffers::Offset<ExecutingMessageRaw> CreateExecutingMessageRaw(
  1740      flatbuffers::FlatBufferBuilder &_fbb,
  1741      int64_t id = 0,
  1742      int32_t proc_id = 0,
  1743      int32_t try_ = 0,
  1744      int64_t wait_duration = 0) {
  1745    ExecutingMessageRawBuilder builder_(_fbb);
  1746    builder_.add_wait_duration(wait_duration);
  1747    builder_.add_id(id);
  1748    builder_.add_try_(try_);
  1749    builder_.add_proc_id(proc_id);
  1750    return builder_.Finish();
  1751  }
  1752  
  1753  flatbuffers::Offset<ExecutingMessageRaw> CreateExecutingMessageRaw(flatbuffers::FlatBufferBuilder &_fbb, const ExecutingMessageRawT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1754  
  1755  struct CallInfoRawT : public flatbuffers::NativeTable {
  1756    typedef CallInfoRaw TableType;
  1757    rpc::CallFlag flags = static_cast<rpc::CallFlag>(0);
  1758    int32_t error = 0;
  1759    std::vector<uint32_t> signal{};
  1760    std::vector<uint32_t> cover{};
  1761    std::vector<rpc::ComparisonRaw> comps{};
  1762  };
  1763  
  1764  struct CallInfoRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
  1765    typedef CallInfoRawT NativeTableType;
  1766    typedef CallInfoRawBuilder Builder;
  1767    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
  1768      VT_FLAGS = 4,
  1769      VT_ERROR = 6,
  1770      VT_SIGNAL = 8,
  1771      VT_COVER = 10,
  1772      VT_COMPS = 12
  1773    };
  1774    rpc::CallFlag flags() const {
  1775      return static_cast<rpc::CallFlag>(GetField<uint8_t>(VT_FLAGS, 0));
  1776    }
  1777    int32_t error() const {
  1778      return GetField<int32_t>(VT_ERROR, 0);
  1779    }
  1780    const flatbuffers::Vector<uint32_t> *signal() const {
  1781      return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_SIGNAL);
  1782    }
  1783    const flatbuffers::Vector<uint32_t> *cover() const {
  1784      return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_COVER);
  1785    }
  1786    const flatbuffers::Vector<const rpc::ComparisonRaw *> *comps() const {
  1787      return GetPointer<const flatbuffers::Vector<const rpc::ComparisonRaw *> *>(VT_COMPS);
  1788    }
  1789    bool Verify(flatbuffers::Verifier &verifier) const {
  1790      return VerifyTableStart(verifier) &&
  1791             VerifyField<uint8_t>(verifier, VT_FLAGS, 1) &&
  1792             VerifyField<int32_t>(verifier, VT_ERROR, 4) &&
  1793             VerifyOffset(verifier, VT_SIGNAL) &&
  1794             verifier.VerifyVector(signal()) &&
  1795             VerifyOffset(verifier, VT_COVER) &&
  1796             verifier.VerifyVector(cover()) &&
  1797             VerifyOffset(verifier, VT_COMPS) &&
  1798             verifier.VerifyVector(comps()) &&
  1799             verifier.EndTable();
  1800    }
  1801    CallInfoRawT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1802    void UnPackTo(CallInfoRawT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1803    static flatbuffers::Offset<CallInfoRaw> Pack(flatbuffers::FlatBufferBuilder &_fbb, const CallInfoRawT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1804  };
  1805  
  1806  struct CallInfoRawBuilder {
  1807    typedef CallInfoRaw Table;
  1808    flatbuffers::FlatBufferBuilder &fbb_;
  1809    flatbuffers::uoffset_t start_;
  1810    void add_flags(rpc::CallFlag flags) {
  1811      fbb_.AddElement<uint8_t>(CallInfoRaw::VT_FLAGS, static_cast<uint8_t>(flags), 0);
  1812    }
  1813    void add_error(int32_t error) {
  1814      fbb_.AddElement<int32_t>(CallInfoRaw::VT_ERROR, error, 0);
  1815    }
  1816    void add_signal(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> signal) {
  1817      fbb_.AddOffset(CallInfoRaw::VT_SIGNAL, signal);
  1818    }
  1819    void add_cover(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> cover) {
  1820      fbb_.AddOffset(CallInfoRaw::VT_COVER, cover);
  1821    }
  1822    void add_comps(flatbuffers::Offset<flatbuffers::Vector<const rpc::ComparisonRaw *>> comps) {
  1823      fbb_.AddOffset(CallInfoRaw::VT_COMPS, comps);
  1824    }
  1825    explicit CallInfoRawBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  1826          : fbb_(_fbb) {
  1827      start_ = fbb_.StartTable();
  1828    }
  1829    flatbuffers::Offset<CallInfoRaw> Finish() {
  1830      const auto end = fbb_.EndTable(start_);
  1831      auto o = flatbuffers::Offset<CallInfoRaw>(end);
  1832      return o;
  1833    }
  1834  };
  1835  
  1836  inline flatbuffers::Offset<CallInfoRaw> CreateCallInfoRaw(
  1837      flatbuffers::FlatBufferBuilder &_fbb,
  1838      rpc::CallFlag flags = static_cast<rpc::CallFlag>(0),
  1839      int32_t error = 0,
  1840      flatbuffers::Offset<flatbuffers::Vector<uint32_t>> signal = 0,
  1841      flatbuffers::Offset<flatbuffers::Vector<uint32_t>> cover = 0,
  1842      flatbuffers::Offset<flatbuffers::Vector<const rpc::ComparisonRaw *>> comps = 0) {
  1843    CallInfoRawBuilder builder_(_fbb);
  1844    builder_.add_comps(comps);
  1845    builder_.add_cover(cover);
  1846    builder_.add_signal(signal);
  1847    builder_.add_error(error);
  1848    builder_.add_flags(flags);
  1849    return builder_.Finish();
  1850  }
  1851  
  1852  inline flatbuffers::Offset<CallInfoRaw> CreateCallInfoRawDirect(
  1853      flatbuffers::FlatBufferBuilder &_fbb,
  1854      rpc::CallFlag flags = static_cast<rpc::CallFlag>(0),
  1855      int32_t error = 0,
  1856      const std::vector<uint32_t> *signal = nullptr,
  1857      const std::vector<uint32_t> *cover = nullptr,
  1858      const std::vector<rpc::ComparisonRaw> *comps = nullptr) {
  1859    auto signal__ = signal ? _fbb.CreateVector<uint32_t>(*signal) : 0;
  1860    auto cover__ = cover ? _fbb.CreateVector<uint32_t>(*cover) : 0;
  1861    auto comps__ = comps ? _fbb.CreateVectorOfStructs<rpc::ComparisonRaw>(*comps) : 0;
  1862    return rpc::CreateCallInfoRaw(
  1863        _fbb,
  1864        flags,
  1865        error,
  1866        signal__,
  1867        cover__,
  1868        comps__);
  1869  }
  1870  
  1871  flatbuffers::Offset<CallInfoRaw> CreateCallInfoRaw(flatbuffers::FlatBufferBuilder &_fbb, const CallInfoRawT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1872  
  1873  struct ProgInfoRawT : public flatbuffers::NativeTable {
  1874    typedef ProgInfoRaw TableType;
  1875    std::vector<std::unique_ptr<rpc::CallInfoRawT>> calls{};
  1876    std::unique_ptr<rpc::CallInfoRawT> extra{};
  1877    uint64_t elapsed = 0;
  1878    uint64_t freshness = 0;
  1879    ProgInfoRawT() = default;
  1880    ProgInfoRawT(const ProgInfoRawT &o);
  1881    ProgInfoRawT(ProgInfoRawT&&) FLATBUFFERS_NOEXCEPT = default;
  1882    ProgInfoRawT &operator=(ProgInfoRawT o) FLATBUFFERS_NOEXCEPT;
  1883  };
  1884  
  1885  struct ProgInfoRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
  1886    typedef ProgInfoRawT NativeTableType;
  1887    typedef ProgInfoRawBuilder Builder;
  1888    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
  1889      VT_CALLS = 4,
  1890      VT_EXTRA = 6,
  1891      VT_ELAPSED = 8,
  1892      VT_FRESHNESS = 10
  1893    };
  1894    const flatbuffers::Vector<flatbuffers::Offset<rpc::CallInfoRaw>> *calls() const {
  1895      return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<rpc::CallInfoRaw>> *>(VT_CALLS);
  1896    }
  1897    const rpc::CallInfoRaw *extra() const {
  1898      return GetPointer<const rpc::CallInfoRaw *>(VT_EXTRA);
  1899    }
  1900    uint64_t elapsed() const {
  1901      return GetField<uint64_t>(VT_ELAPSED, 0);
  1902    }
  1903    uint64_t freshness() const {
  1904      return GetField<uint64_t>(VT_FRESHNESS, 0);
  1905    }
  1906    bool Verify(flatbuffers::Verifier &verifier) const {
  1907      return VerifyTableStart(verifier) &&
  1908             VerifyOffset(verifier, VT_CALLS) &&
  1909             verifier.VerifyVector(calls()) &&
  1910             verifier.VerifyVectorOfTables(calls()) &&
  1911             VerifyOffset(verifier, VT_EXTRA) &&
  1912             verifier.VerifyTable(extra()) &&
  1913             VerifyField<uint64_t>(verifier, VT_ELAPSED, 8) &&
  1914             VerifyField<uint64_t>(verifier, VT_FRESHNESS, 8) &&
  1915             verifier.EndTable();
  1916    }
  1917    ProgInfoRawT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1918    void UnPackTo(ProgInfoRawT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  1919    static flatbuffers::Offset<ProgInfoRaw> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ProgInfoRawT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1920  };
  1921  
  1922  struct ProgInfoRawBuilder {
  1923    typedef ProgInfoRaw Table;
  1924    flatbuffers::FlatBufferBuilder &fbb_;
  1925    flatbuffers::uoffset_t start_;
  1926    void add_calls(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<rpc::CallInfoRaw>>> calls) {
  1927      fbb_.AddOffset(ProgInfoRaw::VT_CALLS, calls);
  1928    }
  1929    void add_extra(flatbuffers::Offset<rpc::CallInfoRaw> extra) {
  1930      fbb_.AddOffset(ProgInfoRaw::VT_EXTRA, extra);
  1931    }
  1932    void add_elapsed(uint64_t elapsed) {
  1933      fbb_.AddElement<uint64_t>(ProgInfoRaw::VT_ELAPSED, elapsed, 0);
  1934    }
  1935    void add_freshness(uint64_t freshness) {
  1936      fbb_.AddElement<uint64_t>(ProgInfoRaw::VT_FRESHNESS, freshness, 0);
  1937    }
  1938    explicit ProgInfoRawBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  1939          : fbb_(_fbb) {
  1940      start_ = fbb_.StartTable();
  1941    }
  1942    flatbuffers::Offset<ProgInfoRaw> Finish() {
  1943      const auto end = fbb_.EndTable(start_);
  1944      auto o = flatbuffers::Offset<ProgInfoRaw>(end);
  1945      return o;
  1946    }
  1947  };
  1948  
  1949  inline flatbuffers::Offset<ProgInfoRaw> CreateProgInfoRaw(
  1950      flatbuffers::FlatBufferBuilder &_fbb,
  1951      flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<rpc::CallInfoRaw>>> calls = 0,
  1952      flatbuffers::Offset<rpc::CallInfoRaw> extra = 0,
  1953      uint64_t elapsed = 0,
  1954      uint64_t freshness = 0) {
  1955    ProgInfoRawBuilder builder_(_fbb);
  1956    builder_.add_freshness(freshness);
  1957    builder_.add_elapsed(elapsed);
  1958    builder_.add_extra(extra);
  1959    builder_.add_calls(calls);
  1960    return builder_.Finish();
  1961  }
  1962  
  1963  inline flatbuffers::Offset<ProgInfoRaw> CreateProgInfoRawDirect(
  1964      flatbuffers::FlatBufferBuilder &_fbb,
  1965      const std::vector<flatbuffers::Offset<rpc::CallInfoRaw>> *calls = nullptr,
  1966      flatbuffers::Offset<rpc::CallInfoRaw> extra = 0,
  1967      uint64_t elapsed = 0,
  1968      uint64_t freshness = 0) {
  1969    auto calls__ = calls ? _fbb.CreateVector<flatbuffers::Offset<rpc::CallInfoRaw>>(*calls) : 0;
  1970    return rpc::CreateProgInfoRaw(
  1971        _fbb,
  1972        calls__,
  1973        extra,
  1974        elapsed,
  1975        freshness);
  1976  }
  1977  
  1978  flatbuffers::Offset<ProgInfoRaw> CreateProgInfoRaw(flatbuffers::FlatBufferBuilder &_fbb, const ProgInfoRawT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  1979  
  1980  struct ExecResultRawT : public flatbuffers::NativeTable {
  1981    typedef ExecResultRaw TableType;
  1982    int64_t id = 0;
  1983    std::vector<uint8_t> output{};
  1984    std::string error{};
  1985    std::unique_ptr<rpc::ProgInfoRawT> info{};
  1986    ExecResultRawT() = default;
  1987    ExecResultRawT(const ExecResultRawT &o);
  1988    ExecResultRawT(ExecResultRawT&&) FLATBUFFERS_NOEXCEPT = default;
  1989    ExecResultRawT &operator=(ExecResultRawT o) FLATBUFFERS_NOEXCEPT;
  1990  };
  1991  
  1992  struct ExecResultRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
  1993    typedef ExecResultRawT NativeTableType;
  1994    typedef ExecResultRawBuilder Builder;
  1995    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
  1996      VT_ID = 4,
  1997      VT_OUTPUT = 6,
  1998      VT_ERROR = 8,
  1999      VT_INFO = 10
  2000    };
  2001    int64_t id() const {
  2002      return GetField<int64_t>(VT_ID, 0);
  2003    }
  2004    const flatbuffers::Vector<uint8_t> *output() const {
  2005      return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_OUTPUT);
  2006    }
  2007    const flatbuffers::String *error() const {
  2008      return GetPointer<const flatbuffers::String *>(VT_ERROR);
  2009    }
  2010    const rpc::ProgInfoRaw *info() const {
  2011      return GetPointer<const rpc::ProgInfoRaw *>(VT_INFO);
  2012    }
  2013    bool Verify(flatbuffers::Verifier &verifier) const {
  2014      return VerifyTableStart(verifier) &&
  2015             VerifyField<int64_t>(verifier, VT_ID, 8) &&
  2016             VerifyOffset(verifier, VT_OUTPUT) &&
  2017             verifier.VerifyVector(output()) &&
  2018             VerifyOffset(verifier, VT_ERROR) &&
  2019             verifier.VerifyString(error()) &&
  2020             VerifyOffset(verifier, VT_INFO) &&
  2021             verifier.VerifyTable(info()) &&
  2022             verifier.EndTable();
  2023    }
  2024    ExecResultRawT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  2025    void UnPackTo(ExecResultRawT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
  2026    static flatbuffers::Offset<ExecResultRaw> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ExecResultRawT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  2027  };
  2028  
  2029  struct ExecResultRawBuilder {
  2030    typedef ExecResultRaw Table;
  2031    flatbuffers::FlatBufferBuilder &fbb_;
  2032    flatbuffers::uoffset_t start_;
  2033    void add_id(int64_t id) {
  2034      fbb_.AddElement<int64_t>(ExecResultRaw::VT_ID, id, 0);
  2035    }
  2036    void add_output(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> output) {
  2037      fbb_.AddOffset(ExecResultRaw::VT_OUTPUT, output);
  2038    }
  2039    void add_error(flatbuffers::Offset<flatbuffers::String> error) {
  2040      fbb_.AddOffset(ExecResultRaw::VT_ERROR, error);
  2041    }
  2042    void add_info(flatbuffers::Offset<rpc::ProgInfoRaw> info) {
  2043      fbb_.AddOffset(ExecResultRaw::VT_INFO, info);
  2044    }
  2045    explicit ExecResultRawBuilder(flatbuffers::FlatBufferBuilder &_fbb)
  2046          : fbb_(_fbb) {
  2047      start_ = fbb_.StartTable();
  2048    }
  2049    flatbuffers::Offset<ExecResultRaw> Finish() {
  2050      const auto end = fbb_.EndTable(start_);
  2051      auto o = flatbuffers::Offset<ExecResultRaw>(end);
  2052      return o;
  2053    }
  2054  };
  2055  
  2056  inline flatbuffers::Offset<ExecResultRaw> CreateExecResultRaw(
  2057      flatbuffers::FlatBufferBuilder &_fbb,
  2058      int64_t id = 0,
  2059      flatbuffers::Offset<flatbuffers::Vector<uint8_t>> output = 0,
  2060      flatbuffers::Offset<flatbuffers::String> error = 0,
  2061      flatbuffers::Offset<rpc::ProgInfoRaw> info = 0) {
  2062    ExecResultRawBuilder builder_(_fbb);
  2063    builder_.add_id(id);
  2064    builder_.add_info(info);
  2065    builder_.add_error(error);
  2066    builder_.add_output(output);
  2067    return builder_.Finish();
  2068  }
  2069  
  2070  inline flatbuffers::Offset<ExecResultRaw> CreateExecResultRawDirect(
  2071      flatbuffers::FlatBufferBuilder &_fbb,
  2072      int64_t id = 0,
  2073      const std::vector<uint8_t> *output = nullptr,
  2074      const char *error = nullptr,
  2075      flatbuffers::Offset<rpc::ProgInfoRaw> info = 0) {
  2076    auto output__ = output ? _fbb.CreateVector<uint8_t>(*output) : 0;
  2077    auto error__ = error ? _fbb.CreateString(error) : 0;
  2078    return rpc::CreateExecResultRaw(
  2079        _fbb,
  2080        id,
  2081        output__,
  2082        error__,
  2083        info);
  2084  }
  2085  
  2086  flatbuffers::Offset<ExecResultRaw> CreateExecResultRaw(flatbuffers::FlatBufferBuilder &_fbb, const ExecResultRawT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
  2087  
  2088  inline ConnectRequestRawT *ConnectRequestRaw::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
  2089    auto _o = std::unique_ptr<ConnectRequestRawT>(new ConnectRequestRawT());
  2090    UnPackTo(_o.get(), _resolver);
  2091    return _o.release();
  2092  }
  2093  
  2094  inline void ConnectRequestRaw::UnPackTo(ConnectRequestRawT *_o, const flatbuffers::resolver_function_t *_resolver) const {
  2095    (void)_o;
  2096    (void)_resolver;
  2097    { auto _e = name(); if (_e) _o->name = _e->str(); }
  2098    { auto _e = arch(); if (_e) _o->arch = _e->str(); }
  2099    { auto _e = git_revision(); if (_e) _o->git_revision = _e->str(); }
  2100    { auto _e = syz_revision(); if (_e) _o->syz_revision = _e->str(); }
  2101  }
  2102  
  2103  inline flatbuffers::Offset<ConnectRequestRaw> ConnectRequestRaw::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ConnectRequestRawT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
  2104    return CreateConnectRequestRaw(_fbb, _o, _rehasher);
  2105  }
  2106  
  2107  inline flatbuffers::Offset<ConnectRequestRaw> CreateConnectRequestRaw(flatbuffers::FlatBufferBuilder &_fbb, const ConnectRequestRawT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
  2108    (void)_rehasher;
  2109    (void)_o;
  2110    struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ConnectRequestRawT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
  2111    auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name);
  2112    auto _arch = _o->arch.empty() ? 0 : _fbb.CreateString(_o->arch);
  2113    auto _git_revision = _o->git_revision.empty() ? 0 : _fbb.CreateString(_o->git_revision);
  2114    auto _syz_revision = _o->syz_revision.empty() ? 0 : _fbb.CreateString(_o->syz_revision);
  2115    return rpc::CreateConnectRequestRaw(
  2116        _fbb,
  2117        _name,
  2118        _arch,
  2119        _git_revision,
  2120        _syz_revision);
  2121  }
  2122  
  2123  inline ConnectReplyRawT *ConnectReplyRaw::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
  2124    auto _o = std::unique_ptr<ConnectReplyRawT>(new ConnectReplyRawT());
  2125    UnPackTo(_o.get(), _resolver);
  2126    return _o.release();
  2127  }
  2128  
  2129  inline void ConnectReplyRaw::UnPackTo(ConnectReplyRawT *_o, const flatbuffers::resolver_function_t *_resolver) const {
  2130    (void)_o;
  2131    (void)_resolver;
  2132    { auto _e = leak_frames(); if (_e) { _o->leak_frames.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->leak_frames[_i] = _e->Get(_i)->str(); } } }
  2133    { auto _e = race_frames(); if (_e) { _o->race_frames.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->race_frames[_i] = _e->Get(_i)->str(); } } }
  2134    { auto _e = features(); _o->features = _e; }
  2135    { auto _e = files(); if (_e) { _o->files.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->files[_i] = _e->Get(_i)->str(); } } }
  2136    { auto _e = globs(); if (_e) { _o->globs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->globs[_i] = _e->Get(_i)->str(); } } }
  2137  }
  2138  
  2139  inline flatbuffers::Offset<ConnectReplyRaw> ConnectReplyRaw::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ConnectReplyRawT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
  2140    return CreateConnectReplyRaw(_fbb, _o, _rehasher);
  2141  }
  2142  
  2143  inline flatbuffers::Offset<ConnectReplyRaw> CreateConnectReplyRaw(flatbuffers::FlatBufferBuilder &_fbb, const ConnectReplyRawT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
  2144    (void)_rehasher;
  2145    (void)_o;
  2146    struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ConnectReplyRawT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
  2147    auto _leak_frames = _o->leak_frames.size() ? _fbb.CreateVectorOfStrings(_o->leak_frames) : 0;
  2148    auto _race_frames = _o->race_frames.size() ? _fbb.CreateVectorOfStrings(_o->race_frames) : 0;
  2149    auto _features = _o->features;
  2150    auto _files = _o->files.size() ? _fbb.CreateVectorOfStrings(_o->files) : 0;
  2151    auto _globs = _o->globs.size() ? _fbb.CreateVectorOfStrings(_o->globs) : 0;
  2152    return rpc::CreateConnectReplyRaw(
  2153        _fbb,
  2154        _leak_frames,
  2155        _race_frames,
  2156        _features,
  2157        _files,
  2158        _globs);
  2159  }
  2160  
  2161  inline InfoRequestRawT::InfoRequestRawT(const InfoRequestRawT &o)
  2162        : error(o.error) {
  2163    features.reserve(o.features.size());
  2164    for (const auto &features_ : o.features) { features.emplace_back((features_) ? new rpc::FeatureInfoRawT(*features_) : nullptr); }
  2165    files.reserve(o.files.size());
  2166    for (const auto &files_ : o.files) { files.emplace_back((files_) ? new rpc::FileInfoRawT(*files_) : nullptr); }
  2167    globs.reserve(o.globs.size());
  2168    for (const auto &globs_ : o.globs) { globs.emplace_back((globs_) ? new rpc::GlobInfoRawT(*globs_) : nullptr); }
  2169  }
  2170  
  2171  inline InfoRequestRawT &InfoRequestRawT::operator=(InfoRequestRawT o) FLATBUFFERS_NOEXCEPT {
  2172    std::swap(error, o.error);
  2173    std::swap(features, o.features);
  2174    std::swap(files, o.files);
  2175    std::swap(globs, o.globs);
  2176    return *this;
  2177  }
  2178  
  2179  inline InfoRequestRawT *InfoRequestRaw::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
  2180    auto _o = std::unique_ptr<InfoRequestRawT>(new InfoRequestRawT());
  2181    UnPackTo(_o.get(), _resolver);
  2182    return _o.release();
  2183  }
  2184  
  2185  inline void InfoRequestRaw::UnPackTo(InfoRequestRawT *_o, const flatbuffers::resolver_function_t *_resolver) const {
  2186    (void)_o;
  2187    (void)_resolver;
  2188    { auto _e = error(); if (_e) _o->error = _e->str(); }
  2189    { auto _e = features(); if (_e) { _o->features.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->features[_i] = std::unique_ptr<rpc::FeatureInfoRawT>(_e->Get(_i)->UnPack(_resolver)); } } }
  2190    { auto _e = files(); if (_e) { _o->files.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->files[_i] = std::unique_ptr<rpc::FileInfoRawT>(_e->Get(_i)->UnPack(_resolver)); } } }
  2191    { auto _e = globs(); if (_e) { _o->globs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->globs[_i] = std::unique_ptr<rpc::GlobInfoRawT>(_e->Get(_i)->UnPack(_resolver)); } } }
  2192  }
  2193  
  2194  inline flatbuffers::Offset<InfoRequestRaw> InfoRequestRaw::Pack(flatbuffers::FlatBufferBuilder &_fbb, const InfoRequestRawT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
  2195    return CreateInfoRequestRaw(_fbb, _o, _rehasher);
  2196  }
  2197  
  2198  inline flatbuffers::Offset<InfoRequestRaw> CreateInfoRequestRaw(flatbuffers::FlatBufferBuilder &_fbb, const InfoRequestRawT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
  2199    (void)_rehasher;
  2200    (void)_o;
  2201    struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const InfoRequestRawT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
  2202    auto _error = _o->error.empty() ? 0 : _fbb.CreateString(_o->error);
  2203    auto _features = _o->features.size() ? _fbb.CreateVector<flatbuffers::Offset<rpc::FeatureInfoRaw>> (_o->features.size(), [](size_t i, _VectorArgs *__va) { return CreateFeatureInfoRaw(*__va->__fbb, __va->__o->features[i].get(), __va->__rehasher); }, &_va ) : 0;
  2204    auto _files = _o->files.size() ? _fbb.CreateVector<flatbuffers::Offset<rpc::FileInfoRaw>> (_o->files.size(), [](size_t i, _VectorArgs *__va) { return CreateFileInfoRaw(*__va->__fbb, __va->__o->files[i].get(), __va->__rehasher); }, &_va ) : 0;
  2205    auto _globs = _o->globs.size() ? _fbb.CreateVector<flatbuffers::Offset<rpc::GlobInfoRaw>> (_o->globs.size(), [](size_t i, _VectorArgs *__va) { return CreateGlobInfoRaw(*__va->__fbb, __va->__o->globs[i].get(), __va->__rehasher); }, &_va ) : 0;
  2206    return rpc::CreateInfoRequestRaw(
  2207        _fbb,
  2208        _error,
  2209        _features,
  2210        _files,
  2211        _globs);
  2212  }
  2213  
  2214  inline InfoReplyRawT *InfoReplyRaw::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
  2215    auto _o = std::unique_ptr<InfoReplyRawT>(new InfoReplyRawT());
  2216    UnPackTo(_o.get(), _resolver);
  2217    return _o.release();
  2218  }
  2219  
  2220  inline void InfoReplyRaw::UnPackTo(InfoReplyRawT *_o, const flatbuffers::resolver_function_t *_resolver) const {
  2221    (void)_o;
  2222    (void)_resolver;
  2223    { auto _e = cover_filter(); if (_e) { _o->cover_filter.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->cover_filter.begin()); } }
  2224  }
  2225  
  2226  inline flatbuffers::Offset<InfoReplyRaw> InfoReplyRaw::Pack(flatbuffers::FlatBufferBuilder &_fbb, const InfoReplyRawT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
  2227    return CreateInfoReplyRaw(_fbb, _o, _rehasher);
  2228  }
  2229  
  2230  inline flatbuffers::Offset<InfoReplyRaw> CreateInfoReplyRaw(flatbuffers::FlatBufferBuilder &_fbb, const InfoReplyRawT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
  2231    (void)_rehasher;
  2232    (void)_o;
  2233    struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const InfoReplyRawT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
  2234    auto _cover_filter = _o->cover_filter.size() ? _fbb.CreateVector(_o->cover_filter) : 0;
  2235    return rpc::CreateInfoReplyRaw(
  2236        _fbb,
  2237        _cover_filter);
  2238  }
  2239  
  2240  inline FileInfoRawT *FileInfoRaw::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
  2241    auto _o = std::unique_ptr<FileInfoRawT>(new FileInfoRawT());
  2242    UnPackTo(_o.get(), _resolver);
  2243    return _o.release();
  2244  }
  2245  
  2246  inline void FileInfoRaw::UnPackTo(FileInfoRawT *_o, const flatbuffers::resolver_function_t *_resolver) const {
  2247    (void)_o;
  2248    (void)_resolver;
  2249    { auto _e = name(); if (_e) _o->name = _e->str(); }
  2250    { auto _e = exists(); _o->exists = _e; }
  2251    { auto _e = error(); if (_e) _o->error = _e->str(); }
  2252    { auto _e = data(); if (_e) { _o->data.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->data.begin()); } }
  2253  }
  2254  
  2255  inline flatbuffers::Offset<FileInfoRaw> FileInfoRaw::Pack(flatbuffers::FlatBufferBuilder &_fbb, const FileInfoRawT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
  2256    return CreateFileInfoRaw(_fbb, _o, _rehasher);
  2257  }
  2258  
  2259  inline flatbuffers::Offset<FileInfoRaw> CreateFileInfoRaw(flatbuffers::FlatBufferBuilder &_fbb, const FileInfoRawT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
  2260    (void)_rehasher;
  2261    (void)_o;
  2262    struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const FileInfoRawT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
  2263    auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name);
  2264    auto _exists = _o->exists;
  2265    auto _error = _o->error.empty() ? 0 : _fbb.CreateString(_o->error);
  2266    auto _data = _o->data.size() ? _fbb.CreateVector(_o->data) : 0;
  2267    return rpc::CreateFileInfoRaw(
  2268        _fbb,
  2269        _name,
  2270        _exists,
  2271        _error,
  2272        _data);
  2273  }
  2274  
  2275  inline GlobInfoRawT *GlobInfoRaw::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
  2276    auto _o = std::unique_ptr<GlobInfoRawT>(new GlobInfoRawT());
  2277    UnPackTo(_o.get(), _resolver);
  2278    return _o.release();
  2279  }
  2280  
  2281  inline void GlobInfoRaw::UnPackTo(GlobInfoRawT *_o, const flatbuffers::resolver_function_t *_resolver) const {
  2282    (void)_o;
  2283    (void)_resolver;
  2284    { auto _e = name(); if (_e) _o->name = _e->str(); }
  2285    { auto _e = files(); if (_e) { _o->files.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->files[_i] = _e->Get(_i)->str(); } } }
  2286  }
  2287  
  2288  inline flatbuffers::Offset<GlobInfoRaw> GlobInfoRaw::Pack(flatbuffers::FlatBufferBuilder &_fbb, const GlobInfoRawT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
  2289    return CreateGlobInfoRaw(_fbb, _o, _rehasher);
  2290  }
  2291  
  2292  inline flatbuffers::Offset<GlobInfoRaw> CreateGlobInfoRaw(flatbuffers::FlatBufferBuilder &_fbb, const GlobInfoRawT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
  2293    (void)_rehasher;
  2294    (void)_o;
  2295    struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const GlobInfoRawT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
  2296    auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name);
  2297    auto _files = _o->files.size() ? _fbb.CreateVectorOfStrings(_o->files) : 0;
  2298    return rpc::CreateGlobInfoRaw(
  2299        _fbb,
  2300        _name,
  2301        _files);
  2302  }
  2303  
  2304  inline FeatureInfoRawT *FeatureInfoRaw::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
  2305    auto _o = std::unique_ptr<FeatureInfoRawT>(new FeatureInfoRawT());
  2306    UnPackTo(_o.get(), _resolver);
  2307    return _o.release();
  2308  }
  2309  
  2310  inline void FeatureInfoRaw::UnPackTo(FeatureInfoRawT *_o, const flatbuffers::resolver_function_t *_resolver) const {
  2311    (void)_o;
  2312    (void)_resolver;
  2313    { auto _e = id(); _o->id = _e; }
  2314    { auto _e = need_setup(); _o->need_setup = _e; }
  2315    { auto _e = reason(); if (_e) _o->reason = _e->str(); }
  2316  }
  2317  
  2318  inline flatbuffers::Offset<FeatureInfoRaw> FeatureInfoRaw::Pack(flatbuffers::FlatBufferBuilder &_fbb, const FeatureInfoRawT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
  2319    return CreateFeatureInfoRaw(_fbb, _o, _rehasher);
  2320  }
  2321  
  2322  inline flatbuffers::Offset<FeatureInfoRaw> CreateFeatureInfoRaw(flatbuffers::FlatBufferBuilder &_fbb, const FeatureInfoRawT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
  2323    (void)_rehasher;
  2324    (void)_o;
  2325    struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const FeatureInfoRawT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
  2326    auto _id = _o->id;
  2327    auto _need_setup = _o->need_setup;
  2328    auto _reason = _o->reason.empty() ? 0 : _fbb.CreateString(_o->reason);
  2329    return rpc::CreateFeatureInfoRaw(
  2330        _fbb,
  2331        _id,
  2332        _need_setup,
  2333        _reason);
  2334  }
  2335  
  2336  inline HostMessageRawT *HostMessageRaw::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
  2337    auto _o = std::unique_ptr<HostMessageRawT>(new HostMessageRawT());
  2338    UnPackTo(_o.get(), _resolver);
  2339    return _o.release();
  2340  }
  2341  
  2342  inline void HostMessageRaw::UnPackTo(HostMessageRawT *_o, const flatbuffers::resolver_function_t *_resolver) const {
  2343    (void)_o;
  2344    (void)_resolver;
  2345    { auto _e = msg_type(); _o->msg.type = _e; }
  2346    { auto _e = msg(); if (_e) _o->msg.value = rpc::HostMessagesRawUnion::UnPack(_e, msg_type(), _resolver); }
  2347  }
  2348  
  2349  inline flatbuffers::Offset<HostMessageRaw> HostMessageRaw::Pack(flatbuffers::FlatBufferBuilder &_fbb, const HostMessageRawT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
  2350    return CreateHostMessageRaw(_fbb, _o, _rehasher);
  2351  }
  2352  
  2353  inline flatbuffers::Offset<HostMessageRaw> CreateHostMessageRaw(flatbuffers::FlatBufferBuilder &_fbb, const HostMessageRawT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
  2354    (void)_rehasher;
  2355    (void)_o;
  2356    struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const HostMessageRawT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
  2357    auto _msg_type = _o->msg.type;
  2358    auto _msg = _o->msg.Pack(_fbb);
  2359    return rpc::CreateHostMessageRaw(
  2360        _fbb,
  2361        _msg_type,
  2362        _msg);
  2363  }
  2364  
  2365  inline ExecutorMessageRawT *ExecutorMessageRaw::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
  2366    auto _o = std::unique_ptr<ExecutorMessageRawT>(new ExecutorMessageRawT());
  2367    UnPackTo(_o.get(), _resolver);
  2368    return _o.release();
  2369  }
  2370  
  2371  inline void ExecutorMessageRaw::UnPackTo(ExecutorMessageRawT *_o, const flatbuffers::resolver_function_t *_resolver) const {
  2372    (void)_o;
  2373    (void)_resolver;
  2374    { auto _e = msg_type(); _o->msg.type = _e; }
  2375    { auto _e = msg(); if (_e) _o->msg.value = rpc::ExecutorMessagesRawUnion::UnPack(_e, msg_type(), _resolver); }
  2376  }
  2377  
  2378  inline flatbuffers::Offset<ExecutorMessageRaw> ExecutorMessageRaw::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ExecutorMessageRawT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
  2379    return CreateExecutorMessageRaw(_fbb, _o, _rehasher);
  2380  }
  2381  
  2382  inline flatbuffers::Offset<ExecutorMessageRaw> CreateExecutorMessageRaw(flatbuffers::FlatBufferBuilder &_fbb, const ExecutorMessageRawT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
  2383    (void)_rehasher;
  2384    (void)_o;
  2385    struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ExecutorMessageRawT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
  2386    auto _msg_type = _o->msg.type;
  2387    auto _msg = _o->msg.Pack(_fbb);
  2388    return rpc::CreateExecutorMessageRaw(
  2389        _fbb,
  2390        _msg_type,
  2391        _msg);
  2392  }
  2393  
  2394  inline ExecRequestRawT *ExecRequestRaw::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
  2395    auto _o = std::unique_ptr<ExecRequestRawT>(new ExecRequestRawT());
  2396    UnPackTo(_o.get(), _resolver);
  2397    return _o.release();
  2398  }
  2399  
  2400  inline void ExecRequestRaw::UnPackTo(ExecRequestRawT *_o, const flatbuffers::resolver_function_t *_resolver) const {
  2401    (void)_o;
  2402    (void)_resolver;
  2403    { auto _e = id(); _o->id = _e; }
  2404    { auto _e = prog_data(); if (_e) { _o->prog_data.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->prog_data.begin()); } }
  2405    { auto _e = flags(); _o->flags = _e; }
  2406    { auto _e = exec_env(); _o->exec_env = _e; }
  2407    { auto _e = exec_flags(); _o->exec_flags = _e; }
  2408    { auto _e = sandbox_arg(); _o->sandbox_arg = _e; }
  2409    { auto _e = signal_filter(); if (_e) { _o->signal_filter.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->signal_filter[_i] = _e->Get(_i); } } }
  2410    { auto _e = signal_filter_call(); _o->signal_filter_call = _e; }
  2411    { auto _e = repeat(); _o->repeat = _e; }
  2412  }
  2413  
  2414  inline flatbuffers::Offset<ExecRequestRaw> ExecRequestRaw::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ExecRequestRawT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
  2415    return CreateExecRequestRaw(_fbb, _o, _rehasher);
  2416  }
  2417  
  2418  inline flatbuffers::Offset<ExecRequestRaw> CreateExecRequestRaw(flatbuffers::FlatBufferBuilder &_fbb, const ExecRequestRawT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
  2419    (void)_rehasher;
  2420    (void)_o;
  2421    struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ExecRequestRawT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
  2422    auto _id = _o->id;
  2423    auto _prog_data = _o->prog_data.size() ? _fbb.CreateVector(_o->prog_data) : 0;
  2424    auto _flags = _o->flags;
  2425    auto _exec_env = _o->exec_env;
  2426    auto _exec_flags = _o->exec_flags;
  2427    auto _sandbox_arg = _o->sandbox_arg;
  2428    auto _signal_filter = _o->signal_filter.size() ? _fbb.CreateVector(_o->signal_filter) : 0;
  2429    auto _signal_filter_call = _o->signal_filter_call;
  2430    auto _repeat = _o->repeat;
  2431    return rpc::CreateExecRequestRaw(
  2432        _fbb,
  2433        _id,
  2434        _prog_data,
  2435        _flags,
  2436        _exec_env,
  2437        _exec_flags,
  2438        _sandbox_arg,
  2439        _signal_filter,
  2440        _signal_filter_call,
  2441        _repeat);
  2442  }
  2443  
  2444  inline SignalUpdateRawT *SignalUpdateRaw::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
  2445    auto _o = std::unique_ptr<SignalUpdateRawT>(new SignalUpdateRawT());
  2446    UnPackTo(_o.get(), _resolver);
  2447    return _o.release();
  2448  }
  2449  
  2450  inline void SignalUpdateRaw::UnPackTo(SignalUpdateRawT *_o, const flatbuffers::resolver_function_t *_resolver) const {
  2451    (void)_o;
  2452    (void)_resolver;
  2453    { auto _e = new_max(); if (_e) { _o->new_max.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->new_max[_i] = _e->Get(_i); } } }
  2454    { auto _e = drop_max(); if (_e) { _o->drop_max.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->drop_max[_i] = _e->Get(_i); } } }
  2455  }
  2456  
  2457  inline flatbuffers::Offset<SignalUpdateRaw> SignalUpdateRaw::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SignalUpdateRawT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
  2458    return CreateSignalUpdateRaw(_fbb, _o, _rehasher);
  2459  }
  2460  
  2461  inline flatbuffers::Offset<SignalUpdateRaw> CreateSignalUpdateRaw(flatbuffers::FlatBufferBuilder &_fbb, const SignalUpdateRawT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
  2462    (void)_rehasher;
  2463    (void)_o;
  2464    struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SignalUpdateRawT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
  2465    auto _new_max = _o->new_max.size() ? _fbb.CreateVector(_o->new_max) : 0;
  2466    auto _drop_max = _o->drop_max.size() ? _fbb.CreateVector(_o->drop_max) : 0;
  2467    return rpc::CreateSignalUpdateRaw(
  2468        _fbb,
  2469        _new_max,
  2470        _drop_max);
  2471  }
  2472  
  2473  inline ExecutingMessageRawT *ExecutingMessageRaw::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
  2474    auto _o = std::unique_ptr<ExecutingMessageRawT>(new ExecutingMessageRawT());
  2475    UnPackTo(_o.get(), _resolver);
  2476    return _o.release();
  2477  }
  2478  
  2479  inline void ExecutingMessageRaw::UnPackTo(ExecutingMessageRawT *_o, const flatbuffers::resolver_function_t *_resolver) const {
  2480    (void)_o;
  2481    (void)_resolver;
  2482    { auto _e = id(); _o->id = _e; }
  2483    { auto _e = proc_id(); _o->proc_id = _e; }
  2484    { auto _e = try_(); _o->try_ = _e; }
  2485    { auto _e = wait_duration(); _o->wait_duration = _e; }
  2486  }
  2487  
  2488  inline flatbuffers::Offset<ExecutingMessageRaw> ExecutingMessageRaw::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ExecutingMessageRawT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
  2489    return CreateExecutingMessageRaw(_fbb, _o, _rehasher);
  2490  }
  2491  
  2492  inline flatbuffers::Offset<ExecutingMessageRaw> CreateExecutingMessageRaw(flatbuffers::FlatBufferBuilder &_fbb, const ExecutingMessageRawT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
  2493    (void)_rehasher;
  2494    (void)_o;
  2495    struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ExecutingMessageRawT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
  2496    auto _id = _o->id;
  2497    auto _proc_id = _o->proc_id;
  2498    auto _try_ = _o->try_;
  2499    auto _wait_duration = _o->wait_duration;
  2500    return rpc::CreateExecutingMessageRaw(
  2501        _fbb,
  2502        _id,
  2503        _proc_id,
  2504        _try_,
  2505        _wait_duration);
  2506  }
  2507  
  2508  inline CallInfoRawT *CallInfoRaw::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
  2509    auto _o = std::unique_ptr<CallInfoRawT>(new CallInfoRawT());
  2510    UnPackTo(_o.get(), _resolver);
  2511    return _o.release();
  2512  }
  2513  
  2514  inline void CallInfoRaw::UnPackTo(CallInfoRawT *_o, const flatbuffers::resolver_function_t *_resolver) const {
  2515    (void)_o;
  2516    (void)_resolver;
  2517    { auto _e = flags(); _o->flags = _e; }
  2518    { auto _e = error(); _o->error = _e; }
  2519    { auto _e = signal(); if (_e) { _o->signal.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->signal[_i] = _e->Get(_i); } } }
  2520    { auto _e = cover(); if (_e) { _o->cover.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->cover[_i] = _e->Get(_i); } } }
  2521    { auto _e = comps(); if (_e) { _o->comps.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->comps[_i] = *_e->Get(_i); } } }
  2522  }
  2523  
  2524  inline flatbuffers::Offset<CallInfoRaw> CallInfoRaw::Pack(flatbuffers::FlatBufferBuilder &_fbb, const CallInfoRawT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
  2525    return CreateCallInfoRaw(_fbb, _o, _rehasher);
  2526  }
  2527  
  2528  inline flatbuffers::Offset<CallInfoRaw> CreateCallInfoRaw(flatbuffers::FlatBufferBuilder &_fbb, const CallInfoRawT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
  2529    (void)_rehasher;
  2530    (void)_o;
  2531    struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const CallInfoRawT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
  2532    auto _flags = _o->flags;
  2533    auto _error = _o->error;
  2534    auto _signal = _o->signal.size() ? _fbb.CreateVector(_o->signal) : 0;
  2535    auto _cover = _o->cover.size() ? _fbb.CreateVector(_o->cover) : 0;
  2536    auto _comps = _o->comps.size() ? _fbb.CreateVectorOfStructs(_o->comps) : 0;
  2537    return rpc::CreateCallInfoRaw(
  2538        _fbb,
  2539        _flags,
  2540        _error,
  2541        _signal,
  2542        _cover,
  2543        _comps);
  2544  }
  2545  
  2546  inline ProgInfoRawT::ProgInfoRawT(const ProgInfoRawT &o)
  2547        : extra((o.extra) ? new rpc::CallInfoRawT(*o.extra) : nullptr),
  2548          elapsed(o.elapsed),
  2549          freshness(o.freshness) {
  2550    calls.reserve(o.calls.size());
  2551    for (const auto &calls_ : o.calls) { calls.emplace_back((calls_) ? new rpc::CallInfoRawT(*calls_) : nullptr); }
  2552  }
  2553  
  2554  inline ProgInfoRawT &ProgInfoRawT::operator=(ProgInfoRawT o) FLATBUFFERS_NOEXCEPT {
  2555    std::swap(calls, o.calls);
  2556    std::swap(extra, o.extra);
  2557    std::swap(elapsed, o.elapsed);
  2558    std::swap(freshness, o.freshness);
  2559    return *this;
  2560  }
  2561  
  2562  inline ProgInfoRawT *ProgInfoRaw::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
  2563    auto _o = std::unique_ptr<ProgInfoRawT>(new ProgInfoRawT());
  2564    UnPackTo(_o.get(), _resolver);
  2565    return _o.release();
  2566  }
  2567  
  2568  inline void ProgInfoRaw::UnPackTo(ProgInfoRawT *_o, const flatbuffers::resolver_function_t *_resolver) const {
  2569    (void)_o;
  2570    (void)_resolver;
  2571    { auto _e = calls(); if (_e) { _o->calls.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->calls[_i] = std::unique_ptr<rpc::CallInfoRawT>(_e->Get(_i)->UnPack(_resolver)); } } }
  2572    { auto _e = extra(); if (_e) _o->extra = std::unique_ptr<rpc::CallInfoRawT>(_e->UnPack(_resolver)); }
  2573    { auto _e = elapsed(); _o->elapsed = _e; }
  2574    { auto _e = freshness(); _o->freshness = _e; }
  2575  }
  2576  
  2577  inline flatbuffers::Offset<ProgInfoRaw> ProgInfoRaw::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ProgInfoRawT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
  2578    return CreateProgInfoRaw(_fbb, _o, _rehasher);
  2579  }
  2580  
  2581  inline flatbuffers::Offset<ProgInfoRaw> CreateProgInfoRaw(flatbuffers::FlatBufferBuilder &_fbb, const ProgInfoRawT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
  2582    (void)_rehasher;
  2583    (void)_o;
  2584    struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ProgInfoRawT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
  2585    auto _calls = _o->calls.size() ? _fbb.CreateVector<flatbuffers::Offset<rpc::CallInfoRaw>> (_o->calls.size(), [](size_t i, _VectorArgs *__va) { return CreateCallInfoRaw(*__va->__fbb, __va->__o->calls[i].get(), __va->__rehasher); }, &_va ) : 0;
  2586    auto _extra = _o->extra ? CreateCallInfoRaw(_fbb, _o->extra.get(), _rehasher) : 0;
  2587    auto _elapsed = _o->elapsed;
  2588    auto _freshness = _o->freshness;
  2589    return rpc::CreateProgInfoRaw(
  2590        _fbb,
  2591        _calls,
  2592        _extra,
  2593        _elapsed,
  2594        _freshness);
  2595  }
  2596  
  2597  inline ExecResultRawT::ExecResultRawT(const ExecResultRawT &o)
  2598        : id(o.id),
  2599          output(o.output),
  2600          error(o.error),
  2601          info((o.info) ? new rpc::ProgInfoRawT(*o.info) : nullptr) {
  2602  }
  2603  
  2604  inline ExecResultRawT &ExecResultRawT::operator=(ExecResultRawT o) FLATBUFFERS_NOEXCEPT {
  2605    std::swap(id, o.id);
  2606    std::swap(output, o.output);
  2607    std::swap(error, o.error);
  2608    std::swap(info, o.info);
  2609    return *this;
  2610  }
  2611  
  2612  inline ExecResultRawT *ExecResultRaw::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
  2613    auto _o = std::unique_ptr<ExecResultRawT>(new ExecResultRawT());
  2614    UnPackTo(_o.get(), _resolver);
  2615    return _o.release();
  2616  }
  2617  
  2618  inline void ExecResultRaw::UnPackTo(ExecResultRawT *_o, const flatbuffers::resolver_function_t *_resolver) const {
  2619    (void)_o;
  2620    (void)_resolver;
  2621    { auto _e = id(); _o->id = _e; }
  2622    { auto _e = output(); if (_e) { _o->output.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->output.begin()); } }
  2623    { auto _e = error(); if (_e) _o->error = _e->str(); }
  2624    { auto _e = info(); if (_e) _o->info = std::unique_ptr<rpc::ProgInfoRawT>(_e->UnPack(_resolver)); }
  2625  }
  2626  
  2627  inline flatbuffers::Offset<ExecResultRaw> ExecResultRaw::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ExecResultRawT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
  2628    return CreateExecResultRaw(_fbb, _o, _rehasher);
  2629  }
  2630  
  2631  inline flatbuffers::Offset<ExecResultRaw> CreateExecResultRaw(flatbuffers::FlatBufferBuilder &_fbb, const ExecResultRawT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
  2632    (void)_rehasher;
  2633    (void)_o;
  2634    struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ExecResultRawT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
  2635    auto _id = _o->id;
  2636    auto _output = _o->output.size() ? _fbb.CreateVector(_o->output) : 0;
  2637    auto _error = _o->error.empty() ? 0 : _fbb.CreateString(_o->error);
  2638    auto _info = _o->info ? CreateProgInfoRaw(_fbb, _o->info.get(), _rehasher) : 0;
  2639    return rpc::CreateExecResultRaw(
  2640        _fbb,
  2641        _id,
  2642        _output,
  2643        _error,
  2644        _info);
  2645  }
  2646  
  2647  inline bool VerifyHostMessagesRaw(flatbuffers::Verifier &verifier, const void *obj, HostMessagesRaw type) {
  2648    switch (type) {
  2649      case HostMessagesRaw::NONE: {
  2650        return true;
  2651      }
  2652      case HostMessagesRaw::ExecRequest: {
  2653        auto ptr = reinterpret_cast<const rpc::ExecRequestRaw *>(obj);
  2654        return verifier.VerifyTable(ptr);
  2655      }
  2656      case HostMessagesRaw::SignalUpdate: {
  2657        auto ptr = reinterpret_cast<const rpc::SignalUpdateRaw *>(obj);
  2658        return verifier.VerifyTable(ptr);
  2659      }
  2660      default: return true;
  2661    }
  2662  }
  2663  
  2664  inline bool VerifyHostMessagesRawVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<HostMessagesRaw> *types) {
  2665    if (!values || !types) return !values && !types;
  2666    if (values->size() != types->size()) return false;
  2667    for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
  2668      if (!VerifyHostMessagesRaw(
  2669          verifier,  values->Get(i), types->GetEnum<HostMessagesRaw>(i))) {
  2670        return false;
  2671      }
  2672    }
  2673    return true;
  2674  }
  2675  
  2676  inline void *HostMessagesRawUnion::UnPack(const void *obj, HostMessagesRaw type, const flatbuffers::resolver_function_t *resolver) {
  2677    (void)resolver;
  2678    switch (type) {
  2679      case HostMessagesRaw::ExecRequest: {
  2680        auto ptr = reinterpret_cast<const rpc::ExecRequestRaw *>(obj);
  2681        return ptr->UnPack(resolver);
  2682      }
  2683      case HostMessagesRaw::SignalUpdate: {
  2684        auto ptr = reinterpret_cast<const rpc::SignalUpdateRaw *>(obj);
  2685        return ptr->UnPack(resolver);
  2686      }
  2687      default: return nullptr;
  2688    }
  2689  }
  2690  
  2691  inline flatbuffers::Offset<void> HostMessagesRawUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const {
  2692    (void)_rehasher;
  2693    switch (type) {
  2694      case HostMessagesRaw::ExecRequest: {
  2695        auto ptr = reinterpret_cast<const rpc::ExecRequestRawT *>(value);
  2696        return CreateExecRequestRaw(_fbb, ptr, _rehasher).Union();
  2697      }
  2698      case HostMessagesRaw::SignalUpdate: {
  2699        auto ptr = reinterpret_cast<const rpc::SignalUpdateRawT *>(value);
  2700        return CreateSignalUpdateRaw(_fbb, ptr, _rehasher).Union();
  2701      }
  2702      default: return 0;
  2703    }
  2704  }
  2705  
  2706  inline HostMessagesRawUnion::HostMessagesRawUnion(const HostMessagesRawUnion &u) : type(u.type), value(nullptr) {
  2707    switch (type) {
  2708      case HostMessagesRaw::ExecRequest: {
  2709        value = new rpc::ExecRequestRawT(*reinterpret_cast<rpc::ExecRequestRawT *>(u.value));
  2710        break;
  2711      }
  2712      case HostMessagesRaw::SignalUpdate: {
  2713        value = new rpc::SignalUpdateRawT(*reinterpret_cast<rpc::SignalUpdateRawT *>(u.value));
  2714        break;
  2715      }
  2716      default:
  2717        break;
  2718    }
  2719  }
  2720  
  2721  inline void HostMessagesRawUnion::Reset() {
  2722    switch (type) {
  2723      case HostMessagesRaw::ExecRequest: {
  2724        auto ptr = reinterpret_cast<rpc::ExecRequestRawT *>(value);
  2725        delete ptr;
  2726        break;
  2727      }
  2728      case HostMessagesRaw::SignalUpdate: {
  2729        auto ptr = reinterpret_cast<rpc::SignalUpdateRawT *>(value);
  2730        delete ptr;
  2731        break;
  2732      }
  2733      default: break;
  2734    }
  2735    value = nullptr;
  2736    type = HostMessagesRaw::NONE;
  2737  }
  2738  
  2739  inline bool VerifyExecutorMessagesRaw(flatbuffers::Verifier &verifier, const void *obj, ExecutorMessagesRaw type) {
  2740    switch (type) {
  2741      case ExecutorMessagesRaw::NONE: {
  2742        return true;
  2743      }
  2744      case ExecutorMessagesRaw::ExecResult: {
  2745        auto ptr = reinterpret_cast<const rpc::ExecResultRaw *>(obj);
  2746        return verifier.VerifyTable(ptr);
  2747      }
  2748      case ExecutorMessagesRaw::Executing: {
  2749        auto ptr = reinterpret_cast<const rpc::ExecutingMessageRaw *>(obj);
  2750        return verifier.VerifyTable(ptr);
  2751      }
  2752      default: return true;
  2753    }
  2754  }
  2755  
  2756  inline bool VerifyExecutorMessagesRawVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<ExecutorMessagesRaw> *types) {
  2757    if (!values || !types) return !values && !types;
  2758    if (values->size() != types->size()) return false;
  2759    for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
  2760      if (!VerifyExecutorMessagesRaw(
  2761          verifier,  values->Get(i), types->GetEnum<ExecutorMessagesRaw>(i))) {
  2762        return false;
  2763      }
  2764    }
  2765    return true;
  2766  }
  2767  
  2768  inline void *ExecutorMessagesRawUnion::UnPack(const void *obj, ExecutorMessagesRaw type, const flatbuffers::resolver_function_t *resolver) {
  2769    (void)resolver;
  2770    switch (type) {
  2771      case ExecutorMessagesRaw::ExecResult: {
  2772        auto ptr = reinterpret_cast<const rpc::ExecResultRaw *>(obj);
  2773        return ptr->UnPack(resolver);
  2774      }
  2775      case ExecutorMessagesRaw::Executing: {
  2776        auto ptr = reinterpret_cast<const rpc::ExecutingMessageRaw *>(obj);
  2777        return ptr->UnPack(resolver);
  2778      }
  2779      default: return nullptr;
  2780    }
  2781  }
  2782  
  2783  inline flatbuffers::Offset<void> ExecutorMessagesRawUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const {
  2784    (void)_rehasher;
  2785    switch (type) {
  2786      case ExecutorMessagesRaw::ExecResult: {
  2787        auto ptr = reinterpret_cast<const rpc::ExecResultRawT *>(value);
  2788        return CreateExecResultRaw(_fbb, ptr, _rehasher).Union();
  2789      }
  2790      case ExecutorMessagesRaw::Executing: {
  2791        auto ptr = reinterpret_cast<const rpc::ExecutingMessageRawT *>(value);
  2792        return CreateExecutingMessageRaw(_fbb, ptr, _rehasher).Union();
  2793      }
  2794      default: return 0;
  2795    }
  2796  }
  2797  
  2798  inline ExecutorMessagesRawUnion::ExecutorMessagesRawUnion(const ExecutorMessagesRawUnion &u) : type(u.type), value(nullptr) {
  2799    switch (type) {
  2800      case ExecutorMessagesRaw::ExecResult: {
  2801        value = new rpc::ExecResultRawT(*reinterpret_cast<rpc::ExecResultRawT *>(u.value));
  2802        break;
  2803      }
  2804      case ExecutorMessagesRaw::Executing: {
  2805        value = new rpc::ExecutingMessageRawT(*reinterpret_cast<rpc::ExecutingMessageRawT *>(u.value));
  2806        break;
  2807      }
  2808      default:
  2809        break;
  2810    }
  2811  }
  2812  
  2813  inline void ExecutorMessagesRawUnion::Reset() {
  2814    switch (type) {
  2815      case ExecutorMessagesRaw::ExecResult: {
  2816        auto ptr = reinterpret_cast<rpc::ExecResultRawT *>(value);
  2817        delete ptr;
  2818        break;
  2819      }
  2820      case ExecutorMessagesRaw::Executing: {
  2821        auto ptr = reinterpret_cast<rpc::ExecutingMessageRawT *>(value);
  2822        delete ptr;
  2823        break;
  2824      }
  2825      default: break;
  2826    }
  2827    value = nullptr;
  2828    type = ExecutorMessagesRaw::NONE;
  2829  }
  2830  
  2831  }  // namespace rpc
  2832  
  2833  #endif  // FLATBUFFERS_GENERATED_FLATRPC_RPC_H_