/* Generated by Nim Compiler v1.3.5 */
/*   (c) 2020 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 64

/* section: NIM_merge_HEADERS */

#include "nimbase.h"
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include <spawn.h>
#include <signal.h>
#include <sys/wait.h>
#include <stdio.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix

/* section: NIM_merge_FRAME_DEFINES */
#define nimfr_(x, y)
#define nimln_(x, y)

/* section: NIM_merge_FORWARD_TYPES */
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
typedef struct tyTuple__XOVT24GHXwqiEj5GCsEGCA tyTuple__XOVT24GHXwqiEj5GCsEGCA;
typedef struct tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ;
typedef struct tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__xv3aaFd3JCw8NbmALHiezQ tySequence__xv3aaFd3JCw8NbmALHiezQ;
typedef struct tyTuple__sPaDkVPSC0MkcoXCxPH9ccA tyTuple__sPaDkVPSC0MkcoXCxPH9ccA;
typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
typedef struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ;

/* section: NIM_merge_TYPES */
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA;
typedef int tyArray__SKEqGXcReU4NvbQlH779b5Q[2];
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg {
  RootObj Sup;
int inHandle;
int outHandle;
int errHandle;
pid_t id;
tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* inStream;
tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* outStream;
tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* errStream;
int exitStatus;
NIM_BOOL exitFlag;
tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA;
struct tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA {
NimStringDesc* sysCommand;
NCSTRING* sysArgs;
NCSTRING* sysEnv;
NCSTRING workingDir;
tyArray__SKEqGXcReU4NvbQlH779b5Q pStdin;
tyArray__SKEqGXcReU4NvbQlH779b5Q pStdout;
tyArray__SKEqGXcReU4NvbQlH779b5Q pStderr;
tyArray__SKEqGXcReU4NvbQlH779b5Q pErrorPipe;
tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options;
};
typedef NCSTRING tyUncheckedArray__nvS6J9clHMUMHfoZd8Ad2zg[1];
typedef NU8 tyEnum_StringTableMode__G9c4wVDFIzf0xHmQvxso9a9cQ;
struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg {
  RootObj Sup;
NI counter;
tySequence__xv3aaFd3JCw8NbmALHiezQ* data;
tyEnum_StringTableMode__G9c4wVDFIzf0xHmQvxso9a9cQ mode;
};
struct tyTuple__sPaDkVPSC0MkcoXCxPH9ccA {
NimStringDesc* Field0;
NimStringDesc* Field1;
NIM_BOOL Field2;
};
typedef NimStringDesc* tyArray__24KAM9afIUgUaqBaEBB6r9bg[3];
typedef NimStringDesc* tyArray__8ZvwQIddfpj2THRVPsFzIQ[1];
typedef N_NIMCALL_PTR(void, tyProc__JQrsH08b4uPTH9cyFPlVOZg) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__9bmhFrLahRsL2hltfRDVtlQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
typedef N_NIMCALL_PTR(void, tyProc__3svSoGIUJIsHkaBL7q4DAQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos);
typedef N_NIMCALL_PTR(NI, tyProc__xflqkf2D1uVClg70czEDHA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
typedef N_NIMCALL_PTR(NI, tyProc__c9c0f59ak4YGQ6neEym8LPKw) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__7jFfqMk9ajToCz6Hv9atCA4A) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line);
typedef N_NIMCALL_PTR(NI, tyProc__2VVzVL9bOnKhj1eZKkf9cEuA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
typedef N_NIMCALL_PTR(void, tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ {
  RootObj Sup;
tyProc__JQrsH08b4uPTH9cyFPlVOZg closeImpl;
tyProc__9bmhFrLahRsL2hltfRDVtlQ atEndImpl;
tyProc__3svSoGIUJIsHkaBL7q4DAQ setPositionImpl;
tyProc__xflqkf2D1uVClg70czEDHA getPositionImpl;
tyProc__c9c0f59ak4YGQ6neEym8LPKw readDataStrImpl;
tyProc__7jFfqMk9ajToCz6Hv9atCA4A readLineImpl;
tyProc__2VVzVL9bOnKhj1eZKkf9cEuA readDataImpl;
tyProc__2VVzVL9bOnKhj1eZKkf9cEuA peekDataImpl;
tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ writeDataImpl;
tyProc__JQrsH08b4uPTH9cyFPlVOZg flushImpl;
};
struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ {
  tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ Sup;
FILE* f;
};
typedef NU8 tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg;
struct tyTuple__XOVT24GHXwqiEj5GCsEGCA {
NimStringDesc* Field0;
NI Field1;
};
struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
NI a;
NI b;
};

/* section: NIM_merge_SEQ_TYPES */
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__xv3aaFd3JCw8NbmALHiezQ {
  TGenericSeq Sup;
  tyTuple__sPaDkVPSC0MkcoXCxPH9ccA data[SEQ_DECL_SIZE];
};

/* section: NIM_merge_PROC_HEADERS */
N_LIB_PRIVATE N_NIMCALL(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*, nospstartProcess)(NimStringDesc* command, NimStringDesc* workingDir, NimStringDesc** args, NI argsLen_0, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_LIB_PRIVATE N_NOINLINE(void, raiseOSError__CWyPYlyH9a6rAuZckFyVxPA)(NI32 errorCode, NimStringDesc* additionalInfo);
N_LIB_PRIVATE N_NIMCALL(NI32, osLastError__9bUWNxbcGnToMWA9b79aTXLIw)(void);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NCSTRING*, allocCStringArray__LjSatDbwrF5hMmOARlJhEw)(NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__f7KyzfnKBI6fit7etE9c9aSA)(void);
N_LIB_PRIVATE N_NIMCALL(void, getEnvVarsC__580467zYn32AEdYj9cD4LLA)(void);
N_LIB_PRIVATE N_NIMCALL(NI, nsuFindChar)(NimStringDesc* s, NIM_CHAR sub, NI start, NI last);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__2yh9cer0ymNRHlOOg8P7IuA)(NimStringDesc* s, NI first, NI last);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__iGg0RIKceRvsmvq8FUHOEw)(NimStringDesc* s, NI first);
N_LIB_PRIVATE N_NOCONV(void*, alloc0Impl__KzdpcuLT9aef9bsiSHlIu9aFg)(NI size);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NOCONV(void*, allocImpl__KzdpcuLT9aef9bsiSHlIu9aFg_2)(NI size);
N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__ycBq0pnoixEzCDQfJtZIrQ)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t);
N_LIB_PRIVATE N_NIMCALL(NI, nstlen)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t);
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
N_LIB_PRIVATE N_NIMCALL(pid_t, startProcessAuxSpawn__fxpm29cY48fSnfKctT4HQMg)(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA* data);
static N_INLINE(NI, nimCStrLen)(NCSTRING a);
static N_INLINE(void, setCurrentDir__gH49bWY7pApxazoTIU6NIpwos)(NimStringDesc* newDir);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuJoinSep)(NimStringDesc** a, NI aLen_0, NimStringDesc* sep);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, deallocCStringArray__4ixt9bnFA4tfz1dFgECtQLw)(NCSTRING* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospoutputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, createStream__EPawtSz2oQtNs9cbkODc9bIQ)(int* handle, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg fileMode);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, open__NY67RvH2AlO9b9a83QFwNNag)(FILE** f, int filehandle, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, newFileStream__L2sCmH55dBWs0l9aUTvGiSw)(FILE* f);
N_LIB_PRIVATE N_NIMCALL(void, write__egjcKjt8WddLFyjTFl5BAw)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc* x);
N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospinputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
N_LIB_PRIVATE N_NIMCALL(void, close__y1KA3B0U09bKtU09am9a9avRYQ_3)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readLine__9ab9cEjuwJspa9a1pTeb1Z1BQ_2)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(NI, nosppeekExitCode)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
N_LIB_PRIVATE N_NIMCALL(int, exitStatusLikeShell__vmXOHpv9cjOB5AHi6OOlhbw)(int status);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isExitStatus__4HQqj3kS5lecDQDDt4sh7Q)(int status);
N_LIB_PRIVATE N_NIMCALL(void, nospclose)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);

