/* Generated by Nim Compiler v0.10.2 */
/*   (c) 2014 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 64
#include "nimbase.h"

#include <string.h>
typedef struct stringtableobj131012 stringtableobj131012;
typedef struct tident200021 tident200021;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tidobj200015 tidobj200015;
typedef struct TNimObject TNimObject;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct keyvaluepairseq131010 keyvaluepairseq131010;
typedef struct keyvaluepair131008 keyvaluepair131008;
typedef struct tcell45135 tcell45135;
typedef struct tcellset45147 tcellset45147;
typedef struct tgcheap47216 tgcheap47216;
typedef struct tcellseq45151 tcellseq45151;
typedef struct tpagedesc45143 tpagedesc45143;
typedef struct tmemregion27410 tmemregion27410;
typedef struct tsmallchunk26640 tsmallchunk26640;
typedef struct tllchunk27404 tllchunk27404;
typedef struct tbigchunk26642 tbigchunk26642;
typedef struct tintset26617 tintset26617;
typedef struct ttrunk26613 ttrunk26613;
typedef struct tavlnode27408 tavlnode27408;
typedef struct tgcstat47214 tgcstat47214;
typedef struct tinfocpu174463 tinfocpu174463;
typedef struct tinfoos174048 tinfoos174048;
typedef struct TY120008 TY120008;
typedef struct tbasechunk26638 tbasechunk26638;
typedef struct tfreecell26630 tfreecell26630;
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef N_NIMCALL_PTR(void, TY3089) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, TY3094) (void* p);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY3089 marker;
TY3094 deepcopy;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  tidobj200015  {
  TNimObject Sup;
NI Id;
};
struct  tident200021  {
  tidobj200015 Sup;
NimStringDesc* S;
tident200021* Next;
NI H;
};
struct keyvaluepair131008 {
NimStringDesc* Field0;
NimStringDesc* Field1;
};
struct  stringtableobj131012  {
  TNimObject Sup;
NI Counter;
keyvaluepairseq131010* Data;
NU8 Mode;
};
struct  tcell45135  {
NI Refcount;
TNimType* Typ;
};
struct  tcellseq45151  {
NI Len;
NI Cap;
tcell45135** D;
};
struct  tcellset45147  {
NI Counter;
NI Max;
tpagedesc45143* Head;
tpagedesc45143** Data;
};
typedef tsmallchunk26640* TY27422[512];
typedef ttrunk26613* ttrunkbuckets26615[256];
struct  tintset26617  {
ttrunkbuckets26615 Data;
};
struct  tmemregion27410  {
NI Minlargeobj;
NI Maxlargeobj;
TY27422 Freesmallchunks;
tllchunk27404* Llmem;
NI Currmem;
NI Maxmem;
NI Freemem;
NI Lastsize;
tbigchunk26642* Freechunkslist;
tintset26617 Chunkstarts;
tavlnode27408* Root;
tavlnode27408* Deleted;
tavlnode27408* Last;
tavlnode27408* Freeavlnodes;
};
struct  tgcstat47214  {
NI Stackscans;
NI Cyclecollections;
NI Maxthreshold;
NI Maxstacksize;
NI Maxstackcells;
NI Cycletablesize;
NI64 Maxpause;
};
struct  tgcheap47216  {
void* Stackbottom;
NI Cyclethreshold;
tcellseq45151 Zct;
tcellseq45151 Decstack;
tcellset45147 Cycleroots;
tcellseq45151 Tempstack;
NI Recgclock;
tmemregion27410 Region;
tgcstat47214 Stat;
};
struct tinfocpu174463 {
NimStringDesc* Field0;
NI Field1;
NU8 Field2;
NI Field3;
NI Field4;
};
typedef tinfocpu174463 TY174481[14];
typedef NimStringDesc* TY174475[2];
struct tinfoos174048 {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
NimStringDesc* Field3;
NimStringDesc* Field4;
NimStringDesc* Field5;
NimStringDesc* Field6;
NimStringDesc* Field7;
NimStringDesc* Field8;
NimStringDesc* Field9;
NimStringDesc* Field10;
NimStringDesc* Field11;
NU8 Field12;
};
typedef tinfoos174048 TY174070[23];
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NI TY26620[8];
struct  tpagedesc45143  {
tpagedesc45143* Next;
NI Key;
TY26620 Bits;
};
struct  tbasechunk26638  {
NI Prevsize;
NI Size;
NIM_BOOL Used;
};
struct  tsmallchunk26640  {
  tbasechunk26638 Sup;
tsmallchunk26640* Next;
tsmallchunk26640* Prev;
tfreecell26630* Freelist;
NI Free;
NI Acc;
NF Data;
};
struct  tllchunk27404  {
NI Size;
NI Acc;
tllchunk27404* Next;
};
struct  tbigchunk26642  {
  tbasechunk26638 Sup;
tbigchunk26642* Next;
tbigchunk26642* Prev;
NI Align;
NF Data;
};
struct  ttrunk26613  {
ttrunk26613* Next;
NI Key;
TY26620 Bits;
};
typedef tavlnode27408* TY27414[2];
struct  tavlnode27408  {
TY27414 Link;
NI Key;
NI Upperbound;
NI Level;
};
struct  tfreecell26630  {
tfreecell26630* Next;
NI Zerofield;
};
struct keyvaluepairseq131010 {
  TGenericSeq Sup;
  keyvaluepair131008 data[SEQ_DECL_SIZE];
};
struct TY120008 {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
N_NIMCALL(NIM_BOOL, isdefined_201036)(NimStringDesc* symbol);
N_NIMCALL(NIM_BOOL, nsthasKey)(stringtableobj131012* t, NimStringDesc* key);
N_NIMCALL(NimStringDesc*, nstGet)(stringtableobj131012* t, NimStringDesc* key);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
N_NIMCALL(stringtableobj131012*, nstnewStringTable)(NU8 mode);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incref_51225)(tcell45135* c);
static N_INLINE(NIM_BOOL, canbecycleroot_48867)(tcell45135* c);
static N_INLINE(void, rtladdcycleroot_49629)(tcell45135* c);
N_NOINLINE(void, incl_45871)(tcellset45147* s, tcell45135* cell);
static N_INLINE(tcell45135*, usrtocell_48846)(void* usr);
static N_INLINE(void, decref_50804)(tcell45135* c);
static N_INLINE(void, rtladdzct_50404)(tcell45135* c);
N_NOINLINE(void, addzct_48817)(tcellseq45151* s, tcell45135* c);
N_NIMCALL(void, definesymbol_201009)(NimStringDesc* symbol);
N_NIMCALL(void, nstPut)(stringtableobj131012* t, NimStringDesc* key, NimStringDesc* val);
N_NIMCALL(void, declaresymbol_201018)(NimStringDesc* symbol);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s);
STRING_LITERAL(TMP1389, "true", 4);
STRING_LITERAL(TMP1435, "nimrod", 6);
STRING_LITERAL(TMP1436, "nimhygiene", 10);
STRING_LITERAL(TMP1437, "niminheritable", 14);
STRING_LITERAL(TMP1438, "nimmixin", 8);
STRING_LITERAL(TMP1439, "nimeffects", 10);
STRING_LITERAL(TMP1440, "nimbabel", 8);
STRING_LITERAL(TMP1441, "nimcomputedgoto", 15);
STRING_LITERAL(TMP1442, "nimunion", 8);
STRING_LITERAL(TMP1443, "nimnewshared", 12);
STRING_LITERAL(TMP1444, "nimrequiresnimframe", 19);
STRING_LITERAL(TMP1445, "nimparsebiggestfloatmagic", 25);
STRING_LITERAL(TMP1446, "nimalias", 8);
STRING_LITERAL(TMP1447, "nimlocks", 8);
STRING_LITERAL(TMP1448, "unknown", 7);
STRING_LITERAL(TMP1449, "cpu", 3);
extern NIM_CONST TY174481 cpu_174480;
extern NIM_CONST TY174475 endiantostr_174474;
extern NIM_CONST TY174070 os_174069;
STRING_LITERAL(TMP1452, "x86", 3);
STRING_LITERAL(TMP1453, "itanium", 7);
STRING_LITERAL(TMP1454, "x8664", 5);
STRING_LITERAL(TMP1455, "msdos", 5);
STRING_LITERAL(TMP1456, "mswindows", 9);
STRING_LITERAL(TMP1457, "win32", 5);
STRING_LITERAL(TMP1458, "unix", 4);
STRING_LITERAL(TMP1459, "posix", 5);
STRING_LITERAL(TMP1460, "sunos", 5);
STRING_LITERAL(TMP1461, "bsd", 3);
STRING_LITERAL(TMP1462, "macintosh", 9);
STRING_LITERAL(TMP1463, "RISCOS", 6);
STRING_LITERAL(TMP1464, "hpux", 4);
STRING_LITERAL(TMP1465, "mac", 3);
STRING_LITERAL(TMP1466, "hppa", 4);
STRING_LITERAL(TMP1467, "hp9000", 6);
STRING_LITERAL(TMP1468, "hp9000s300", 10);
STRING_LITERAL(TMP1469, "hp9000s700", 10);
STRING_LITERAL(TMP1470, "hp9000s800", 10);
STRING_LITERAL(TMP1471, "hp9000s820", 10);
STRING_LITERAL(TMP1472, "ELATE", 5);
STRING_LITERAL(TMP1473, "sparcv9", 7);
STRING_LITERAL(TMP1474, "ecmascript", 10);
STRING_LITERAL(TMP1475, "js", 2);
STRING_LITERAL(TMP1476, "nimrodvm", 8);
STRING_LITERAL(TMP1477, "nimffi", 6);
STRING_LITERAL(TMP1478, "nimdoc", 6);
STRING_LITERAL(TMP1479, "cpp", 3);
STRING_LITERAL(TMP1480, "objc", 4);
STRING_LITERAL(TMP1481, "gcc", 3);
STRING_LITERAL(TMP1482, "llvmgcc", 7);
STRING_LITERAL(TMP1483, "clang", 5);
STRING_LITERAL(TMP1484, "lcc", 3);
STRING_LITERAL(TMP1485, "bcc", 3);
STRING_LITERAL(TMP1486, "dmc", 3);
STRING_LITERAL(TMP1487, "wcc", 3);
STRING_LITERAL(TMP1488, "vcc", 3);
STRING_LITERAL(TMP1489, "tcc", 3);
STRING_LITERAL(TMP1490, "pcc", 3);
STRING_LITERAL(TMP1491, "ucc", 3);
STRING_LITERAL(TMP1492, "icl", 3);
STRING_LITERAL(TMP1493, "boehmgc", 7);
STRING_LITERAL(TMP1494, "gcmarkandsweep", 14);
STRING_LITERAL(TMP1495, "gcgenerational", 14);
STRING_LITERAL(TMP1496, "nogc", 4);
STRING_LITERAL(TMP1497, "gcUseBitvectors", 15);
STRING_LITERAL(TMP1498, "endb", 4);
STRING_LITERAL(TMP1499, "profiler", 8);
STRING_LITERAL(TMP1500, "executable", 10);
STRING_LITERAL(TMP1501, "guiapp", 6);
STRING_LITERAL(TMP1502, "consoleapp", 10);
STRING_LITERAL(TMP1503, "library", 7);
STRING_LITERAL(TMP1504, "dll", 3);
STRING_LITERAL(TMP1505, "staticlib", 9);
STRING_LITERAL(TMP1506, "quick", 5);
STRING_LITERAL(TMP1507, "release", 7);
STRING_LITERAL(TMP1508, "debug", 5);
STRING_LITERAL(TMP1509, "useWinAnsi", 10);
STRING_LITERAL(TMP1510, "useFork", 7);
STRING_LITERAL(TMP1511, "useNimRtl", 9);
STRING_LITERAL(TMP1512, "useMalloc", 9);
STRING_LITERAL(TMP1513, "useRealtimeGC", 13);
STRING_LITERAL(TMP1514, "ssl", 3);
STRING_LITERAL(TMP1515, "memProfiler", 11);
STRING_LITERAL(TMP1516, "nodejs", 6);
STRING_LITERAL(TMP1517, "kwin", 4);
STRING_LITERAL(TMP1518, "nimfix", 6);
STRING_LITERAL(TMP1519, "usesysassert", 12);
STRING_LITERAL(TMP1520, "usegcassert", 11);
STRING_LITERAL(TMP1521, "tinyC", 5);
STRING_LITERAL(TMP1522, "useFFI", 6);
STRING_LITERAL(TMP1523, "useStdoutAsStdmsg", 17);
STRING_LITERAL(TMP1524, "createNimRtl", 12);
STRING_LITERAL(TMP1525, "booting", 7);
STRING_LITERAL(TMP1526, "fulldebug", 9);
STRING_LITERAL(TMP1527, "corruption", 10);
STRING_LITERAL(TMP1528, "nimsuperops", 11);
STRING_LITERAL(TMP1529, "noSignalHandler", 15);
STRING_LITERAL(TMP1530, "useGnuReadline", 14);
STRING_LITERAL(TMP1531, "noCaas", 6);
STRING_LITERAL(TMP1532, "noDocGen", 8);
STRING_LITERAL(TMP1533, "noBusyWaiting", 13);
STRING_LITERAL(TMP1534, "nativeStackTrace", 16);
STRING_LITERAL(TMP1535, "useNodeIds", 10);
STRING_LITERAL(TMP1536, "selftest", 8);
STRING_LITERAL(TMP1537, "reportMissedDeadlines", 21);
STRING_LITERAL(TMP1538, "avoidTimeMachine", 16);
STRING_LITERAL(TMP1539, "useClone", 8);
STRING_LITERAL(TMP1540, "ignoreAllocationSize", 20);
STRING_LITERAL(TMP1541, "debugExecProcesses", 18);
STRING_LITERAL(TMP1542, "pcreDll", 7);
STRING_LITERAL(TMP1543, "useLipzipSrc", 12);
STRING_LITERAL(TMP1544, "preventDeadlocks", 16);
STRING_LITERAL(TMP1545, "UNICODE", 7);
STRING_LITERAL(TMP1546, "winUnicode", 10);
STRING_LITERAL(TMP1547, "trackGcHeaders", 14);
STRING_LITERAL(TMP1548, "posixRealtime", 13);
STRING_LITERAL(TMP1549, "nimStdSetjmp", 12);
STRING_LITERAL(TMP1550, "nimRawSetjmp", 12);
STRING_LITERAL(TMP1551, "nimSigSetjmp", 12);
NIM_CONST struct {
  TGenericSeq Sup;
  NimStringDesc* data[100];
} CNSTSEQ1553 = {{100, 100}, {((NimStringDesc*) &TMP1452),
((NimStringDesc*) &TMP1453),
((NimStringDesc*) &TMP1454),
((NimStringDesc*) &TMP1455),
((NimStringDesc*) &TMP1456),
((NimStringDesc*) &TMP1457),
((NimStringDesc*) &TMP1458),
((NimStringDesc*) &TMP1459),
((NimStringDesc*) &TMP1460),
((NimStringDesc*) &TMP1461),
((NimStringDesc*) &TMP1462),
((NimStringDesc*) &TMP1463),
((NimStringDesc*) &TMP1464),
((NimStringDesc*) &TMP1465),
((NimStringDesc*) &TMP1466),
((NimStringDesc*) &TMP1467),
((NimStringDesc*) &TMP1468),
((NimStringDesc*) &TMP1469),
((NimStringDesc*) &TMP1470),
((NimStringDesc*) &TMP1471),
((NimStringDesc*) &TMP1472),
((NimStringDesc*) &TMP1473),
((NimStringDesc*) &TMP1474),
((NimStringDesc*) &TMP1475),
((NimStringDesc*) &TMP1476),
((NimStringDesc*) &TMP1477),
((NimStringDesc*) &TMP1478),
((NimStringDesc*) &TMP1479),
((NimStringDesc*) &TMP1480),
((NimStringDesc*) &TMP1481),
((NimStringDesc*) &TMP1482),
((NimStringDesc*) &TMP1483),
((NimStringDesc*) &TMP1484),
((NimStringDesc*) &TMP1485),
((NimStringDesc*) &TMP1486),
((NimStringDesc*) &TMP1487),
((NimStringDesc*) &TMP1488),
((NimStringDesc*) &TMP1489),
((NimStringDesc*) &TMP1490),
((NimStringDesc*) &TMP1491),
((NimStringDesc*) &TMP1492),
((NimStringDesc*) &TMP1493),
((NimStringDesc*) &TMP1494),
((NimStringDesc*) &TMP1495),
((NimStringDesc*) &TMP1496),
((NimStringDesc*) &TMP1497),
((NimStringDesc*) &TMP1498),
((NimStringDesc*) &TMP1499),
((NimStringDesc*) &TMP1500),
((NimStringDesc*) &TMP1501),
((NimStringDesc*) &TMP1502),
((NimStringDesc*) &TMP1503),
((NimStringDesc*) &TMP1504),
((NimStringDesc*) &TMP1505),
((NimStringDesc*) &TMP1506),
((NimStringDesc*) &TMP1507),
((NimStringDesc*) &TMP1508),
((NimStringDesc*) &TMP1509),
((NimStringDesc*) &TMP1510),
((NimStringDesc*) &TMP1511),
((NimStringDesc*) &TMP1512),
((NimStringDesc*) &TMP1513),
((NimStringDesc*) &TMP1514),
((NimStringDesc*) &TMP1515),
((NimStringDesc*) &TMP1516),
((NimStringDesc*) &TMP1517),
((NimStringDesc*) &TMP1518),
((NimStringDesc*) &TMP1519),
((NimStringDesc*) &TMP1520),
((NimStringDesc*) &TMP1521),
((NimStringDesc*) &TMP1522),
((NimStringDesc*) &TMP1523),
((NimStringDesc*) &TMP1524),
((NimStringDesc*) &TMP1525),
((NimStringDesc*) &TMP1526),
((NimStringDesc*) &TMP1527),
((NimStringDesc*) &TMP1528),
((NimStringDesc*) &TMP1529),
((NimStringDesc*) &TMP1530),
((NimStringDesc*) &TMP1531),
((NimStringDesc*) &TMP1532),
((NimStringDesc*) &TMP1533),
((NimStringDesc*) &TMP1534),
((NimStringDesc*) &TMP1535),
((NimStringDesc*) &TMP1536),
((NimStringDesc*) &TMP1537),
((NimStringDesc*) &TMP1538),
((NimStringDesc*) &TMP1539),
((NimStringDesc*) &TMP1540),
((NimStringDesc*) &TMP1541),
((NimStringDesc*) &TMP1542),
((NimStringDesc*) &TMP1543),
((NimStringDesc*) &TMP1544),
((NimStringDesc*) &TMP1545),
((NimStringDesc*) &TMP1546),
((NimStringDesc*) &TMP1547),
((NimStringDesc*) &TMP1548),
((NimStringDesc*) &TMP1549),
((NimStringDesc*) &TMP1550),
((NimStringDesc*) &TMP1551)}};
NIM_CONST TY120008* additionalsymbols_201142 = ((TY120008*)&CNSTSEQ1553);
STRING_LITERAL(TMP1553, "emulatedthreadvars", 18);
STRING_LITERAL(TMP1687, "false", 5);
stringtableobj131012* gsymbols_201004;
extern tgcheap47216 gch_47244;
extern NU8 targetcpu_174587;
extern NU8 targetos_174589;

static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NIM_BOOL LOC11;
	int LOC13;
	result = 0;
	{
		if (!(a == b)) goto LA3;
		result = NIM_TRUE;
		goto BeforeRet;
	}
	LA3: ;
	{
		NIM_BOOL LOC7;
		LOC7 = 0;
		LOC7 = (a == NIM_NIL);
		if (LOC7) goto LA8;
		LOC7 = (b == NIM_NIL);
		LA8: ;
		if (!LOC7) goto LA9;
		result = NIM_FALSE;
		goto BeforeRet;
	}
	LA9: ;
	LOC11 = 0;
	LOC11 = ((*a).Sup.len == (*b).Sup.len);
	if (!(LOC11)) goto LA12;
	LOC13 = 0;
	LOC13 = memcmp(((NCSTRING) ((*a).data)), ((NCSTRING) ((*b).data)), (NI64)((*a).Sup.len * 1));
	LOC11 = (LOC13 == ((NI32) 0));
	LA12: ;
	result = LOC11;
	goto BeforeRet;
	BeforeRet: ;
	return result;
}

N_NIMCALL(NIM_BOOL, isdefined_201036)(NimStringDesc* symbol) {
	NIM_BOOL result;
	result = 0;
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC6;
		LOC3 = 0;
		LOC3 = nsthasKey(gsymbols_201004, symbol);
		if (!LOC3) goto LA4;
		LOC6 = 0;
		LOC6 = nstGet(gsymbols_201004, symbol);
		result = eqStrings(LOC6, ((NimStringDesc*) &TMP1389));
	}
	LA4: ;
	return result;
}

N_NIMCALL(NIM_BOOL, isdefined_201046)(tident200021* symbol) {
	NIM_BOOL result;
	result = 0;
	result = isdefined_201036((*symbol).S);
	return result;
}

N_NIMCALL(NI, countdefinedsymbols_201098)(void) {
	NI result;
	result = 0;
	result = 0;
	{
		NimStringDesc* key_201101;
		NimStringDesc* val_201102;
		key_201101 = 0;
		val_201102 = 0;
		{
			NI h_201119;
			NI HEX3Atmp_201121;
			NI res_201123;
			h_201119 = 0;
			HEX3Atmp_201121 = 0;
			HEX3Atmp_201121 = ((*gsymbols_201004).Data->Sup.len-1);
			res_201123 = 0;
			{
				while (1) {
					if (!(res_201123 <= HEX3Atmp_201121)) goto LA4;
					h_201119 = res_201123;
					{
						if (!!((*gsymbols_201004).Data->data[h_201119].Field0 == 0)) goto LA7;
						key_201101 = (*gsymbols_201004).Data->data[h_201119].Field0;
						val_201102 = (*gsymbols_201004).Data->data[h_201119].Field1;
						{
							if (!eqStrings(val_201102, ((NimStringDesc*) &TMP1389))) goto LA11;
							result += 1;
						}
						LA11: ;
					}
					LA7: ;
					res_201123 += 1;
				} LA4: ;
			}
		}
	}
	return result;
}

static N_INLINE(NIM_BOOL, canbecycleroot_48867)(tcell45135* c) {
	NIM_BOOL result;
	result = 0;
	result = !((((*(*c).Typ).flags &(1<<((((NU8) 1))&7)))!=0));
	return result;
}

static N_INLINE(void, rtladdcycleroot_49629)(tcell45135* c) {
	{
		if (!!((((NI) ((NI)((*c).Refcount & 3))) == 3))) goto LA3;
		(*c).Refcount = (NI)((NI)((*c).Refcount & -4) | 3);
		incl_45871((&gch_47244.Cycleroots), c);
	}
	LA3: ;
}

static N_INLINE(void, incref_51225)(tcell45135* c) {
	(*c).Refcount = (NI)((NU64)((*c).Refcount) + (NU64)(8));
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = canbecycleroot_48867(c);
		if (!LOC3) goto LA4;
		rtladdcycleroot_49629(c);
	}
	LA4: ;
}

static N_INLINE(tcell45135*, usrtocell_48846)(void* usr) {
	tcell45135* result;
	result = 0;
	result = ((tcell45135*) ((NI)((NU64)(((NI) (usr))) - (NU64)(((NI)sizeof(tcell45135))))));
	return result;
}

static N_INLINE(void, rtladdzct_50404)(tcell45135* c) {
	addzct_48817((&gch_47244.Zct), c);
}

static N_INLINE(void, decref_50804)(tcell45135* c) {
	{
		(*c).Refcount -= 8;
		if (!((NU64)((*c).Refcount) < (NU64)(8))) goto LA3;
		rtladdzct_50404(c);
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = canbecycleroot_48867(c);
		if (!LOC6) goto LA7;
		rtladdcycleroot_49629(c);
	}
	goto LA1;
	LA7: ;
	LA1: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tcell45135* LOC5;
		if (!!((src == NIM_NIL))) goto LA3;
		LOC5 = 0;
		LOC5 = usrtocell_48846(src);
		incref_51225(LOC5);
	}
	LA3: ;
	{
		tcell45135* LOC10;
		if (!!(((*dest) == NIM_NIL))) goto LA8;
		LOC10 = 0;
		LOC10 = usrtocell_48846((*dest));
		decref_50804(LOC10);
	}
	LA8: ;
	(*dest) = src;
}

N_NIMCALL(void, definesymbol_201009)(NimStringDesc* symbol) {
	nstPut(gsymbols_201004, symbol, ((NimStringDesc*) &TMP1389));
}

N_NIMCALL(void, declaresymbol_201018)(NimStringDesc* symbol) {
	nstPut(gsymbols_201004, symbol, ((NimStringDesc*) &TMP1448));
}

static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	memcpy(((NCSTRING) ((&(*dest).data[((*dest).Sup.len)- 0]))), ((NCSTRING) ((*src).data)), (NI64)((*src).Sup.len + 1));
	(*dest).Sup.len += (*src).Sup.len;
}

N_NIMCALL(void, initdefines_201146)(void) {
	NimStringDesc* LOC25;
	NimStringDesc* LOC26;
	NimStringDesc* LOC27;
	asgnRef((void**) (&gsymbols_201004), nstnewStringTable(((NU8) 2)));
	definesymbol_201009(((NimStringDesc*) &TMP1435));
	definesymbol_201009(((NimStringDesc*) &TMP1436));
	definesymbol_201009(((NimStringDesc*) &TMP1437));
	definesymbol_201009(((NimStringDesc*) &TMP1438));
	definesymbol_201009(((NimStringDesc*) &TMP1439));
	definesymbol_201009(((NimStringDesc*) &TMP1440));
	definesymbol_201009(((NimStringDesc*) &TMP1441));
	definesymbol_201009(((NimStringDesc*) &TMP1442));
	definesymbol_201009(((NimStringDesc*) &TMP1443));
	definesymbol_201009(((NimStringDesc*) &TMP1444));
	definesymbol_201009(((NimStringDesc*) &TMP1445));
	definesymbol_201009(((NimStringDesc*) &TMP1446));
	definesymbol_201009(((NimStringDesc*) &TMP1447));
	{
		NU8 c_201192;
		NU8 res_201428;
		c_201192 = 0;
		res_201428 = ((NU8) 1);
		{
			while (1) {
				NimStringDesc* LOC4;
				NimStringDesc* LOC5;
				NimStringDesc* LOC6;
				if (!(res_201428 <= ((NU8) 14))) goto LA3;
				c_201192 = res_201428;
				LOC4 = 0;
				LOC5 = 0;
				LOC5 = nimIntToStr(cpu_174480[(c_201192)- 1].Field4);
				LOC4 = rawNewString(LOC5->Sup.len + 3);
appendString(LOC4, ((NimStringDesc*) &TMP1449));
appendString(LOC4, LOC5);
				declaresymbol_201018(LOC4);
				LOC6 = 0;
				LOC6 = nsuNormalize(endiantostr_174474[(cpu_174480[(c_201192)- 1].Field2)- 0]);
				declaresymbol_201018(LOC6);
				declaresymbol_201018(cpu_174480[(c_201192)- 1].Field0);
				res_201428 += 1;
			} LA3: ;
		}
	}
	{
		NU8 o_201237;
		NU8 res_201433;
		o_201237 = 0;
		res_201433 = ((NU8) 1);
		{
			while (1) {
				if (!(res_201433 <= ((NU8) 23))) goto LA9;
				o_201237 = res_201433;
				declaresymbol_201018(os_174069[(o_201237)- 1].Field0);
				res_201433 += 1;
			} LA9: ;
		}
	}
	{
		NimStringDesc* a_201411;
		NI i_201438;
		NI l_201440;
		a_201411 = 0;
		i_201438 = 0;
		l_201440 = 100;
		{
			while (1) {
				if (!(i_201438 < l_201440)) goto LA12;
				a_201411 = additionalsymbols_201142->data[i_201438];
				declaresymbol_201018(a_201411);
				i_201438 += 1;
			} LA12: ;
		}
	}
	switch (targetcpu_174587) {
	case ((NU8) 1):
	{
		definesymbol_201009(((NimStringDesc*) &TMP1452));
	}
	break;
	case ((NU8) 8):
	{
		definesymbol_201009(((NimStringDesc*) &TMP1453));
	}
	break;
	case ((NU8) 9):
	{
		definesymbol_201009(((NimStringDesc*) &TMP1454));
	}
	break;
	default:
	{
	}
	break;
	}
	switch (targetos_174589) {
	case ((NU8) 1):
	{
		definesymbol_201009(((NimStringDesc*) &TMP1455));
	}
	break;
	case ((NU8) 2):
	{
		definesymbol_201009(((NimStringDesc*) &TMP1456));
		definesymbol_201009(((NimStringDesc*) &TMP1457));
	}
	break;
	case ((NU8) 4):
	case ((NU8) 5):
	case ((NU8) 6):
	case ((NU8) 8):
	case ((NU8) 13):
	case ((NU8) 14):
	case ((NU8) 16):
	case ((NU8) 12):
	case ((NU8) 20):
	{
		definesymbol_201009(((NimStringDesc*) &TMP1458));
		definesymbol_201009(((NimStringDesc*) &TMP1459));
	}
	break;
	case ((NU8) 7):
	{
		definesymbol_201009(((NimStringDesc*) &TMP1460));
		definesymbol_201009(((NimStringDesc*) &TMP1458));
		definesymbol_201009(((NimStringDesc*) &TMP1459));
	}
	break;
	case ((NU8) 9):
	case ((NU8) 10):
	case ((NU8) 11):
	{
		definesymbol_201009(((NimStringDesc*) &TMP1458));
		definesymbol_201009(((NimStringDesc*) &TMP1461));
		definesymbol_201009(((NimStringDesc*) &TMP1459));
	}
	break;
	case ((NU8) 18):
	{
		definesymbol_201009(((NimStringDesc*) &TMP1462));
	}
	break;
	case ((NU8) 19):
	{
		definesymbol_201009(((NimStringDesc*) &TMP1462));
		definesymbol_201009(((NimStringDesc*) &TMP1458));
		definesymbol_201009(((NimStringDesc*) &TMP1459));
	}
	break;
	default:
	{
	}
	break;
	}
	LOC25 = 0;
	LOC26 = 0;
	LOC26 = nimIntToStr(cpu_174480[(targetcpu_174587)- 1].Field4);
	LOC25 = rawNewString(LOC26->Sup.len + 3);
appendString(LOC25, ((NimStringDesc*) &TMP1449));
appendString(LOC25, LOC26);
	definesymbol_201009(LOC25);
	LOC27 = 0;
	LOC27 = nsuNormalize(endiantostr_174474[(cpu_174480[(targetcpu_174587)- 1].Field2)- 0]);
	definesymbol_201009(LOC27);
	definesymbol_201009(cpu_174480[(targetcpu_174587)- 1].Field0);
	definesymbol_201009(os_174069[(targetos_174589)- 1].Field0);
	declaresymbol_201018(((NimStringDesc*) &TMP1553));
	{
		if (!((os_174069[(targetos_174589)- 1].Field12 &(1<<((((NU8) 3))&7)))!=0)) goto LA30;
		definesymbol_201009(((NimStringDesc*) &TMP1553));
	}
	LA30: ;
	switch (targetos_174589) {
	case ((NU8) 7):
	case ((NU8) 9):
	case ((NU8) 10):
	case ((NU8) 11):
	case ((NU8) 19):
	{
		definesymbol_201009(((NimStringDesc*) &TMP1550));
	}
	break;
	default:
	{
	}
	break;
	}
}

N_NIMCALL(void, undefsymbol_201027)(NimStringDesc* symbol) {
	nstPut(gsymbols_201004, symbol, ((NimStringDesc*) &TMP1687));
}

N_NIMCALL(NIM_BOOL, isdeclared_201056)(tident200021* symbol) {
	NIM_BOOL result;
	result = 0;
	result = nsthasKey(gsymbols_201004, (*symbol).S);
	return result;
}
NIM_EXTERNC N_NOINLINE(void, HEX00_condsymsInit)(void) {
}

NIM_EXTERNC N_NOINLINE(void, HEX00_condsymsDatInit)(void) {
}

