1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 32
3 
4 #include "nimbase.h"
5 #include <string.h>
6 #include <sys/types.h>
7 #include <unistd.h>
8 #include <setjmp.h>
9 #include <errno.h>
10 #include <fcntl.h>
11 #include <sys/wait.h>
12 #include <sys/event.h>
13 #include <sys/types.h>
14                        #include <sys/event.h>
15                        #include <sys/time.h>
16 #include <time.h>
17 #include <signal.h>
18 #include <stdlib.h>
19 #include <stdio.h>
20 #undef LANGUAGE_C
21 #undef MIPSEB
22 #undef MIPSEL
23 #undef PPC
24 #undef R3000
25 #undef R4000
26 #undef i386
27 #undef linux
28 #undef mips
29 #undef near
30 #undef far
31 #undef powerpc
32 #undef unix
33 #define nimfr_(x, y)
34 #define nimln_(x, y)
35 typedef struct tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg;
36 typedef struct NimStringDesc NimStringDesc;
37 typedef struct TGenericSeq TGenericSeq;
38 typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
39 typedef struct RootObj RootObj;
40 typedef struct TNimType TNimType;
41 typedef struct TNimNode TNimNode;
42 typedef struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ;
43 typedef struct tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA;
44 typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
45 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
46 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
47 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
48 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
49 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
50 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
51 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
52 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
53 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
54 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
55 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
56 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
57 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
58 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
59 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
60 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
61 typedef struct Exception Exception;
62 typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
63 typedef struct TSafePoint TSafePoint;
64 typedef struct tyTuple__UV3llMMYFckfui8YMBuUZA tyTuple__UV3llMMYFckfui8YMBuUZA;
65 typedef struct tySequence__xv3aaFd3JCw8NbmALHiezQ tySequence__xv3aaFd3JCw8NbmALHiezQ;
66 typedef struct tyTuple__sPaDkVPSC0MkcoXCxPH9ccA tyTuple__sPaDkVPSC0MkcoXCxPH9ccA;
67 typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
68 typedef struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ;
69 typedef struct tyTuple__XOVT24GHXwqiEj5GCsEGCA tyTuple__XOVT24GHXwqiEj5GCsEGCA;
70 typedef struct tySequence__PrBYolTs4TOSgE8v5oqDUQ tySequence__PrBYolTs4TOSgE8v5oqDUQ;
71 typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
72 typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
73 struct TGenericSeq {
74 NI len;
75 NI reserved;
76 };
77 struct NimStringDesc {
78   TGenericSeq Sup;
79 NIM_CHAR data[SEQ_DECL_SIZE];
80 };
81 typedef NU8 tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA;
82 typedef int tyArray__SKEqGXcReU4NvbQlH779b5Q[2];
83 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
84 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
85 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
86 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
87 struct TNimType {
88 NI size;
89 NI align;
90 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
91 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
92 TNimType* base;
93 TNimNode* node;
94 void* finalizer;
95 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
96 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
97 };
98 struct RootObj {
99 TNimType* m_type;
100 };
101 struct tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg {
102   RootObj Sup;
103 int inHandle;
104 int outHandle;
105 int errHandle;
106 pid_t id;
107 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* inStream;
108 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* outStream;
109 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* errStream;
110 int exitStatus;
111 NIM_BOOL exitFlag;
112 tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options;
113 };
114 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
115 struct TNimNode {
116 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
117 NI offset;
118 TNimType* typ;
119 NCSTRING name;
120 NI len;
121 TNimNode** sons;
122 };
123 typedef NU8 tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA;
124 struct tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA {
125 NimStringDesc* sysCommand;
126 NCSTRING* sysArgs;
127 NCSTRING* sysEnv;
128 NCSTRING workingDir;
129 tyArray__SKEqGXcReU4NvbQlH779b5Q pStdin;
130 tyArray__SKEqGXcReU4NvbQlH779b5Q pStdout;
131 tyArray__SKEqGXcReU4NvbQlH779b5Q pStderr;
132 tyArray__SKEqGXcReU4NvbQlH779b5Q pErrorPipe;
133 tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options;
134 };
135 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
136 NI refcount;
137 TNimType* typ;
138 };
139 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
140 void* bottom;
141 };
142 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
143 NI len;
144 NI cap;
145 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
146 };
147 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
148 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
149 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
150 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
151 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
152 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
153 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
154 };
155 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
156 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
157 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
158 NI key;
159 NI upperBound;
160 NI level;
161 };
162 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
163 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
164 NI Field1;
165 };
166 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
167 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
168 NI len;
169 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
170 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
171 };
172 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
173 NI minLargeObj;
174 NI maxLargeObj;
175 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
176 NU32 flBitmap;
177 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
178 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
179 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
180 NI currMem;
181 NI maxMem;
182 NI freeMem;
183 NI occ;
184 NI lastSize;
185 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
186 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
187 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
188 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
189 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
190 NIM_BOOL locked;
191 NIM_BOOL blockChunkSizeIncrease;
192 NI nextChunkSize;
193 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
194 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
195 };
196 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
197 NI stackScans;
198 NI cycleCollections;
199 NI maxThreshold;
200 NI maxStackSize;
201 NI maxStackCells;
202 NI cycleTableSize;
203 NI64 maxPause;
204 };
205 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
206 NI counter;
207 NI max;
208 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
209 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
210 };
211 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
212 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
213 NI cycleThreshold;
214 NI zctThreshold;
215 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
216 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
217 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
218 NI recGcLock;
219 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
220 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
221 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
222 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
223 NI gcThreadId;
224 };
225 struct Exception {
226   RootObj Sup;
227 Exception* parent;
228 NCSTRING name;
229 NimStringDesc* message;
230 tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
231 Exception* up;
232 };
233 struct TSafePoint {
234 TSafePoint* prev;
235 NI status;
236 jmp_buf context;
237 };
238 struct tyTuple__UV3llMMYFckfui8YMBuUZA {
239 NimStringDesc* Field0;
240 NimStringDesc* Field1;
241 };
242 typedef NCSTRING tyUncheckedArray__nvS6J9clHMUMHfoZd8Ad2zg[1];
243 typedef NU8 tyEnum_StringTableMode__G9c4wVDFIzf0xHmQvxso9a9cQ;
244 struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg {
245   RootObj Sup;
246 NI counter;
247 tySequence__xv3aaFd3JCw8NbmALHiezQ* data;
248 tyEnum_StringTableMode__G9c4wVDFIzf0xHmQvxso9a9cQ mode;
249 };
250 struct tyTuple__sPaDkVPSC0MkcoXCxPH9ccA {
251 NimStringDesc* Field0;
252 NimStringDesc* Field1;
253 NIM_BOOL Field2;
254 };
255 typedef NimStringDesc* tyArray__Re75IspeoxXy2oCZHwcRrA[2];
256 typedef NimStringDesc* tyArray__24KAM9afIUgUaqBaEBB6r9bg[3];
257 typedef N_NIMCALL_PTR(void, tyProc__JQrsH08b4uPTH9cyFPlVOZg) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
258 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__9bmhFrLahRsL2hltfRDVtlQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
259 typedef N_NIMCALL_PTR(void, tyProc__3svSoGIUJIsHkaBL7q4DAQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos);
260 typedef N_NIMCALL_PTR(NI, tyProc__xflqkf2D1uVClg70czEDHA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
261 typedef N_NIMCALL_PTR(NI, tyProc__c9c0f59ak4YGQ6neEym8LPKw) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice);
262 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__7jFfqMk9ajToCz6Hv9atCA4A) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line);
263 typedef N_NIMCALL_PTR(NI, tyProc__2VVzVL9bOnKhj1eZKkf9cEuA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
264 typedef N_NIMCALL_PTR(void, tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
265 struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ {
266   RootObj Sup;
267 tyProc__JQrsH08b4uPTH9cyFPlVOZg closeImpl;
268 tyProc__9bmhFrLahRsL2hltfRDVtlQ atEndImpl;
269 tyProc__3svSoGIUJIsHkaBL7q4DAQ setPositionImpl;
270 tyProc__xflqkf2D1uVClg70czEDHA getPositionImpl;
271 tyProc__c9c0f59ak4YGQ6neEym8LPKw readDataStrImpl;
272 tyProc__7jFfqMk9ajToCz6Hv9atCA4A readLineImpl;
273 tyProc__2VVzVL9bOnKhj1eZKkf9cEuA readDataImpl;
274 tyProc__2VVzVL9bOnKhj1eZKkf9cEuA peekDataImpl;
275 tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ writeDataImpl;
276 tyProc__JQrsH08b4uPTH9cyFPlVOZg flushImpl;
277 };
278 struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ {
279   tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ Sup;
280 FILE* f;
281 };
282 typedef NU8 tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg;
283 typedef NimStringDesc* tyArray__8ZvwQIddfpj2THRVPsFzIQ[1];
284 struct tyTuple__XOVT24GHXwqiEj5GCsEGCA {
285 NimStringDesc* Field0;
286 NI Field1;
287 };
288 typedef struct {
289 N_NIMCALL_PTR(void, ClP_0) (NI idx, void* ClE_0);
290 void* ClE_0;
291 } tyProc__SqRJqa5aOiKB4EuKlKh9asA;
292 typedef struct {
293 N_NIMCALL_PTR(void, ClP_0) (NI idx, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, void* ClE_0);
294 void* ClE_0;
295 } tyProc__oudJckli4GdxAXLVzBBlAw;
296 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_18) (NI idx);
297 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_20) (NI idx, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
298 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_21) (NI idx);
299 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_22) (NI idx);
300 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_23) (NI idx, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
301 struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
302 NCSTRING procname;
303 NI line;
304 NCSTRING filename;
305 };
306 struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
307 NI a;
308 NI b;
309 };
310 struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
311   TGenericSeq Sup;
312   NimStringDesc* data[SEQ_DECL_SIZE];
313 };
314 struct tySequence__PrBYolTs4TOSgE8v5oqDUQ {
315   TGenericSeq Sup;
316   tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* data[SEQ_DECL_SIZE];
317 };
318 struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
319   TGenericSeq Sup;
320   NI data[SEQ_DECL_SIZE];
321 };
322 struct tySequence__uB9b75OUPRENsBAu4AnoePA {
323   TGenericSeq Sup;
324   tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
325 };
326 struct tySequence__xv3aaFd3JCw8NbmALHiezQ {
327   TGenericSeq Sup;
328   tyTuple__sPaDkVPSC0MkcoXCxPH9ccA data[SEQ_DECL_SIZE];
329 };
330 static N_INLINE(void, nimZeroMem)(void* p, NI size);
331 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
332 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
333 static N_NIMCALL(void, Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA)(void* p, NI op);
334 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
335 N_LIB_PRIVATE N_NOINLINE(void, raiseOSError__pureZos_405)(NI32 errorCode, NimStringDesc* additionalInfo);
336 N_LIB_PRIVATE N_NIMCALL(NI32, osLastError__pureZos_408)(void);
337 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
338 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
339 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
340 static N_INLINE(void, nimGCunrefNoCycle)(void* p);
341 static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
342 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
343 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
344 static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
345 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5264)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
346 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr);
347 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
348 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, allocCStringArray__system_2469)(NimStringDesc** a, NI aLen_0);
349 static N_INLINE(void, pushSafePoint)(TSafePoint* s);
350 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__pureZosproc_320)(void);
351 static N_INLINE(NIM_BOOL, eqeq___system_7723)(NCSTRING x, NCSTRING y);
352 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str);
353 N_LIB_PRIVATE N_NIMCALL(NI, nsuFindChar)(NimStringDesc* s, NIM_CHAR sub, NI start, NI last);
354 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7743)(NimStringDesc* s, NI first, NI last);
355 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7755)(NimStringDesc* s, NI first);
356 N_LIB_PRIVATE N_NOCONV(void*, alloc0Impl__system_1745)(NI size);
357 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
358 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
359 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
360 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
361 N_LIB_PRIVATE N_NOCONV(void*, allocImpl__system_1743)(NI size);
362 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__pureZosproc_309)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t);
363 N_LIB_PRIVATE N_NIMCALL(NI, nstlen)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t);
364 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
365 N_LIB_PRIVATE N_NIMCALL(pid_t, startProcessAuxFork__pureZosproc_348)(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA* data);
366 N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
367 N_LIB_PRIVATE N_CDECL(void, startProcessAfterFork__pureZosproc_350)(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA* data);
368 N_LIB_PRIVATE N_NIMCALL(void, startProcessFail__pureZosproc_483)(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA* data);
369 static N_INLINE(NI, nimCStrLen)(NCSTRING a);
370 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
371 static N_INLINE(void, popSafePoint)(void);
372 N_LIB_PRIVATE N_NIMCALL(void, nimLeaveFinally)(void);
373 N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
374 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuJoinSep)(NimStringDesc** a, NI aLen_0, NimStringDesc* sep);
375 N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
376 N_LIB_PRIVATE N_NIMCALL(void, deallocCStringArray__system_2503)(NCSTRING* a);
377 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, createStream__pureZosproc_605)(int* handle, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg fileMode);
378 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, open__systemZio_420)(FILE** f, int filehandle, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode);
379 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, newFileStream__pureZstreams_808)(FILE* f);
380 static N_INLINE(void, asgnRef)(void** dest, void* src);
381 static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
382 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
383 N_LIB_PRIVATE N_NIMCALL(int, exitStatusLikeShell__pureZos_1107)(int status);
384 static N_INLINE(NI, percentpercent___system_776)(NI x, NI y);
385 N_LIB_PRIVATE N_NIMCALL(void, close__pureZstreams_57)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
386 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);
387 N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospoutputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
388 N_LIB_PRIVATE N_NIMCALL(void, write__pureZstreams_177)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc* x);
389 N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospinputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
390 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
391 N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
392 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readLine__pureZstreams_524)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line);
393 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
394 N_LIB_PRIVATE N_NIMCALL(NI, nosppeekExitCode)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
395 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isExitStatus__pureZosproc_306)(int status);
396 N_LIB_PRIVATE N_NIMCALL(void, nospclose)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
397 N_LIB_PRIVATE N_NIMCALL(NI, ncpicountProcessors)(void);
398 N_LIB_PRIVATE N_NIMCALL(tySequence__PrBYolTs4TOSgE8v5oqDUQ*, newSeq__pureZosproc_120)(NI len);
399 static N_NIMCALL(void, Marker_tySequence__PrBYolTs4TOSgE8v5oqDUQ)(void* p, NI op);
400 N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g*, newSeq__pureZosproc_151)(NI len);
401 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosprunning)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
402 N_LIB_PRIVATE N_NIMCALL(NI, nospwaitForExit)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, NI timeout);
403 extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
404 N_LIB_PRIVATE TNimType NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_;
405 extern TNimType NTIfilehandle__2gIj3gQlK3HZJjQaYCP6ZQ_;
406 extern TNimType NTIpid__r9bTMVI8f19ah9b11jMgY4kPg_;
407 extern TNimType NTIstream__1G0jiQbe7KwD5ADza5AZaw_;
408 extern TNimType NTIcint__nlCscttRCss70IBTyuBqnA_;
409 extern TNimType NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_;
410 N_LIB_PRIVATE TNimType NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_;
411 N_LIB_PRIVATE TNimType NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_;
412 N_LIB_PRIVATE TNimType NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_;
413 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_6, "/bin/sh", 7);
414 extern TNimType NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_;
415 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_7, "-c", 2);
416 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_9, "=", 1);
417 N_LIB_PRIVATE TNimType NTIstartprocessdata__xgRnKnLIYRtnOkshMKhc9cA_;
418 extern TNimType NTIstring__77mFvmsOLKik79ci2hXkHEg_;
419 extern TNimType NTIcstringarray__vCtGdhfQAmBlRFXaVFklkQ_;
420 extern TNimType NTIcstring__S9agCYBinaYZnGWcjTdxclg_;
421 N_LIB_PRIVATE TNimType NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_;
422 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_13, "Could not find command: \'$1\'. OS error: $2", 42);
423 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_14, " ", 1);
424 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_16, "\012", 1);
425 N_LIB_PRIVATE TNimType NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_;
426 extern TNimType NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_;
427 static NIM_CONST tyProc__SqRJqa5aOiKB4EuKlKh9asA TM__HZdw8BhppcTQo8DIK46LSg_17 = {NIM_NIL,NIM_NIL};
428 static NIM_CONST tyProc__oudJckli4GdxAXLVzBBlAw TM__HZdw8BhppcTQo8DIK46LSg_19 = {NIM_NIL,NIM_NIL};
429 extern NCSTRING* environ;
430 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5217;
431 extern TSafePoint* excHandler__system_2565;
432 extern TSafePoint* excHandler__system_2565;
433 extern NCSTRING* environ;
434 extern TSafePoint* excHandler__system_2565;
435 extern TSafePoint* excHandler__system_2565;
N_INLINE(void,nimSetMem__systemZmemory_7)436 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
437 	void* T1_;
438 	T1_ = (void*)0;
439 	T1_ = memset(a, v, ((size_t) (size)));
440 }
N_INLINE(void,nimZeroMem)441 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
442 	nimSetMem__systemZmemory_7(p, ((int) 0), size);
443 }
N_NIMCALL(void,Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA)444 static N_NIMCALL(void, Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA)(void* p, NI op) {
445 	tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* a;
446 	a = (tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*)p;
447 	nimGCvisit((void*)(*a).inStream, op);
448 	nimGCvisit((void*)(*a).outStream, op);
449 	nimGCvisit((void*)(*a).errStream, op);
450 }
N_INLINE(NI,minuspercent___system_716)451 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
452 	NI result;
453 	result = (NI)0;
454 	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
455 	return result;
456 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)457 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
458 	NIM_BOOL result;
459 	result = (NIM_BOOL)0;
460 	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
461 	return result;
462 }
N_INLINE(void,rtlAddZCT__system_5313)463 static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
464 	addZCT__system_5264((&gch__system_5217.zct), c);
465 }
N_INLINE(void,decRef__system_5315)466 static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
467 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
468 	{
469 		NIM_BOOL T3_;
470 		T3_ = (NIM_BOOL)0;
471 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
472 		if (!T3_) goto LA4_;
473 		rtlAddZCT__system_5313(c);
474 	}
475 	LA4_: ;
476 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5270)477 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr) {
478 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
479 	NI T1_;
480 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
481 	T1_ = (NI)0;
482 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
483 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
484 	return result;
485 }
N_INLINE(void,nimGCunrefNoCycle)486 static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
487 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
488 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
489 	T1_ = usrToCell__system_5270(p);
490 	decRef__system_5315(T1_);
491 }
N_INLINE(void,pushSafePoint)492 static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
493 	(*s).prev = excHandler__system_2565;
494 	excHandler__system_2565 = s;
495 }
N_INLINE(NIM_BOOL,eqeq___system_7723)496 static N_INLINE(NIM_BOOL, eqeq___system_7723)(NCSTRING x, NCSTRING y) {
497 	NIM_BOOL result;
498 	result = (NIM_BOOL)0;
499 	{
500 		if (!(((void*) (x)) == ((void*) (y)))) goto LA3_;
501 		result = NIM_TRUE;
502 	}
503 	goto LA1_;
504 	LA3_: ;
505 	{
506 		NIM_BOOL T6_;
507 		T6_ = (NIM_BOOL)0;
508 		T6_ = (x == 0);
509 		if (T6_) goto LA7_;
510 		T6_ = (y == 0);
511 		LA7_: ;
512 		if (!T6_) goto LA8_;
513 		result = NIM_FALSE;
514 	}
515 	goto LA1_;
516 	LA8_: ;
517 	{
518 		int T11_;
519 		T11_ = (int)0;
520 		T11_ = strcmp(x, y);
521 		result = (T11_ == ((NI32) 0));
522 	}
523 	LA1_: ;
524 	return result;
525 }
N_INLINE(void,nimCopyMem)526 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
527 	void* T1_;
528 	T1_ = (void*)0;
529 	T1_ = memcpy(dest, source, ((size_t) (size)));
530 }
N_INLINE(void,copyMem__system_1727)531 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
532 	nimCopyMem(dest, source, size);
533 }
N_INLINE(void,appendString)534 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
535 	{
536 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
537 		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
538 		(*dest).Sup.len += (*src).Sup.len;
539 	}
540 	LA3_: ;
541 }
N_NIMCALL(NCSTRING *,envToCStringArray__pureZosproc_320)542 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__pureZosproc_320)(void) {
543 	NCSTRING* result;
544 	NI counter;
545 	void* T6_;
546 	NI i_2;
547 	result = (NCSTRING*)0;
548 	counter = ((NI) 0);
549 	{
550 		NimStringDesc* key;
551 		NimStringDesc* val;
552 		key = NIM_NIL;
553 		val = NIM_NIL;
554 		{
555 			tyTuple__UV3llMMYFckfui8YMBuUZA ai;
556 			NI i;
557 			nimZeroMem((void*)(&ai), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
558 			i = ((NI) 0);
559 			{
560 				while (1) {
561 					NIM_BOOL T5_;
562 					NimStringDesc* kv;
563 					NI p;
564 					tyTuple__UV3llMMYFckfui8YMBuUZA colontmp_;
565 					T5_ = (NIM_BOOL)0;
566 					T5_ = eqeq___system_7723(environ[i], ((NCSTRING) NIM_NIL));
567 					if (!!(T5_)) goto LA4;
568 					kv = cstrToNimstr(environ[i]);
569 					i += ((NI) 1);
570 					p = nsuFindChar(kv, 61, ((NI) 0), ((NI) 0));
571 					ai.Field0 = substr__system_7743(kv, ((NI) 0), (NI)(p - ((NI) 1)));
572 					ai.Field1 = substr__system_7755(kv, (NI)(p + ((NI) 1)));
573 					nimZeroMem((void*)(&colontmp_), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
574 					colontmp_.Field0 = copyString(ai.Field0);
575 					colontmp_.Field1 = copyString(ai.Field1);
576 					key = colontmp_.Field0;
577 					val = colontmp_.Field1;
578 					counter += ((NI) 1);
579 				} LA4: ;
580 			}
581 		}
582 	}
583 	T6_ = (void*)0;
584 	T6_ = alloc0Impl__system_1745(((NI) ((NI)((NI)(counter + ((NI) 1)) * ((NI) 4)))));
585 	result = ((NCSTRING*) (T6_));
586 	i_2 = ((NI) 0);
587 	{
588 		NimStringDesc* key_2;
589 		NimStringDesc* val_2;
590 		key_2 = NIM_NIL;
591 		val_2 = NIM_NIL;
592 		{
593 			tyTuple__UV3llMMYFckfui8YMBuUZA ai_2;
594 			NI i_3;
595 			nimZeroMem((void*)(&ai_2), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
596 			i_3 = ((NI) 0);
597 			{
598 				while (1) {
599 					NIM_BOOL T11_;
600 					NimStringDesc* kv_2;
601 					NI p_2;
602 					tyTuple__UV3llMMYFckfui8YMBuUZA colontmp__2;
603 					NimStringDesc* x;
604 					NimStringDesc* T12_;
605 					void* T13_;
606 					T11_ = (NIM_BOOL)0;
607 					T11_ = eqeq___system_7723(environ[i_3], ((NCSTRING) NIM_NIL));
608 					if (!!(T11_)) goto LA10;
609 					kv_2 = cstrToNimstr(environ[i_3]);
610 					i_3 += ((NI) 1);
611 					p_2 = nsuFindChar(kv_2, 61, ((NI) 0), ((NI) 0));
612 					ai_2.Field0 = substr__system_7743(kv_2, ((NI) 0), (NI)(p_2 - ((NI) 1)));
613 					ai_2.Field1 = substr__system_7755(kv_2, (NI)(p_2 + ((NI) 1)));
614 					nimZeroMem((void*)(&colontmp__2), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
615 					colontmp__2.Field0 = copyString(ai_2.Field0);
616 					colontmp__2.Field1 = copyString(ai_2.Field1);
617 					key_2 = colontmp__2.Field0;
618 					val_2 = colontmp__2.Field1;
619 					T12_ = NIM_NIL;
620 					T12_ = rawNewString((key_2 ? key_2->Sup.len : 0) + (val_2 ? val_2->Sup.len : 0) + 1);
621 appendString(T12_, key_2);
622 appendString(T12_, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_9));
623 appendString(T12_, val_2);
624 					x = T12_;
625 					T13_ = (void*)0;
626 					T13_ = allocImpl__system_1743(((NI) ((NI)((x ? x->Sup.len : 0) + ((NI) 1)))));
627 					result[i_2] = ((NCSTRING) (T13_));
628 					copyMem__system_1727(((void*) (result[i_2])), ((void*) ((&x->data[((NI) 0)]))), ((NI) ((NI)((x ? x->Sup.len : 0) + ((NI) 1)))));
629 					i_2 += ((NI) 1);
630 				} LA10: ;
631 			}
632 		}
633 	}
634 	return result;
635 }
N_NIMCALL(NCSTRING *,envToCStringArray__pureZosproc_309)636 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__pureZosproc_309)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t) {
637 	NCSTRING* result;
638 	NI T1_;
639 	void* T2_;
640 	NI i;
641 	result = (NCSTRING*)0;
642 	T1_ = (NI)0;
643 	T1_ = nstlen(t);
644 	T2_ = (void*)0;
645 	T2_ = alloc0Impl__system_1745(((NI) ((NI)((NI)(T1_ + ((NI) 1)) * ((NI) 4)))));
646 	result = ((NCSTRING*) (T2_));
647 	i = ((NI) 0);
648 	{
649 		NimStringDesc* key;
650 		NimStringDesc* val;
651 		key = NIM_NIL;
652 		val = NIM_NIL;
653 		{
654 			NI h;
655 			NI colontmp_;
656 			NI T5_;
657 			NI res;
658 			h = (NI)0;
659 			colontmp_ = (NI)0;
660 			T5_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
661 			colontmp_ = T5_;
662 			res = ((NI) 0);
663 			{
664 				while (1) {
665 					if (!(res <= colontmp_)) goto LA7;
666 					h = res;
667 					{
668 						NimStringDesc* x;
669 						NimStringDesc* T12_;
670 						void* T13_;
671 						if (!(*t).data->data[h].Field2) goto LA10_;
672 						key = (*t).data->data[h].Field0;
673 						val = (*t).data->data[h].Field1;
674 						T12_ = NIM_NIL;
675 						T12_ = rawNewString((key ? key->Sup.len : 0) + (val ? val->Sup.len : 0) + 1);
676 appendString(T12_, key);
677 appendString(T12_, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_9));
678 appendString(T12_, val);
679 						x = T12_;
680 						T13_ = (void*)0;
681 						T13_ = allocImpl__system_1743(((NI) ((NI)((x ? x->Sup.len : 0) + ((NI) 1)))));
682 						result[i] = ((NCSTRING) (T13_));
683 						copyMem__system_1727(((void*) (result[i])), ((void*) ((&x->data[((NI) 0)]))), ((NI) ((NI)((x ? x->Sup.len : 0) + ((NI) 1)))));
684 						i += ((NI) 1);
685 					}
686 					LA10_: ;
687 					res += ((NI) 1);
688 				} LA7: ;
689 			}
690 		}
691 	}
692 	return result;
693 }
N_INLINE(NCSTRING,nimToCStringConv)694 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
695 	NCSTRING result;
696 	result = (NCSTRING)0;
697 	{
698 		NIM_BOOL T3_;
699 		T3_ = (NIM_BOOL)0;
700 		T3_ = (s == ((NimStringDesc*) NIM_NIL));
701 		if (T3_) goto LA4_;
702 		T3_ = ((*s).Sup.len == ((NI) 0));
703 		LA4_: ;
704 		if (!T3_) goto LA5_;
705 		result = "";
706 	}
707 	goto LA1_;
708 	LA5_: ;
709 	{
710 		result = ((NCSTRING) ((*s).data));
711 	}
712 	LA1_: ;
713 	return result;
714 }
N_NIMCALL(void,startProcessFail__pureZosproc_483)715 N_LIB_PRIVATE N_NIMCALL(void, startProcessFail__pureZosproc_483)(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA* data) {
716 	int error;
717 	NI T1_;
718 	error = errno;
719 	T1_ = (NI)0;
720 	T1_ = write((*data).pErrorPipe[(((NI) 1))- 0], ((void*) ((&error))), ((NI) 4));
721 	(void)(T1_);
722 	_exit(((NI) 1));
723 }
N_INLINE(NI,nimCStrLen)724 static N_INLINE(NI, nimCStrLen)(NCSTRING a) {
725 	NI result;
726 	size_t T1_;
727 	result = (NI)0;
728 	T1_ = (size_t)0;
729 	T1_ = strlen(a);
730 	result = ((NI) (T1_));
731 	return result;
732 }
N_CDECL(void,startProcessAfterFork__pureZosproc_350)733 N_LIB_PRIVATE N_CDECL(void, startProcessAfterFork__pureZosproc_350)(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA* data) {
734 	int T42_;
735 	int T43_;
736 	{
737 		int T5_;
738 		int T11_;
739 		int T17_;
740 		if (!!((((*data).options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA3_;
741 		T5_ = (int)0;
742 		T5_ = close((*data).pStdin[(((NI) 1))- 0]);
743 		(void)(T5_);
744 		{
745 			int T8_;
746 			T8_ = (int)0;
747 			T8_ = dup2((*data).pStdin[(((NI) 0))- 0], ((int) 0));
748 			if (!(T8_ < ((NI32) 0))) goto LA9_;
749 			startProcessFail__pureZosproc_483(data);
750 		}
751 		LA9_: ;
752 		T11_ = (int)0;
753 		T11_ = close((*data).pStdout[(((NI) 0))- 0]);
754 		(void)(T11_);
755 		{
756 			int T14_;
757 			T14_ = (int)0;
758 			T14_ = dup2((*data).pStdout[(((NI) 1))- 0], ((int) 1));
759 			if (!(T14_ < ((NI32) 0))) goto LA15_;
760 			startProcessFail__pureZosproc_483(data);
761 		}
762 		LA15_: ;
763 		T17_ = (int)0;
764 		T17_ = close((*data).pStderr[(((NI) 0))- 0]);
765 		(void)(T17_);
766 		{
767 			if (!(((*data).options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0)) goto LA20_;
768 			{
769 				int T24_;
770 				T24_ = (int)0;
771 				T24_ = dup2((*data).pStdout[(((NI) 1))- 0], ((int) 2));
772 				if (!(T24_ < ((NI32) 0))) goto LA25_;
773 				startProcessFail__pureZosproc_483(data);
774 			}
775 			LA25_: ;
776 		}
777 		goto LA18_;
778 		LA20_: ;
779 		{
780 			{
781 				int T30_;
782 				T30_ = (int)0;
783 				T30_ = dup2((*data).pStderr[(((NI) 1))- 0], ((int) 2));
784 				if (!(T30_ < ((NI32) 0))) goto LA31_;
785 				startProcessFail__pureZosproc_483(data);
786 			}
787 			LA31_: ;
788 		}
789 		LA18_: ;
790 	}
791 	LA3_: ;
792 	{
793 		if (!(((NI) 0) < ((*data).workingDir ? nimCStrLen((*data).workingDir) : 0))) goto LA35_;
794 		{
795 			int T39_;
796 			T39_ = (int)0;
797 			T39_ = chdir((*data).workingDir);
798 			if (!(T39_ < ((NI32) 0))) goto LA40_;
799 			startProcessFail__pureZosproc_483(data);
800 		}
801 		LA40_: ;
802 	}
803 	LA35_: ;
804 	T42_ = (int)0;
805 	T42_ = close((*data).pErrorPipe[(((NI) 0))- 0]);
806 	(void)(T42_);
807 	T43_ = (int)0;
808 	T43_ = fcntl((*data).pErrorPipe[(((NI) 1))- 0], F_SETFD, FD_CLOEXEC);
809 	(void)(T43_);
810 	{
811 		int T48_;
812 		if (!(((*data).options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 1))&7U)))!=0)) goto LA46_;
813 		environ = (*data).sysEnv;
814 		T48_ = (int)0;
815 		T48_ = execvp(nimToCStringConv((*data).sysCommand), (*data).sysArgs);
816 		(void)(T48_);
817 	}
818 	goto LA44_;
819 	LA46_: ;
820 	{
821 		int T50_;
822 		T50_ = (int)0;
823 		T50_ = execve(nimToCStringConv((*data).sysCommand), (*data).sysArgs, (*data).sysEnv);
824 		(void)(T50_);
825 	}
826 	LA44_: ;
827 	startProcessFail__pureZosproc_483(data);
828 }
N_INLINE(void,popSafePoint)829 static N_INLINE(void, popSafePoint)(void) {
830 	excHandler__system_2565 = (*excHandler__system_2565).prev;
831 }
N_NIMCALL(pid_t,startProcessAuxFork__pureZosproc_348)832 N_LIB_PRIVATE N_NIMCALL(pid_t, startProcessAuxFork__pureZosproc_348)(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA* data) {
833 	pid_t result;
834 	TSafePoint TM__HZdw8BhppcTQo8DIK46LSg_11;
835 	pid_t pid;
836 	tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA dataCopy;
837 	int T11_;
838 	int error;
839 	NI sizeRead;
840 	int T25_;
841 {	result = (pid_t)0;
842 	{
843 		int T3_;
844 		NI32 T6_;
845 		T3_ = (int)0;
846 		T3_ = pipe((*data).pErrorPipe);
847 		if (!!((T3_ == ((NI32) 0)))) goto LA4_;
848 		T6_ = (NI32)0;
849 		T6_ = osLastError__pureZos_408();
850 		raiseOSError__pureZos_405(T6_, ((NimStringDesc*) NIM_NIL));
851 	}
852 	LA4_: ;
853 	pushSafePoint(&TM__HZdw8BhppcTQo8DIK46LSg_11);
854 	TM__HZdw8BhppcTQo8DIK46LSg_11.status = _setjmp(TM__HZdw8BhppcTQo8DIK46LSg_11.context);
855 	if (TM__HZdw8BhppcTQo8DIK46LSg_11.status == 0) {
856 	pid = (pid_t)0;
857 	nimZeroMem((void*)(&dataCopy), sizeof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA));
858 	genericAssign((void*)(&dataCopy), (void*)data, (&NTIstartprocessdata__xgRnKnLIYRtnOkshMKhc9cA_));
859 	pid = fork();
860 	{
861 		if (!(pid == ((NI32) 0))) goto LA9_;
862 		startProcessAfterFork__pureZosproc_350((&dataCopy));
863 		_exit(((NI) 1));
864 	}
865 	LA9_: ;
866 	T11_ = (int)0;
867 	T11_ = close((*data).pErrorPipe[(((NI) 1))- 0]);
868 	(void)(T11_);
869 	{
870 		NI32 T16_;
871 		if (!(pid < ((NI32) 0))) goto LA14_;
872 		T16_ = (NI32)0;
873 		T16_ = osLastError__pureZos_408();
874 		raiseOSError__pureZos_405(T16_, ((NimStringDesc*) NIM_NIL));
875 	}
876 	LA14_: ;
877 	error = (int)0;
878 	sizeRead = read((*data).pErrorPipe[(((NI) 0))- 0], ((void*) ((&error))), ((NI) 4));
879 	{
880 		NI32 T21_;
881 		tyArray__Re75IspeoxXy2oCZHwcRrA T22_;
882 		NCSTRING T23_;
883 		NimStringDesc* T24_;
884 		if (!(sizeRead == ((NI) 4))) goto LA19_;
885 		T21_ = (NI32)0;
886 		T21_ = osLastError__pureZos_408();
887 		nimZeroMem((void*)T22_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
888 		T22_[0] = copyString((*data).sysCommand);
889 		T23_ = (NCSTRING)0;
890 		T23_ = strerror(error);
891 		T22_[1] = cstrToNimstr(T23_);
892 		T24_ = NIM_NIL;
893 		T24_ = nsuFormatOpenArray(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_13), T22_, 2);
894 		raiseOSError__pureZos_405(T21_, T24_);
895 	}
896 	LA19_: ;
897 	result = pid;
898 	popSafePoint();
899 	T25_ = (int)0;
900 	T25_ = close((*data).pErrorPipe[(((NI) 0))- 0]);
901 	(void)(T25_);
902 	goto BeforeRet_;
903 	popSafePoint();
904 	}
905 	else {
906 		popSafePoint();
907 	}
908 	{
909 		int T28_;
910 		T28_ = (int)0;
911 		T28_ = close((*data).pErrorPipe[(((NI) 0))- 0]);
912 		(void)(T28_);
913 		if (TM__HZdw8BhppcTQo8DIK46LSg_11.status != 0) nimLeaveFinally();
914 	}
915 	if (TM__HZdw8BhppcTQo8DIK46LSg_11.status != 0) reraiseException();
916 	}BeforeRet_: ;
917 	return result;
918 }
N_NIMCALL(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg *,nospstartProcess)919 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) {
920 	tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* result;
921 	tyArray__SKEqGXcReU4NvbQlH779b5Q pStdin;
922 	tyArray__SKEqGXcReU4NvbQlH779b5Q pStdout;
923 	tyArray__SKEqGXcReU4NvbQlH779b5Q pStderr;
924 	tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA data;
925 	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* sysArgsRaw;
926 	pid_t pid;
927 	NCSTRING* sysArgs;
928 	TSafePoint TM__HZdw8BhppcTQo8DIK46LSg_8;
929 	NCSTRING* sysEnv;
930 	TSafePoint TM__HZdw8BhppcTQo8DIK46LSg_10;
931 	result = NIM_NIL;
932 	nimZeroMem((void*)pStdin, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
933 	nimZeroMem((void*)pStdout, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
934 	nimZeroMem((void*)pStderr, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
935 	result = (tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*) newObj((&NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_), sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg));
936 	(*result).Sup.m_type = (&NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_);
937 	(*result).options = options;
938 	(*result).exitFlag = NIM_TRUE;
939 	{
940 		if (!!(((options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA3_;
941 		{
942 			NIM_BOOL T7_;
943 			NIM_BOOL T8_;
944 			int T9_;
945 			int T11_;
946 			int T13_;
947 			NI32 T16_;
948 			T7_ = (NIM_BOOL)0;
949 			T8_ = (NIM_BOOL)0;
950 			T9_ = (int)0;
951 			T9_ = pipe(pStdin);
952 			T8_ = !((T9_ == ((NI32) 0)));
953 			if (T8_) goto LA10_;
954 			T11_ = (int)0;
955 			T11_ = pipe(pStdout);
956 			T8_ = !((T11_ == ((NI32) 0)));
957 			LA10_: ;
958 			T7_ = T8_;
959 			if (T7_) goto LA12_;
960 			T13_ = (int)0;
961 			T13_ = pipe(pStderr);
962 			T7_ = !((T13_ == ((NI32) 0)));
963 			LA12_: ;
964 			if (!T7_) goto LA14_;
965 			T16_ = (NI32)0;
966 			T16_ = osLastError__pureZos_408();
967 			raiseOSError__pureZos_405(T16_, ((NimStringDesc*) NIM_NIL));
968 		}
969 		LA14_: ;
970 	}
971 	LA3_: ;
972 	nimZeroMem((void*)(&data), sizeof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA));
973 	sysArgsRaw = NIM_NIL;
974 	{
975 		NimStringDesc* T21_;
976 		NimStringDesc* T22_;
977 		NimStringDesc* T23_;
978 		if (!((options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 2))&7U)))!=0)) goto LA19_;
979 		data.sysCommand = copyString(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_6));
980 		sysArgsRaw = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_), 3);
981 		T21_ = NIM_NIL;
982 		T21_ = sysArgsRaw->data[0]; sysArgsRaw->data[0] = copyStringRC1(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_6));
983 		if (T21_) nimGCunrefNoCycle(T21_);
984 		T22_ = NIM_NIL;
985 		T22_ = sysArgsRaw->data[1]; sysArgsRaw->data[1] = copyStringRC1(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_7));
986 		if (T22_) nimGCunrefNoCycle(T22_);
987 		T23_ = NIM_NIL;
988 		T23_ = sysArgsRaw->data[2]; sysArgsRaw->data[2] = copyStringRC1(command);
989 		if (T23_) nimGCunrefNoCycle(T23_);
990 	}
991 	goto LA17_;
992 	LA19_: ;
993 	{
994 		NimStringDesc* T25_;
995 		data.sysCommand = copyString(command);
996 		sysArgsRaw = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_), 1);
997 		T25_ = NIM_NIL;
998 		T25_ = sysArgsRaw->data[0]; sysArgsRaw->data[0] = copyStringRC1(command);
999 		if (T25_) nimGCunrefNoCycle(T25_);
1000 		{
1001 			NimStringDesc** arg;
1002 			NI i;
1003 			arg = (NimStringDesc**)0;
1004 			i = ((NI) 0);
1005 			{
1006 				while (1) {
1007 					NI T29_;
1008 					NimStringDesc* T30_;
1009 					if (!(i < argsLen_0)) goto LA28;
1010 					arg = (&args[i]);
1011 					sysArgsRaw = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(sysArgsRaw), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
1012 					T29_ = sysArgsRaw->Sup.len++;
1013 					T30_ = NIM_NIL;
1014 					T30_ = sysArgsRaw->data[T29_]; sysArgsRaw->data[T29_] = copyStringRC1((*arg));
1015 					if (T30_) nimGCunrefNoCycle(T30_);
1016 					i += ((NI) 1);
1017 				} LA28: ;
1018 			}
1019 		}
1020 	}
1021 	LA17_: ;
1022 	pid = (pid_t)0;
1023 	sysArgs = allocCStringArray__system_2469(sysArgsRaw->data, (sysArgsRaw ? sysArgsRaw->Sup.len : 0));
1024 	pushSafePoint(&TM__HZdw8BhppcTQo8DIK46LSg_8);
1025 	TM__HZdw8BhppcTQo8DIK46LSg_8.status = _setjmp(TM__HZdw8BhppcTQo8DIK46LSg_8.context);
1026 	if (TM__HZdw8BhppcTQo8DIK46LSg_8.status == 0) {
1027 	{
1028 		if (!(env == ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL))) goto LA33_;
1029 		sysEnv = envToCStringArray__pureZosproc_320();
1030 	}
1031 	goto LA31_;
1032 	LA33_: ;
1033 	{
1034 		sysEnv = envToCStringArray__pureZosproc_309(env);
1035 	}
1036 	LA31_: ;
1037 	pushSafePoint(&TM__HZdw8BhppcTQo8DIK46LSg_10);
1038 	TM__HZdw8BhppcTQo8DIK46LSg_10.status = _setjmp(TM__HZdw8BhppcTQo8DIK46LSg_10.context);
1039 	if (TM__HZdw8BhppcTQo8DIK46LSg_10.status == 0) {
1040 	data.sysArgs = sysArgs;
1041 	data.sysEnv = sysEnv;
1042 	nimCopyMem((void*)data.pStdin, (NIM_CONST void*)pStdin, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
1043 	nimCopyMem((void*)data.pStdout, (NIM_CONST void*)pStdout, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
1044 	nimCopyMem((void*)data.pStderr, (NIM_CONST void*)pStderr, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
1045 	data.workingDir = nimToCStringConv(workingDir);
1046 	data.options = options;
1047 	pid = startProcessAuxFork__pureZosproc_348((&data));
1048 	{
1049 		tyArray__24KAM9afIUgUaqBaEBB6r9bg T40_;
1050 		if (!((options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 0))&7U)))!=0)) goto LA38_;
1051 		nimZeroMem((void*)T40_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
1052 		T40_[0] = copyString(command);
1053 		T40_[1] = copyString(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_14));
1054 		T40_[2] = nsuJoinSep(args, argsLen_0, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_14));
1055 		echoBinSafe(T40_, 3);
1056 	}
1057 	LA38_: ;
1058 	(*result).id = pid;
1059 	(*result).exitFlag = NIM_FALSE;
1060 	{
1061 		if (!((options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0)) goto LA43_;
1062 		(*result).inHandle = ((int) 0);
1063 		(*result).outHandle = ((int) 1);
1064 		{
1065 			if (!((options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0)) goto LA47_;
1066 			(*result).errHandle = (*result).outHandle;
1067 		}
1068 		goto LA45_;
1069 		LA47_: ;
1070 		{
1071 			(*result).errHandle = ((int) 2);
1072 		}
1073 		LA45_: ;
1074 	}
1075 	goto LA41_;
1076 	LA43_: ;
1077 	{
1078 		int T57_;
1079 		int T58_;
1080 		int T59_;
1081 		(*result).inHandle = pStdin[(((NI) 1))- 0];
1082 		(*result).outHandle = pStdout[(((NI) 0))- 0];
1083 		{
1084 			int T55_;
1085 			if (!((options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0)) goto LA53_;
1086 			(*result).errHandle = (*result).outHandle;
1087 			T55_ = (int)0;
1088 			T55_ = close(pStderr[(((NI) 0))- 0]);
1089 			(void)(T55_);
1090 		}
1091 		goto LA51_;
1092 		LA53_: ;
1093 		{
1094 			(*result).errHandle = pStderr[(((NI) 0))- 0];
1095 		}
1096 		LA51_: ;
1097 		T57_ = (int)0;
1098 		T57_ = close(pStderr[(((NI) 1))- 0]);
1099 		(void)(T57_);
1100 		T58_ = (int)0;
1101 		T58_ = close(pStdin[(((NI) 0))- 0]);
1102 		(void)(T58_);
1103 		T59_ = (int)0;
1104 		T59_ = close(pStdout[(((NI) 1))- 0]);
1105 		(void)(T59_);
1106 	}
1107 	LA41_: ;
1108 	popSafePoint();
1109 	}
1110 	else {
1111 		popSafePoint();
1112 	}
1113 	{
1114 		deallocCStringArray__system_2503(sysEnv);
1115 		if (TM__HZdw8BhppcTQo8DIK46LSg_10.status != 0) nimLeaveFinally();
1116 	}
1117 	if (TM__HZdw8BhppcTQo8DIK46LSg_10.status != 0) reraiseException();
1118 	popSafePoint();
1119 	}
1120 	else {
1121 		popSafePoint();
1122 	}
1123 	{
1124 		deallocCStringArray__system_2503(sysArgs);
1125 		if (TM__HZdw8BhppcTQo8DIK46LSg_8.status != 0) nimLeaveFinally();
1126 	}
1127 	if (TM__HZdw8BhppcTQo8DIK46LSg_8.status != 0) reraiseException();
1128 	return result;
1129 }
N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ *,createStream__pureZosproc_605)1130 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, createStream__pureZosproc_605)(int* handle, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg fileMode) {
1131 	tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* result;
1132 	FILE* f;
1133 {	result = NIM_NIL;
1134 	f = (FILE*)0;
1135 	{
1136 		NIM_BOOL T3_;
1137 		NI32 T6_;
1138 		T3_ = (NIM_BOOL)0;
1139 		T3_ = open__systemZio_420(&f, (*handle), fileMode);
1140 		if (!!(T3_)) goto LA4_;
1141 		T6_ = (NI32)0;
1142 		T6_ = osLastError__pureZos_408();
1143 		raiseOSError__pureZos_405(T6_, ((NimStringDesc*) NIM_NIL));
1144 	}
1145 	LA4_: ;
1146 	result = newFileStream__pureZstreams_808(f);
1147 	goto BeforeRet_;
1148 	}BeforeRet_: ;
1149 	return result;
1150 }
N_INLINE(NI,pluspercent___system_696)1151 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
1152 	NI result;
1153 	result = (NI)0;
1154 	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
1155 	return result;
1156 }
N_INLINE(void,incRef__system_5308)1157 static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
1158 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
1159 }
N_INLINE(void,asgnRef)1160 static N_INLINE(void, asgnRef)(void** dest, void* src) {
1161 	{
1162 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
1163 		if (!!((src == NIM_NIL))) goto LA3_;
1164 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1165 		T5_ = usrToCell__system_5270(src);
1166 		incRef__system_5308(T5_);
1167 	}
1168 	LA3_: ;
1169 	{
1170 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
1171 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
1172 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1173 		T10_ = usrToCell__system_5270((*dest));
1174 		decRef__system_5315(T10_);
1175 	}
1176 	LA8_: ;
1177 	(*dest) = src;
1178 }
N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ *,nospinputStream)1179 N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospinputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
1180 	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* result;
1181 {	result = NIM_NIL;
1182 	{
1183 		tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* T5_;
1184 		if (!((*p).inStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL))) goto LA3_;
1185 		T5_ = NIM_NIL;
1186 		T5_ = createStream__pureZosproc_605((&(*p).inHandle), ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 1));
1187 		asgnRef((void**) (&(*p).inStream), &T5_->Sup);
1188 	}
1189 	LA3_: ;
1190 	result = (*p).inStream;
1191 	goto BeforeRet_;
1192 	}BeforeRet_: ;
1193 	return result;
1194 }
N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ *,nospoutputStream)1195 N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospoutputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
1196 	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* result;
1197 {	result = NIM_NIL;
1198 	{
1199 		tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* T5_;
1200 		if (!((*p).outStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL))) goto LA3_;
1201 		T5_ = NIM_NIL;
1202 		T5_ = createStream__pureZosproc_605((&(*p).outHandle), ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 0));
1203 		asgnRef((void**) (&(*p).outStream), &T5_->Sup);
1204 	}
1205 	LA3_: ;
1206 	result = (*p).outStream;
1207 	goto BeforeRet_;
1208 	}BeforeRet_: ;
1209 	return result;
1210 }
N_INLINE(NI,percentpercent___system_776)1211 static N_INLINE(NI, percentpercent___system_776)(NI x, NI y) {
1212 	NI result;
1213 	result = (NI)0;
1214 	result = ((NI) ((NU)((NU32)(((NU) (x))) % (NU32)(((NU) (y))))));
1215 	return result;
1216 }
N_NIMCALL(NI,nospwaitForExit)1217 N_LIB_PRIVATE N_NIMCALL(NI, nospwaitForExit)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, NI timeout) {
1218 	NI result;
1219 	int T72_;
1220 {	result = (NI)0;
1221 	{
1222 		int T5_;
1223 		if (!(*p).exitFlag) goto LA3_;
1224 		T5_ = (int)0;
1225 		T5_ = exitStatusLikeShell__pureZos_1107((*p).exitStatus);
1226 		result = ((NI) (T5_));
1227 		goto BeforeRet_;
1228 	}
1229 	LA3_: ;
1230 	{
1231 		int status;
1232 		if (!(timeout == ((NI) -1))) goto LA8_;
1233 		status = ((int) 1);
1234 		{
1235 			pid_t T12_;
1236 			NI32 T15_;
1237 			T12_ = (pid_t)0;
1238 			T12_ = waitpid((*p).id, (&status), ((int) 0));
1239 			if (!(T12_ < ((NI32) 0))) goto LA13_;
1240 			T15_ = (NI32)0;
1241 			T15_ = osLastError__pureZos_408();
1242 			raiseOSError__pureZos_405(T15_, ((NimStringDesc*) NIM_NIL));
1243 		}
1244 		LA13_: ;
1245 		(*p).exitFlag = NIM_TRUE;
1246 		(*p).exitStatus = status;
1247 	}
1248 	goto LA6_;
1249 	LA8_: ;
1250 	{
1251 		int kqFD;
1252 		struct kevent volatile kevIn;
1253 		struct kevent volatile kevOut;
1254 		struct timespec volatile tmspec;
1255 		TSafePoint TM__HZdw8BhppcTQo8DIK46LSg_15;
1256 		kqFD = kqueue();
1257 		{
1258 			NI32 T21_;
1259 			if (!(kqFD == ((NI32) -1))) goto LA19_;
1260 			T21_ = (NI32)0;
1261 			T21_ = osLastError__pureZos_408();
1262 			raiseOSError__pureZos_405(T21_, ((NimStringDesc*) NIM_NIL));
1263 		}
1264 		LA19_: ;
1265 		nimZeroMem((void*)(&kevIn), sizeof(struct kevent));
1266 		kevIn.ident = ((NU) ((*p).id));
1267 		kevIn.filter = ((short) -5);
1268 		kevIn.flags = ((unsigned short) 1);
1269 		kevIn.fflags = ((NU32) IL64(2147483648));
1270 		nimZeroMem((void*)(&kevOut), sizeof(struct kevent));
1271 		nimZeroMem((void*)(&tmspec), sizeof(struct timespec));
1272 		{
1273 			NI T26_;
1274 			if (!(((NI) 1000) <= timeout)) goto LA24_;
1275 			tmspec.tv_sec = (NI)(timeout / ((NI) 1000));
1276 			T26_ = (NI)0;
1277 			T26_ = percentpercent___system_776(timeout, ((NI) 1000));
1278 			tmspec.tv_nsec = (NI)(T26_ * ((NI) 1000000));
1279 		}
1280 		goto LA22_;
1281 		LA24_: ;
1282 		{
1283 			tmspec.tv_sec = ((long) 0);
1284 			tmspec.tv_nsec = (NI)(timeout * ((NI) 1000000));
1285 		}
1286 		LA22_: ;
1287 		pushSafePoint(&TM__HZdw8BhppcTQo8DIK46LSg_15);
1288 		TM__HZdw8BhppcTQo8DIK46LSg_15.status = _setjmp(TM__HZdw8BhppcTQo8DIK46LSg_15.context);
1289 		if (TM__HZdw8BhppcTQo8DIK46LSg_15.status == 0) {
1290 		{
1291 			while (1) {
1292 				int status_2;
1293 				int count;
1294 				status_2 = ((int) 1);
1295 				count = kevent(kqFD, (&kevIn), ((int) 1), (&kevOut), ((int) 1), (&tmspec));
1296 				{
1297 					NI32 err;
1298 					if (!(count < ((NI32) 0))) goto LA32_;
1299 					err = osLastError__pureZos_408();
1300 					{
1301 						NI32 T38_;
1302 						if (!!((err == EINTR))) goto LA36_;
1303 						T38_ = (NI32)0;
1304 						T38_ = osLastError__pureZos_408();
1305 						raiseOSError__pureZos_405(T38_, ((NimStringDesc*) NIM_NIL));
1306 					}
1307 					LA36_: ;
1308 				}
1309 				goto LA30_;
1310 				LA32_: ;
1311 				{
1312 					if (!(count == ((NI32) 0))) goto LA40_;
1313 					{
1314 						int T44_;
1315 						NI32 T47_;
1316 						T44_ = (int)0;
1317 						T44_ = kill((*p).id, SIGKILL);
1318 						if (!(T44_ == ((NI32) -1))) goto LA45_;
1319 						T47_ = (NI32)0;
1320 						T47_ = osLastError__pureZos_408();
1321 						raiseOSError__pureZos_405(T47_, ((NimStringDesc*) NIM_NIL));
1322 					}
1323 					LA45_: ;
1324 					{
1325 						pid_t T50_;
1326 						NI32 T53_;
1327 						T50_ = (pid_t)0;
1328 						T50_ = waitpid((*p).id, (&status_2), ((int) 0));
1329 						if (!(T50_ < ((NI32) 0))) goto LA51_;
1330 						T53_ = (NI32)0;
1331 						T53_ = osLastError__pureZos_408();
1332 						raiseOSError__pureZos_405(T53_, ((NimStringDesc*) NIM_NIL));
1333 					}
1334 					LA51_: ;
1335 					(*p).exitFlag = NIM_TRUE;
1336 					(*p).exitStatus = status_2;
1337 					goto LA28;
1338 				}
1339 				goto LA30_;
1340 				LA40_: ;
1341 				{
1342 					{
1343 						NIM_BOOL T57_;
1344 						T57_ = (NIM_BOOL)0;
1345 						T57_ = (kevOut.ident == ((NU) ((*p).id)));
1346 						if (!(T57_)) goto LA58_;
1347 						T57_ = (kevOut.filter == ((NI16) -5));
1348 						LA58_: ;
1349 						if (!T57_) goto LA59_;
1350 						{
1351 							pid_t T63_;
1352 							NI32 T66_;
1353 							T63_ = (pid_t)0;
1354 							T63_ = waitpid((*p).id, (&status_2), ((int) 0));
1355 							if (!(T63_ < ((NI32) 0))) goto LA64_;
1356 							T66_ = (NI32)0;
1357 							T66_ = osLastError__pureZos_408();
1358 							raiseOSError__pureZos_405(T66_, ((NimStringDesc*) NIM_NIL));
1359 						}
1360 						LA64_: ;
1361 						(*p).exitFlag = NIM_TRUE;
1362 						(*p).exitStatus = status_2;
1363 						goto LA28;
1364 					}
1365 					goto LA55_;
1366 					LA59_: ;
1367 					{
1368 						NI32 T68_;
1369 						T68_ = (NI32)0;
1370 						T68_ = osLastError__pureZos_408();
1371 						raiseOSError__pureZos_405(T68_, ((NimStringDesc*) NIM_NIL));
1372 					}
1373 					LA55_: ;
1374 				}
1375 				LA30_: ;
1376 			}
1377 		} LA28: ;
1378 		popSafePoint();
1379 		}
1380 		else {
1381 			popSafePoint();
1382 		}
1383 		{
1384 			int T71_;
1385 			T71_ = (int)0;
1386 			T71_ = close(kqFD);
1387 			(void)(T71_);
1388 			if (TM__HZdw8BhppcTQo8DIK46LSg_15.status != 0) nimLeaveFinally();
1389 		}
1390 		if (TM__HZdw8BhppcTQo8DIK46LSg_15.status != 0) reraiseException();
1391 	}
1392 	LA6_: ;
1393 	T72_ = (int)0;
1394 	T72_ = exitStatusLikeShell__pureZos_1107((*p).exitStatus);
1395 	result = ((NI) (T72_));
1396 	}BeforeRet_: ;
1397 	return result;
1398 }
N_NIMCALL(void,nospclose)1399 N_LIB_PRIVATE N_NIMCALL(void, nospclose)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
1400 	{
1401 		if (!!((((*p).options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA3_;
1402 		{
1403 			if (!!(((*p).inStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL)))) goto LA7_;
1404 			close__pureZstreams_57((*p).inStream);
1405 		}
1406 		goto LA5_;
1407 		LA7_: ;
1408 		{
1409 			int T10_;
1410 			T10_ = (int)0;
1411 			T10_ = close((*p).inHandle);
1412 			(void)(T10_);
1413 		}
1414 		LA5_: ;
1415 		{
1416 			if (!!(((*p).outStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL)))) goto LA13_;
1417 			close__pureZstreams_57((*p).outStream);
1418 		}
1419 		goto LA11_;
1420 		LA13_: ;
1421 		{
1422 			int T16_;
1423 			T16_ = (int)0;
1424 			T16_ = close((*p).outHandle);
1425 			(void)(T16_);
1426 		}
1427 		LA11_: ;
1428 		{
1429 			if (!!(((*p).errStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL)))) goto LA19_;
1430 			close__pureZstreams_57((*p).errStream);
1431 		}
1432 		goto LA17_;
1433 		LA19_: ;
1434 		{
1435 			int T22_;
1436 			T22_ = (int)0;
1437 			T22_ = close((*p).errHandle);
1438 			(void)(T22_);
1439 		}
1440 		LA17_: ;
1441 	}
1442 	LA3_: ;
1443 }
N_NIMCALL(NIM_BOOL,isExitStatus__pureZosproc_306)1444 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isExitStatus__pureZosproc_306)(int status) {
1445 	NIM_BOOL result;
1446 	NIM_BOOL T1_;
1447 	result = (NIM_BOOL)0;
1448 	T1_ = (NIM_BOOL)0;
1449 	T1_ = WIFEXITED(status);
1450 	if (T1_) goto LA2_;
1451 	T1_ = WIFSIGNALED(status);
1452 	LA2_: ;
1453 	result = T1_;
1454 	return result;
1455 }
N_NIMCALL(NI,nosppeekExitCode)1456 N_LIB_PRIVATE N_NIMCALL(NI, nosppeekExitCode)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
1457 	NI result;
1458 	int status;
1459 	pid_t ret;
1460 {	result = (NI)0;
1461 	status = ((int) 0);
1462 	result = ((NI) -1);
1463 	{
1464 		int T5_;
1465 		if (!(*p).exitFlag) goto LA3_;
1466 		T5_ = (int)0;
1467 		T5_ = exitStatusLikeShell__pureZos_1107((*p).exitStatus);
1468 		result = ((NI) (T5_));
1469 		goto BeforeRet_;
1470 	}
1471 	LA3_: ;
1472 	ret = waitpid((*p).id, (&status), WNOHANG);
1473 	{
1474 		if (!(((NI32) 0) < ret)) goto LA8_;
1475 		{
1476 			NIM_BOOL T12_;
1477 			int T15_;
1478 			T12_ = (NIM_BOOL)0;
1479 			T12_ = isExitStatus__pureZosproc_306(status);
1480 			if (!T12_) goto LA13_;
1481 			(*p).exitFlag = NIM_TRUE;
1482 			(*p).exitStatus = status;
1483 			T15_ = (int)0;
1484 			T15_ = exitStatusLikeShell__pureZos_1107(status);
1485 			result = ((NI) (T15_));
1486 		}
1487 		LA13_: ;
1488 	}
1489 	LA8_: ;
1490 	}BeforeRet_: ;
1491 	return result;
1492 }
N_NIMCALL(void,execCmdEx__pureZosproc_1148)1493 N_LIB_PRIVATE N_NIMCALL(void, execCmdEx__pureZosproc_1148)(NimStringDesc* command, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env, NimStringDesc* workingDir, NimStringDesc* input, tyTuple__XOVT24GHXwqiEj5GCsEGCA* Result) {
1494 	tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p;
1495 	tyArray__8ZvwQIddfpj2THRVPsFzIQ T1_;
1496 	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* outp;
1497 	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* T7_;
1498 	NimStringDesc* colontmp_;
1499 	NI colontmp__2;
1500 	NimStringDesc* line;
1501 	nimZeroMem((void*)T1_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
1502 	p = nospstartProcess(command, workingDir, T1_, 0, env, (options | 4));
1503 	outp = nospoutputStream(p);
1504 	{
1505 		tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* T6_;
1506 		if (!(((NI) 0) < (input ? input->Sup.len : 0))) goto LA4_;
1507 		T6_ = NIM_NIL;
1508 		T6_ = nospinputStream(p);
1509 		write__pureZstreams_177(T6_, input);
1510 	}
1511 	LA4_: ;
1512 	T7_ = NIM_NIL;
1513 	T7_ = nospinputStream(p);
1514 	close__pureZstreams_57(T7_);
1515 	colontmp_ = ((NimStringDesc*) NIM_NIL);
1516 	colontmp__2 = ((NI) -1);
1517 	unsureAsgnRef((void**) (&(*Result).Field0), copyString(colontmp_));
1518 	(*Result).Field1 = colontmp__2;
1519 	line = rawNewString(((NI) 120));
1520 	{
1521 		while (1) {
1522 			{
1523 				NIM_BOOL T12_;
1524 				T12_ = (NIM_BOOL)0;
1525 				T12_ = readLine__pureZstreams_524(outp, (&line));
1526 				if (!T12_) goto LA13_;
1527 				unsureAsgnRef((void**) (&(*Result).Field0), resizeString((*Result).Field0, (line ? line->Sup.len : 0) + 0));
1528 appendString((*Result).Field0, line);
1529 				unsureAsgnRef((void**) (&(*Result).Field0), resizeString((*Result).Field0, 1));
1530 appendString((*Result).Field0, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_16));
1531 			}
1532 			goto LA10_;
1533 			LA13_: ;
1534 			{
1535 				(*Result).Field1 = nosppeekExitCode(p);
1536 				{
1537 					if (!!(((*Result).Field1 == ((NI) -1)))) goto LA18_;
1538 					goto LA8;
1539 				}
1540 				LA18_: ;
1541 			}
1542 			LA10_: ;
1543 		}
1544 	} LA8: ;
1545 	nospclose(p);
1546 }
N_NIMCALL(NI,nospexecCmd)1547 N_LIB_PRIVATE N_NIMCALL(NI, nospexecCmd)(NimStringDesc* command) {
1548 	NI result;
1549 	int T1_;
1550 	result = (NI)0;
1551 	T1_ = (int)0;
1552 	T1_ = system(nimToCStringConv(command));
1553 	result = ((NI) (T1_));
1554 	return result;
1555 }
N_NIMCALL(NI,nospcountProcessors)1556 N_LIB_PRIVATE N_NIMCALL(NI, nospcountProcessors)(void) {
1557 	NI result;
1558 	result = (NI)0;
1559 	result = ncpicountProcessors();
1560 	return result;
1561 }
N_NIMCALL(void,Marker_tySequence__PrBYolTs4TOSgE8v5oqDUQ)1562 static N_NIMCALL(void, Marker_tySequence__PrBYolTs4TOSgE8v5oqDUQ)(void* p, NI op) {
1563 	tySequence__PrBYolTs4TOSgE8v5oqDUQ* a;
1564 	NI T1_;
1565 	a = (tySequence__PrBYolTs4TOSgE8v5oqDUQ*)p;
1566 	T1_ = (NI)0;
1567 	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
1568 	nimGCvisit((void*)a->data[T1_], op);
1569 	}
1570 }
N_NIMCALL(tySequence__PrBYolTs4TOSgE8v5oqDUQ *,newSeq__pureZosproc_120)1571 N_LIB_PRIVATE N_NIMCALL(tySequence__PrBYolTs4TOSgE8v5oqDUQ*, newSeq__pureZosproc_120)(NI len) {
1572 	tySequence__PrBYolTs4TOSgE8v5oqDUQ* result;
1573 	result = NIM_NIL;
1574 	result = (tySequence__PrBYolTs4TOSgE8v5oqDUQ*) newSeq((&NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_), len);
1575 	return result;
1576 }
N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g *,newSeq__pureZosproc_151)1577 N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g*, newSeq__pureZosproc_151)(NI len) {
1578 	tySequence__qwqHTkRvwhrRyENtudHQ7g* result;
1579 	result = NIM_NIL;
1580 	result = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) newSeq((&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_), len);
1581 	return result;
1582 }
N_NIMCALL(NIM_BOOL,nosprunning)1583 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosprunning)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
1584 	NIM_BOOL result;
1585 {	result = (NIM_BOOL)0;
1586 	{
1587 		if (!(*p).exitFlag) goto LA3_;
1588 		result = NIM_FALSE;
1589 		goto BeforeRet_;
1590 	}
1591 	goto LA1_;
1592 	LA3_: ;
1593 	{
1594 		int status;
1595 		pid_t ret;
1596 		status = ((int) 1);
1597 		ret = waitpid((*p).id, (&status), WNOHANG);
1598 		{
1599 			if (!(((NI) (ret)) == ((NI) ((*p).id)))) goto LA8_;
1600 			{
1601 				NIM_BOOL T12_;
1602 				T12_ = (NIM_BOOL)0;
1603 				T12_ = isExitStatus__pureZosproc_306(status);
1604 				if (!T12_) goto LA13_;
1605 				(*p).exitFlag = NIM_TRUE;
1606 				(*p).exitStatus = status;
1607 				result = NIM_FALSE;
1608 				goto BeforeRet_;
1609 			}
1610 			goto LA10_;
1611 			LA13_: ;
1612 			{
1613 				result = NIM_TRUE;
1614 				goto BeforeRet_;
1615 			}
1616 			LA10_: ;
1617 		}
1618 		goto LA6_;
1619 		LA8_: ;
1620 		{
1621 			if (!(ret == ((NI32) 0))) goto LA17_;
1622 			result = NIM_TRUE;
1623 			goto BeforeRet_;
1624 		}
1625 		goto LA6_;
1626 		LA17_: ;
1627 		{
1628 			NI32 T20_;
1629 			T20_ = (NI32)0;
1630 			T20_ = osLastError__pureZos_408();
1631 			raiseOSError__pureZos_405(T20_, ((NimStringDesc*) NIM_NIL));
1632 		}
1633 		LA6_: ;
1634 	}
1635 	LA1_: ;
1636 	}BeforeRet_: ;
1637 	return result;
1638 }
N_NIMCALL(NI,nospexecProcesses)1639 N_LIB_PRIVATE N_NIMCALL(NI, nospexecProcesses)(NimStringDesc** cmds, NI cmdsLen_0, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options, NI n, tyProc__SqRJqa5aOiKB4EuKlKh9asA beforeRunEvent, tyProc__oudJckli4GdxAXLVzBBlAw afterRunEvent) {
1640 	NI result;
1641 	result = (NI)0;
1642 	{
1643 		NI i;
1644 		tySequence__PrBYolTs4TOSgE8v5oqDUQ* q;
1645 		tySequence__qwqHTkRvwhrRyENtudHQ7g* idxs;
1646 		NI m;
1647 		NI ecount;
1648 		if (!(((NI) 1) < n)) goto LA3_;
1649 		i = ((NI) 0);
1650 		q = newSeq__pureZosproc_120(((NI) (n)));
1651 		idxs = newSeq__pureZosproc_151(((NI) (n)));
1652 		m = ((n <= cmdsLen_0) ? n : cmdsLen_0);
1653 		{
1654 			while (1) {
1655 				tyArray__8ZvwQIddfpj2THRVPsFzIQ T11_;
1656 				if (!(i < m)) goto LA6;
1657 				{
1658 					if (!!((beforeRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_17.ClP_0 && beforeRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_17.ClE_0))) goto LA9_;
1659 					beforeRunEvent.ClE_0? beforeRunEvent.ClP_0(i, beforeRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_18)(beforeRunEvent.ClP_0))(i);
1660 				}
1661 				LA9_: ;
1662 				nimZeroMem((void*)T11_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
1663 				asgnRef((void**) (&q->data[i]), nospstartProcess(cmds[i], ((NimStringDesc*) NIM_NIL), T11_, 0, ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL), (options | 4)));
1664 				idxs->data[i] = i;
1665 				i += ((NI) 1);
1666 			} LA6: ;
1667 		}
1668 		ecount = cmdsLen_0;
1669 		{
1670 			while (1) {
1671 				if (!(((NI) 0) < ecount)) goto LA13;
1672 				{
1673 					NI rexit;
1674 					int status;
1675 					pid_t res;
1676 					rexit = ((NI) -1);
1677 					status = ((int) 1);
1678 					res = waitpid(((pid_t) -1), (&status), ((int) 0));
1679 					{
1680 						if (!(((NI32) 0) < res)) goto LA17_;
1681 						{
1682 							NI r;
1683 							NI colontmp_;
1684 							NI res_2;
1685 							r = (NI)0;
1686 							colontmp_ = (NI)0;
1687 							colontmp_ = (NI)(m - ((NI) 1));
1688 							res_2 = ((NI) 0);
1689 							{
1690 								while (1) {
1691 									if (!(res_2 <= colontmp_)) goto LA21;
1692 									r = res_2;
1693 									{
1694 										NIM_BOOL T24_;
1695 										T24_ = (NIM_BOOL)0;
1696 										T24_ = !((q->data[r] == 0));
1697 										if (!(T24_)) goto LA25_;
1698 										T24_ = ((*q->data[r]).id == res);
1699 										LA25_: ;
1700 										if (!T24_) goto LA26_;
1701 										{
1702 											NIM_BOOL T30_;
1703 											T30_ = (NIM_BOOL)0;
1704 											T30_ = WIFEXITED(status);
1705 											if (T30_) goto LA31_;
1706 											T30_ = WIFSIGNALED(status);
1707 											LA31_: ;
1708 											if (!T30_) goto LA32_;
1709 											(*q->data[r]).exitFlag = NIM_TRUE;
1710 											(*q->data[r]).exitStatus = status;
1711 											rexit = r;
1712 											goto LA19;
1713 										}
1714 										LA32_: ;
1715 									}
1716 									LA26_: ;
1717 									res_2 += ((NI) 1);
1718 								} LA21: ;
1719 							}
1720 						} LA19: ;
1721 					}
1722 					goto LA15_;
1723 					LA17_: ;
1724 					{
1725 						NI32 err;
1726 						err = osLastError__pureZos_408();
1727 						{
1728 							if (!(err == ECHILD)) goto LA37_;
1729 							{
1730 								NI r_2;
1731 								NI colontmp__2;
1732 								NI res_3;
1733 								r_2 = (NI)0;
1734 								colontmp__2 = (NI)0;
1735 								colontmp__2 = (NI)(m - ((NI) 1));
1736 								res_3 = ((NI) 0);
1737 								{
1738 									while (1) {
1739 										if (!(res_3 <= colontmp__2)) goto LA41;
1740 										r_2 = res_3;
1741 										{
1742 											NIM_BOOL T44_;
1743 											NIM_BOOL T46_;
1744 											T44_ = (NIM_BOOL)0;
1745 											T44_ = !((q->data[r_2] == 0));
1746 											if (!(T44_)) goto LA45_;
1747 											T46_ = (NIM_BOOL)0;
1748 											T46_ = nosprunning(q->data[r_2]);
1749 											T44_ = !(T46_);
1750 											LA45_: ;
1751 											if (!T44_) goto LA47_;
1752 											(*q->data[r_2]).exitFlag = NIM_TRUE;
1753 											(*q->data[r_2]).exitStatus = status;
1754 											rexit = r_2;
1755 											goto LA39;
1756 										}
1757 										LA47_: ;
1758 										res_3 += ((NI) 1);
1759 									} LA41: ;
1760 								}
1761 							} LA39: ;
1762 						}
1763 						goto LA35_;
1764 						LA37_: ;
1765 						{
1766 							if (!(err == EINTR)) goto LA50_;
1767 							goto LA14;
1768 						}
1769 						goto LA35_;
1770 						LA50_: ;
1771 						{
1772 							raiseOSError__pureZos_405(err, ((NimStringDesc*) NIM_NIL));
1773 						}
1774 						LA35_: ;
1775 					}
1776 					LA15_: ;
1777 					{
1778 						NI T57_;
1779 						if (!(((NI) 0) <= rexit)) goto LA55_;
1780 						T57_ = (NI)0;
1781 						T57_ = nosppeekExitCode(q->data[rexit]);
1782 						result = ((result >= (T57_ > 0? (T57_) : -(T57_))) ? result : (T57_ > 0? (T57_) : -(T57_)));
1783 						{
1784 							if (!!((afterRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_19.ClP_0 && afterRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_19.ClE_0))) goto LA60_;
1785 							afterRunEvent.ClE_0? afterRunEvent.ClP_0(idxs->data[rexit], q->data[rexit], afterRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_20)(afterRunEvent.ClP_0))(idxs->data[rexit], q->data[rexit]);
1786 						}
1787 						LA60_: ;
1788 						nospclose(q->data[rexit]);
1789 						{
1790 							tyArray__8ZvwQIddfpj2THRVPsFzIQ T70_;
1791 							if (!(i < cmdsLen_0)) goto LA64_;
1792 							{
1793 								if (!!((beforeRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_17.ClP_0 && beforeRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_17.ClE_0))) goto LA68_;
1794 								beforeRunEvent.ClE_0? beforeRunEvent.ClP_0(i, beforeRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_21)(beforeRunEvent.ClP_0))(i);
1795 							}
1796 							LA68_: ;
1797 							nimZeroMem((void*)T70_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
1798 							asgnRef((void**) (&q->data[rexit]), nospstartProcess(cmds[i], ((NimStringDesc*) NIM_NIL), T70_, 0, ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL), (options | 4)));
1799 							idxs->data[rexit] = i;
1800 							i += ((NI) 1);
1801 						}
1802 						goto LA62_;
1803 						LA64_: ;
1804 						{
1805 							asgnRef((void**) (&q->data[rexit]), ((tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*) NIM_NIL));
1806 						}
1807 						LA62_: ;
1808 						ecount -= ((NI) 1);
1809 					}
1810 					LA55_: ;
1811 				} LA14: ;
1812 			} LA13: ;
1813 		}
1814 	}
1815 	goto LA1_;
1816 	LA3_: ;
1817 	{
1818 		{
1819 			NI i_2;
1820 			NI colontmp__3;
1821 			NI res_4;
1822 			i_2 = (NI)0;
1823 			colontmp__3 = (NI)0;
1824 			colontmp__3 = (cmdsLen_0-1);
1825 			res_4 = ((NI) 0);
1826 			{
1827 				while (1) {
1828 					tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p;
1829 					tyArray__8ZvwQIddfpj2THRVPsFzIQ T80_;
1830 					NI T81_;
1831 					if (!(res_4 <= colontmp__3)) goto LA75;
1832 					i_2 = res_4;
1833 					{
1834 						if (!!((beforeRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_17.ClP_0 && beforeRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_17.ClE_0))) goto LA78_;
1835 						beforeRunEvent.ClE_0? beforeRunEvent.ClP_0(i_2, beforeRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_22)(beforeRunEvent.ClP_0))(i_2);
1836 					}
1837 					LA78_: ;
1838 					nimZeroMem((void*)T80_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
1839 					p = nospstartProcess(cmds[i_2], ((NimStringDesc*) NIM_NIL), T80_, 0, ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL), (options | 4));
1840 					T81_ = (NI)0;
1841 					T81_ = nospwaitForExit(p, ((NI) -1));
1842 					result = (((T81_ > 0? (T81_) : -(T81_)) >= result) ? (T81_ > 0? (T81_) : -(T81_)) : result);
1843 					{
1844 						if (!!((afterRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_19.ClP_0 && afterRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_19.ClE_0))) goto LA84_;
1845 						afterRunEvent.ClE_0? afterRunEvent.ClP_0(i_2, p, afterRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_23)(afterRunEvent.ClP_0))(i_2, p);
1846 					}
1847 					LA84_: ;
1848 					nospclose(p);
1849 					res_4 += ((NI) 1);
1850 				} LA75: ;
1851 			}
1852 		}
1853 	}
1854 	LA1_: ;
1855 	return result;
1856 }
N_NIMCALL(void,stdlib_osprocDatInit000)1857 N_LIB_PRIVATE N_NIMCALL(void, stdlib_osprocDatInit000)(void) {
1858 static TNimNode* TM__HZdw8BhppcTQo8DIK46LSg_2_10[10];
1859 static TNimNode* TM__HZdw8BhppcTQo8DIK46LSg_3_7[7];
1860 NI TM__HZdw8BhppcTQo8DIK46LSg_5;
1861 static char* NIM_CONST TM__HZdw8BhppcTQo8DIK46LSg_4[7] = {
1862 "poEchoCmd",
1863 "poUsePath",
1864 "poEvalCommand",
1865 "poStdErrToStdOut",
1866 "poParentStreams",
1867 "poInteractive",
1868 "poDaemon"};
1869 static TNimNode* TM__HZdw8BhppcTQo8DIK46LSg_12_9[9];
1870 static TNimNode TM__HZdw8BhppcTQo8DIK46LSg_0[30];
1871 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.size = sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg);
1872 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.align = NIM_ALIGNOF(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg);
1873 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.kind = 17;
1874 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
1875 TM__HZdw8BhppcTQo8DIK46LSg_2_10[0] = &TM__HZdw8BhppcTQo8DIK46LSg_0[1];
1876 TM__HZdw8BhppcTQo8DIK46LSg_0[1].kind = 1;
1877 TM__HZdw8BhppcTQo8DIK46LSg_0[1].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, inHandle);
1878 TM__HZdw8BhppcTQo8DIK46LSg_0[1].typ = (&NTIfilehandle__2gIj3gQlK3HZJjQaYCP6ZQ_);
1879 TM__HZdw8BhppcTQo8DIK46LSg_0[1].name = "inHandle";
1880 TM__HZdw8BhppcTQo8DIK46LSg_2_10[1] = &TM__HZdw8BhppcTQo8DIK46LSg_0[2];
1881 TM__HZdw8BhppcTQo8DIK46LSg_0[2].kind = 1;
1882 TM__HZdw8BhppcTQo8DIK46LSg_0[2].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, outHandle);
1883 TM__HZdw8BhppcTQo8DIK46LSg_0[2].typ = (&NTIfilehandle__2gIj3gQlK3HZJjQaYCP6ZQ_);
1884 TM__HZdw8BhppcTQo8DIK46LSg_0[2].name = "outHandle";
1885 TM__HZdw8BhppcTQo8DIK46LSg_2_10[2] = &TM__HZdw8BhppcTQo8DIK46LSg_0[3];
1886 TM__HZdw8BhppcTQo8DIK46LSg_0[3].kind = 1;
1887 TM__HZdw8BhppcTQo8DIK46LSg_0[3].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, errHandle);
1888 TM__HZdw8BhppcTQo8DIK46LSg_0[3].typ = (&NTIfilehandle__2gIj3gQlK3HZJjQaYCP6ZQ_);
1889 TM__HZdw8BhppcTQo8DIK46LSg_0[3].name = "errHandle";
1890 TM__HZdw8BhppcTQo8DIK46LSg_2_10[3] = &TM__HZdw8BhppcTQo8DIK46LSg_0[4];
1891 TM__HZdw8BhppcTQo8DIK46LSg_0[4].kind = 1;
1892 TM__HZdw8BhppcTQo8DIK46LSg_0[4].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, id);
1893 TM__HZdw8BhppcTQo8DIK46LSg_0[4].typ = (&NTIpid__r9bTMVI8f19ah9b11jMgY4kPg_);
1894 TM__HZdw8BhppcTQo8DIK46LSg_0[4].name = "id";
1895 TM__HZdw8BhppcTQo8DIK46LSg_2_10[4] = &TM__HZdw8BhppcTQo8DIK46LSg_0[5];
1896 TM__HZdw8BhppcTQo8DIK46LSg_0[5].kind = 1;
1897 TM__HZdw8BhppcTQo8DIK46LSg_0[5].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, inStream);
1898 TM__HZdw8BhppcTQo8DIK46LSg_0[5].typ = (&NTIstream__1G0jiQbe7KwD5ADza5AZaw_);
1899 TM__HZdw8BhppcTQo8DIK46LSg_0[5].name = "inStream";
1900 TM__HZdw8BhppcTQo8DIK46LSg_2_10[5] = &TM__HZdw8BhppcTQo8DIK46LSg_0[6];
1901 TM__HZdw8BhppcTQo8DIK46LSg_0[6].kind = 1;
1902 TM__HZdw8BhppcTQo8DIK46LSg_0[6].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, outStream);
1903 TM__HZdw8BhppcTQo8DIK46LSg_0[6].typ = (&NTIstream__1G0jiQbe7KwD5ADza5AZaw_);
1904 TM__HZdw8BhppcTQo8DIK46LSg_0[6].name = "outStream";
1905 TM__HZdw8BhppcTQo8DIK46LSg_2_10[6] = &TM__HZdw8BhppcTQo8DIK46LSg_0[7];
1906 TM__HZdw8BhppcTQo8DIK46LSg_0[7].kind = 1;
1907 TM__HZdw8BhppcTQo8DIK46LSg_0[7].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, errStream);
1908 TM__HZdw8BhppcTQo8DIK46LSg_0[7].typ = (&NTIstream__1G0jiQbe7KwD5ADza5AZaw_);
1909 TM__HZdw8BhppcTQo8DIK46LSg_0[7].name = "errStream";
1910 TM__HZdw8BhppcTQo8DIK46LSg_2_10[7] = &TM__HZdw8BhppcTQo8DIK46LSg_0[8];
1911 TM__HZdw8BhppcTQo8DIK46LSg_0[8].kind = 1;
1912 TM__HZdw8BhppcTQo8DIK46LSg_0[8].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, exitStatus);
1913 TM__HZdw8BhppcTQo8DIK46LSg_0[8].typ = (&NTIcint__nlCscttRCss70IBTyuBqnA_);
1914 TM__HZdw8BhppcTQo8DIK46LSg_0[8].name = "exitStatus";
1915 TM__HZdw8BhppcTQo8DIK46LSg_2_10[8] = &TM__HZdw8BhppcTQo8DIK46LSg_0[9];
1916 TM__HZdw8BhppcTQo8DIK46LSg_0[9].kind = 1;
1917 TM__HZdw8BhppcTQo8DIK46LSg_0[9].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, exitFlag);
1918 TM__HZdw8BhppcTQo8DIK46LSg_0[9].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
1919 TM__HZdw8BhppcTQo8DIK46LSg_0[9].name = "exitFlag";
1920 TM__HZdw8BhppcTQo8DIK46LSg_2_10[9] = &TM__HZdw8BhppcTQo8DIK46LSg_0[10];
1921 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.size = sizeof(tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
1922 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.align = NIM_ALIGNOF(tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
1923 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.kind = 14;
1924 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.base = 0;
1925 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.flags = 3;
1926 for (TM__HZdw8BhppcTQo8DIK46LSg_5 = 0; TM__HZdw8BhppcTQo8DIK46LSg_5 < 7; TM__HZdw8BhppcTQo8DIK46LSg_5++) {
1927 TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11].kind = 1;
1928 TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11].offset = TM__HZdw8BhppcTQo8DIK46LSg_5;
1929 TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11].name = TM__HZdw8BhppcTQo8DIK46LSg_4[TM__HZdw8BhppcTQo8DIK46LSg_5];
1930 TM__HZdw8BhppcTQo8DIK46LSg_3_7[TM__HZdw8BhppcTQo8DIK46LSg_5] = &TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11];
1931 }
1932 TM__HZdw8BhppcTQo8DIK46LSg_0[18].len = 7; TM__HZdw8BhppcTQo8DIK46LSg_0[18].kind = 2; TM__HZdw8BhppcTQo8DIK46LSg_0[18].sons = &TM__HZdw8BhppcTQo8DIK46LSg_3_7[0];
1933 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[18];
1934 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.size = sizeof(tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
1935 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.align = NIM_ALIGNOF(tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
1936 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.kind = 19;
1937 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.base = (&NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_);
1938 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.flags = 3;
1939 TM__HZdw8BhppcTQo8DIK46LSg_0[19].len = 0; TM__HZdw8BhppcTQo8DIK46LSg_0[19].kind = 0;
1940 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[19];
1941 TM__HZdw8BhppcTQo8DIK46LSg_0[10].kind = 1;
1942 TM__HZdw8BhppcTQo8DIK46LSg_0[10].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, options);
1943 TM__HZdw8BhppcTQo8DIK46LSg_0[10].typ = (&NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_);
1944 TM__HZdw8BhppcTQo8DIK46LSg_0[10].name = "options";
1945 TM__HZdw8BhppcTQo8DIK46LSg_0[0].len = 10; TM__HZdw8BhppcTQo8DIK46LSg_0[0].kind = 2; TM__HZdw8BhppcTQo8DIK46LSg_0[0].sons = &TM__HZdw8BhppcTQo8DIK46LSg_2_10[0];
1946 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[0];
1947 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.size = sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*);
1948 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.align = NIM_ALIGNOF(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*);
1949 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.kind = 22;
1950 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.base = (&NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_);
1951 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.marker = Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA;
1952 NTIstartprocessdata__xgRnKnLIYRtnOkshMKhc9cA_.size = sizeof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA);
1953 NTIstartprocessdata__xgRnKnLIYRtnOkshMKhc9cA_.align = NIM_ALIGNOF(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA);
1954 NTIstartprocessdata__xgRnKnLIYRtnOkshMKhc9cA_.kind = 18;
1955 NTIstartprocessdata__xgRnKnLIYRtnOkshMKhc9cA_.base = 0;
1956 TM__HZdw8BhppcTQo8DIK46LSg_12_9[0] = &TM__HZdw8BhppcTQo8DIK46LSg_0[21];
1957 TM__HZdw8BhppcTQo8DIK46LSg_0[21].kind = 1;
1958 TM__HZdw8BhppcTQo8DIK46LSg_0[21].offset = offsetof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA, sysCommand);
1959 TM__HZdw8BhppcTQo8DIK46LSg_0[21].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
1960 TM__HZdw8BhppcTQo8DIK46LSg_0[21].name = "sysCommand";
1961 TM__HZdw8BhppcTQo8DIK46LSg_12_9[1] = &TM__HZdw8BhppcTQo8DIK46LSg_0[22];
1962 TM__HZdw8BhppcTQo8DIK46LSg_0[22].kind = 1;
1963 TM__HZdw8BhppcTQo8DIK46LSg_0[22].offset = offsetof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA, sysArgs);
1964 TM__HZdw8BhppcTQo8DIK46LSg_0[22].typ = (&NTIcstringarray__vCtGdhfQAmBlRFXaVFklkQ_);
1965 TM__HZdw8BhppcTQo8DIK46LSg_0[22].name = "sysArgs";
1966 TM__HZdw8BhppcTQo8DIK46LSg_12_9[2] = &TM__HZdw8BhppcTQo8DIK46LSg_0[23];
1967 TM__HZdw8BhppcTQo8DIK46LSg_0[23].kind = 1;
1968 TM__HZdw8BhppcTQo8DIK46LSg_0[23].offset = offsetof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA, sysEnv);
1969 TM__HZdw8BhppcTQo8DIK46LSg_0[23].typ = (&NTIcstringarray__vCtGdhfQAmBlRFXaVFklkQ_);
1970 TM__HZdw8BhppcTQo8DIK46LSg_0[23].name = "sysEnv";
1971 TM__HZdw8BhppcTQo8DIK46LSg_12_9[3] = &TM__HZdw8BhppcTQo8DIK46LSg_0[24];
1972 TM__HZdw8BhppcTQo8DIK46LSg_0[24].kind = 1;
1973 TM__HZdw8BhppcTQo8DIK46LSg_0[24].offset = offsetof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA, workingDir);
1974 TM__HZdw8BhppcTQo8DIK46LSg_0[24].typ = (&NTIcstring__S9agCYBinaYZnGWcjTdxclg_);
1975 TM__HZdw8BhppcTQo8DIK46LSg_0[24].name = "workingDir";
1976 TM__HZdw8BhppcTQo8DIK46LSg_12_9[4] = &TM__HZdw8BhppcTQo8DIK46LSg_0[25];
1977 NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_.size = sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q);
1978 NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_.align = NIM_ALIGNOF(tyArray__SKEqGXcReU4NvbQlH779b5Q);
1979 NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_.kind = 16;
1980 NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_.base = (&NTIcint__nlCscttRCss70IBTyuBqnA_);
1981 NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_.flags = 1;
1982 TM__HZdw8BhppcTQo8DIK46LSg_0[25].kind = 1;
1983 TM__HZdw8BhppcTQo8DIK46LSg_0[25].offset = offsetof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA, pStdin);
1984 TM__HZdw8BhppcTQo8DIK46LSg_0[25].typ = (&NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_);
1985 TM__HZdw8BhppcTQo8DIK46LSg_0[25].name = "pStdin";
1986 TM__HZdw8BhppcTQo8DIK46LSg_12_9[5] = &TM__HZdw8BhppcTQo8DIK46LSg_0[26];
1987 TM__HZdw8BhppcTQo8DIK46LSg_0[26].kind = 1;
1988 TM__HZdw8BhppcTQo8DIK46LSg_0[26].offset = offsetof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA, pStdout);
1989 TM__HZdw8BhppcTQo8DIK46LSg_0[26].typ = (&NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_);
1990 TM__HZdw8BhppcTQo8DIK46LSg_0[26].name = "pStdout";
1991 TM__HZdw8BhppcTQo8DIK46LSg_12_9[6] = &TM__HZdw8BhppcTQo8DIK46LSg_0[27];
1992 TM__HZdw8BhppcTQo8DIK46LSg_0[27].kind = 1;
1993 TM__HZdw8BhppcTQo8DIK46LSg_0[27].offset = offsetof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA, pStderr);
1994 TM__HZdw8BhppcTQo8DIK46LSg_0[27].typ = (&NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_);
1995 TM__HZdw8BhppcTQo8DIK46LSg_0[27].name = "pStderr";
1996 TM__HZdw8BhppcTQo8DIK46LSg_12_9[7] = &TM__HZdw8BhppcTQo8DIK46LSg_0[28];
1997 TM__HZdw8BhppcTQo8DIK46LSg_0[28].kind = 1;
1998 TM__HZdw8BhppcTQo8DIK46LSg_0[28].offset = offsetof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA, pErrorPipe);
1999 TM__HZdw8BhppcTQo8DIK46LSg_0[28].typ = (&NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_);
2000 TM__HZdw8BhppcTQo8DIK46LSg_0[28].name = "pErrorPipe";
2001 TM__HZdw8BhppcTQo8DIK46LSg_12_9[8] = &TM__HZdw8BhppcTQo8DIK46LSg_0[29];
2002 TM__HZdw8BhppcTQo8DIK46LSg_0[29].kind = 1;
2003 TM__HZdw8BhppcTQo8DIK46LSg_0[29].offset = offsetof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA, options);
2004 TM__HZdw8BhppcTQo8DIK46LSg_0[29].typ = (&NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_);
2005 TM__HZdw8BhppcTQo8DIK46LSg_0[29].name = "options";
2006 TM__HZdw8BhppcTQo8DIK46LSg_0[20].len = 9; TM__HZdw8BhppcTQo8DIK46LSg_0[20].kind = 2; TM__HZdw8BhppcTQo8DIK46LSg_0[20].sons = &TM__HZdw8BhppcTQo8DIK46LSg_12_9[0];
2007 NTIstartprocessdata__xgRnKnLIYRtnOkshMKhc9cA_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[20];
2008 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.size = sizeof(tySequence__PrBYolTs4TOSgE8v5oqDUQ*);
2009 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.align = NIM_ALIGNOF(tySequence__PrBYolTs4TOSgE8v5oqDUQ*);
2010 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.kind = 24;
2011 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.base = (&NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_);
2012 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.marker = Marker_tySequence__PrBYolTs4TOSgE8v5oqDUQ;
2013 }
2014 
2015