/* section: NIM_merge_DATA */
extern TNimType NTI__ytyiCJqK439aF9cIibuRVpAg_;
N_LIB_PRIVATE TNimType NTI__2rGNQnv9bU4hanI2g3svReg_;
extern TNimType NTI__2gIj3gQlK3HZJjQaYCP6ZQ_;
extern TNimType NTI__r9bTMVI8f19ah9b11jMgY4kPg_;
extern TNimType NTI__1G0jiQbe7KwD5ADza5AZaw_;
extern TNimType NTI__nlCscttRCss70IBTyuBqnA_;
extern TNimType NTI__VaVACK0bpYmqIQ0mKcHfQQ_;
N_LIB_PRIVATE TNimType NTI__bnU6W8LhTMnT4JaSWtGlSA_;
N_LIB_PRIVATE TNimType NTI__HlmBYNr2gdAZMXOsuiSZ0A_;
N_LIB_PRIVATE TNimType NTI__lw7iqc9cC7bi1oOZOAlJkJA_;
STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_6, "/bin/sh", 7);
extern TNimType NTI__sM4lkSb7zS6F7OVMvW9cffQ_;
STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_7, "-c", 2);
STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_8, "=", 1);
STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_9, " ", 1);
STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_10, "\012", 1);

/* section: NIM_merge_VARS */
extern NIM_BOOL nimInErrorMode__759bT87luu8XGcbkw13FUjA;
extern tySequence__sM4lkSb7zS6F7OVMvW9cffQ* environment__mlhK49b6YMgc9cgrcYkKq9a3g;
extern tySequence__sM4lkSb7zS6F7OVMvW9cffQ* environment__mlhK49b6YMgc9cgrcYkKq9a3g;
extern tySequence__sM4lkSb7zS6F7OVMvW9cffQ* environment__mlhK49b6YMgc9cgrcYkKq9a3g;
extern tySequence__sM4lkSb7zS6F7OVMvW9cffQ* environment__mlhK49b6YMgc9cgrcYkKq9a3g;
extern tySequence__sM4lkSb7zS6F7OVMvW9cffQ* environment__mlhK49b6YMgc9cgrcYkKq9a3g;
extern tySequence__sM4lkSb7zS6F7OVMvW9cffQ* environment__mlhK49b6YMgc9cgrcYkKq9a3g;
extern tySequence__sM4lkSb7zS6F7OVMvW9cffQ* environment__mlhK49b6YMgc9cgrcYkKq9a3g;
extern tySequence__sM4lkSb7zS6F7OVMvW9cffQ* environment__mlhK49b6YMgc9cgrcYkKq9a3g;

