1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 32
3 #define NIM_EmulateOverflowChecks
4 
5 #include "nimbase.h"
6 #include <stdio.h>
7 #include <setjmp.h>
8 #include <string.h>
9 #undef LANGUAGE_C
10 #undef MIPSEB
11 #undef MIPSEL
12 #undef PPC
13 #undef R3000
14 #undef R4000
15 #undef i386
16 #undef linux
17 #undef mips
18 #undef near
19 #undef far
20 #undef powerpc
21 #undef unix
22 #define nimfr_(x, y)
23 #define nimln_(x, y)
24 typedef struct TNimType TNimType;
25 typedef struct TNimNode TNimNode;
26 typedef struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ;
27 typedef struct RootObj RootObj;
28 typedef struct NimStringDesc NimStringDesc;
29 typedef struct TGenericSeq TGenericSeq;
30 typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
31 typedef struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ;
32 typedef struct Exception Exception;
33 typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
34 typedef struct TSafePoint TSafePoint;
35 typedef struct tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw;
36 typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
37 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
38 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
39 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
40 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
41 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
42 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
43 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
44 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
45 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
46 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
47 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
48 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
49 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
50 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
51 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
52 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
53 typedef struct tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw;
54 typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
55 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
56 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
57 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
58 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
59 struct TNimType {
60 NI size;
61 NI align;
62 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
63 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
64 TNimType* base;
65 TNimNode* node;
66 void* finalizer;
67 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
68 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
69 };
70 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
71 struct TNimNode {
72 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
73 NI offset;
74 TNimType* typ;
75 NCSTRING name;
76 NI len;
77 TNimNode** sons;
78 };
79 struct RootObj {
80 TNimType* m_type;
81 };
82 typedef N_NIMCALL_PTR(void, tyProc__JQrsH08b4uPTH9cyFPlVOZg) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
83 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__9bmhFrLahRsL2hltfRDVtlQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
84 typedef N_NIMCALL_PTR(void, tyProc__3svSoGIUJIsHkaBL7q4DAQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos);
85 typedef N_NIMCALL_PTR(NI, tyProc__xflqkf2D1uVClg70czEDHA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
86 struct TGenericSeq {
87 NI len;
88 NI reserved;
89 };
90 struct NimStringDesc {
91   TGenericSeq Sup;
92 NIM_CHAR data[SEQ_DECL_SIZE];
93 };
94 typedef N_NIMCALL_PTR(NI, tyProc__c9c0f59ak4YGQ6neEym8LPKw) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice);
95 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__7jFfqMk9ajToCz6Hv9atCA4A) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line);
96 typedef N_NIMCALL_PTR(NI, tyProc__2VVzVL9bOnKhj1eZKkf9cEuA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
97 typedef N_NIMCALL_PTR(void, tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
98 struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ {
99   RootObj Sup;
100 tyProc__JQrsH08b4uPTH9cyFPlVOZg closeImpl;
101 tyProc__9bmhFrLahRsL2hltfRDVtlQ atEndImpl;
102 tyProc__3svSoGIUJIsHkaBL7q4DAQ setPositionImpl;
103 tyProc__xflqkf2D1uVClg70czEDHA getPositionImpl;
104 tyProc__c9c0f59ak4YGQ6neEym8LPKw readDataStrImpl;
105 tyProc__7jFfqMk9ajToCz6Hv9atCA4A readLineImpl;
106 tyProc__2VVzVL9bOnKhj1eZKkf9cEuA readDataImpl;
107 tyProc__2VVzVL9bOnKhj1eZKkf9cEuA peekDataImpl;
108 tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ writeDataImpl;
109 tyProc__JQrsH08b4uPTH9cyFPlVOZg flushImpl;
110 };
111 struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ {
112   tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ Sup;
113 FILE* f;
114 };
115 typedef NU8 tyEnum_FileSeekPos__I9aQjuvWxs8BspGbxwsngWw;
116 struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
117 NI a;
118 NI b;
119 };
120 struct Exception {
121   RootObj Sup;
122 Exception* parent;
123 NCSTRING name;
124 NimStringDesc* message;
125 tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
126 Exception* up;
127 };
128 struct TSafePoint {
129 TSafePoint* prev;
130 NI status;
131 jmp_buf context;
132 };
133 struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
134   Exception Sup;
135 };
136 struct tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw {
137   tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
138 };
139 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
140 NI refcount;
141 TNimType* typ;
142 };
143 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
144 void* bottom;
145 };
146 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
147 NI len;
148 NI cap;
149 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
150 };
151 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
152 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
153 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
154 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
155 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
156 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
157 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
158 };
159 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
160 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
161 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
162 NI key;
163 NI upperBound;
164 NI level;
165 };
166 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
167 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
168 NI Field1;
169 };
170 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
171 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
172 NI len;
173 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
174 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
175 };
176 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
177 NI minLargeObj;
178 NI maxLargeObj;
179 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
180 NU32 flBitmap;
181 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
182 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
183 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
184 NI currMem;
185 NI maxMem;
186 NI freeMem;
187 NI occ;
188 NI lastSize;
189 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
190 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
191 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
192 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
193 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
194 NIM_BOOL locked;
195 NIM_BOOL blockChunkSizeIncrease;
196 NI nextChunkSize;
197 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
198 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
199 };
200 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
201 NI stackScans;
202 NI cycleCollections;
203 NI maxThreshold;
204 NI maxStackSize;
205 NI maxStackCells;
206 NI cycleTableSize;
207 NI64 maxPause;
208 };
209 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
210 NI counter;
211 NI max;
212 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
213 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
214 };
215 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
216 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
217 NI cycleThreshold;
218 NI zctThreshold;
219 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
220 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
221 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
222 NI recGcLock;
223 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
224 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
225 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
226 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
227 NI gcThreadId;
228 };
229 struct tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw {
230   tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ Sup;
231 NimStringDesc* data;
232 NI pos;
233 };
234 typedef NU8 tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg;
235 struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
236 NCSTRING procname;
237 NI line;
238 NCSTRING filename;
239 };
240 struct tySequence__uB9b75OUPRENsBAu4AnoePA {
241   TGenericSeq Sup;
242   tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
243 };
244 static N_NIMCALL(void, Marker_tyRef__1G0jiQbe7KwD5ADza5AZaw)(void* p, NI op);
245 N_LIB_PRIVATE N_NIMCALL(void, writeData__pureZstreams_168)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
246 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
247 static N_NIMCALL(void, Marker_tyRef__y4kGpp4Cn6oTOCWBJMIxAg)(void* p, NI op);
248 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
249 N_LIB_PRIVATE N_NIMCALL(void, fsClose__pureZstreams_757)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
250 N_LIB_PRIVATE N_NIMCALL(void, close__systemZio_217)(FILE* f);
251 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fsAtEnd__pureZstreams_774)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
252 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, endOfFile__systemZio_337)(FILE* f);
253 N_LIB_PRIVATE N_NIMCALL(void, fsSetPosition__pureZstreams_777)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos);
254 N_LIB_PRIVATE N_NIMCALL(void, setFilePos__systemZio_436)(FILE* f, NI64 pos, tyEnum_FileSeekPos__I9aQjuvWxs8BspGbxwsngWw relativeTo);
255 N_LIB_PRIVATE N_NIMCALL(NI, fsGetPosition__pureZstreams_780)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
256 N_LIB_PRIVATE N_NIMCALL(NI64, getFilePos__systemZio_449)(FILE* f);
257 N_LIB_PRIVATE N_NIMCALL(NI, fsReadDataStr__pureZstreams_788)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice);
258 N_LIB_PRIVATE N_NIMCALL(NI, readBuffer__systemZio_144)(FILE* f, void* buffer, NI len);
259 N_LIB_PRIVATE N_NIMCALL(NI, fsReadData__pureZstreams_783)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
260 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fsReadLine__pureZstreams_804)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line);
261 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readLine__systemZio_238)(FILE* f, NimStringDesc** line);
262 N_LIB_PRIVATE N_NIMCALL(NI, fsPeekData__pureZstreams_794)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
263 static N_INLINE(void, pushSafePoint)(TSafePoint* s);
264 static N_INLINE(void, popSafePoint)(void);
265 N_LIB_PRIVATE N_NIMCALL(void, nimLeaveFinally)(void);
266 N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
267 N_LIB_PRIVATE N_NIMCALL(void, fsWriteData__pureZstreams_800)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
268 N_LIB_PRIVATE N_NIMCALL(NI, writeBuffer__systemZio_176)(FILE* f, void* buffer, NI len);
269 N_LIB_PRIVATE N_NIMCALL(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw*, newEIO__pureZstreams_2)(NimStringDesc* msg);
270 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
271 static N_INLINE(void, nimGCunrefNoCycle)(void* p);
272 static N_INLINE(void, decRef__system_5336)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
273 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
274 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
275 static N_INLINE(void, rtlAddZCT__system_5334)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
276 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5285)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
277 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5291)(void* usr);
278 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
279 N_LIB_PRIVATE N_NIMCALL(void, fsFlush__pureZstreams_772)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
280 N_LIB_PRIVATE N_NIMCALL(void, flushFile__systemZio_226)(FILE* f);
281 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, atEnd__pureZstreams_63)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
282 N_LIB_PRIVATE N_NIMCALL(NIM_CHAR, readChar__pureZstreams_202)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
283 N_LIB_PRIVATE N_NIMCALL(NI, readData__pureZstreams_75)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
284 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
285 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
286 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
287 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
288 static N_NIMCALL(void, Marker_tyRef__Z9cj1NxLXx79cYy9c4gbj6CAA)(void* p, NI op);
289 N_LIB_PRIVATE N_NIMCALL(void, ssClose__pureZstreams_673)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
290 static N_INLINE(void, asgnRef)(void** dest, void* src);
291 static N_INLINE(void, incRef__system_5329)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
292 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
293 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ssAtEnd__pureZstreams_558)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
294 N_LIB_PRIVATE N_NIMCALL(void, ssSetPosition__pureZstreams_580)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos);
295 N_LIB_PRIVATE N_NIMCALL(NI, clamp__pureZstreams_584)(NI x, NI a, NI b);
296 N_LIB_PRIVATE N_NIMCALL(NI, ssGetPosition__pureZstreams_590)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
297 N_LIB_PRIVATE N_NIMCALL(NI, ssReadDataStr__pureZstreams_594)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice);
298 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
299 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
300 N_LIB_PRIVATE N_NIMCALL(NI, ssReadData__pureZstreams_648)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
301 N_LIB_PRIVATE N_NIMCALL(NI, ssPeekData__pureZstreams_658)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
302 N_LIB_PRIVATE N_NIMCALL(void, ssWriteData__pureZstreams_664)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
303 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, open__systemZio_389)(FILE** f, NimStringDesc* filename, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode, NI bufSize);
304 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, newFileStream__pureZstreams_808)(FILE* f);
305 extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
306 N_LIB_PRIVATE TNimType NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_;
307 N_LIB_PRIVATE TNimType NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_;
308 N_LIB_PRIVATE TNimType NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_;
309 N_LIB_PRIVATE TNimType NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_;
310 N_LIB_PRIVATE TNimType NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_;
311 N_LIB_PRIVATE TNimType NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_;
312 N_LIB_PRIVATE TNimType NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_;
313 N_LIB_PRIVATE TNimType NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_;
314 N_LIB_PRIVATE TNimType NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_;
315 N_LIB_PRIVATE TNimType NTIstream__1G0jiQbe7KwD5ADza5AZaw_;
316 N_LIB_PRIVATE TNimType NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_;
317 extern TNimType NTIfile__XBeRj4rw9bUuE7CB3DS1rgg_;
318 N_LIB_PRIVATE TNimType NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_;
319 extern TNimType NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_;
320 extern TNimType NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_;
321 STRING_LITERAL(TM__Ue7tnBcsL67VCiRfvt8q0A_4, "cannot write to stream", 22);
322 STRING_LITERAL(TM__Ue7tnBcsL67VCiRfvt8q0A_5, "cannot read from stream", 23);
323 N_LIB_PRIVATE TNimType NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_;
324 extern TNimType NTIstring__77mFvmsOLKik79ci2hXkHEg_;
325 extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
326 N_LIB_PRIVATE TNimType NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_;
327 extern TSafePoint* excHandler__system_2565;
328 extern TSafePoint* excHandler__system_2565;
329 extern TSafePoint* excHandler__system_2565;
330 extern TSafePoint* excHandler__system_2565;
331 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5238;
N_NIMCALL(void,Marker_tyRef__1G0jiQbe7KwD5ADza5AZaw)332 static N_NIMCALL(void, Marker_tyRef__1G0jiQbe7KwD5ADza5AZaw)(void* p, NI op) {
333 	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* a;
334 	a = (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*)p;
335 }
N_NIMCALL(void,writeData__pureZstreams_168)336 N_LIB_PRIVATE N_NIMCALL(void, writeData__pureZstreams_168)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
337 	(*s).writeDataImpl(s, buffer, bufLen);
338 }
N_INLINE(NCSTRING,nimToCStringConv)339 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
340 	NCSTRING result;
341 	result = (NCSTRING)0;
342 	{
343 		NIM_BOOL T3_;
344 		T3_ = (NIM_BOOL)0;
345 		T3_ = (s == ((NimStringDesc*) NIM_NIL));
346 		if (T3_) goto LA4_;
347 		T3_ = ((*s).Sup.len == ((NI) 0));
348 		LA4_: ;
349 		if (!T3_) goto LA5_;
350 		result = "";
351 	}
352 	goto LA1_;
353 	LA5_: ;
354 	{
355 		result = ((NCSTRING) ((*s).data));
356 	}
357 	LA1_: ;
358 	return result;
359 }
N_NIMCALL(void,write__pureZstreams_177)360 N_LIB_PRIVATE N_NIMCALL(void, write__pureZstreams_177)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc* x) {
361 	{
362 		if (!(((NI) 0) < (x ? x->Sup.len : 0))) goto LA3_;
363 		writeData__pureZstreams_168(s, ((void*) (nimToCStringConv(x))), (x ? x->Sup.len : 0));
364 	}
365 	LA3_: ;
366 }
N_NIMCALL(void,Marker_tyRef__y4kGpp4Cn6oTOCWBJMIxAg)367 static N_NIMCALL(void, Marker_tyRef__y4kGpp4Cn6oTOCWBJMIxAg)(void* p, NI op) {
368 	tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* a;
369 	a = (tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*)p;
370 }
N_NIMCALL(void,fsClose__pureZstreams_757)371 N_LIB_PRIVATE N_NIMCALL(void, fsClose__pureZstreams_757)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
372 	{
373 		if (!!(((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f == ((FILE*) NIM_NIL)))) goto LA3_;
374 		close__systemZio_217((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f);
375 		(*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f = ((FILE*) NIM_NIL);
376 	}
377 	LA3_: ;
378 }
N_NIMCALL(NIM_BOOL,fsAtEnd__pureZstreams_774)379 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fsAtEnd__pureZstreams_774)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
380 	NIM_BOOL result;
381 {	result = (NIM_BOOL)0;
382 	result = endOfFile__systemZio_337((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f);
383 	goto BeforeRet_;
384 	}BeforeRet_: ;
385 	return result;
386 }
N_NIMCALL(void,fsSetPosition__pureZstreams_777)387 N_LIB_PRIVATE N_NIMCALL(void, fsSetPosition__pureZstreams_777)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos) {
388 	setFilePos__systemZio_436((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f, ((NI64) (pos)), ((tyEnum_FileSeekPos__I9aQjuvWxs8BspGbxwsngWw) 0));
389 }
N_NIMCALL(NI,fsGetPosition__pureZstreams_780)390 N_LIB_PRIVATE N_NIMCALL(NI, fsGetPosition__pureZstreams_780)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
391 	NI result;
392 	NI64 T1_;
393 {	result = (NI)0;
394 	T1_ = (NI64)0;
395 	T1_ = getFilePos__systemZio_449((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f);
396 	result = ((NI) (T1_));
397 	goto BeforeRet_;
398 	}BeforeRet_: ;
399 	return result;
400 }
N_NIMCALL(NI,fsReadDataStr__pureZstreams_788)401 N_LIB_PRIVATE N_NIMCALL(NI, fsReadDataStr__pureZstreams_788)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice) {
402 	NI result;
403 	result = (NI)0;
404 	result = readBuffer__systemZio_144((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f, ((void*) ((&(*buffer)->data[slice.a]))), ((NI) ((NI)((NI)(slice.b + ((NI) 1)) - slice.a))));
405 	return result;
406 }
N_NIMCALL(NI,fsReadData__pureZstreams_783)407 N_LIB_PRIVATE N_NIMCALL(NI, fsReadData__pureZstreams_783)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
408 	NI result;
409 	result = (NI)0;
410 	result = readBuffer__systemZio_144((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f, buffer, ((NI) (bufLen)));
411 	return result;
412 }
N_NIMCALL(NIM_BOOL,fsReadLine__pureZstreams_804)413 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fsReadLine__pureZstreams_804)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line) {
414 	NIM_BOOL result;
415 	result = (NIM_BOOL)0;
416 	result = readLine__systemZio_238((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f, line);
417 	return result;
418 }
N_INLINE(void,pushSafePoint)419 static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
420 	(*s).prev = excHandler__system_2565;
421 	excHandler__system_2565 = s;
422 }
N_INLINE(void,popSafePoint)423 static N_INLINE(void, popSafePoint)(void) {
424 	excHandler__system_2565 = (*excHandler__system_2565).prev;
425 }
N_NIMCALL(NI,fsPeekData__pureZstreams_794)426 N_LIB_PRIVATE N_NIMCALL(NI, fsPeekData__pureZstreams_794)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
427 	NI result;
428 	NI pos;
429 	TSafePoint TM__Ue7tnBcsL67VCiRfvt8q0A_3;
430 	result = (NI)0;
431 	pos = fsGetPosition__pureZstreams_780(s);
432 	pushSafePoint(&TM__Ue7tnBcsL67VCiRfvt8q0A_3);
433 	TM__Ue7tnBcsL67VCiRfvt8q0A_3.status = setjmp(TM__Ue7tnBcsL67VCiRfvt8q0A_3.context);
434 	if (TM__Ue7tnBcsL67VCiRfvt8q0A_3.status == 0) {
435 	result = readBuffer__systemZio_144((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f, buffer, ((NI) (bufLen)));
436 	popSafePoint();
437 	}
438 	else {
439 		popSafePoint();
440 	}
441 	{
442 		fsSetPosition__pureZstreams_777(s, pos);
443 		if (TM__Ue7tnBcsL67VCiRfvt8q0A_3.status != 0) nimLeaveFinally();
444 	}
445 	if (TM__Ue7tnBcsL67VCiRfvt8q0A_3.status != 0) reraiseException();
446 	return result;
447 }
N_INLINE(NI,minuspercent___system_716)448 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
449 	NI result;
450 	result = (NI)0;
451 	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
452 	return result;
453 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)454 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
455 	NIM_BOOL result;
456 	result = (NIM_BOOL)0;
457 	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
458 	return result;
459 }
N_INLINE(void,rtlAddZCT__system_5334)460 static N_INLINE(void, rtlAddZCT__system_5334)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
461 	addZCT__system_5285((&gch__system_5238.zct), c);
462 }
N_INLINE(void,decRef__system_5336)463 static N_INLINE(void, decRef__system_5336)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
464 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
465 	{
466 		NIM_BOOL T3_;
467 		T3_ = (NIM_BOOL)0;
468 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
469 		if (!T3_) goto LA4_;
470 		rtlAddZCT__system_5334(c);
471 	}
472 	LA4_: ;
473 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5291)474 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5291)(void* usr) {
475 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
476 	NI T1_;
477 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
478 	T1_ = (NI)0;
479 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
480 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
481 	return result;
482 }
N_INLINE(void,nimGCunrefNoCycle)483 static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
484 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
485 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
486 	T1_ = usrToCell__system_5291(p);
487 	decRef__system_5336(T1_);
488 }
N_NIMCALL(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw *,newEIO__pureZstreams_2)489 N_LIB_PRIVATE N_NIMCALL(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw*, newEIO__pureZstreams_2)(NimStringDesc* msg) {
490 	tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw* result;
491 	NimStringDesc* T1_;
492 	result = NIM_NIL;
493 	result = (tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw*) newObj((&NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_), sizeof(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw));
494 	(*result).Sup.Sup.Sup.m_type = (&NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_);
495 	(*result).Sup.Sup.name = "IOError";
496 	T1_ = NIM_NIL;
497 	T1_ = (*result).Sup.Sup.message; (*result).Sup.Sup.message = copyStringRC1(msg);
498 	if (T1_) nimGCunrefNoCycle(T1_);
499 	return result;
500 }
N_NIMCALL(void,fsWriteData__pureZstreams_800)501 N_LIB_PRIVATE N_NIMCALL(void, fsWriteData__pureZstreams_800)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
502 	{
503 		NI T3_;
504 		tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw* T6_;
505 		T3_ = (NI)0;
506 		T3_ = writeBuffer__systemZio_176((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f, buffer, ((NI) (bufLen)));
507 		if (!!((T3_ == bufLen))) goto LA4_;
508 		T6_ = NIM_NIL;
509 		T6_ = newEIO__pureZstreams_2(((NimStringDesc*) &TM__Ue7tnBcsL67VCiRfvt8q0A_4));
510 		raiseExceptionEx((Exception*)T6_, "IOError", "fsWriteData", "streams.nim", 1320);
511 	}
512 	LA4_: ;
513 }
N_NIMCALL(void,fsFlush__pureZstreams_772)514 N_LIB_PRIVATE N_NIMCALL(void, fsFlush__pureZstreams_772)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
515 	flushFile__systemZio_226((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f);
516 }
N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ *,newFileStream__pureZstreams_808)517 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, newFileStream__pureZstreams_808)(FILE* f) {
518 	tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* result;
519 	result = NIM_NIL;
520 	result = (tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) newObj((&NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_), sizeof(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ));
521 	(*result).Sup.Sup.m_type = (&NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_);
522 	(*result).f = f;
523 	(*result).Sup.closeImpl = fsClose__pureZstreams_757;
524 	(*result).Sup.atEndImpl = fsAtEnd__pureZstreams_774;
525 	(*result).Sup.setPositionImpl = fsSetPosition__pureZstreams_777;
526 	(*result).Sup.getPositionImpl = fsGetPosition__pureZstreams_780;
527 	(*result).Sup.readDataStrImpl = fsReadDataStr__pureZstreams_788;
528 	(*result).Sup.readDataImpl = fsReadData__pureZstreams_783;
529 	(*result).Sup.readLineImpl = fsReadLine__pureZstreams_804;
530 	(*result).Sup.peekDataImpl = fsPeekData__pureZstreams_794;
531 	(*result).Sup.writeDataImpl = fsWriteData__pureZstreams_800;
532 	(*result).Sup.flushImpl = fsFlush__pureZstreams_772;
533 	return result;
534 }
N_NIMCALL(void,close__pureZstreams_57)535 N_LIB_PRIVATE N_NIMCALL(void, close__pureZstreams_57)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
536 	{
537 		if (!!(((*s).closeImpl == 0))) goto LA3_;
538 		(*s).closeImpl(s);
539 	}
540 	LA3_: ;
541 }
N_NIMCALL(NIM_BOOL,atEnd__pureZstreams_63)542 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, atEnd__pureZstreams_63)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
543 	NIM_BOOL result;
544 	result = (NIM_BOOL)0;
545 	result = (*s).atEndImpl(s);
546 	return result;
547 }
N_NIMCALL(NI,readData__pureZstreams_75)548 N_LIB_PRIVATE N_NIMCALL(NI, readData__pureZstreams_75)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
549 	NI result;
550 	result = (NI)0;
551 	result = (*s).readDataImpl(s, buffer, bufLen);
552 	return result;
553 }
N_NIMCALL(NIM_CHAR,readChar__pureZstreams_202)554 N_LIB_PRIVATE N_NIMCALL(NIM_CHAR, readChar__pureZstreams_202)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
555 	NIM_CHAR result;
556 	result = (NIM_CHAR)0;
557 	{
558 		{
559 			NI T4_;
560 			T4_ = (NI)0;
561 			T4_ = readData__pureZstreams_75(s, ((void*) ((&result))), ((NI) 1));
562 			if (!!((T4_ == ((NI) 1)))) goto LA5_;
563 			result = 0;
564 		}
565 		LA5_: ;
566 	}
567 	return result;
568 }
N_NIMCALL(NimStringDesc *,readLine__pureZstreams_539)569 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, readLine__pureZstreams_539)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
570 	NimStringDesc* result;
571 	result = NIM_NIL;
572 	result = ((NimStringDesc*) NIM_NIL);
573 	{
574 		NIM_BOOL T3_;
575 		tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw* T6_;
576 		T3_ = (NIM_BOOL)0;
577 		T3_ = atEnd__pureZstreams_63(s);
578 		if (!T3_) goto LA4_;
579 		T6_ = NIM_NIL;
580 		T6_ = newEIO__pureZstreams_2(((NimStringDesc*) &TM__Ue7tnBcsL67VCiRfvt8q0A_5));
581 		raiseExceptionEx((Exception*)T6_, "IOError", "readLine", "streams.nim", 1068);
582 	}
583 	LA4_: ;
584 	{
585 		while (1) {
586 			NIM_CHAR c;
587 			c = readChar__pureZstreams_202(s);
588 			{
589 				if (!((NU8)(c) == (NU8)(13))) goto LA11_;
590 				c = readChar__pureZstreams_202(s);
591 				goto LA7;
592 			}
593 			LA11_: ;
594 			{
595 				NIM_BOOL T15_;
596 				T15_ = (NIM_BOOL)0;
597 				T15_ = ((NU8)(c) == (NU8)(10));
598 				if (T15_) goto LA16_;
599 				T15_ = ((NU8)(c) == (NU8)(0));
600 				LA16_: ;
601 				if (!T15_) goto LA17_;
602 				goto LA7;
603 			}
604 			goto LA13_;
605 			LA17_: ;
606 			{
607 				result = addChar(result, c);
608 			}
609 			LA13_: ;
610 		}
611 	} LA7: ;
612 	return result;
613 }
N_NIMCALL(NIM_BOOL,readLine__pureZstreams_524)614 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readLine__pureZstreams_524)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line) {
615 	NIM_BOOL result;
616 {	result = (NIM_BOOL)0;
617 	{
618 		if (!!(((*s).readLineImpl == NIM_NIL))) goto LA3_;
619 		result = (*s).readLineImpl(s, line);
620 	}
621 	goto LA1_;
622 	LA3_: ;
623 	{
624 		unsureAsgnRef((void**) (&(*line)), setLengthStr((*line), ((NI) 0)));
625 		{
626 			while (1) {
627 				NIM_CHAR c;
628 				c = readChar__pureZstreams_202(s);
629 				{
630 					if (!((NU8)(c) == (NU8)(13))) goto LA10_;
631 					c = readChar__pureZstreams_202(s);
632 					goto LA6;
633 				}
634 				goto LA8_;
635 				LA10_: ;
636 				{
637 					if (!((NU8)(c) == (NU8)(10))) goto LA13_;
638 					goto LA6;
639 				}
640 				goto LA8_;
641 				LA13_: ;
642 				{
643 					if (!((NU8)(c) == (NU8)(0))) goto LA16_;
644 					{
645 						if (!(((NI) 0) < ((*line) ? (*line)->Sup.len : 0))) goto LA20_;
646 						goto LA6;
647 					}
648 					goto LA18_;
649 					LA20_: ;
650 					{
651 						result = NIM_FALSE;
652 						goto BeforeRet_;
653 					}
654 					LA18_: ;
655 				}
656 				goto LA8_;
657 				LA16_: ;
658 				LA8_: ;
659 				unsureAsgnRef((void**) (&(*line)), addChar((*line), c));
660 			}
661 		} LA6: ;
662 		result = NIM_TRUE;
663 	}
664 	LA1_: ;
665 	}BeforeRet_: ;
666 	return result;
667 }
N_NIMCALL(NI,readDataStr__pureZstreams_81)668 N_LIB_PRIVATE N_NIMCALL(NI, readDataStr__pureZstreams_81)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice) {
669 	NI result;
670 	result = (NI)0;
671 	{
672 		if (!!(((*s).readDataStrImpl == NIM_NIL))) goto LA3_;
673 		result = (*s).readDataStrImpl(s, buffer, slice);
674 	}
675 	goto LA1_;
676 	LA3_: ;
677 	{
678 		result = readData__pureZstreams_75(s, ((void*) ((&(*buffer)->data[slice.a]))), (NI)((NI)(slice.b + ((NI) 1)) - slice.a));
679 	}
680 	LA1_: ;
681 	return result;
682 }
N_NIMCALL(void,Marker_tyRef__Z9cj1NxLXx79cYy9c4gbj6CAA)683 static N_NIMCALL(void, Marker_tyRef__Z9cj1NxLXx79cYy9c4gbj6CAA)(void* p, NI op) {
684 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* a;
685 	a = (tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*)p;
686 	nimGCvisit((void*)(*a).data, op);
687 }
N_INLINE(NI,pluspercent___system_696)688 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
689 	NI result;
690 	result = (NI)0;
691 	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
692 	return result;
693 }
N_INLINE(void,incRef__system_5329)694 static N_INLINE(void, incRef__system_5329)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
695 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
696 }
N_INLINE(void,asgnRef)697 static N_INLINE(void, asgnRef)(void** dest, void* src) {
698 	{
699 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
700 		if (!!((src == NIM_NIL))) goto LA3_;
701 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
702 		T5_ = usrToCell__system_5291(src);
703 		incRef__system_5329(T5_);
704 	}
705 	LA3_: ;
706 	{
707 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
708 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
709 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
710 		T10_ = usrToCell__system_5291((*dest));
711 		decRef__system_5336(T10_);
712 	}
713 	LA8_: ;
714 	(*dest) = src;
715 }
N_NIMCALL(void,ssClose__pureZstreams_673)716 N_LIB_PRIVATE N_NIMCALL(void, ssClose__pureZstreams_673)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
717 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
718 	s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
719 	asgnRef((void**) (&(*s_2).data), ((NimStringDesc*) NIM_NIL));
720 }
N_NIMCALL(NIM_BOOL,ssAtEnd__pureZstreams_558)721 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ssAtEnd__pureZstreams_558)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
722 	NIM_BOOL result;
723 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
724 {	result = (NIM_BOOL)0;
725 	s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
726 	result = (((*s_2).data ? (*s_2).data->Sup.len : 0) <= (*s_2).pos);
727 	goto BeforeRet_;
728 	}BeforeRet_: ;
729 	return result;
730 }
N_NIMCALL(NI,clamp__pureZstreams_584)731 N_LIB_PRIVATE N_NIMCALL(NI, clamp__pureZstreams_584)(NI x, NI a, NI b) {
732 	NI result;
733 {	result = (NI)0;
734 	{
735 		if (!(x < a)) goto LA3_;
736 		result = a;
737 		goto BeforeRet_;
738 	}
739 	LA3_: ;
740 	{
741 		if (!(b < x)) goto LA7_;
742 		result = b;
743 		goto BeforeRet_;
744 	}
745 	LA7_: ;
746 	result = x;
747 	goto BeforeRet_;
748 	}BeforeRet_: ;
749 	return result;
750 }
N_NIMCALL(void,ssSetPosition__pureZstreams_580)751 N_LIB_PRIVATE N_NIMCALL(void, ssSetPosition__pureZstreams_580)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos) {
752 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
753 	s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
754 	(*s_2).pos = clamp__pureZstreams_584(pos, ((NI) 0), ((*s_2).data ? (*s_2).data->Sup.len : 0));
755 }
N_NIMCALL(NI,ssGetPosition__pureZstreams_590)756 N_LIB_PRIVATE N_NIMCALL(NI, ssGetPosition__pureZstreams_590)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
757 	NI result;
758 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
759 {	result = (NI)0;
760 	s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
761 	result = (*s_2).pos;
762 	goto BeforeRet_;
763 	}BeforeRet_: ;
764 	return result;
765 }
N_INLINE(void,nimCopyMem)766 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
767 	void* T1_;
768 	T1_ = (void*)0;
769 	T1_ = memcpy(dest, source, ((size_t) (size)));
770 }
N_INLINE(void,copyMem__system_1727)771 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
772 	nimCopyMem(dest, source, size);
773 }
N_NIMCALL(NI,ssReadDataStr__pureZstreams_594)774 N_LIB_PRIVATE N_NIMCALL(NI, ssReadDataStr__pureZstreams_594)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice) {
775 	NI result;
776 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
777 	result = (NI)0;
778 	s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
779 	result = (((NI)((NI)(slice.b + ((NI) 1)) - slice.a) <= (NI)(((*s_2).data ? (*s_2).data->Sup.len : 0) - (*s_2).pos)) ? (NI)((NI)(slice.b + ((NI) 1)) - slice.a) : (NI)(((*s_2).data ? (*s_2).data->Sup.len : 0) - (*s_2).pos));
780 	{
781 		if (!(((NI) 0) < result)) goto LA3_;
782 		{
783 			copyMem__system_1727(((void*) ((&(*buffer)->data[slice.a]))), ((void*) ((&(*s_2).data->data[(*s_2).pos]))), ((NI) (result)));
784 		}
785 		(*s_2).pos += result;
786 	}
787 	goto LA1_;
788 	LA3_: ;
789 	{
790 		result = ((NI) 0);
791 	}
792 	LA1_: ;
793 	return result;
794 }
N_NIMCALL(NI,ssReadData__pureZstreams_648)795 N_LIB_PRIVATE N_NIMCALL(NI, ssReadData__pureZstreams_648)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
796 	NI result;
797 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
798 	result = (NI)0;
799 	s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
800 	result = ((bufLen <= (NI)(((*s_2).data ? (*s_2).data->Sup.len : 0) - (*s_2).pos)) ? bufLen : (NI)(((*s_2).data ? (*s_2).data->Sup.len : 0) - (*s_2).pos));
801 	{
802 		if (!(((NI) 0) < result)) goto LA3_;
803 		copyMem__system_1727(buffer, ((void*) ((&(*s_2).data->data[(*s_2).pos]))), ((NI) (result)));
804 		(*s_2).pos += result;
805 	}
806 	goto LA1_;
807 	LA3_: ;
808 	{
809 		result = ((NI) 0);
810 	}
811 	LA1_: ;
812 	return result;
813 }
N_NIMCALL(NI,ssPeekData__pureZstreams_658)814 N_LIB_PRIVATE N_NIMCALL(NI, ssPeekData__pureZstreams_658)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
815 	NI result;
816 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
817 	result = (NI)0;
818 	s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
819 	result = ((bufLen <= (NI)(((*s_2).data ? (*s_2).data->Sup.len : 0) - (*s_2).pos)) ? bufLen : (NI)(((*s_2).data ? (*s_2).data->Sup.len : 0) - (*s_2).pos));
820 	{
821 		if (!(((NI) 0) < result)) goto LA3_;
822 		copyMem__system_1727(buffer, ((void*) ((&(*s_2).data->data[(*s_2).pos]))), ((NI) (result)));
823 	}
824 	goto LA1_;
825 	LA3_: ;
826 	{
827 		result = ((NI) 0);
828 	}
829 	LA1_: ;
830 	return result;
831 }
N_NIMCALL(void,ssWriteData__pureZstreams_664)832 N_LIB_PRIVATE N_NIMCALL(void, ssWriteData__pureZstreams_664)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
833 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
834 {	s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
835 	{
836 		if (!(bufLen <= ((NI) 0))) goto LA3_;
837 		goto BeforeRet_;
838 	}
839 	LA3_: ;
840 	{
841 		if (!(((*s_2).data ? (*s_2).data->Sup.len : 0) < (NI)((*s_2).pos + bufLen))) goto LA7_;
842 		asgnRef((void**) (&(*s_2).data), setLengthStr((*s_2).data, ((NI) ((NI)((*s_2).pos + bufLen)))));
843 	}
844 	LA7_: ;
845 	copyMem__system_1727(((void*) ((&(*s_2).data->data[(*s_2).pos]))), buffer, ((NI) (bufLen)));
846 	(*s_2).pos += bufLen;
847 	}BeforeRet_: ;
848 }
N_NIMCALL(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw *,newStringStream__pureZstreams_676)849 N_LIB_PRIVATE N_NIMCALL(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*, newStringStream__pureZstreams_676)(NimStringDesc* s) {
850 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* result;
851 	NimStringDesc* T1_;
852 	result = NIM_NIL;
853 	result = (tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) newObj((&NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_), sizeof(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw));
854 	(*result).Sup.Sup.m_type = (&NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_);
855 	T1_ = NIM_NIL;
856 	T1_ = (*result).data; (*result).data = copyStringRC1(s);
857 	if (T1_) nimGCunrefNoCycle(T1_);
858 	(*result).pos = ((NI) 0);
859 	(*result).Sup.closeImpl = ssClose__pureZstreams_673;
860 	(*result).Sup.atEndImpl = ssAtEnd__pureZstreams_558;
861 	(*result).Sup.setPositionImpl = ssSetPosition__pureZstreams_580;
862 	(*result).Sup.getPositionImpl = ssGetPosition__pureZstreams_590;
863 	(*result).Sup.readDataStrImpl = ssReadDataStr__pureZstreams_594;
864 	(*result).Sup.readDataImpl = ssReadData__pureZstreams_648;
865 	(*result).Sup.peekDataImpl = ssPeekData__pureZstreams_658;
866 	(*result).Sup.writeDataImpl = ssWriteData__pureZstreams_664;
867 	return result;
868 }
N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ *,newFileStream__pureZstreams_832)869 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, newFileStream__pureZstreams_832)(NimStringDesc* filename, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode, NI bufSize) {
870 	tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* result;
871 	FILE* f;
872 	result = NIM_NIL;
873 	f = (FILE*)0;
874 	{
875 		NIM_BOOL T3_;
876 		T3_ = (NIM_BOOL)0;
877 		T3_ = open__systemZio_389(&f, filename, mode, bufSize);
878 		if (!T3_) goto LA4_;
879 		result = newFileStream__pureZstreams_808(f);
880 	}
881 	LA4_: ;
882 	return result;
883 }
N_NIMCALL(void,stdlib_streamsDatInit000)884 N_LIB_PRIVATE N_NIMCALL(void, stdlib_streamsDatInit000)(void) {
885 static TNimNode* TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[10];
886 static TNimNode* TM__Ue7tnBcsL67VCiRfvt8q0A_6_2[2];
887 static TNimNode TM__Ue7tnBcsL67VCiRfvt8q0A_0[15];
888 NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_.size = sizeof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ);
889 NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_.align = NIM_ALIGNOF(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ);
890 NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_.kind = 17;
891 NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
892 NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_.flags = 1;
893 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[0] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[1];
894 NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_.size = sizeof(tyProc__JQrsH08b4uPTH9cyFPlVOZg);
895 NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_.align = NIM_ALIGNOF(tyProc__JQrsH08b4uPTH9cyFPlVOZg);
896 NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_.kind = 25;
897 NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_.base = 0;
898 NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_.flags = 3;
899 TM__Ue7tnBcsL67VCiRfvt8q0A_0[1].kind = 1;
900 TM__Ue7tnBcsL67VCiRfvt8q0A_0[1].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, closeImpl);
901 TM__Ue7tnBcsL67VCiRfvt8q0A_0[1].typ = (&NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_);
902 TM__Ue7tnBcsL67VCiRfvt8q0A_0[1].name = "closeImpl";
903 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[1] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[2];
904 NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_.size = sizeof(tyProc__9bmhFrLahRsL2hltfRDVtlQ);
905 NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_.align = NIM_ALIGNOF(tyProc__9bmhFrLahRsL2hltfRDVtlQ);
906 NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_.kind = 25;
907 NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_.base = 0;
908 NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_.flags = 3;
909 TM__Ue7tnBcsL67VCiRfvt8q0A_0[2].kind = 1;
910 TM__Ue7tnBcsL67VCiRfvt8q0A_0[2].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, atEndImpl);
911 TM__Ue7tnBcsL67VCiRfvt8q0A_0[2].typ = (&NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_);
912 TM__Ue7tnBcsL67VCiRfvt8q0A_0[2].name = "atEndImpl";
913 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[2] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[3];
914 NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_.size = sizeof(tyProc__3svSoGIUJIsHkaBL7q4DAQ);
915 NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_.align = NIM_ALIGNOF(tyProc__3svSoGIUJIsHkaBL7q4DAQ);
916 NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_.kind = 25;
917 NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_.base = 0;
918 NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_.flags = 3;
919 TM__Ue7tnBcsL67VCiRfvt8q0A_0[3].kind = 1;
920 TM__Ue7tnBcsL67VCiRfvt8q0A_0[3].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, setPositionImpl);
921 TM__Ue7tnBcsL67VCiRfvt8q0A_0[3].typ = (&NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_);
922 TM__Ue7tnBcsL67VCiRfvt8q0A_0[3].name = "setPositionImpl";
923 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[3] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[4];
924 NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_.size = sizeof(tyProc__xflqkf2D1uVClg70czEDHA);
925 NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_.align = NIM_ALIGNOF(tyProc__xflqkf2D1uVClg70czEDHA);
926 NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_.kind = 25;
927 NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_.base = 0;
928 NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_.flags = 3;
929 TM__Ue7tnBcsL67VCiRfvt8q0A_0[4].kind = 1;
930 TM__Ue7tnBcsL67VCiRfvt8q0A_0[4].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, getPositionImpl);
931 TM__Ue7tnBcsL67VCiRfvt8q0A_0[4].typ = (&NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_);
932 TM__Ue7tnBcsL67VCiRfvt8q0A_0[4].name = "getPositionImpl";
933 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[4] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[5];
934 NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_.size = sizeof(tyProc__c9c0f59ak4YGQ6neEym8LPKw);
935 NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_.align = NIM_ALIGNOF(tyProc__c9c0f59ak4YGQ6neEym8LPKw);
936 NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_.kind = 25;
937 NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_.base = 0;
938 NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_.flags = 3;
939 TM__Ue7tnBcsL67VCiRfvt8q0A_0[5].kind = 1;
940 TM__Ue7tnBcsL67VCiRfvt8q0A_0[5].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, readDataStrImpl);
941 TM__Ue7tnBcsL67VCiRfvt8q0A_0[5].typ = (&NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_);
942 TM__Ue7tnBcsL67VCiRfvt8q0A_0[5].name = "readDataStrImpl";
943 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[5] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[6];
944 NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_.size = sizeof(tyProc__7jFfqMk9ajToCz6Hv9atCA4A);
945 NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_.align = NIM_ALIGNOF(tyProc__7jFfqMk9ajToCz6Hv9atCA4A);
946 NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_.kind = 25;
947 NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_.base = 0;
948 NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_.flags = 3;
949 TM__Ue7tnBcsL67VCiRfvt8q0A_0[6].kind = 1;
950 TM__Ue7tnBcsL67VCiRfvt8q0A_0[6].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, readLineImpl);
951 TM__Ue7tnBcsL67VCiRfvt8q0A_0[6].typ = (&NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_);
952 TM__Ue7tnBcsL67VCiRfvt8q0A_0[6].name = "readLineImpl";
953 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[6] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[7];
954 NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_.size = sizeof(tyProc__2VVzVL9bOnKhj1eZKkf9cEuA);
955 NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_.align = NIM_ALIGNOF(tyProc__2VVzVL9bOnKhj1eZKkf9cEuA);
956 NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_.kind = 25;
957 NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_.base = 0;
958 NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_.flags = 3;
959 TM__Ue7tnBcsL67VCiRfvt8q0A_0[7].kind = 1;
960 TM__Ue7tnBcsL67VCiRfvt8q0A_0[7].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, readDataImpl);
961 TM__Ue7tnBcsL67VCiRfvt8q0A_0[7].typ = (&NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_);
962 TM__Ue7tnBcsL67VCiRfvt8q0A_0[7].name = "readDataImpl";
963 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[7] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[8];
964 TM__Ue7tnBcsL67VCiRfvt8q0A_0[8].kind = 1;
965 TM__Ue7tnBcsL67VCiRfvt8q0A_0[8].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, peekDataImpl);
966 TM__Ue7tnBcsL67VCiRfvt8q0A_0[8].typ = (&NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_);
967 TM__Ue7tnBcsL67VCiRfvt8q0A_0[8].name = "peekDataImpl";
968 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[8] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[9];
969 NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_.size = sizeof(tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ);
970 NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_.align = NIM_ALIGNOF(tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ);
971 NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_.kind = 25;
972 NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_.base = 0;
973 NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_.flags = 3;
974 TM__Ue7tnBcsL67VCiRfvt8q0A_0[9].kind = 1;
975 TM__Ue7tnBcsL67VCiRfvt8q0A_0[9].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, writeDataImpl);
976 TM__Ue7tnBcsL67VCiRfvt8q0A_0[9].typ = (&NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_);
977 TM__Ue7tnBcsL67VCiRfvt8q0A_0[9].name = "writeDataImpl";
978 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[9] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[10];
979 TM__Ue7tnBcsL67VCiRfvt8q0A_0[10].kind = 1;
980 TM__Ue7tnBcsL67VCiRfvt8q0A_0[10].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, flushImpl);
981 TM__Ue7tnBcsL67VCiRfvt8q0A_0[10].typ = (&NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_);
982 TM__Ue7tnBcsL67VCiRfvt8q0A_0[10].name = "flushImpl";
983 TM__Ue7tnBcsL67VCiRfvt8q0A_0[0].len = 10; TM__Ue7tnBcsL67VCiRfvt8q0A_0[0].kind = 2; TM__Ue7tnBcsL67VCiRfvt8q0A_0[0].sons = &TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[0];
984 NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_.node = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[0];
985 NTIstream__1G0jiQbe7KwD5ADza5AZaw_.size = sizeof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*);
986 NTIstream__1G0jiQbe7KwD5ADza5AZaw_.align = NIM_ALIGNOF(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*);
987 NTIstream__1G0jiQbe7KwD5ADza5AZaw_.kind = 22;
988 NTIstream__1G0jiQbe7KwD5ADza5AZaw_.base = (&NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_);
989 NTIstream__1G0jiQbe7KwD5ADza5AZaw_.marker = Marker_tyRef__1G0jiQbe7KwD5ADza5AZaw;
990 NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_.size = sizeof(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ);
991 NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_.align = NIM_ALIGNOF(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ);
992 NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_.kind = 17;
993 NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_.base = (&NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_);
994 NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_.flags = 1;
995 TM__Ue7tnBcsL67VCiRfvt8q0A_0[11].kind = 1;
996 TM__Ue7tnBcsL67VCiRfvt8q0A_0[11].offset = offsetof(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ, f);
997 TM__Ue7tnBcsL67VCiRfvt8q0A_0[11].typ = (&NTIfile__XBeRj4rw9bUuE7CB3DS1rgg_);
998 TM__Ue7tnBcsL67VCiRfvt8q0A_0[11].name = "f";
999 NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_.node = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[11];
1000 NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_.size = sizeof(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*);
1001 NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_.align = NIM_ALIGNOF(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*);
1002 NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_.kind = 22;
1003 NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_.base = (&NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_);
1004 NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_.marker = Marker_tyRef__y4kGpp4Cn6oTOCWBJMIxAg;
1005 NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_.size = sizeof(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw);
1006 NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_.align = NIM_ALIGNOF(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw);
1007 NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_.kind = 17;
1008 NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_.base = (&NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_);
1009 TM__Ue7tnBcsL67VCiRfvt8q0A_6_2[0] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[13];
1010 TM__Ue7tnBcsL67VCiRfvt8q0A_0[13].kind = 1;
1011 TM__Ue7tnBcsL67VCiRfvt8q0A_0[13].offset = offsetof(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw, data);
1012 TM__Ue7tnBcsL67VCiRfvt8q0A_0[13].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
1013 TM__Ue7tnBcsL67VCiRfvt8q0A_0[13].name = "data";
1014 TM__Ue7tnBcsL67VCiRfvt8q0A_6_2[1] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[14];
1015 TM__Ue7tnBcsL67VCiRfvt8q0A_0[14].kind = 1;
1016 TM__Ue7tnBcsL67VCiRfvt8q0A_0[14].offset = offsetof(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw, pos);
1017 TM__Ue7tnBcsL67VCiRfvt8q0A_0[14].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
1018 TM__Ue7tnBcsL67VCiRfvt8q0A_0[14].name = "pos";
1019 TM__Ue7tnBcsL67VCiRfvt8q0A_0[12].len = 2; TM__Ue7tnBcsL67VCiRfvt8q0A_0[12].kind = 2; TM__Ue7tnBcsL67VCiRfvt8q0A_0[12].sons = &TM__Ue7tnBcsL67VCiRfvt8q0A_6_2[0];
1020 NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_.node = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[12];
1021 NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_.size = sizeof(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*);
1022 NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_.align = NIM_ALIGNOF(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*);
1023 NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_.kind = 22;
1024 NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_.base = (&NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_);
1025 NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_.marker = Marker_tyRef__Z9cj1NxLXx79cYy9c4gbj6CAA;
1026 }
1027 
1028