/* section: NIM_merge_PROCS */
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (NIM_BOOL*)0;
	result = (&nimInErrorMode__759bT87luu8XGcbkw13FUjA);
	return result;
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_NIMCALL(void, Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA)(void* p, NI op) {
	tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* a;
	a = (tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*)p;
	nimGCvisit((void*)(*a).inStream, op);
	nimGCvisit((void*)(*a).outStream, op);
	nimGCvisit((void*)(*a).errStream, op);
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		void* T5_;
		void* T6_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (void*)0;
		T5_ = ((void*) ((&(*dest).data[(*dest).Sup.len])));
		T6_ = (void*)0;
		T6_ = ((void*) ((*src).data));
		copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(T5_, T6_, ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__f7KyzfnKBI6fit7etE9c9aSA)(void) {
	NCSTRING* result;
	NI counter;
	void* T6_;
	NI i_2;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NCSTRING*)0;
	counter = ((NI) 0);
	{
		NimStringDesc* key;
		NimStringDesc* val;
		key = (NimStringDesc*)0;
		val = (NimStringDesc*)0;
		getEnvVarsC__580467zYn32AEdYj9cD4LLA();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i;
			NI colontmp_;
			NI T3_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T3_ = ((environment__mlhK49b6YMgc9cgrcYkKq9a3g ? environment__mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len : 0)-1);
			colontmp_ = T3_;
			res = ((NI) 0);
			{
				while (1) {
					NI p;
					if (!(res <= colontmp_)) goto LA5;
					i = res;
					p = nsuFindChar(environment__mlhK49b6YMgc9cgrcYkKq9a3g->data[i], 61, ((NI) 0), ((NI) 0));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					key = substr__2yh9cer0ymNRHlOOg8P7IuA(environment__mlhK49b6YMgc9cgrcYkKq9a3g->data[i], ((NI) 0), (NI)(p - ((NI) 1)));
					val = substr__iGg0RIKceRvsmvq8FUHOEw(environment__mlhK49b6YMgc9cgrcYkKq9a3g->data[i], (NI)(p + ((NI) 1)));
					counter += ((NI) 1);
					res += ((NI) 1);
				} LA5: ;
			}
		}
	}
	T6_ = (void*)0;
	T6_ = alloc0Impl__KzdpcuLT9aef9bsiSHlIu9aFg(((NI) ((NI)((NI)(counter + ((NI) 1)) * ((NI) 8)))));
	result = ((NCSTRING*) (T6_));
	i_2 = ((NI) 0);
	{
		NimStringDesc* key_2;
		NimStringDesc* val_2;
		key_2 = (NimStringDesc*)0;
		val_2 = (NimStringDesc*)0;
		getEnvVarsC__580467zYn32AEdYj9cD4LLA();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_3;
			NI colontmp__2;
			NI T9_;
			NI res_2;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			T9_ = ((environment__mlhK49b6YMgc9cgrcYkKq9a3g ? environment__mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len : 0)-1);
			colontmp__2 = T9_;
			res_2 = ((NI) 0);
			{
				while (1) {
					NI p_2;
					NimStringDesc* x;
					NimStringDesc* T12_;
					void* T13_;
					void* T14_;
					if (!(res_2 <= colontmp__2)) goto LA11;
					i_3 = res_2;
					p_2 = nsuFindChar(environment__mlhK49b6YMgc9cgrcYkKq9a3g->data[i_3], 61, ((NI) 0), ((NI) 0));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					key_2 = substr__2yh9cer0ymNRHlOOg8P7IuA(environment__mlhK49b6YMgc9cgrcYkKq9a3g->data[i_3], ((NI) 0), (NI)(p_2 - ((NI) 1)));
					val_2 = substr__iGg0RIKceRvsmvq8FUHOEw(environment__mlhK49b6YMgc9cgrcYkKq9a3g->data[i_3], (NI)(p_2 + ((NI) 1)));
					T12_ = (NimStringDesc*)0;
					T12_ = rawNewString((key_2 ? key_2->Sup.len : 0) + (val_2 ? val_2->Sup.len : 0) + 1);
appendString(T12_, key_2);
appendString(T12_, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_8));
appendString(T12_, val_2);
					x = T12_;
					T13_ = (void*)0;
					T13_ = allocImpl__KzdpcuLT9aef9bsiSHlIu9aFg_2(((NI) ((NI)((x ? x->Sup.len : 0) + ((NI) 1)))));
					result[i_2] = ((NCSTRING) (T13_));
					T14_ = (void*)0;
					T14_ = ((void*) ((&x->data[((NI) 0)])));
					copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(((void*) (result[i_2])), T14_, ((NI) ((NI)((x ? x->Sup.len : 0) + ((NI) 1)))));
					i_2 += ((NI) 1);
					res_2 += ((NI) 1);
				} LA11: ;
			}
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__ycBq0pnoixEzCDQfJtZIrQ)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t) {
	NCSTRING* result;
	NI T1_;
	void* T2_;
	NI i;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NCSTRING*)0;
	T1_ = (NI)0;
	T1_ = nstlen(t);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T2_ = (void*)0;
	T2_ = alloc0Impl__KzdpcuLT9aef9bsiSHlIu9aFg(((NI) ((NI)((NI)(T1_ + ((NI) 1)) * ((NI) 8)))));
	result = ((NCSTRING*) (T2_));
	i = ((NI) 0);
	{
		NimStringDesc* key;
		NimStringDesc* val;
		key = (NimStringDesc*)0;
		val = (NimStringDesc*)0;
		{
			NI h;
			NI colontmp_;
			NI T5_;
			NI res;
			h = (NI)0;
			colontmp_ = (NI)0;
			T5_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
			colontmp_ = T5_;
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA7;
					h = res;
					{
						NimStringDesc* x;
						NimStringDesc* T12_;
						void* T13_;
						void* T14_;
						if (!(*t).data->data[h].Field2) goto LA10_;
						key = (*t).data->data[h].Field0;
						val = (*t).data->data[h].Field1;
						T12_ = (NimStringDesc*)0;
						T12_ = rawNewString((key ? key->Sup.len : 0) + (val ? val->Sup.len : 0) + 1);
appendString(T12_, key);
appendString(T12_, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_8));
appendString(T12_, val);
						x = T12_;
						T13_ = (void*)0;
						T13_ = allocImpl__KzdpcuLT9aef9bsiSHlIu9aFg_2(((NI) ((NI)((x ? x->Sup.len : 0) + ((NI) 1)))));
						result[i] = ((NCSTRING) (T13_));
						T14_ = (void*)0;
						T14_ = ((void*) ((&x->data[((NI) 0)])));
						copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(((void*) (result[i])), T14_, ((NI) ((NI)((x ? x->Sup.len : 0) + ((NI) 1)))));
						i += ((NI) 1);
					}
					LA10_: ;
					res += ((NI) 1);
				} LA7: ;
			}
		}
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
	NCSTRING result;
	result = (NCSTRING)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (s == NIM_NIL);
		if (T3_) goto LA4_;
		T3_ = ((*s).Sup.len == ((NI) 0));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = "";
	}
	goto LA1_;
	LA5_: ;
	{
		result = ((NCSTRING) ((*s).data));
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, nimCStrLen)(NCSTRING a) {
	NI result;
	size_t T1_;
	result = (NI)0;
	T1_ = (size_t)0;
	T1_ = strlen(a);
	result = ((NI) (T1_));
	return result;
}
static N_INLINE(void, setCurrentDir__gH49bWY7pApxazoTIU6NIpwos)(NimStringDesc* newDir) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		int T3_;
		NI32 T6_;
		T3_ = (int)0;
		T3_ = chdir(nimToCStringConv(newDir));
		if (!!((T3_ == ((NI32) 0)))) goto LA4_;
		T6_ = (NI32)0;
		T6_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T6_, newDir);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA4_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(pid_t, startProcessAuxSpawn__fxpm29cY48fSnfKctT4HQMg)(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA* data) {
	pid_t result;
	posix_spawnattr_t attr;
	posix_spawn_file_actions_t fops;
	sigset_t mask;
	NI32 flags;
	int res;
	pid_t pid;
	int T106_;
	int T107_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (pid_t)0;
	nimZeroMem((void*)(&attr), sizeof(posix_spawnattr_t));
	nimZeroMem((void*)(&fops), sizeof(posix_spawn_file_actions_t));
	{
		int T3_;
		NI32 T6_;
		T3_ = (int)0;
		T3_ = posix_spawn_file_actions_init((&fops));
		if (!!((T3_ == ((NI32) 0)))) goto LA4_;
		T6_ = (NI32)0;
		T6_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T6_, ((NimStringDesc*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA4_: ;
	{
		int T9_;
		NI32 T12_;
		T9_ = (int)0;
		T9_ = posix_spawnattr_init((&attr));
		if (!!((T9_ == ((NI32) 0)))) goto LA10_;
		T12_ = (NI32)0;
		T12_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T12_, ((NimStringDesc*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA10_: ;
	nimZeroMem((void*)(&mask), sizeof(sigset_t));
	{
		int T15_;
		NI32 T18_;
		T15_ = (int)0;
		T15_ = sigemptyset((&mask));
		if (!!((T15_ == ((NI32) 0)))) goto LA16_;
		T18_ = (NI32)0;
		T18_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T18_, ((NimStringDesc*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA16_: ;
	{
		int T21_;
		NI32 T24_;
		T21_ = (int)0;
		T21_ = posix_spawnattr_setsigmask((&attr), (&mask));
		if (!!((T21_ == ((NI32) 0)))) goto LA22_;
		T24_ = (NI32)0;
		T24_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T24_, ((NimStringDesc*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA22_: ;
	{
		if (!(((*data).options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 6))&7U)))!=0)) goto LA27_;
		{
			int T31_;
			NI32 T34_;
			T31_ = (int)0;
			T31_ = posix_spawnattr_setpgroup((&attr), ((NI32) 0));
			if (!!((T31_ == ((NI32) 0)))) goto LA32_;
			T34_ = (NI32)0;
			T34_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T34_, ((NimStringDesc*) NIM_NIL));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA32_: ;
	}
	LA27_: ;
	flags = (NI32)(((int) 0) | POSIX_SPAWN_SETSIGMASK);
	{
		if (!(((*data).options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 6))&7U)))!=0)) goto LA37_;
		flags = (NI32)(flags | POSIX_SPAWN_SETPGROUP);
	}
	LA37_: ;
	{
		int T41_;
		NI32 T44_;
		T41_ = (int)0;
		T41_ = posix_spawnattr_setflags((&attr), flags);
		if (!!((T41_ == ((NI32) 0)))) goto LA42_;
		T44_ = (NI32)0;
		T44_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T44_, ((NimStringDesc*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA42_: ;
	{
		if (!!((((*data).options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA47_;
		{
			int T51_;
			NI32 T54_;
			T51_ = (int)0;
			T51_ = posix_spawn_file_actions_addclose((&fops), (*data).pStdin[(((NI) 1))- 0]);
			if (!!((T51_ == ((NI32) 0)))) goto LA52_;
			T54_ = (NI32)0;
			T54_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T54_, ((NimStringDesc*) NIM_NIL));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA52_: ;
		{
			int T57_;
			NI32 T60_;
			T57_ = (int)0;
			T57_ = posix_spawn_file_actions_adddup2((&fops), (*data).pStdin[(((NI) 0))- 0], ((int) 0));
			if (!!((T57_ == ((NI32) 0)))) goto LA58_;
			T60_ = (NI32)0;
			T60_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T60_, ((NimStringDesc*) NIM_NIL));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA58_: ;
		{
			int T63_;
			NI32 T66_;
			T63_ = (int)0;
			T63_ = posix_spawn_file_actions_addclose((&fops), (*data).pStdout[(((NI) 0))- 0]);
			if (!!((T63_ == ((NI32) 0)))) goto LA64_;
			T66_ = (NI32)0;
			T66_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T66_, ((NimStringDesc*) NIM_NIL));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA64_: ;
		{
			int T69_;
			NI32 T72_;
			T69_ = (int)0;
			T69_ = posix_spawn_file_actions_adddup2((&fops), (*data).pStdout[(((NI) 1))- 0], ((int) 1));
			if (!!((T69_ == ((NI32) 0)))) goto LA70_;
			T72_ = (NI32)0;
			T72_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T72_, ((NimStringDesc*) NIM_NIL));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA70_: ;
		{
			int T75_;
			NI32 T78_;
			T75_ = (int)0;
			T75_ = posix_spawn_file_actions_addclose((&fops), (*data).pStderr[(((NI) 0))- 0]);
			if (!!((T75_ == ((NI32) 0)))) goto LA76_;
			T78_ = (NI32)0;
			T78_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T78_, ((NimStringDesc*) NIM_NIL));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA76_: ;
		{
			if (!(((*data).options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0)) goto LA81_;
			{
				int T85_;
				NI32 T88_;
				T85_ = (int)0;
				T85_ = posix_spawn_file_actions_adddup2((&fops), (*data).pStdout[(((NI) 1))- 0], ((int) 2));
				if (!!((T85_ == ((NI32) 0)))) goto LA86_;
				T88_ = (NI32)0;
				T88_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T88_, ((NimStringDesc*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA86_: ;
		}
		goto LA79_;
		LA81_: ;
		{
			{
				int T92_;
				NI32 T95_;
				T92_ = (int)0;
				T92_ = posix_spawn_file_actions_adddup2((&fops), (*data).pStderr[(((NI) 1))- 0], ((int) 2));
				if (!!((T92_ == ((NI32) 0)))) goto LA93_;
				T95_ = (NI32)0;
				T95_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T95_, ((NimStringDesc*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA93_: ;
		}
		LA79_: ;
	}
	LA47_: ;
	res = (int)0;
	{
		NimStringDesc* T100_;
		if (!(((NI) 0) < ((*data).workingDir ? nimCStrLen((*data).workingDir) : 0))) goto LA98_;
		T100_ = (NimStringDesc*)0;
		T100_ = cstrToNimstr((*data).workingDir);
		setCurrentDir__gH49bWY7pApxazoTIU6NIpwos(T100_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA98_: ;
	pid = (pid_t)0;
	{
		if (!(((*data).options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 1))&7U)))!=0)) goto LA103_;
		res = posix_spawnp((&pid), nimToCStringConv((*data).sysCommand), (&fops), (&attr), (*data).sysArgs, (*data).sysEnv);
	}
	goto LA101_;
	LA103_: ;
	{
		res = posix_spawn((&pid), nimToCStringConv((*data).sysCommand), (&fops), (&attr), (*data).sysArgs, (*data).sysEnv);
	}
	LA101_: ;
	T106_ = (int)0;
	T106_ = posix_spawn_file_actions_destroy((&fops));
	(void)(T106_);
	T107_ = (int)0;
	T107_ = posix_spawnattr_destroy((&attr));
	(void)(T107_);
	{
		if (!!((res == ((NI32) 0)))) goto LA110_;
		raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(res, (*data).sysCommand);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA110_: ;
	result = pid;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*, nospstartProcess)(NimStringDesc* command, NimStringDesc* workingDir, NimStringDesc** args, NI argsLen_0, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options) {
	tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* result;
	tyArray__SKEqGXcReU4NvbQlH779b5Q pStdin;
	tyArray__SKEqGXcReU4NvbQlH779b5Q pStdout;
	tyArray__SKEqGXcReU4NvbQlH779b5Q pStderr;
	tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA data;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* sysArgsRaw;
	pid_t pid;
	NCSTRING* sysArgs;
	NCSTRING* sysEnv;
	NimStringDesc* currentDir;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*)0;
	nimZeroMem((void*)pStdin, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
	nimZeroMem((void*)pStdout, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
	nimZeroMem((void*)pStderr, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
	result = (tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*) newObj((&NTI__lw7iqc9cC7bi1oOZOAlJkJA_), sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg));
	(*result).Sup.m_type = (&NTI__2rGNQnv9bU4hanI2g3svReg_);
	(*result).options = options;
	(*result).exitFlag = NIM_TRUE;
	{
		if (!!(((options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA3_;
		{
			NIM_BOOL T7_;
			NIM_BOOL T8_;
			int T9_;
			int T11_;
			int T13_;
			NI32 T16_;
			T7_ = (NIM_BOOL)0;
			T8_ = (NIM_BOOL)0;
			T9_ = (int)0;
			T9_ = pipe(pStdin);
			T8_ = !((T9_ == ((NI32) 0)));
			if (T8_) goto LA10_;
			T11_ = (int)0;
			T11_ = pipe(pStdout);
			T8_ = !((T11_ == ((NI32) 0)));
			LA10_: ;
			T7_ = T8_;
			if (T7_) goto LA12_;
			T13_ = (int)0;
			T13_ = pipe(pStderr);
			T7_ = !((T13_ == ((NI32) 0)));
			LA12_: ;
			if (!T7_) goto LA14_;
			T16_ = (NI32)0;
			T16_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T16_, ((NimStringDesc*) NIM_NIL));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA14_: ;
	}
	LA3_: ;
	nimZeroMem((void*)(&data), sizeof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA));
	sysArgsRaw = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*)0;
	{
		if (!((options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 2))&7U)))!=0)) goto LA19_;
		data.sysCommand = copyString(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_6));
		sysArgsRaw = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTI__sM4lkSb7zS6F7OVMvW9cffQ_), 3);
		sysArgsRaw->data[0] = copyString(data.sysCommand);
		sysArgsRaw->data[1] = copyString(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_7));
		sysArgsRaw->data[2] = copyString(command);
	}
	goto LA17_;
	LA19_: ;
	{
		data.sysCommand = copyString(command);
		sysArgsRaw = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTI__sM4lkSb7zS6F7OVMvW9cffQ_), 1);
		sysArgsRaw->data[0] = copyString(command);
		{
			NimStringDesc** arg;
			NI i;
			arg = (NimStringDesc**)0;
			i = ((NI) 0);
			{
				while (1) {
					NI T25_;
					if (!(i < argsLen_0)) goto LA24;
					arg = (&args[i]);
					sysArgsRaw = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(sysArgsRaw), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
					T25_ = sysArgsRaw->Sup.len++;
					sysArgsRaw->data[T25_] = copyString((*arg));
					i += ((NI) 1);
				} LA24: ;
			}
		}
	}
	LA17_: ;
	pid = (pid_t)0;
	sysArgs = allocCStringArray__LjSatDbwrF5hMmOARlJhEw(sysArgsRaw->data, (sysArgsRaw ? sysArgsRaw->Sup.len : 0));
	{
		if (!(env == NIM_NIL)) goto LA29_;
		sysEnv = envToCStringArray__f7KyzfnKBI6fit7etE9c9aSA();
		if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
	}
	goto LA27_;
	LA29_: ;
	{
		sysEnv = envToCStringArray__ycBq0pnoixEzCDQfJtZIrQ(env);
		if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
	}
	LA27_: ;
	data.sysArgs = sysArgs;
	data.sysEnv = sysEnv;
	nimCopyMem((void*)data.pStdin, (NIM_CONST void*)pStdin, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
	nimCopyMem((void*)data.pStdout, (NIM_CONST void*)pStdout, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
	nimCopyMem((void*)data.pStderr, (NIM_CONST void*)pStderr, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
	data.workingDir = nimToCStringConv(workingDir);
	data.options = options;
	currentDir = nosgetCurrentDir();
	if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
	pid = startProcessAuxSpawn__fxpm29cY48fSnfKctT4HQMg((&data));
	if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
	{
		if (!(((NI) 0) < (workingDir ? workingDir->Sup.len : 0))) goto LA35_;
		setCurrentDir__gH49bWY7pApxazoTIU6NIpwos(currentDir);
		if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
	}
	LA35_: ;
	{
		tyArray__24KAM9afIUgUaqBaEBB6r9bg T41_;
		NimStringDesc* T42_;
		if (!((options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 0))&7U)))!=0)) goto LA39_;
		nimZeroMem((void*)T41_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
		T41_[0] = copyString(command);
		T41_[1] = copyString(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_9));
		T42_ = (NimStringDesc*)0;
		T42_ = nsuJoinSep(args, argsLen_0, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_9));
		if (NIM_UNLIKELY(*nimErr_)) goto LA32_;
		T41_[2] = T42_;
		echoBinSafe(T41_, 3);
	}
	LA39_: ;
	(*result).id = pid;
	(*result).exitFlag = NIM_FALSE;
	{
		if (!((options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0)) goto LA45_;
		(*result).inHandle = ((int) 0);
		(*result).outHandle = ((int) 1);
		{
			if (!((options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0)) goto LA49_;
			(*result).errHandle = (*result).outHandle;
		}
		goto LA47_;
		LA49_: ;
		{
			(*result).errHandle = ((int) 2);
		}
		LA47_: ;
	}
	goto LA43_;
	LA45_: ;
	{
		int T59_;
		int T60_;
		int T61_;
		(*result).inHandle = pStdin[(((NI) 1))- 0];
		(*result).outHandle = pStdout[(((NI) 0))- 0];
		{
			int T57_;
			if (!((options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0)) goto LA55_;
			(*result).errHandle = (*result).outHandle;
			T57_ = (int)0;
			T57_ = close(pStderr[(((NI) 0))- 0]);
			(void)(T57_);
		}
		goto LA53_;
		LA55_: ;
		{
			(*result).errHandle = pStderr[(((NI) 0))- 0];
		}
		LA53_: ;
		T59_ = (int)0;
		T59_ = close(pStderr[(((NI) 1))- 0]);
		(void)(T59_);
		T60_ = (int)0;
		T60_ = close(pStdin[(((NI) 0))- 0]);
		(void)(T60_);
		T61_ = (int)0;
		T61_ = close(pStdout[(((NI) 1))- 0]);
		(void)(T61_);
	}
	LA43_: ;
	{
		LA32_:;
	}
	{
		deallocCStringArray__4ixt9bnFA4tfz1dFgECtQLw(sysEnv);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto LA26_;
	{
		LA26_:;
	}
	{
		deallocCStringArray__4ixt9bnFA4tfz1dFgECtQLw(sysArgs);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, createStream__EPawtSz2oQtNs9cbkODc9bIQ)(int* handle, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg fileMode) {
	tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* result;
	FILE* f;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*)0;
	f = (FILE*)0;
	{
		NIM_BOOL T3_;
		NI32 T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = open__NY67RvH2AlO9b9a83QFwNNag(&f, (*handle), fileMode);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!(T3_)) goto LA4_;
		T6_ = (NI32)0;
		T6_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T6_, ((NimStringDesc*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA4_: ;
	result = newFileStream__L2sCmH55dBWs0l9aUTvGiSw(f);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospoutputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*)0;
	{
		tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* T5_;
		if (!((*p).outStream == NIM_NIL)) goto LA3_;
		T5_ = (tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*)0;
		T5_ = createStream__EPawtSz2oQtNs9cbkODc9bIQ((&(*p).outHandle), ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*p).outStream = &T5_->Sup;
	}
	LA3_: ;
	result = (*p).outStream;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospinputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*)0;
	{
		tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* T5_;
		if (!((*p).inStream == NIM_NIL)) goto LA3_;
		T5_ = (tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*)0;
		T5_ = createStream__EPawtSz2oQtNs9cbkODc9bIQ((&(*p).inHandle), ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*p).inStream = &T5_->Sup;
	}
	LA3_: ;
	result = (*p).inStream;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isExitStatus__4HQqj3kS5lecDQDDt4sh7Q)(int status) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = WIFEXITED(status);
	if (T1_) goto LA2_;
	T1_ = WIFSIGNALED(status);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, nosppeekExitCode)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
	NI result;
	int status;
	pid_t ret;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	status = ((int) 0);
	result = ((NI) -1);
	{
		int T5_;
		if (!(*p).exitFlag) goto LA3_;
		T5_ = (int)0;
		T5_ = exitStatusLikeShell__vmXOHpv9cjOB5AHi6OOlhbw((*p).exitStatus);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = ((NI) (T5_));
		goto BeforeRet_;
	}
	LA3_: ;
	ret = waitpid((*p).id, (&status), WNOHANG);
	{
		if (!(((NI32) 0) < ret)) goto LA8_;
		{
			NIM_BOOL T12_;
			int T15_;
			T12_ = (NIM_BOOL)0;
			T12_ = isExitStatus__4HQqj3kS5lecDQDDt4sh7Q(status);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T12_) goto LA13_;
			(*p).exitFlag = NIM_TRUE;
			(*p).exitStatus = status;
			T15_ = (int)0;
			T15_ = exitStatusLikeShell__vmXOHpv9cjOB5AHi6OOlhbw(status);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = ((NI) (T15_));
		}
		LA13_: ;
	}
	LA8_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, nospclose)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		if (!!((((*p).options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA3_;
		{
			if (!!(((*p).inStream == NIM_NIL))) goto LA7_;
			close__y1KA3B0U09bKtU09am9a9avRYQ_3((*p).inStream);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA5_;
		LA7_: ;
		{
			int T10_;
			T10_ = (int)0;
			T10_ = close((*p).inHandle);
			(void)(T10_);
		}
		LA5_: ;
		{
			if (!!(((*p).outStream == NIM_NIL))) goto LA13_;
			close__y1KA3B0U09bKtU09am9a9avRYQ_3((*p).outStream);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA11_;
		LA13_: ;
		{
			int T16_;
			T16_ = (int)0;
			T16_ = close((*p).outHandle);
			(void)(T16_);
		}
		LA11_: ;
		{
			if (!!(((*p).errStream == NIM_NIL))) goto LA19_;
			close__y1KA3B0U09bKtU09am9a9avRYQ_3((*p).errStream);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA17_;
		LA19_: ;
		{
			int T22_;
			T22_ = (int)0;
			T22_ = close((*p).errHandle);
			(void)(T22_);
		}
		LA17_: ;
	}
	LA3_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, execCmdEx__130zQ9a9cS3YNDwoh0G9at3bw)(NimStringDesc* command, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env, NimStringDesc* workingDir, NimStringDesc* input, tyTuple__XOVT24GHXwqiEj5GCsEGCA* Result) {
	tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p;
	tyArray__8ZvwQIddfpj2THRVPsFzIQ T1_;
	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* outp;
	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* T7_;
	NimStringDesc* colontmp_;
	NI colontmp__2;
	NimStringDesc* line;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)T1_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
	p = nospstartProcess(command, workingDir, T1_, 0, env, (options | 4));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	outp = nospoutputStream(p);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* T6_;
		if (!(((NI) 0) < (input ? input->Sup.len : 0))) goto LA4_;
		T6_ = (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*)0;
		T6_ = nospinputStream(p);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		write__egjcKjt8WddLFyjTFl5BAw(T6_, input);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA4_: ;
	T7_ = (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*)0;
	T7_ = nospinputStream(p);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	close__y1KA3B0U09bKtU09am9a9avRYQ_3(T7_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	colontmp_ = ((NimStringDesc*) NIM_NIL);
	colontmp__2 = ((NI) -1);
	(*Result).Field0 = copyString(colontmp_);
	(*Result).Field1 = colontmp__2;
	line = rawNewString(((NI) 120));
	{
		while (1) {
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = readLine__9ab9cEjuwJspa9a1pTeb1Z1BQ_2(outp, (&line));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T12_) goto LA13_;
				(*Result).Field0 = resizeString((*Result).Field0, (line ? line->Sup.len : 0) + 0);
appendString((*Result).Field0, line);
				(*Result).Field0 = resizeString((*Result).Field0, 1);
appendString((*Result).Field0, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_10));
			}
			goto LA10_;
			LA13_: ;
			{
				NI T16_;
				T16_ = (NI)0;
				T16_ = nosppeekExitCode(p);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*Result).Field1 = T16_;
				{
					if (!!(((*Result).Field1 == ((NI) -1)))) goto LA19_;
					goto LA8;
				}
				LA19_: ;
			}
			LA10_: ;
		}
	} LA8: ;
	nospclose(p);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, stdlib_osprocDatInit000)(void) {

/* section: NIM_merge_TYPE_INIT1 */
static TNimNode* TM__HZdw8BhppcTQo8DIK46LSg_2_10[10];
static TNimNode* TM__HZdw8BhppcTQo8DIK46LSg_3_7[7];
NI TM__HZdw8BhppcTQo8DIK46LSg_5;
static char* NIM_CONST TM__HZdw8BhppcTQo8DIK46LSg_4[7] = {
"poEchoCmd", 
"poUsePath", 
"poEvalCommand", 
"poStdErrToStdOut", 
"poParentStreams", 
"poInteractive", 
"poDaemon"};
static TNimNode TM__HZdw8BhppcTQo8DIK46LSg_0[20];

/* section: NIM_merge_TYPE_INIT3 */
NTI__2rGNQnv9bU4hanI2g3svReg_.size = sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg);
NTI__2rGNQnv9bU4hanI2g3svReg_.align = NIM_ALIGNOF(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg);
NTI__2rGNQnv9bU4hanI2g3svReg_.kind = 17;
NTI__2rGNQnv9bU4hanI2g3svReg_.base = (&NTI__ytyiCJqK439aF9cIibuRVpAg_);
TM__HZdw8BhppcTQo8DIK46LSg_2_10[0] = &TM__HZdw8BhppcTQo8DIK46LSg_0[1];
TM__HZdw8BhppcTQo8DIK46LSg_0[1].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[1].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, inHandle);
TM__HZdw8BhppcTQo8DIK46LSg_0[1].typ = (&NTI__2gIj3gQlK3HZJjQaYCP6ZQ_);
TM__HZdw8BhppcTQo8DIK46LSg_0[1].name = "inHandle";
TM__HZdw8BhppcTQo8DIK46LSg_2_10[1] = &TM__HZdw8BhppcTQo8DIK46LSg_0[2];
TM__HZdw8BhppcTQo8DIK46LSg_0[2].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[2].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, outHandle);
TM__HZdw8BhppcTQo8DIK46LSg_0[2].typ = (&NTI__2gIj3gQlK3HZJjQaYCP6ZQ_);
TM__HZdw8BhppcTQo8DIK46LSg_0[2].name = "outHandle";
TM__HZdw8BhppcTQo8DIK46LSg_2_10[2] = &TM__HZdw8BhppcTQo8DIK46LSg_0[3];
TM__HZdw8BhppcTQo8DIK46LSg_0[3].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[3].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, errHandle);
TM__HZdw8BhppcTQo8DIK46LSg_0[3].typ = (&NTI__2gIj3gQlK3HZJjQaYCP6ZQ_);
TM__HZdw8BhppcTQo8DIK46LSg_0[3].name = "errHandle";
TM__HZdw8BhppcTQo8DIK46LSg_2_10[3] = &TM__HZdw8BhppcTQo8DIK46LSg_0[4];
TM__HZdw8BhppcTQo8DIK46LSg_0[4].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[4].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, id);
TM__HZdw8BhppcTQo8DIK46LSg_0[4].typ = (&NTI__r9bTMVI8f19ah9b11jMgY4kPg_);
TM__HZdw8BhppcTQo8DIK46LSg_0[4].name = "id";
TM__HZdw8BhppcTQo8DIK46LSg_2_10[4] = &TM__HZdw8BhppcTQo8DIK46LSg_0[5];
TM__HZdw8BhppcTQo8DIK46LSg_0[5].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[5].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, inStream);
TM__HZdw8BhppcTQo8DIK46LSg_0[5].typ = (&NTI__1G0jiQbe7KwD5ADza5AZaw_);
TM__HZdw8BhppcTQo8DIK46LSg_0[5].name = "inStream";
TM__HZdw8BhppcTQo8DIK46LSg_2_10[5] = &TM__HZdw8BhppcTQo8DIK46LSg_0[6];
TM__HZdw8BhppcTQo8DIK46LSg_0[6].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[6].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, outStream);
TM__HZdw8BhppcTQo8DIK46LSg_0[6].typ = (&NTI__1G0jiQbe7KwD5ADza5AZaw_);
TM__HZdw8BhppcTQo8DIK46LSg_0[6].name = "outStream";
TM__HZdw8BhppcTQo8DIK46LSg_2_10[6] = &TM__HZdw8BhppcTQo8DIK46LSg_0[7];
TM__HZdw8BhppcTQo8DIK46LSg_0[7].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[7].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, errStream);
TM__HZdw8BhppcTQo8DIK46LSg_0[7].typ = (&NTI__1G0jiQbe7KwD5ADza5AZaw_);
TM__HZdw8BhppcTQo8DIK46LSg_0[7].name = "errStream";
TM__HZdw8BhppcTQo8DIK46LSg_2_10[7] = &TM__HZdw8BhppcTQo8DIK46LSg_0[8];
TM__HZdw8BhppcTQo8DIK46LSg_0[8].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[8].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, exitStatus);
TM__HZdw8BhppcTQo8DIK46LSg_0[8].typ = (&NTI__nlCscttRCss70IBTyuBqnA_);
TM__HZdw8BhppcTQo8DIK46LSg_0[8].name = "exitStatus";
TM__HZdw8BhppcTQo8DIK46LSg_2_10[8] = &TM__HZdw8BhppcTQo8DIK46LSg_0[9];
TM__HZdw8BhppcTQo8DIK46LSg_0[9].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[9].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, exitFlag);
TM__HZdw8BhppcTQo8DIK46LSg_0[9].typ = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__HZdw8BhppcTQo8DIK46LSg_0[9].name = "exitFlag";
TM__HZdw8BhppcTQo8DIK46LSg_2_10[9] = &TM__HZdw8BhppcTQo8DIK46LSg_0[10];
NTI__bnU6W8LhTMnT4JaSWtGlSA_.size = sizeof(tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
NTI__bnU6W8LhTMnT4JaSWtGlSA_.align = NIM_ALIGNOF(tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
NTI__bnU6W8LhTMnT4JaSWtGlSA_.kind = 14;
NTI__bnU6W8LhTMnT4JaSWtGlSA_.base = 0;
NTI__bnU6W8LhTMnT4JaSWtGlSA_.flags = 3;
for (TM__HZdw8BhppcTQo8DIK46LSg_5 = 0; TM__HZdw8BhppcTQo8DIK46LSg_5 < 7; TM__HZdw8BhppcTQo8DIK46LSg_5++) {
TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11].offset = TM__HZdw8BhppcTQo8DIK46LSg_5;
TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11].name = TM__HZdw8BhppcTQo8DIK46LSg_4[TM__HZdw8BhppcTQo8DIK46LSg_5];
TM__HZdw8BhppcTQo8DIK46LSg_3_7[TM__HZdw8BhppcTQo8DIK46LSg_5] = &TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11];
}
TM__HZdw8BhppcTQo8DIK46LSg_0[18].len = 7; TM__HZdw8BhppcTQo8DIK46LSg_0[18].kind = 2; TM__HZdw8BhppcTQo8DIK46LSg_0[18].sons = &TM__HZdw8BhppcTQo8DIK46LSg_3_7[0];
NTI__bnU6W8LhTMnT4JaSWtGlSA_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[18];
NTI__HlmBYNr2gdAZMXOsuiSZ0A_.size = sizeof(tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
NTI__HlmBYNr2gdAZMXOsuiSZ0A_.align = NIM_ALIGNOF(tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
NTI__HlmBYNr2gdAZMXOsuiSZ0A_.kind = 19;
NTI__HlmBYNr2gdAZMXOsuiSZ0A_.base = (&NTI__bnU6W8LhTMnT4JaSWtGlSA_);
NTI__HlmBYNr2gdAZMXOsuiSZ0A_.flags = 3;
TM__HZdw8BhppcTQo8DIK46LSg_0[19].len = 0; TM__HZdw8BhppcTQo8DIK46LSg_0[19].kind = 0;
NTI__HlmBYNr2gdAZMXOsuiSZ0A_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[19];
TM__HZdw8BhppcTQo8DIK46LSg_0[10].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[10].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, options);
TM__HZdw8BhppcTQo8DIK46LSg_0[10].typ = (&NTI__HlmBYNr2gdAZMXOsuiSZ0A_);
TM__HZdw8BhppcTQo8DIK46LSg_0[10].name = "options";
TM__HZdw8BhppcTQo8DIK46LSg_0[0].len = 10; TM__HZdw8BhppcTQo8DIK46LSg_0[0].kind = 2; TM__HZdw8BhppcTQo8DIK46LSg_0[0].sons = &TM__HZdw8BhppcTQo8DIK46LSg_2_10[0];
NTI__2rGNQnv9bU4hanI2g3svReg_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[0];
NTI__lw7iqc9cC7bi1oOZOAlJkJA_.size = sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*);
NTI__lw7iqc9cC7bi1oOZOAlJkJA_.align = NIM_ALIGNOF(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*);
NTI__lw7iqc9cC7bi1oOZOAlJkJA_.kind = 22;
NTI__lw7iqc9cC7bi1oOZOAlJkJA_.base = (&NTI__2rGNQnv9bU4hanI2g3svReg_);
NTI__lw7iqc9cC7bi1oOZOAlJkJA_.marker = Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA;
}

