/* Generated by Nim Compiler v0.16.0 */
/*   (c) 2017 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 32

#include "nimbase.h"
#include <string.h>
#include <setjmp.h>
#include <stdio.h>
#undef linux
typedef struct Tstrtable_f07aOS3dr28kGa5wcE29aFA Tstrtable_f07aOS3dr28kGa5wcE29aFA;
typedef struct TY_sksVpmPRIkNR9axiwtD1Guw TY_sksVpmPRIkNR9axiwtD1Guw;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q;
typedef struct TY_Mh9agqM29bm9aP5AUL1x7dZGA TY_Mh9agqM29bm9aP5AUL1x7dZGA;
typedef struct TY_zYu2DlP9bQek7yl7KPjzfgA TY_zYu2DlP9bQek7yl7KPjzfgA;
typedef struct Tfilemodulerec_hr9befsliGEJa9bKFOdnP87g Tfilemodulerec_hr9befsliGEJa9bKFOdnP87g;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct Trodreader_16TURXdqtpMMssNVfU5WqQ Trodreader_16TURXdqtpMMssNVfU5WqQ;
typedef struct TNimObject TNimObject;
typedef struct TY_48JTohSgTy339bRxHzUD8KA TY_48JTohSgTy339bRxHzUD8KA;
typedef struct Tindex_hUZsEw7f9bvoVPQYLWHrTDQ Tindex_hUZsEw7f9bvoVPQYLWHrTDQ;
typedef struct Tiitable_2ud26DHRGdy6LEqDPifSOA Tiitable_2ud26DHRGdy6LEqDPifSOA;
typedef struct TY_h0IAOvrRzVzO3NpUxaxxvQ TY_h0IAOvrRzVzO3NpUxaxxvQ;
typedef struct Table_DYt7wxxRVZ9c5PDjh5cfgPA Table_DYt7wxxRVZ9c5PDjh5cfgPA;
typedef struct TY_eBSwX9aa9c1W8S1FJPmehz9aQ TY_eBSwX9aa9c1W8S1FJPmehz9aQ;
typedef struct Memfile_j4SnXNrJDFBxAz4BlbM9aIQ Memfile_j4SnXNrJDFBxAz4BlbM9aIQ;
typedef struct IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct Tsym_AXG7xcvKqaxY6koRX1xkCw Tsym_AXG7xcvKqaxY6koRX1xkCw;
typedef struct Gcheap_1TRH1TZMaVZTnLNcIHuNFQ Gcheap_1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct Gcstack_7fytPA5bBsob6See21YMRA Gcstack_7fytPA5bBsob6See21YMRA;
typedef struct Cellseq_Axo1XVm9aaQueTOldv8le5w Cellseq_Axo1XVm9aaQueTOldv8le5w;
typedef struct Cell_1zcF9cV8XIAtbN8h5HRUB8g Cell_1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct Memregion_x81NhDv59b8ercDZ9bi85jyg Memregion_x81NhDv59b8ercDZ9bi85jyg;
typedef struct Smallchunk_tXn60W2f8h3jgAYdEmy5NQ Smallchunk_tXn60W2f8h3jgAYdEmy5NQ;
typedef struct Llchunk_XsENErzHIZV9bhvyJx56wGw Llchunk_XsENErzHIZV9bhvyJx56wGw;
typedef struct Bigchunk_Rv9c70Uhp2TytkX7eH78qEg Bigchunk_Rv9c70Uhp2TytkX7eH78qEg;
typedef struct Intset_EZObFrE3NC9bIb3YMkY9crZA Intset_EZObFrE3NC9bIb3YMkY9crZA;
typedef struct Trunk_W0r8S0Y3UGke6T9bIUWnnuw Trunk_W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct Avlnode_IaqjtwKhxLEpvDS9bct9blEw Avlnode_IaqjtwKhxLEpvDS9bct9blEw;
typedef struct Gcstat_0RwLoVBHZPfUAcLczmfQAg Gcstat_0RwLoVBHZPfUAcLczmfQAg;
typedef struct Cellset_jG87P0AI9aZtss9ccTYBIISQ Cellset_jG87P0AI9aZtss9ccTYBIISQ;
typedef struct Pagedesc_fublkgIY4LG3mT51LU2WHg Pagedesc_fublkgIY4LG3mT51LU2WHg;
typedef struct Tidobj_raN9cHVgzmvaXisezY9aGg9cg Tidobj_raN9cHVgzmvaXisezY9aGg9cg;
typedef struct TY_zuqP4Riz26Oi5fWgPYVEgA TY_zuqP4Riz26Oi5fWgPYVEgA;
typedef struct TY_DXS6mEo7PVUFJkirsQ9bNQA TY_DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct Ttype_LTUWCZolpovw9cWE3JBWSUw Ttype_LTUWCZolpovw9cWE3JBWSUw;
typedef struct Tident_4umxGerWTHGPwUms7Yqu3g Tident_4umxGerWTHGPwUms7Yqu3g;
typedef struct Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw;
typedef struct Tnode_bROa11lyF5vxEN9aYNbHmhw Tnode_bROa11lyF5vxEN9aYNbHmhw;
typedef struct Tloc_EtHNvCB0bgfu9bFjzx9cb6aA Tloc_EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct Ropeobj_HF4qJnb6xiOddgPmsxodtQ Ropeobj_HF4qJnb6xiOddgPmsxodtQ;
typedef struct Tlib_4f9aBgmqEuj7uWJdBBGcRgA Tlib_4f9aBgmqEuj7uWJdBBGcRgA;
typedef struct TY_iGkpo9aKQdr3NWelKC4cnJA TY_iGkpo9aKQdr3NWelKC4cnJA;
typedef struct TY_ehmV9bTklH2Gt9cXHV9c0HLeQ TY_ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct TY_a09bGTAl9ceOKTAytYdkbyKg TY_a09bGTAl9ceOKTAytYdkbyKg;
typedef struct Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q;
typedef struct Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct TY_YLg9aN9cjdxVYWdZ7YCb9batg TY_YLg9aN9cjdxVYWdZ7YCb9batg;
typedef struct Tfileinfo_UOayjckboTXG9aVx8iKOs9aQ Tfileinfo_UOayjckboTXG9aVx8iKOs9aQ;
typedef struct TY_LViedqhb8iWVoqgZs5LifA TY_LViedqhb8iWVoqgZs5LifA;
typedef struct TY_XOVT24GHXwqiEj5GCsEGCA TY_XOVT24GHXwqiEj5GCsEGCA;
typedef struct Exception Exception;
typedef struct TSafePoint TSafePoint;
typedef struct Tidpair_AdFnD2YdADPeuJbG2YJ4vg Tidpair_AdFnD2YdADPeuJbG2YJ4vg;
typedef struct Tiipair_Vwj9bWy1xJ8WVCE9ctkEPJDA Tiipair_Vwj9bWy1xJ8WVCE9ctkEPJDA;
typedef struct TY_XUtHSCESHcg7KVfuMIqQmw TY_XUtHSCESHcg7KVfuMIqQmw;
typedef struct Basechunk_Sdq7WpT6qAH858F5ZEdG3w Basechunk_Sdq7WpT6qAH858F5ZEdG3w;
typedef struct Freecell_u6M5LHprqzkn9axr04yg9bGQ Freecell_u6M5LHprqzkn9axr04yg9bGQ;
struct  Tstrtable_f07aOS3dr28kGa5wcE29aFA  {
NI counter;
TY_sksVpmPRIkNR9axiwtD1Guw* data;
};
typedef NU8 Tnimkind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set;
typedef N_NIMCALL_PTR(void, TY_ojoeKfW4VYIm36I9cpDTQIg) (void* p0, NI op0);
typedef N_NIMCALL_PTR(void*, TY_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p0);
struct  TNimType  {
NI size;
Tnimkind_jIBKr1ejBgsfM33Kxw4j7A kind;
Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY_ojoeKfW4VYIm36I9cpDTQIg marker;
TY_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 Tnimnodekind_unfNsxrcATrufDZmpBq4HQ;
struct  TNimNode  {
Tnimnodekind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef N_NIMCALL_PTR(void, TY_T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
struct  Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q  {
NI counter;
TY_Mh9agqM29bm9aP5AUL1x7dZGA* data;
};
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A;
typedef NU8 TY_YtcvxHNKV4YiecPE9ap1mcA[20];
struct  Tfilemodulerec_hr9befsliGEJa9bKFOdnP87g  {
NimStringDesc* filename;
Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A reason;
Trodreader_16TURXdqtpMMssNVfU5WqQ* rd;
TY_YtcvxHNKV4YiecPE9ap1mcA hash;
NIM_BOOL hashdone;
};
struct  TNimObject  {
TNimType* m_type;
};
typedef NU32 Toption_WspMeQySXNP2XoTWR5MTgg_Set;
struct  Tiitable_2ud26DHRGdy6LEqDPifSOA  {
NI counter;
TY_h0IAOvrRzVzO3NpUxaxxvQ* data;
};
struct  Tindex_hUZsEw7f9bvoVPQYLWHrTDQ  {
NI lastidxkey;
NI lastidxval;
Tiitable_2ud26DHRGdy6LEqDPifSOA tab;
NimStringDesc* r;
NI offset;
};
struct  Table_DYt7wxxRVZ9c5PDjh5cfgPA  {
TY_eBSwX9aa9c1W8S1FJPmehz9aQ* data;
NI counter;
};
struct  Memfile_j4SnXNrJDFBxAz4BlbM9aIQ  {
void* mem;
NI size;
NI fhandle;
NI maphandle;
NIM_BOOL wasopened;
};
struct  Trodreader_16TURXdqtpMMssNVfU5WqQ  {
  TNimObject Sup;
NI pos;
NCSTRING s;
Toption_WspMeQySXNP2XoTWR5MTgg_Set options;
Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A reason;
TY_48JTohSgTy339bRxHzUD8KA* moddeps;
TY_48JTohSgTy339bRxHzUD8KA* files;
NI dataidx;
NI convertersidx;
NI initidx;
NI interfidx;
NI compilerprocsidx;
NI methodsidx;
NimStringDesc* filename;
Tindex_hUZsEw7f9bvoVPQYLWHrTDQ index;
Tindex_hUZsEw7f9bvoVPQYLWHrTDQ imports;
NI readerindex;
NI line;
NI moduleid;
Table_DYt7wxxRVZ9c5PDjh5cfgPA syms;
Memfile_j4SnXNrJDFBxAz4BlbM9aIQ memfile;
TY_sksVpmPRIkNR9axiwtD1Guw* methods;
NimStringDesc* origfile;
NIM_BOOL inviewmode;
IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* cache;
};
struct  Cellseq_Axo1XVm9aaQueTOldv8le5w  {
NI len;
NI cap;
Cell_1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* TY_SiRwrEKZdLgxqz9a9aoVBglg[512];
typedef Trunk_W0r8S0Y3UGke6T9bIUWnnuw* TY_lh2A89ahMmYg9bCmpVaplLbA[256];
struct  Intset_EZObFrE3NC9bIb3YMkY9crZA  {
TY_lh2A89ahMmYg9bCmpVaplLbA data;
};
struct  Memregion_x81NhDv59b8ercDZ9bi85jyg  {
NI minlargeobj;
NI maxlargeobj;
TY_SiRwrEKZdLgxqz9a9aoVBglg freesmallchunks;
Llchunk_XsENErzHIZV9bhvyJx56wGw* llmem;
NI currmem;
NI maxmem;
NI freemem;
NI lastsize;
Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* freechunkslist;
Intset_EZObFrE3NC9bIb3YMkY9crZA chunkstarts;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* root;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* deleted;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* last;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* freeavlnodes;
NIM_BOOL locked;
NIM_BOOL blockchunksizeincrease;
NI nextchunksize;
};
struct  Gcstat_0RwLoVBHZPfUAcLczmfQAg  {
NI stackscans;
NI cyclecollections;
NI maxthreshold;
NI maxstacksize;
NI maxstackcells;
NI cycletablesize;
NI64 maxpause;
};
struct  Cellset_jG87P0AI9aZtss9ccTYBIISQ  {
NI counter;
NI max;
Pagedesc_fublkgIY4LG3mT51LU2WHg* head;
Pagedesc_fublkgIY4LG3mT51LU2WHg** data;
};
struct  Gcheap_1TRH1TZMaVZTnLNcIHuNFQ  {
Gcstack_7fytPA5bBsob6See21YMRA* stack;
void* stackbottom;
NI cyclethreshold;
Cellseq_Axo1XVm9aaQueTOldv8le5w zct;
Cellseq_Axo1XVm9aaQueTOldv8le5w decstack;
Cellseq_Axo1XVm9aaQueTOldv8le5w tempstack;
NI recgclock;
Memregion_x81NhDv59b8ercDZ9bi85jyg region;
Gcstat_0RwLoVBHZPfUAcLczmfQAg stat;
Cellset_jG87P0AI9aZtss9ccTYBIISQ marked;
Cellseq_Axo1XVm9aaQueTOldv8le5w additionalroots;
};
struct  Tidobj_raN9cHVgzmvaXisezY9aGg9cg  {
  TNimObject Sup;
NI id;
};
typedef NU8 Tsymkind_cNCW9acsSznmEccl1fgQwkw;
typedef NU16 Tmagic_shZhZOdbVC5nnFvcXQAImg;
struct  Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw  {
NI16 line;
NI16 col;
NI32 fileindex;
};
typedef NU32 Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw_Set;
typedef NU8 Tlockind_O7PRFZKuiBBWbku09cayVBg;
typedef NU8 Tstorageloc_JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 Tlocflag_o2bqJgR4ceIupnUSpxiudA_Set;
struct  Tloc_EtHNvCB0bgfu9bFjzx9cb6aA  {
Tlockind_O7PRFZKuiBBWbku09cayVBg k;
Tstorageloc_JK9cKMX3XnqHaUky9b6gkGEw s;
Tlocflag_o2bqJgR4ceIupnUSpxiudA_Set flags;
Ttype_LTUWCZolpovw9cWE3JBWSUw* t;
Ropeobj_HF4qJnb6xiOddgPmsxodtQ* r;
};
struct  Tsym_AXG7xcvKqaxY6koRX1xkCw  {
  Tidobj_raN9cHVgzmvaXisezY9aGg9cg Sup;
Tsymkind_cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {TY_zuqP4Riz26Oi5fWgPYVEgA* typeinstcache;
} S1;
struct {TY_DXS6mEo7PVUFJkirsQ9bNQA* procinstcache;
Tsym_AXG7xcvKqaxY6koRX1xkCw* gcunsafetyreason;
} S2;
struct {TY_DXS6mEo7PVUFJkirsQ9bNQA* usedgenerics;
Tstrtable_f07aOS3dr28kGa5wcE29aFA tab;
} S3;
struct {Tsym_AXG7xcvKqaxY6koRX1xkCw* guard;
NI bitsize;
} S4;
} kindU;
Tmagic_shZhZOdbVC5nnFvcXQAImg magic;
Ttype_LTUWCZolpovw9cWE3JBWSUw* typ;
Tident_4umxGerWTHGPwUms7Yqu3g* name;
Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info;
Tsym_AXG7xcvKqaxY6koRX1xkCw* owner;
Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw_Set flags;
Tnode_bROa11lyF5vxEN9aYNbHmhw* ast;
Toption_WspMeQySXNP2XoTWR5MTgg_Set options;
NI position;
NI offset;
Tloc_EtHNvCB0bgfu9bFjzx9cb6aA loc;
Tlib_4f9aBgmqEuj7uWJdBBGcRgA* annex;
Tnode_bROa11lyF5vxEN9aYNbHmhw* constraint;
};
struct  Cell_1zcF9cV8XIAtbN8h5HRUB8g  {
NI refcount;
TNimType* typ;
};
typedef NU8 Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU32 Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw_Set;
struct  Ttype_LTUWCZolpovw9cWE3JBWSUw  {
  Tidobj_raN9cHVgzmvaXisezY9aGg9cg Sup;
Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag kind;
Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA callconv;
Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw_Set flags;
TY_zuqP4Riz26Oi5fWgPYVEgA* sons;
Tnode_bROa11lyF5vxEN9aYNbHmhw* n;
Tsym_AXG7xcvKqaxY6koRX1xkCw* owner;
Tsym_AXG7xcvKqaxY6koRX1xkCw* sym;
Tsym_AXG7xcvKqaxY6koRX1xkCw* destructor;
Tsym_AXG7xcvKqaxY6koRX1xkCw* deepcopy;
Tsym_AXG7xcvKqaxY6koRX1xkCw* assignment;
TY_iGkpo9aKQdr3NWelKC4cnJA* methods;
NI64 size;
NI16 align;
NI16 locklevel;
Tloc_EtHNvCB0bgfu9bFjzx9cb6aA loc;
Ttype_LTUWCZolpovw9cWE3JBWSUw* typeinst;
};
typedef NU8 Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw;
typedef NU16 Tnodeflag_jyh9acXHkhZANSSvPIY7ZLg_Set;
struct  Tnode_bROa11lyF5vxEN9aYNbHmhw  {
Ttype_LTUWCZolpovw9cWE3JBWSUw* typ;
Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info;
Tnodeflag_jyh9acXHkhZANSSvPIY7ZLg_Set flags;
Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intval;
} S1;
struct {NF floatval;
} S2;
struct {NimStringDesc* strval;
} S3;
struct {Tsym_AXG7xcvKqaxY6koRX1xkCw* sym;
} S4;
struct {Tident_4umxGerWTHGPwUms7Yqu3g* ident;
} S5;
struct {TY_ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} S6;
} kindU;
NimStringDesc* comment;
};
struct TY_a09bGTAl9ceOKTAytYdkbyKg {
NI Field0;
Tsym_AXG7xcvKqaxY6koRX1xkCw* Field1;
};
struct  Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q  {
  TNimObject Sup;
Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q* prev;
Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q* next;
};
typedef NU8 Tlibkind_9b8v60kso59bBaw9cp8B9a9apKQ;
struct  Tlib_4f9aBgmqEuj7uWJdBBGcRgA  {
  Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q Sup;
Tlibkind_9b8v60kso59bBaw9cp8B9a9apKQ kind;
NIM_BOOL generated;
NIM_BOOL isoverriden;
Ropeobj_HF4qJnb6xiOddgPmsxodtQ* name;
Tnode_bROa11lyF5vxEN9aYNbHmhw* path;
};
struct  Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA  {
Tsym_AXG7xcvKqaxY6koRX1xkCw* sym;
TY_zuqP4Riz26Oi5fWgPYVEgA* concretetypes;
NI compilesid;
};
typedef NU64 Tglobaloption_RAfAEZqjnKMDumgyKKc1qw_Set;
typedef NU8 Tglobaloption_RAfAEZqjnKMDumgyKKc1qw;
struct  Tfileinfo_UOayjckboTXG9aVx8iKOs9aQ  {
NimStringDesc* fullpath;
NimStringDesc* projpath;
NimStringDesc* shortname;
Ropeobj_HF4qJnb6xiOddgPmsxodtQ* quotedname;
Ropeobj_HF4qJnb6xiOddgPmsxodtQ* quotedfullname;
TY_LViedqhb8iWVoqgZs5LifA* lines;
NimStringDesc* dirtyfile;
};
struct TY_XOVT24GHXwqiEj5GCsEGCA {
NimStringDesc* Field0;
NI Field1;
};
struct  Exception  {
  TNimObject Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
NimStringDesc* trace;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClPrc) (Exception* e0, void* ClEnv);
void* ClEnv;
} TY_KeeAOYBd84Ofsw6Y7LizaQ;
struct  TSafePoint  {
TSafePoint* prev;
NI status;
jmp_buf context;
NIM_BOOL hasRaiseAction;
TY_KeeAOYBd84Ofsw6Y7LizaQ raiseAction;
};
typedef NU8 Filemode_fVUBHvW79bXUw1j55Oo9avSQ;
typedef NU8 Tcommands_VH3ghgQVwLSg3krOAoXigw;
typedef NimStringDesc* TY_sMpvt1sOxOJ3LFGulnbeMQ[4];
typedef NU16 Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw;
typedef NimStringDesc* TY_L3diSRbwpiAJgUCe9bto9cyQ[9];
struct  Tidpair_AdFnD2YdADPeuJbG2YJ4vg  {
Tidobj_raN9cHVgzmvaXisezY9aGg9cg* key;
TNimObject* val;
};
struct  Tiipair_Vwj9bWy1xJ8WVCE9ctkEPJDA  {
NI key;
NI val;
};
struct TY_XUtHSCESHcg7KVfuMIqQmw {
NI Field0;
NI Field1;
Tsym_AXG7xcvKqaxY6koRX1xkCw* Field2;
};
typedef Tident_4umxGerWTHGPwUms7Yqu3g* TY_CBfZt49asUfAsBVM7a3Rc9cw[8192];
struct  IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw  {
TY_CBfZt49asUfAsBVM7a3Rc9cw buckets;
NI wordcounter;
Tident_4umxGerWTHGPwUms7Yqu3g* idanon;
Tident_4umxGerWTHGPwUms7Yqu3g* iddelegator;
Tident_4umxGerWTHGPwUms7Yqu3g* emptyident;
};
struct  Gcstack_7fytPA5bBsob6See21YMRA  {
Gcstack_7fytPA5bBsob6See21YMRA* prev;
Gcstack_7fytPA5bBsob6See21YMRA* next;
void* starts;
void* pos;
NI maxstacksize;
};
struct  Basechunk_Sdq7WpT6qAH858F5ZEdG3w  {
NI prevsize;
NI size;
NIM_BOOL used;
};
struct  Smallchunk_tXn60W2f8h3jgAYdEmy5NQ  {
  Basechunk_Sdq7WpT6qAH858F5ZEdG3w Sup;
Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* next;
Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* prev;
Freecell_u6M5LHprqzkn9axr04yg9bGQ* freelist;
NI free;
NI acc;
NF data;
};
struct  Llchunk_XsENErzHIZV9bhvyJx56wGw  {
NI size;
NI acc;
Llchunk_XsENErzHIZV9bhvyJx56wGw* next;
};
struct  Bigchunk_Rv9c70Uhp2TytkX7eH78qEg  {
  Basechunk_Sdq7WpT6qAH858F5ZEdG3w Sup;
Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* next;
Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* prev;
NI align;
NF data;
};
typedef NI TY_9agrCtWKhCnWWMJpKKugJag[16];
struct  Trunk_W0r8S0Y3UGke6T9bIUWnnuw  {
Trunk_W0r8S0Y3UGke6T9bIUWnnuw* next;
NI key;
TY_9agrCtWKhCnWWMJpKKugJag bits;
};
typedef Avlnode_IaqjtwKhxLEpvDS9bct9blEw* TY_0aOLqZchNi8nWtMTi8ND8w[2];
struct  Avlnode_IaqjtwKhxLEpvDS9bct9blEw  {
TY_0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperbound;
NI level;
};
struct  Pagedesc_fublkgIY4LG3mT51LU2WHg  {
Pagedesc_fublkgIY4LG3mT51LU2WHg* next;
NI key;
TY_9agrCtWKhCnWWMJpKKugJag bits;
};
struct  Tident_4umxGerWTHGPwUms7Yqu3g  {
  Tidobj_raN9cHVgzmvaXisezY9aGg9cg Sup;
NimStringDesc* s;
Tident_4umxGerWTHGPwUms7Yqu3g* next;
NI h;
};
struct  Ropeobj_HF4qJnb6xiOddgPmsxodtQ  {
  TNimObject Sup;
Ropeobj_HF4qJnb6xiOddgPmsxodtQ* left;
Ropeobj_HF4qJnb6xiOddgPmsxodtQ* right;
NI length;
NimStringDesc* data;
};
struct  Freecell_u6M5LHprqzkn9axr04yg9bGQ  {
Freecell_u6M5LHprqzkn9axr04yg9bGQ* next;
NI zerofield;
};
struct TY_zYu2DlP9bQek7yl7KPjzfgA {
  TGenericSeq Sup;
  Tfilemodulerec_hr9befsliGEJa9bKFOdnP87g data[SEQ_DECL_SIZE];
};
struct TY_48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct TY_zuqP4Riz26Oi5fWgPYVEgA {
  TGenericSeq Sup;
  Ttype_LTUWCZolpovw9cWE3JBWSUw* data[SEQ_DECL_SIZE];
};
struct TY_YLg9aN9cjdxVYWdZ7YCb9batg {
  TGenericSeq Sup;
  Tfileinfo_UOayjckboTXG9aVx8iKOs9aQ data[SEQ_DECL_SIZE];
};
struct TY_sksVpmPRIkNR9axiwtD1Guw {
  TGenericSeq Sup;
  Tsym_AXG7xcvKqaxY6koRX1xkCw* data[SEQ_DECL_SIZE];
};
struct TY_Mh9agqM29bm9aP5AUL1x7dZGA {
  TGenericSeq Sup;
  Tidpair_AdFnD2YdADPeuJbG2YJ4vg data[SEQ_DECL_SIZE];
};
struct TY_h0IAOvrRzVzO3NpUxaxxvQ {
  TGenericSeq Sup;
  Tiipair_Vwj9bWy1xJ8WVCE9ctkEPJDA data[SEQ_DECL_SIZE];
};
struct TY_eBSwX9aa9c1W8S1FJPmehz9aQ {
  TGenericSeq Sup;
  TY_XUtHSCESHcg7KVfuMIqQmw data[SEQ_DECL_SIZE];
};
struct TY_DXS6mEo7PVUFJkirsQ9bNQA {
  TGenericSeq Sup;
  Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE];
};
struct TY_iGkpo9aKQdr3NWelKC4cnJA {
  TGenericSeq Sup;
  TY_a09bGTAl9ceOKTAytYdkbyKg data[SEQ_DECL_SIZE];
};
struct TY_ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  Tnode_bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct TY_LViedqhb8iWVoqgZs5LifA {
  TGenericSeq Sup;
  Ropeobj_HF4qJnb6xiOddgPmsxodtQ* data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, nimGCvisit)(void* d0, NI op0);
static N_NIMCALL(void, T_cQ0PrUjHdJJ4mT9bXnGeWmg_2)(void);
N_NIMCALL(void, nimRegisterGlobalMarker)(TY_T4eqaYlFJYZUv9aG9b1TV0bQ markerproc0);
static N_NIMCALL(void, T_cQ0PrUjHdJJ4mT9bXnGeWmg_3)(void);
static N_NIMCALL(void, Marker_TY_48JTohSgTy339bRxHzUD8KA)(void* p, NI op);
static N_NIMCALL(void, Marker_TY_Eh4s09cJuhHxR86Hgdowx5Q)(void* p, NI op);
static N_NIMCALL(void, Marker_TY_zYu2DlP9bQek7yl7KPjzfgA)(void* p, NI op);
static N_NIMCALL(void, T_cQ0PrUjHdJJ4mT9bXnGeWmg_10)(void);
N_NIMCALL(void, nimGCunref)(void* p0);
N_NIMCALL(void*, newSeqRC1)(TNimType* typ0, NI len0);
N_NIMCALL(void, initidtable_9cUS2oaKn1IFXKjLdglPZHQ)(Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q* x0);
N_NIMCALL(void, initstrtable_dDG9ckEId9ai4WID9aLQcRYNg)(Tstrtable_f07aOS3dr28kGa5wcE29aFA* x0);
static N_INLINE(void, Gcdisable_neD9cJp4S9clvdaq5qqNFZAQrodread)(void);
N_NIMCALL(void, rawloadstub_8lqBRdz0Xc1mefqrmXA9ceg_2)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0);
N_NIMCALL(void, internalerror_5XY9cUy7hZmUusM38U9cYYdw)(NimStringDesc* errmsg0);
N_NIMCALL(NI, iitableget_EgYHcx8etCrcLSUXIA9aoUw)(Tiitable_2ud26DHRGdy6LEqDPifSOA t0, NI key0);
N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, decodesymsafepos_9atJjb5xZ4KownKCOle5Dcw)(Trodreader_16TURXdqtpMMssNVfU5WqQ* rd0, NI offset0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0);
N_NIMCALL(void, internalerror_MXmtqrCmYwtOPkDCFgUWKQ)(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, NimStringDesc* errmsg0);
N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, decodesym_xBDPIbwGR7xnDnCO21Sb1A)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0);
N_NIMCALL(NI, decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ)(NCSTRING s0, NI* pos0);
static N_INLINE(void, setid_iA4w0aRcMn9ciJCCkQe5Uiwrodread)(NI id0);
N_NIMCALL(Tident_4umxGerWTHGPwUms7Yqu3g*, getident_Y4Yr5rKoaxkzPcN8rPP9bWA)(IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* self0, NimStringDesc* identifier0);
N_NIMCALL(NimStringDesc*, decodestr_STVN8cb52NB3wWUNHppyDQ)(NCSTRING s0, NI* pos0);
N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, getordefault_ShR0uE9bMwmPl0MR60kmH3g)(Table_DYt7wxxRVZ9c5PDjh5cfgPA t0, NI key0);
N_NIMCALL(void*, newObj)(TNimType* typ0, NI size0);
N_NIMCALL(void, HEX5BHEX5DHEX3D_rmyyXMOU9cTYfzq59cG09cIIA)(Table_DYt7wxxRVZ9c5PDjh5cfgPA* t0, NI key0, Tsym_AXG7xcvKqaxY6koRX1xkCw* val0);
N_NIMCALL(void, registerid_ZN2j9cT9c6WdU9bRORys9cZIAg)(Tidobj_raN9cHVgzmvaXisezY9aGg9cg* id0);
N_NIMCALL(void, genericReset)(void* dest0, TNimType* mt0);
static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0);
static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0);
static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
N_NOINLINE(void, addzct_fCDI7oO1NNVXXURtxSzsRw)(Cellseq_Axo1XVm9aaQueTOldv8le5w* s0, Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, rrgettype_4NINkp2jYPkYd4N4uTT9amA)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, NI id0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0);
N_NIMCALL(TNimObject*, idtableget_Z0OPsM9b7rlHUCmy4XL0CMw)(Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q t0, NI key0);
N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, decodetype_LdNLnEXpttl5r2XnecLrvQ)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0);
N_NIMCALL(void, idtableput_3gLsywwJ9bZDaf06DfKpYbw)(Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q* t0, Tidobj_raN9cHVgzmvaXisezY9aGg9cg* key0, TNimObject* val0);
N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, decodenode_ZDhFn8mo57TbvAOtXK4b9cQ)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw finfo0);
N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, decodenodelazybody_WprDv1mMNNCOcW7lB2ZCtw)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw finfo0, Tsym_AXG7xcvKqaxY6koRX1xkCw* belongsto0);
N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newnodei_PIqgSH9b0m7nFpOyXf9cpz5w)(Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw kind0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0);
N_NIMCALL(void, decodelineinfo_9aejGFhNdc8uJ9ck4Zv4GDJw)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw* info0);
N_NIMCALL(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw, newlineinfo_Shbbzc11c9bnWkBc9b42npzA)(NI32 fileinfoidx0, NI line0, NI col0);
N_NIMCALL(NI64, decodevbiggestint_5JGKp2eBU7Vp9cFMYv9bssUA)(NCSTRING s0, NI* pos0);
N_NIMCALL(NF, nsuParseFloat)(NimStringDesc* s0);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src0);
static N_INLINE(void, nimGCunrefNoCycle)(void* p0);
N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, rrgetsym_LN0h5wUUibshttSu5iCq5g)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, NI id0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src0);
N_NIMCALL(void, encodevint_UxDO4XNnIGIEXt1v5wvZJQ)(NI x0, NimStringDesc** result0);
static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0);
static N_INLINE(void, copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest0, void* source0, NI size0);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space0);
N_NIMCALL(Trodreader_16TURXdqtpMMssNVfU5WqQ*, getreader_tKvg9bdgxkKmHdW1nC1DbiQ)(NI moduleid0);
N_NIMCALL(void, addsonnilallowed_gCCf68XrWL79bKes6htzFjQ_2)(Tnode_bROa11lyF5vxEN9aYNbHmhw* father0, Tnode_bROa11lyF5vxEN9aYNbHmhw* son0);
N_NIMCALL(void, skipnode_9cXbacxofZHikq55hIlLxVA)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x0);
N_NIMCALL(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw, unknownlineinfo_Ad9ctQofZYxhKVXoXjdL0Fw)(void);
N_NOINLINE(void, raiseassert_PpfSiTIeNpMAb9a5o6SglJw_2)(NimStringDesc* msg0);
N_NIMCALL(void, safeadd_XuI5bupZeUeWgjk44qSPBA)(TY_iGkpo9aKQdr3NWelKC4cnJA** x0, TY_a09bGTAl9ceOKTAytYdkbyKg y0);
N_NIMCALL(void, decodeloc_8sUfYI2wxx8i9aM1poveVuQ)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tloc_EtHNvCB0bgfu9bFjzx9cb6aA* loc0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0);
N_NIMCALL(void, unsureAsgnRef)(void** dest0, void* src0);
N_NIMCALL(Ropeobj_HF4qJnb6xiOddgPmsxodtQ*, rope_53CHEX05HP0HacydnwoUYg)(NimStringDesc* s0);
static N_INLINE(void, appendChar)(NimStringDesc* dest0, NIM_CHAR c0);
N_NIMCALL(void, rawaddson_52UH8yKinsYmFX9bFij9c2Hw)(Ttype_LTUWCZolpovw9cWE3JBWSUw* father0, Ttype_LTUWCZolpovw9cWE3JBWSUw* son0);
N_NIMCALL(Tlib_4f9aBgmqEuj7uWJdBBGcRgA*, decodelib_Kg7cOaRrIC442JmSu4RcVw)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0);
static N_INLINE(void, asgnRef)(void** dest0, void* src0);
static N_INLINE(void, incref_9cAA5YuQAAC3MVbnGeV86swsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
static N_INLINE(void, decref_MV4BBk6J1qu70IbBxwEn4wsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
N_NIMCALL(void, safeadd_VD4SAHgDoDEHV5x9bi89cbwA)(TY_zuqP4Riz26Oi5fWgPYVEgA** x0, Ttype_LTUWCZolpovw9cWE3JBWSUw* y0);
N_NIMCALL(void, decodeinstantiations_Ix6zQdI2iKmpaSjQnuakiQ)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, TY_DXS6mEo7PVUFJkirsQ9bNQA** s0);
N_NIMCALL(TGenericSeq*, incrSeqV2)(TGenericSeq* seq0, NI elemsize0);
N_NIMCALL(void, safeadd_159bXvKbDCwtLAAM9au9cb2iw)(TY_DXS6mEo7PVUFJkirsQ9bNQA** x0, Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA* y0);
static N_INLINE(void, Gcenable_neD9cJp4S9clvdaq5qqNFZAQ_2rodread)(void);
static N_INLINE(NI, len_CdME9baJhvveuPEDZE9bXoxAlambdalifting)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0);
static N_INLINE(NI, getid_2S0wtMB4mi8h75E9a7bA6mAast)(void);
N_NIMCALL(void, loadmaxids_NACtd4vcNteQFGls509aStA)(NimStringDesc* project0);
N_NIMCALL(NimStringDesc*, HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ)(NimStringDesc* head0, NimStringDesc* tail0);
N_NIMCALL(Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A, checkdep_FefUip39auHSLhzCJpLE4iw)(NI32 fileidx0, IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* cache0);
N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq0, NI elemsize0, NI newlen0);
N_NIMCALL(void, gethash_XlA8spTQdk2eCaGCzixyPg)(NI32 fileidx0, TY_YtcvxHNKV4YiecPE9ap1mcA Result);
N_NIMCALL(NimStringDesc*, HEX24_k53Ge4e9cDjc7y9c5uML7sPQ)(TY_XOVT24GHXwqiEj5GCsEGCA x0);
N_NIMCALL(void, securehashfile_WH9bD1JrTXe4j39astgya4oA)(NimStringDesc* filename0, TY_YtcvxHNKV4YiecPE9ap1mcA Result);
N_NIMCALL(NimStringDesc*, tofullpath_7s19cb7WBgztz9aqEBzwwuqA)(NI32 fileidx0);
N_NOINLINE(void, chckNil)(void* p0);
N_NIMCALL(NimStringDesc*, togeneratedfile_J4Y3N49axROg3CvCZ1jF3QQ)(NimStringDesc* path0, NimStringDesc* ext0);
N_NIMCALL(NimStringDesc*, withpackagename_hXI3LWBWedZbdPyAYn0KOQ_2)(NimStringDesc* path0);
N_NIMCALL(Trodreader_16TURXdqtpMMssNVfU5WqQ*, newrodreader_kKrvFNyTyKr29bjL4vJHmag)(NimStringDesc* modfilename0, TY_YtcvxHNKV4YiecPE9ap1mcA hash0, NI readerindex0, IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* cache0);
static N_INLINE(void, pushSafePoint)(TSafePoint* s0);
N_NIMCALL(Memfile_j4SnXNrJDFBxAz4BlbM9aIQ, open_ZMwdj9bPZN6r75n0Xmlofkg)(NimStringDesc* filename0, Filemode_fVUBHvW79bXUw1j55Oo9avSQ mode0, NI mappedsize0, NI offset0, NI newfilesize0);
static N_INLINE(void, popSafePoint)(void);
N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj0, TNimType* subclass0);
static N_INLINE(Exception*, getCurrentException)(void);
static N_INLINE(void, popCurrentException)(void);
N_NIMCALL(void, reraiseException)(void);
N_NIMCALL(void, inittable_RWV8dDCL9bQLrrCYa5jJV9cg)(NI initialsize0, Table_DYt7wxxRVZ9c5PDjh5cfgPA* Result);
N_NIMCALL(NIM_BOOL, startswith_wWTy3eZ1Pbuw19cpCXJ4a9cg)(NCSTRING buf0, NimStringDesc* token0, NI pos0);
N_NIMCALL(void, initiitable_IfyJxQyI39a9aYH4RvM9cSJsg)(Tiitable_2ud26DHRGdy6LEqDPifSOA* x0);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s0, NIM_CHAR c0);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a0, NimStringDesc* b0);
static N_INLINE(NIM_BOOL, equalmem_DCrUjdaMvFDHaR1hs7sQGwropes)(void* a0, void* b0, NI size0);
N_NIMCALL(void, close_nK8O9cRK8tfFl5he9bLSP9bNQ)(Memfile_j4SnXNrJDFBxAz4BlbM9aIQ* f0);
N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename0);
N_NIMCALL(void, processrodfile_mVWixI8Vyvwk8S69ce9ahnAg)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, TY_YtcvxHNKV4YiecPE9ap1mcA hash0);
N_NIMCALL(NimStringDesc*, rdword_vKTFYqB4WarZoWmf9aWf1Sw)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0);
N_NIMCALL(NI, hashString)(NimStringDesc* s0);
N_NIMCALL(NIM_BOOL, HEX3DHEX3D_D9cw7Ut67uVRyWe3YecX0SQ)(TY_YtcvxHNKV4YiecPE9ap1mcA a0, TY_YtcvxHNKV4YiecPE9ap1mcA b0);
N_NIMCALL(void, parsesecurehash_z6ogq7oeMr7FogkL734yew)(NimStringDesc* hash0, TY_YtcvxHNKV4YiecPE9ap1mcA Result);
N_NIMCALL(NIM_BOOL, cmdchangetriggersrecompilation_4QX9aRNhhaQx8NWl8hUhofA)(Tcommands_VH3ghgQVwLSg3krOAoXigw old0, Tcommands_VH3ghgQVwLSg3krOAoXigw new_ostC1gaH3oDbK9cpN3arH1Q);
N_NIMCALL(NIM_BOOL, isdefined_rrIlGPFUdgeaN36zhjolNA)(Tident_4umxGerWTHGPwUms7Yqu3g* symbol0);
N_NIMCALL(NI, countdefinedsymbols_0PZoTF9cuNqw59bHjttVR3uw)(void);
N_NIMCALL(NI32, fileinfoidx_RXxXBoV2drjjVnQa9abo19cQ)(NimStringDesc* filename0);
N_NIMCALL(void, skipsection_U8pJ144ZdmRIS5PTdDiHtQ)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0);
N_NIMCALL(void, processindex_xlOVKUGaby4rs9a9btkSMoNg)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tindex_hUZsEw7f9bvoVPQYLWHrTDQ* idx0, FILE* outf0);
N_NIMCALL(void, iitableput_i9ao9aBgb0oZrn7lQBCMTEZg)(Tiitable_2ud26DHRGdy6LEqDPifSOA* t0, NI key0, NI val0);
N_NIMCALL(void, write_OG3BP9aaTiau0tBdonibGTg)(FILE* f0, NimStringDesc** a0, NI a0Len0);
N_NIMCALL(void, rawmessage_tBJ8mvo7MzzirsGkrHVc9cw)(Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, NimStringDesc* arg0);
N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr0, NimStringDesc* a0);
N_NIMCALL(void, processinterf_HHIdB6BSTmIdVvhHYIyF5A)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tsym_AXG7xcvKqaxY6koRX1xkCw* module0);
N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, newstub_PnID9cG5w2548BrH04lhfsg)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, NimStringDesc* name0, NI id0);
N_NIMCALL(void, strtableadd_Tcb9aDxXz9ch8cAXKFCMrlbA)(Tstrtable_f07aOS3dr28kGa5wcE29aFA* t0, Tsym_AXG7xcvKqaxY6koRX1xkCw* n0);
N_NIMCALL(void, processcompilerprocs_HHIdB6BSTmIdVvhHYIyF5A_2)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tsym_AXG7xcvKqaxY6koRX1xkCw* module0);
N_NIMCALL(void, loadconverters_U8pJ144ZdmRIS5PTdDiHtQ_2)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0);
N_NIMCALL(void, loadmethods_U8pJ144ZdmRIS5PTdDiHtQ_3)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0);
N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newnode_IgnRxkID5wXTWvTZf9ct0rA)(Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw kind0);
N_NIMCALL(void, addson_gCCf68XrWL79bKes6htzFjQ)(Tnode_bROa11lyF5vxEN9aYNbHmhw* father0, Tnode_bROa11lyF5vxEN9aYNbHmhw* son0);
Tstrtable_f07aOS3dr28kGa5wcE29aFA rodcompilerprocs_9aNPIIbBunTbUYZKKDkxNkA;
extern TNimType NTI_f07aOS3dr28kGa5wcE29aFA;
Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q gtypetable_Cu50R2OUCmZwEpVFTyCFpQ;
extern TNimType NTI_9aiv9bp2t5icFNINcg9c4xi1Q;
TY_zYu2DlP9bQek7yl7KPjzfgA* gmods_rI9ar5P1fR1UYngW7fmzETQ;
TNimType NTI_hr9befsliGEJa9bKFOdnP87g;
extern TNimType NTI_77mFvmsOLKik79ci2hXkHEg;
TNimType NTI_CESX1DWEXOC2bslyDO2n5A;
extern TNimType NTI_13RNkKqUOX1TtorOUlKtqA;
TNimType NTI_16TURXdqtpMMssNVfU5WqQ;
extern TNimType NTI_rR5Bzr1D5krxoo1NcNyeMA;
extern TNimType NTI_S9agCYBinaYZnGWcjTdxclg;
extern TNimType NTI_7MnKRybmCNh5j9bDRLMkxLw;
extern TNimType NTI_sVg18TP9cLifHyygRe9cro9aA;
TNimType NTI_48JTohSgTy339bRxHzUD8KA;
TNimType NTI_hUZsEw7f9bvoVPQYLWHrTDQ;
extern TNimType NTI_2ud26DHRGdy6LEqDPifSOA;
extern TNimType NTI_DYt7wxxRVZ9c5PDjh5cfgPA;
extern TNimType NTI_j4SnXNrJDFBxAz4BlbM9aIQ;
extern TNimType NTI_sksVpmPRIkNR9axiwtD1Guw;
extern TNimType NTI_VaVACK0bpYmqIQ0mKcHfQQ;
extern TNimType NTI_lnkYNZP9asc88UfiEGjLrbA;
TNimType NTI_Eh4s09cJuhHxR86Hgdowx5Q;
extern TNimType NTI_YtcvxHNKV4YiecPE9ap1mcA;
TNimType NTI_zYu2DlP9bQek7yl7KPjzfgA;
extern Gcheap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
extern NI gfrontendid_gyRrMPnY7JyC6tAu9bCfGng;
extern TNimType NTI_83n62yi1b9bgUtRR9axFWW9ag;
extern TNimType NTI_AXG7xcvKqaxY6koRX1xkCw;
extern TNimType NTI_1EooIlSGbJRPSt3SfQJd7Q;
extern TNimType NTI_LTUWCZolpovw9cWE3JBWSUw;
extern TNimType NTI_r6yKYSPSeen50D8ZMu4UkQ;
extern TNimType NTI_4f9aBgmqEuj7uWJdBBGcRgA;
extern TNimType NTI_Y32tFilzS9adEEksgrCsOzQ;
extern TNimType NTI_zuqP4Riz26Oi5fWgPYVEgA;
extern Tnode_bROa11lyF5vxEN9aYNbHmhw* emptynode_69ccLGuQ2mITw7zylZYtWcA;
extern Tglobaloption_RAfAEZqjnKMDumgyKKc1qw_Set gglobaloptions_j042VVDC9cT5ENYoXnmhhVg;
extern NimStringDesc* gprojectpath_RQlrqBW2RHkKfot9caCcOtQ;
extern NimStringDesc* gprojectname_QOoHniL6MYtzlAjpv8zzdA;
extern TY_YLg9aN9cjdxVYWdZ7YCb9batg* fileinfos_0nMtuXd9csTLLtuDok8ckXw;
extern TSafePoint* exchandler_rqLlY5bs9atDw2OXYqJEn5g;
extern TNimType NTI_3XwRQvmzCEOC4QnT706q1g;
extern Exception* currexception_9bVPeDJlYTi9bQApZpfH8wjg;
extern Toption_WspMeQySXNP2XoTWR5MTgg_Set goptions_KL5B8sF4szIsM2AXCWFsIw;
extern Tcommands_VH3ghgQVwLSg3krOAoXigw gcmd_0oKScFtMiSKnjiHF9cU9c5GQ;
extern NI32 systemfileidx_q0u9cGGPPFNGrj9c5inL1WXQ;
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_11, "loadStub", 8);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_12, "loadStub: invalid key", 21);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_13, "dataIdx == 0", 12);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_14, "decodeSym: no id", 16);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_15, "decodeSym: no ident", 19);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_16, "decodeSym: wrong id", 19);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_17, "rrGetType", 9);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_18, "decodeType: no id", 17);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_19, "", 0);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_20, "decodeNode: nkIdent", 19);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_21, "missing from both indexes: +", 28);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_22, "rrGetSym: no reader found: +", 28);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_23, "decodeNode: nkSym", 17);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_24, "decodeNode: \')\' missing", 23);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_25, "decodeNode: \'(\' missing ", 24);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_26, "r.s[r.pos] == \'\\x13\' ", 21);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_27, "decodeLoc ", 10);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_28, "decodeType ^(", 13);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_29, "decodeLib: 1", 12);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_30, "decodeLib: 2", 12);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_31, "loadStub: wrong symbol", 22);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_32, "loadStub: wrong ID", 18);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_33, "???", 3);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_35, "rodread.nim", 11);
NIM_CONST TY_XOVT24GHXwqiEj5GCsEGCA T_cQ0PrUjHdJJ4mT9bXnGeWmg_34 = {((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_35),
((NI) 860)}
;
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_36, "rod", 3);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_38, "NIM:", 4);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_39, "1222", 4);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_40, "HASH", 4);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_41, "ID", 2);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_42, "ORIGFILE", 8);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_43, "OPTIONS", 7);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_44, "GOPTIONS", 8);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_45, "CMD", 3);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_46, "DEFINES", 7);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_47, "FILES", 5);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_48, "INCLUDES", 8);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_49, "DEPS", 4);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_50, "INTERF", 6);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_51, "COMPILERPROCS", 13);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_52, "INDEX", 5);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_53, "IMPORTS", 7);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_54, "CONVERTERS", 10);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_55, "METHODS", 7);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_56, "DATA", 4);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_57, "INIT", 4);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_58, "skipSection ", 12);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_59, " ", 1);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_60, "\015\012", 2);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_61, "invalid section: \'", 18);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_62, "\' at ", 5);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_63, " in ", 4);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_64, "no need to recompile: $1", 24);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_65, "symbol file for $1 does not exist", 33);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_66, "symbol file for $1 has the wrong version", 40);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_67, "file edited since last compilation: $1", 38);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_68, "list of conditional symbols changed for: $1", 43);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_69, "list of options changed for: $1", 31);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_70, "an include file edited: $1", 26);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_71, "a module $1 depends on has changed", 34);
NIM_CONST TY_L3diSRbwpiAJgUCe9bto9cyQ reasontofrmt_vodk7sHrA9bELf39ahJ8NXEg = {((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_19),
((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_64),
((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_65),
((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_66),
((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_67),
((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_68),
((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_69),
((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_70),
((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_71)}
;
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_72, "handleSymbolFile", 16);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_73, "processInterf", 13);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_74, "processCompilerProcs", 20);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_75, "importConverters", 16);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_76, "loadMethods", 11);
STRING_LITERAL(T_cQ0PrUjHdJJ4mT9bXnGeWmg_77, "loadInitSection", 15);
static N_NIMCALL(void, T_cQ0PrUjHdJJ4mT9bXnGeWmg_2)(void) {
	nimGCvisit((void*)rodcompilerprocs_9aNPIIbBunTbUYZKKDkxNkA.data, 0);
}
static N_NIMCALL(void, T_cQ0PrUjHdJJ4mT9bXnGeWmg_3)(void) {
	nimGCvisit((void*)gtypetable_Cu50R2OUCmZwEpVFTyCFpQ.data, 0);
}
static N_NIMCALL(void, Marker_TY_48JTohSgTy339bRxHzUD8KA)(void* p, NI op) {
	TY_48JTohSgTy339bRxHzUD8KA* a;
	NI LOC1;
	a = (TY_48JTohSgTy339bRxHzUD8KA*)p;
	LOC1 = (NI)0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	}
}
static N_NIMCALL(void, Marker_TY_Eh4s09cJuhHxR86Hgdowx5Q)(void* p, NI op) {
	Trodreader_16TURXdqtpMMssNVfU5WqQ* a;
	a = (Trodreader_16TURXdqtpMMssNVfU5WqQ*)p;
	nimGCvisit((void*)(*a).moddeps, op);
	nimGCvisit((void*)(*a).files, op);
	nimGCvisit((void*)(*a).filename, op);
	nimGCvisit((void*)(*a).index.tab.data, op);
	nimGCvisit((void*)(*a).index.r, op);
	nimGCvisit((void*)(*a).imports.tab.data, op);
	nimGCvisit((void*)(*a).imports.r, op);
	nimGCvisit((void*)(*a).syms.data, op);
	nimGCvisit((void*)(*a).methods, op);
	nimGCvisit((void*)(*a).origfile, op);
	nimGCvisit((void*)(*a).cache, op);
}
static N_NIMCALL(void, Marker_TY_zYu2DlP9bQek7yl7KPjzfgA)(void* p, NI op) {
	TY_zYu2DlP9bQek7yl7KPjzfgA* a;
	NI LOC1;
	NI LOC2;
	a = (TY_zYu2DlP9bQek7yl7KPjzfgA*)p;
	LOC1 = (NI)0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].filename, op);
	nimGCvisit((void*)a->data[LOC1].rd, op);
	LOC2 = (NI)0;
	for (LOC2 = 0; LOC2 < 20; LOC2++) {
	}
	}
}
static N_NIMCALL(void, T_cQ0PrUjHdJJ4mT9bXnGeWmg_10)(void) {
	nimGCvisit((void*)gmods_rI9ar5P1fR1UYngW7fmzETQ, 0);
}

static N_INLINE(void, Gcdisable_neD9cJp4S9clvdaq5qqNFZAQrodread)(void) {
	gch_IcYaEuuWivYAS86vFMTS3Q.recgclock += ((NI) 1);
}

static N_INLINE(void, setid_iA4w0aRcMn9ciJCCkQe5Uiwrodread)(NI id0) {
	gfrontendid_gyRrMPnY7JyC6tAu9bCfGng = ((gfrontendid_gyRrMPnY7JyC6tAu9bCfGng >= (NI)(id0 + ((NI) 1))) ? gfrontendid_gyRrMPnY7JyC6tAu9bCfGng : (NI)(id0 + ((NI) 1)));
}

static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0) {
	Cell_1zcF9cV8XIAtbN8h5HRUB8g* result0;
	result0 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	result0 = ((Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU32)(((NI) (usr0))) - (NU32)(((NI)sizeof(Cell_1zcF9cV8XIAtbN8h5HRUB8g))))));
	return result0;
}

static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) {
	addzct_fCDI7oO1NNVXXURtxSzsRw((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c0);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0) {
	{
		Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0;
		if (!!((src0 == NIM_NIL))) goto LA3;
		c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src0);
		(*c0).refcount += ((NI) 8);
	}
	LA3: ;
	{
		Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0;
		if (!!(((*dest0) == NIM_NIL))) goto LA7;
		c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest0));
		{
			(*c0).refcount -= ((NI) 8);
			if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA11;
			rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0);
		}
		LA11: ;
	}
	LA7: ;
	(*dest0) = src0;
}

N_NIMCALL(void, decodelineinfo_9aejGFhNdc8uJ9ck4Zv4GDJw)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw* info0) {
	{
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(63))) goto LA3;
		(*r0).pos += ((NI) 1);
		{
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(44))) goto LA7;
			(*info0).col = ((NI16) -1);
		}
		goto LA5;
		LA7: ;
		{
			NI LOC10;
			LOC10 = (NI)0;
			LOC10 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			(*info0).col = ((NI16) (LOC10));
		}
		LA5: ;
		{
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(44))) goto LA13;
			(*r0).pos += ((NI) 1);
			{
				if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(44))) goto LA17;
				(*info0).line = ((NI16) -1);
			}
			goto LA15;
			LA17: ;
			{
				NI LOC20;
				LOC20 = (NI)0;
				LOC20 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
				(*info0).line = ((NI16) (LOC20));
			}
			LA15: ;
			{
				NI LOC25;
				if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(44))) goto LA23;
				(*r0).pos += ((NI) 1);
				LOC25 = (NI)0;
				LOC25 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
				(*info0) = newlineinfo_Shbbzc11c9bnWkBc9b42npzA((*r0).files->data[LOC25], ((NI) ((*info0).line)), ((NI) ((*info0).col)));
			}
			LA23: ;
		}
		LA13: ;
	}
	LA3: ;
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p0) {
	Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0;
	c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(p0);
	{
		(*c0).refcount -= ((NI) 8);
		if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA3;
		rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0);
	}
	LA3: ;
}

static N_INLINE(void, copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest0, void* source0, NI size0) {
	void* LOC1;
	LOC1 = (void*)0;
	LOC1 = memcpy(dest0, source0, ((size_t) (size0)));
}

static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0) {
	copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem(((void*) ((&(*dest0).data[((*dest0).Sup.len)- 0]))), ((void*) ((*src0).data)), ((NI) ((NI)((*src0).Sup.len + ((NI) 1)))));
	(*dest0).Sup.len += (*src0).Sup.len;
}

N_NIMCALL(Trodreader_16TURXdqtpMMssNVfU5WqQ*, getreader_tKvg9bdgxkKmHdW1nC1DbiQ)(NI moduleid0) {
	Trodreader_16TURXdqtpMMssNVfU5WqQ* result0;
{	result0 = (Trodreader_16TURXdqtpMMssNVfU5WqQ*)0;
	{
		NI i_14GZoQqfwmk85x3QljTLQA;
		NI HEX3Atmp_bqbzsRAZ7TvD0k0P7sWUew;
		NI res_sRDa6p4Oy9bjT9cluf6Ex37A;
		i_14GZoQqfwmk85x3QljTLQA = (NI)0;
		HEX3Atmp_bqbzsRAZ7TvD0k0P7sWUew = (NI)0;
		HEX3Atmp_bqbzsRAZ7TvD0k0P7sWUew = ((gmods_rI9ar5P1fR1UYngW7fmzETQ ? gmods_rI9ar5P1fR1UYngW7fmzETQ->Sup.len : 0) - 1);
		res_sRDa6p4Oy9bjT9cluf6Ex37A = ((NI) 0);
		{
			while (1) {
				if (!(res_sRDa6p4Oy9bjT9cluf6Ex37A <= HEX3Atmp_bqbzsRAZ7TvD0k0P7sWUew)) goto LA3;
				i_14GZoQqfwmk85x3QljTLQA = res_sRDa6p4Oy9bjT9cluf6Ex37A;
				result0 = gmods_rI9ar5P1fR1UYngW7fmzETQ->data[i_14GZoQqfwmk85x3QljTLQA].rd;
				{
					NIM_BOOL LOC6;
					LOC6 = (NIM_BOOL)0;
					LOC6 = !((result0 == NIM_NIL));
					if (!(LOC6)) goto LA7;
					LOC6 = ((*result0).moduleid == moduleid0);
					LA7: ;
					if (!LOC6) goto LA8;
					goto BeforeRet;
				}
				LA8: ;
				res_sRDa6p4Oy9bjT9cluf6Ex37A += ((NI) 1);
			} LA3: ;
		}
	}
	result0 = NIM_NIL;
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, rrgetsym_LN0h5wUUibshttSu5iCq5g)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, NI id0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0) {
	Tsym_AXG7xcvKqaxY6koRX1xkCw* result0;
	result0 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0;
	result0 = getordefault_ShR0uE9bMwmPl0MR60kmH3g((*r0).syms, id0);
	{
		NI d0;
		if (!(result0 == NIM_NIL)) goto LA3;
		d0 = iitableget_EgYHcx8etCrcLSUXIA9aoUw((*r0).index.tab, id0);
		{
			NI moduleid0;
			Trodreader_16TURXdqtpMMssNVfU5WqQ* rd0;
			if (!(d0 == ((NI) (-2147483647 -1)))) goto LA7;
			moduleid0 = iitableget_EgYHcx8etCrcLSUXIA9aoUw((*r0).imports.tab, id0);
			{
				NimStringDesc* x0;
				NimStringDesc* LOC13;
				if (!(moduleid0 < ((NI) 0))) goto LA11;
				x0 = copyString(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_19));
				encodevint_UxDO4XNnIGIEXt1v5wvZJQ(id0, (&x0));
				LOC13 = (NimStringDesc*)0;
				LOC13 = rawNewString(x0->Sup.len + 28);
appendString(LOC13, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_21));
appendString(LOC13, x0);
				internalerror_MXmtqrCmYwtOPkDCFgUWKQ(info0, LOC13);
			}
			LA11: ;
			rd0 = getreader_tKvg9bdgxkKmHdW1nC1DbiQ(moduleid0);
			d0 = iitableget_EgYHcx8etCrcLSUXIA9aoUw((*rd0).index.tab, id0);
			{
				if (!!((d0 == ((NI) (-2147483647 -1))))) goto LA16;
				result0 = decodesymsafepos_9atJjb5xZ4KownKCOle5Dcw(rd0, d0, info0);
			}
			goto LA14;
			LA16: ;
			{
				NimStringDesc* x0;
				NimStringDesc* LOC19;
				x0 = copyString(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_19));
				encodevint_UxDO4XNnIGIEXt1v5wvZJQ(id0, (&x0));
				LOC19 = (NimStringDesc*)0;
				LOC19 = rawNewString(x0->Sup.len + 28);
appendString(LOC19, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_22));
appendString(LOC19, x0);
				internalerror_MXmtqrCmYwtOPkDCFgUWKQ(info0, LOC19);
			}
			LA14: ;
		}
		goto LA5;
		LA7: ;
		{
			result0 = decodesymsafepos_9atJjb5xZ4KownKCOle5Dcw(r0, d0, info0);
		}
		LA5: ;
	}
	LA3: ;
	{
		NIM_BOOL LOC23;
		LOC23 = (NIM_BOOL)0;
		LOC23 = !((result0 == NIM_NIL));
		if (!(LOC23)) goto LA24;
		LOC23 = ((*result0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 22));
		LA24: ;
		if (!LOC23) goto LA25;
		rawloadstub_8lqBRdz0Xc1mefqrmXA9ceg_2(result0);
	}
	LA25: ;
	return result0;
}

N_NIMCALL(void, skipnode_9cXbacxofZHikq55hIlLxVA)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0) {
	NI par0;
	NI pos0;
	par0 = ((NI) 0);
	pos0 = (NI)((*r0).pos + ((NI) 1));
	{
		while (1) {
			switch (((NU8)((*r0).s[pos0]))) {
			case 41:
			{
				{
					if (!(par0 == ((NI) 0))) goto LA6;
					goto LA1;
				}
				LA6: ;
				par0 -= ((NI) 1);
			}
			break;
			case 40:
			{
				par0 += ((NI) 1);
			}
			break;
			default:
			{
			}
			break;
			}
			pos0 += ((NI) 1);
		}
	} LA1: ;
	(*r0).pos = (NI)(pos0 + ((NI) 1));
}

N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, decodenodelazybody_WprDv1mMNNCOcW7lB2ZCtw)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw finfo0, Tsym_AXG7xcvKqaxY6koRX1xkCw* belongsto0) {
	Tnode_bROa11lyF5vxEN9aYNbHmhw* result0;
{	result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result0 = NIM_NIL;
	{
		NI LOC9;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(40))) goto LA3;
		(*r0).pos += ((NI) 1);
		{
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(41))) goto LA7;
			(*r0).pos += ((NI) 1);
			goto BeforeRet;
		}
		LA7: ;
		LOC9 = (NI)0;
		LOC9 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		result0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) (LOC9)), finfo0);
		decodelineinfo_9aejGFhNdc8uJ9ck4Zv4GDJw(r0, (&(*result0).info));
		{
			NI LOC14;
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(36))) goto LA12;
			(*r0).pos += ((NI) 1);
			LOC14 = (NI)0;
			LOC14 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			(*result0).flags = ((Tnodeflag_jyh9acXHkhZANSSvPIY7ZLg_Set) (((NI32) (LOC14))));
		}
		LA12: ;
		{
			NI id0;
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(94))) goto LA17;
			(*r0).pos += ((NI) 1);
			id0 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			asgnRefNoCycle((void**) (&(*result0).typ), rrgettype_4NINkp2jYPkYd4N4uTT9amA(r0, id0, (*result0).info));
		}
		LA17: ;
		switch ((*result0).kind) {
		case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 15):
		{
			{
				if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(33))) goto LA22;
				(*r0).pos += ((NI) 1);
				(*result0).kindU.S1.intval = decodevbiggestint_5JGKp2eBU7Vp9cFMYv9bssUA((*r0).s, (&(*r0).pos));
			}
			LA22: ;
		}
		break;
		case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 18):
		{
			{
				NimStringDesc* fl0;
				if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(33))) goto LA27;
				(*r0).pos += ((NI) 1);
				fl0 = decodestr_STVN8cb52NB3wWUNHppyDQ((*r0).s, (&(*r0).pos));
				(*result0).kindU.S2.floatval = nsuParseFloat(fl0);
			}
			LA27: ;
		}
		break;
		case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
		{
			{
				if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(33))) goto LA32;
				(*r0).pos += ((NI) 1);
				asgnRefNoCycle((void**) (&(*result0).kindU.S3.strval), decodestr_STVN8cb52NB3wWUNHppyDQ((*r0).s, (&(*r0).pos)));
			}
			goto LA30;
			LA32: ;
			{
				NimStringDesc* LOC35;
				LOC35 = (NimStringDesc*)0;
				LOC35 = (*result0).kindU.S3.strval; (*result0).kindU.S3.strval = copyStringRC1(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_19));
				if (LOC35) nimGCunrefNoCycle(LOC35);
			}
			LA30: ;
		}
		break;
		case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 2):
		{
			{
				NimStringDesc* fl0;
				if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(33))) goto LA39;
				(*r0).pos += ((NI) 1);
				fl0 = decodestr_STVN8cb52NB3wWUNHppyDQ((*r0).s, (&(*r0).pos));
				asgnRefNoCycle((void**) (&(*result0).kindU.S5.ident), getident_Y4Yr5rKoaxkzPcN8rPP9bWA((*r0).cache, fl0));
			}
			goto LA37;
			LA39: ;
			{
				internalerror_MXmtqrCmYwtOPkDCFgUWKQ((*result0).info, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_20));
			}
			LA37: ;
		}
		break;
		case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
		{
			{
				NI id0;
				if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(33))) goto LA45;
				(*r0).pos += ((NI) 1);
				id0 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
				asgnRefNoCycle((void**) (&(*result0).kindU.S4.sym), rrgetsym_LN0h5wUUibshttSu5iCq5g(r0, id0, (*result0).info));
			}
			goto LA43;
			LA45: ;
			{
				internalerror_MXmtqrCmYwtOPkDCFgUWKQ((*result0).info, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_23));
			}
			LA43: ;
		}
		break;
		default:
		{
			NI i0;
			i0 = ((NI) 0);
			{
				while (1) {
					if (!!(((NU8)((*r0).s[(*r0).pos]) == (NU8)(41)))) goto LA50;
					{
						NIM_BOOL LOC53;
						LOC53 = (NIM_BOOL)0;
						LOC53 = !((belongsto0 == NIM_NIL));
						if (!(LOC53)) goto LA54;
						LOC53 = (i0 == ((NI) 6));
						LA54: ;
						if (!LOC53) goto LA55;
						addsonnilallowed_gCCf68XrWL79bKes6htzFjQ_2(result0, NIM_NIL);
						(*belongsto0).offset = (*r0).pos;
						skipnode_9cXbacxofZHikq55hIlLxVA(r0);
					}
					goto LA51;
					LA55: ;
					{
						Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC58;
						LOC58 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0;
						LOC58 = decodenodelazybody_WprDv1mMNNCOcW7lB2ZCtw(r0, (*result0).info, NIM_NIL);
						addsonnilallowed_gCCf68XrWL79bKes6htzFjQ_2(result0, LOC58);
					}
					LA51: ;
					i0 += ((NI) 1);
				} LA50: ;
			}
		}
		break;
		}
		{
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(41))) goto LA61;
			(*r0).pos += ((NI) 1);
		}
		goto LA59;
		LA61: ;
		{
			internalerror_MXmtqrCmYwtOPkDCFgUWKQ((*result0).info, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_24));
		}
		LA59: ;
	}
	goto LA1;
	LA3: ;
	{
		NimStringDesc* LOC65;
		NimStringDesc* LOC66;
		LOC65 = (NimStringDesc*)0;
		LOC66 = (NimStringDesc*)0;
		LOC66 = nimIntToStr((*r0).pos);
		LOC65 = rawNewString(LOC66->Sup.len + 24);
appendString(LOC65, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_25));
appendString(LOC65, LOC66);
		internalerror_MXmtqrCmYwtOPkDCFgUWKQ(finfo0, LOC65);
	}
	LA1: ;
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, decodenode_ZDhFn8mo57TbvAOtXK4b9cQ)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw finfo0) {
	Tnode_bROa11lyF5vxEN9aYNbHmhw* result0;
	result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result0 = decodenodelazybody_WprDv1mMNNCOcW7lB2ZCtw(r0, finfo0, NIM_NIL);
	return result0;
}

static N_INLINE(void, appendChar)(NimStringDesc* dest0, NIM_CHAR c0) {
	(*dest0).data[((*dest0).Sup.len)- 0] = c0;
	(*dest0).data[((NI)((*dest0).Sup.len + ((NI) 1)))- 0] = 0;
	(*dest0).Sup.len += ((NI) 1);
}

N_NIMCALL(void, decodeloc_8sUfYI2wxx8i9aM1poveVuQ)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tloc_EtHNvCB0bgfu9bFjzx9cb6aA* loc0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0) {
	{
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(60))) goto LA3;
		(*r0).pos += ((NI) 1);
		{
			NI LOC9;
			if (!(((NU8)((*r0).s[(*r0).pos])) >= ((NU8)(48)) && ((NU8)((*r0).s[(*r0).pos])) <= ((NU8)(57)) || ((NU8)((*r0).s[(*r0).pos])) >= ((NU8)(97)) && ((NU8)((*r0).s[(*r0).pos])) <= ((NU8)(122)) || ((NU8)((*r0).s[(*r0).pos])) >= ((NU8)(65)) && ((NU8)((*r0).s[(*r0).pos])) <= ((NU8)(90)))) goto LA7;
			LOC9 = (NI)0;
			LOC9 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			(*loc0).k = ((Tlockind_O7PRFZKuiBBWbku09cayVBg) (LOC9));
		}
		goto LA5;
		LA7: ;
		{
			(*loc0).k = ((Tlockind_O7PRFZKuiBBWbku09cayVBg) 0);
		}
		LA5: ;
		{
			NI LOC15;
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(42))) goto LA13;
			(*r0).pos += ((NI) 1);
			LOC15 = (NI)0;
			LOC15 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			(*loc0).s = ((Tstorageloc_JK9cKMX3XnqHaUky9b6gkGEw) (LOC15));
		}
		goto LA11;
		LA13: ;
		{
			(*loc0).s = ((Tstorageloc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
		}
		LA11: ;
		{
			NI LOC21;
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(36))) goto LA19;
			(*r0).pos += ((NI) 1);
			LOC21 = (NI)0;
			LOC21 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			(*loc0).flags = ((Tlocflag_o2bqJgR4ceIupnUSpxiudA_Set) (((NI32) (LOC21))));
		}
		goto LA17;
		LA19: ;
		{
			(*loc0).flags = 0;
		}
		LA17: ;
		{
			NI LOC27;
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(94))) goto LA25;
			(*r0).pos += ((NI) 1);
			LOC27 = (NI)0;
			LOC27 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			unsureAsgnRef((void**) (&(*loc0).t), rrgettype_4NINkp2jYPkYd4N4uTT9amA(r0, LOC27, info0));
		}
		goto LA23;
		LA25: ;
		{
			unsureAsgnRef((void**) (&(*loc0).t), NIM_NIL);
		}
		LA23: ;
		{
			NimStringDesc* LOC33;
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(33))) goto LA31;
			(*r0).pos += ((NI) 1);
			LOC33 = (NimStringDesc*)0;
			LOC33 = decodestr_STVN8cb52NB3wWUNHppyDQ((*r0).s, (&(*r0).pos));
			unsureAsgnRef((void**) (&(*loc0).r), rope_53CHEX05HP0HacydnwoUYg(LOC33));
		}
		goto LA29;
		LA31: ;
		{
			unsureAsgnRef((void**) (&(*loc0).r), NIM_NIL);
		}
		LA29: ;
		{
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(62))) goto LA37;
			(*r0).pos += ((NI) 1);
		}
		goto LA35;
		LA37: ;
		{
			NimStringDesc* LOC40;
			LOC40 = (NimStringDesc*)0;
			LOC40 = rawNewString(11);
appendString(LOC40, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_27));
appendChar(LOC40, (*r0).s[(*r0).pos]);
			internalerror_MXmtqrCmYwtOPkDCFgUWKQ(info0, LOC40);
		}
		LA35: ;
	}
	LA3: ;
}

N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, decodetype_LdNLnEXpttl5r2XnecLrvQ)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0) {
	Ttype_LTUWCZolpovw9cWE3JBWSUw* result0;
	NI LOC9;
	Tidobj_raN9cHVgzmvaXisezY9aGg9cg* LOC20;
	TNimObject* LOC21;
{	result0 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0;
	result0 = NIM_NIL;
	{
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(91))) goto LA3;
		(*r0).pos += ((NI) 1);
		{
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(93))) goto LA7;
			(*r0).pos += ((NI) 1);
			goto BeforeRet;
		}
		LA7: ;
	}
	LA3: ;
	result0 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*) newObj((&NTI_1EooIlSGbJRPSt3SfQJd7Q), sizeof(Ttype_LTUWCZolpovw9cWE3JBWSUw));
	(*result0).Sup.Sup.m_type = (&NTI_LTUWCZolpovw9cWE3JBWSUw);
	LOC9 = (NI)0;
	LOC9 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
	(*result0).kind = ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) (LOC9));
	{
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(43))) goto LA12;
		(*r0).pos += ((NI) 1);
		(*result0).Sup.id = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		setid_iA4w0aRcMn9ciJCCkQe5Uiwrodread((*result0).Sup.id);
		{
			Tidobj_raN9cHVgzmvaXisezY9aGg9cg* LOC18;
			if (!NIM_FALSE) goto LA16;
			LOC18 = (Tidobj_raN9cHVgzmvaXisezY9aGg9cg*)0;
			LOC18 = &result0->Sup;
			registerid_ZN2j9cT9c6WdU9bRORys9cZIAg(LOC18);
		}
		LA16: ;
	}
	goto LA10;
	LA12: ;
	{
		internalerror_MXmtqrCmYwtOPkDCFgUWKQ(info0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_18));
	}
	LA10: ;
	LOC20 = (Tidobj_raN9cHVgzmvaXisezY9aGg9cg*)0;
	LOC20 = &result0->Sup;
	LOC21 = (TNimObject*)0;
	LOC21 = &result0->Sup.Sup;
	idtableput_3gLsywwJ9bZDaf06DfKpYbw((&gtypetable_Cu50R2OUCmZwEpVFTyCFpQ), LOC20, LOC21);
	{
		Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw LOC26;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(40))) goto LA24;
		LOC26 = unknownlineinfo_Ad9ctQofZYxhKVXoXjdL0Fw();
		asgnRefNoCycle((void**) (&(*result0).n), decodenode_ZDhFn8mo57TbvAOtXK4b9cQ(r0, LOC26));
	}
	LA24: ;
	{
		NI LOC31;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(36))) goto LA29;
		(*r0).pos += ((NI) 1);
		LOC31 = (NI)0;
		LOC31 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		(*result0).flags = ((Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw_Set) (((NI32) (LOC31))));
	}
	LA29: ;
	{
		NI LOC36;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(63))) goto LA34;
		(*r0).pos += ((NI) 1);
		LOC36 = (NI)0;
		LOC36 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		(*result0).callconv = ((Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA) (LOC36));
	}
	LA34: ;
	{
		NI LOC41;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(42))) goto LA39;
		(*r0).pos += ((NI) 1);
		LOC41 = (NI)0;
		LOC41 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		asgnRefNoCycle((void**) (&(*result0).owner), rrgetsym_LN0h5wUUibshttSu5iCq5g(r0, LOC41, info0));
	}
	LA39: ;
	{
		NI LOC46;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(38))) goto LA44;
		(*r0).pos += ((NI) 1);
		LOC46 = (NI)0;
		LOC46 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		asgnRefNoCycle((void**) (&(*result0).sym), rrgetsym_LN0h5wUUibshttSu5iCq5g(r0, LOC46, info0));
	}
	LA44: ;
	{
		NI LOC51;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(47))) goto LA49;
		(*r0).pos += ((NI) 1);
		LOC51 = (NI)0;
		LOC51 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		(*result0).size = ((NI64) (LOC51));
	}
	goto LA47;
	LA49: ;
	{
		(*result0).size = IL64(-1);
	}
	LA47: ;
	{
		NI LOC57;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(61))) goto LA55;
		(*r0).pos += ((NI) 1);
		LOC57 = (NI)0;
		LOC57 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		(*result0).align = ((NI16) (LOC57));
	}
	goto LA53;
	LA55: ;
	{
		(*result0).align = ((NI16) 2);
	}
	LA53: ;
	{
		NI LOC63;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(14))) goto LA61;
		(*r0).pos += ((NI) 1);
		LOC63 = (NI)0;
		LOC63 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		(*result0).locklevel = ((NI16) (LOC63));
	}
	goto LA59;
	LA61: ;
	{
		(*result0).locklevel = ((NI16) -1);
	}
	LA59: ;
	{
		NI LOC69;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(15))) goto LA67;
		(*r0).pos += ((NI) 1);
		LOC69 = (NI)0;
		LOC69 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		asgnRefNoCycle((void**) (&(*result0).destructor), rrgetsym_LN0h5wUUibshttSu5iCq5g(r0, LOC69, info0));
	}
	LA67: ;
	{
		NI LOC74;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(16))) goto LA72;
		(*r0).pos += ((NI) 1);
		LOC74 = (NI)0;
		LOC74 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		asgnRefNoCycle((void**) (&(*result0).deepcopy), rrgetsym_LN0h5wUUibshttSu5iCq5g(r0, LOC74, info0));
	}
	LA72: ;
	{
		NI LOC79;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(17))) goto LA77;
		(*r0).pos += ((NI) 1);
		LOC79 = (NI)0;
		LOC79 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		asgnRefNoCycle((void**) (&(*result0).assignment), rrgetsym_LN0h5wUUibshttSu5iCq5g(r0, LOC79, info0));
	}
	LA77: ;
	{
		while (1) {
			NI x0;
			Tsym_AXG7xcvKqaxY6koRX1xkCw* y0;
			NI LOC86;
			TY_a09bGTAl9ceOKTAytYdkbyKg LOC87;
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(18))) goto LA81;
			(*r0).pos += ((NI) 1);
			x0 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			{
				if (!!(((NU8)((*r0).s[(*r0).pos]) == (NU8)(19)))) goto LA84;
				raiseassert_PpfSiTIeNpMAb9a5o6SglJw_2(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_26));
			}
			LA84: ;
			(*r0).pos += ((NI) 1);
			LOC86 = (NI)0;
			LOC86 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			y0 = rrgetsym_LN0h5wUUibshttSu5iCq5g(r0, LOC86, info0);
			memset((void*)(&LOC87), 0, sizeof(LOC87));
			LOC87.Field0 = x0;
			LOC87.Field1 = y0;
			safeadd_XuI5bupZeUeWgjk44qSPBA((&(*result0).methods), LOC87);
		} LA81: ;
	}
	decodeloc_8sUfYI2wxx8i9aM1poveVuQ(r0, (&(*result0).loc), info0);
	{
		while (1) {
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(94))) goto LA89;
			(*r0).pos += ((NI) 1);
			{
				if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(40))) goto LA92;
				(*r0).pos += ((NI) 1);
				{
					if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(41))) goto LA96;
					(*r0).pos += ((NI) 1);
				}
				goto LA94;
				LA96: ;
				{
					NimStringDesc* LOC99;
					LOC99 = (NimStringDesc*)0;
					LOC99 = rawNewString(14);
appendString(LOC99, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_28));
appendChar(LOC99, (*r0).s[(*r0).pos]);
					internalerror_MXmtqrCmYwtOPkDCFgUWKQ(info0, LOC99);
				}
				LA94: ;
				rawaddson_52UH8yKinsYmFX9bFij9c2Hw(result0, NIM_NIL);
			}
			goto LA90;
			LA92: ;
			{
				NI d0;
				Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC101;
				d0 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
				LOC101 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0;
				LOC101 = rrgettype_4NINkp2jYPkYd4N4uTT9amA(r0, d0, info0);
				rawaddson_52UH8yKinsYmFX9bFij9c2Hw(result0, LOC101);
			}
			LA90: ;
		} LA89: ;
	}
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, rrgettype_4NINkp2jYPkYd4N4uTT9amA)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, NI id0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0) {
	Ttype_LTUWCZolpovw9cWE3JBWSUw* result0;
	TNimObject* LOC1;
	result0 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0;
	LOC1 = (TNimObject*)0;
	LOC1 = idtableget_Z0OPsM9b7rlHUCmy4XL0CMw(gtypetable_Cu50R2OUCmZwEpVFTyCFpQ, id0);
	result0 = ((Ttype_LTUWCZolpovw9cWE3JBWSUw*) (LOC1));
	{
		NI oldpos0;
		NI d0;
		if (!(result0 == NIM_NIL)) goto LA4;
		oldpos0 = (*r0).pos;
		d0 = iitableget_EgYHcx8etCrcLSUXIA9aoUw((*r0).index.tab, id0);
		{
			if (!(d0 == ((NI) (-2147483647 -1)))) goto LA8;
			internalerror_MXmtqrCmYwtOPkDCFgUWKQ(info0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_17));
		}
		LA8: ;
		(*r0).pos = (NI)(d0 + (*r0).dataidx);
		result0 = decodetype_LdNLnEXpttl5r2XnecLrvQ(r0, info0);
		(*r0).pos = oldpos0;
	}
	LA4: ;
	return result0;
}

N_NIMCALL(Tlib_4f9aBgmqEuj7uWJdBBGcRgA*, decodelib_Kg7cOaRrIC442JmSu4RcVw)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0) {
	Tlib_4f9aBgmqEuj7uWJdBBGcRgA* result0;
	result0 = (Tlib_4f9aBgmqEuj7uWJdBBGcRgA*)0;
	result0 = NIM_NIL;
	{
		NI LOC5;
		NimStringDesc* LOC10;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(124))) goto LA3;
		result0 = (Tlib_4f9aBgmqEuj7uWJdBBGcRgA*) newObj((&NTI_r6yKYSPSeen50D8ZMu4UkQ), sizeof(Tlib_4f9aBgmqEuj7uWJdBBGcRgA));
		(*result0).Sup.Sup.m_type = (&NTI_4f9aBgmqEuj7uWJdBBGcRgA);
		(*r0).pos += ((NI) 1);
		LOC5 = (NI)0;
		LOC5 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		(*result0).kind = ((Tlibkind_9b8v60kso59bBaw9cp8B9a9apKQ) (LOC5));
		{
			if (!!(((NU8)((*r0).s[(*r0).pos]) == (NU8)(124)))) goto LA8;
			internalerror_5XY9cUy7hZmUusM38U9cYYdw(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_29));
		}
		LA8: ;
		(*r0).pos += ((NI) 1);
		LOC10 = (NimStringDesc*)0;
		LOC10 = decodestr_STVN8cb52NB3wWUNHppyDQ((*r0).s, (&(*r0).pos));
		asgnRefNoCycle((void**) (&(*result0).name), rope_53CHEX05HP0HacydnwoUYg(LOC10));
		{
			if (!!(((NU8)((*r0).s[(*r0).pos]) == (NU8)(124)))) goto LA13;
			internalerror_5XY9cUy7hZmUusM38U9cYYdw(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_30));
		}
		LA13: ;
		(*r0).pos += ((NI) 1);
		asgnRefNoCycle((void**) (&(*result0).path), decodenode_ZDhFn8mo57TbvAOtXK4b9cQ(r0, info0));
	}
	LA3: ;
	return result0;
}

static N_INLINE(void, incref_9cAA5YuQAAC3MVbnGeV86swsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) {
	(*c0).refcount = (NI)((NU32)((*c0).refcount) + (NU32)(((NI) 8)));
}

static N_INLINE(void, decref_MV4BBk6J1qu70IbBxwEn4wsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) {
	{
		(*c0).refcount -= ((NI) 8);
		if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA3;
		rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0);
	}
	LA3: ;
}

static N_INLINE(void, asgnRef)(void** dest0, void* src0) {
	{
		Cell_1zcF9cV8XIAtbN8h5HRUB8g* LOC5;
		if (!!((src0 == NIM_NIL))) goto LA3;
		LOC5 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		LOC5 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src0);
		incref_9cAA5YuQAAC3MVbnGeV86swsystem(LOC5);
	}
	LA3: ;
	{
		Cell_1zcF9cV8XIAtbN8h5HRUB8g* LOC10;
		if (!!(((*dest0) == NIM_NIL))) goto LA8;
		LOC10 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		LOC10 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest0));
		decref_MV4BBk6J1qu70IbBxwEn4wsystem(LOC10);
	}
	LA8: ;
	(*dest0) = src0;
}

N_NIMCALL(void, decodeinstantiations_Ix6zQdI2iKmpaSjQnuakiQ)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, TY_DXS6mEo7PVUFJkirsQ9bNQA** s0) {
	{
		while (1) {
			Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA* ii0;
			NI LOC3;
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(15))) goto LA2;
			(*r0).pos += ((NI) 1);
			ii0 = (Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA*)0;
			ii0 = (Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA*) newObj((&NTI_Y32tFilzS9adEEksgrCsOzQ), sizeof(Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA));
			LOC3 = (NI)0;
			LOC3 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			asgnRefNoCycle((void**) (&(*ii0).sym), rrgetsym_LN0h5wUUibshttSu5iCq5g(r0, LOC3, info0));
			if ((*ii0).concretetypes) nimGCunrefNoCycle((*ii0).concretetypes);
			(*ii0).concretetypes = (TY_zuqP4Riz26Oi5fWgPYVEgA*) newSeqRC1((&NTI_zuqP4Riz26Oi5fWgPYVEgA), 0);
			{
				while (1) {
					NI LOC6;
					Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC7;
					if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(17))) goto LA5;
					(*r0).pos += ((NI) 1);
					LOC6 = (NI)0;
					LOC6 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
					LOC7 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0;
					LOC7 = rrgettype_4NINkp2jYPkYd4N4uTT9amA(r0, LOC6, info0);
					(*ii0).concretetypes = (TY_zuqP4Riz26Oi5fWgPYVEgA*) incrSeqV2(&((*ii0).concretetypes)->Sup, sizeof(Ttype_LTUWCZolpovw9cWE3JBWSUw*));
					asgnRefNoCycle((void**) (&(*ii0).concretetypes->data[(*ii0).concretetypes->Sup.len]), LOC7);
					++(*ii0).concretetypes->Sup.len;
				} LA5: ;
			}
			{
				if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(20))) goto LA10;
				(*r0).pos += ((NI) 1);
				(*ii0).compilesid = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			}
			LA10: ;
			safeadd_159bXvKbDCwtLAAM9au9cb2iw(s0, ii0);
		} LA2: ;
	}
}

N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, decodesym_xBDPIbwGR7xnDnCO21Sb1A)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0) {
	Tsym_AXG7xcvKqaxY6koRX1xkCw* result0;
	NI id0;
	Tident_4umxGerWTHGPwUms7Yqu3g* ident0;
	Tsymkind_cNCW9acsSznmEccl1fgQwkw k0;
	NI LOC9;
{	result0 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0;
	id0 = (NI)0;
	ident0 = (Tident_4umxGerWTHGPwUms7Yqu3g*)0;
	result0 = NIM_NIL;
	{
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(123))) goto LA3;
		(*r0).pos += ((NI) 1);
		{
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(125))) goto LA7;
			(*r0).pos += ((NI) 1);
			goto BeforeRet;
		}
		LA7: ;
	}
	LA3: ;
	LOC9 = (NI)0;
	LOC9 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
	k0 = ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) (LOC9));
	{
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(43))) goto LA12;
		(*r0).pos += ((NI) 1);
		id0 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		setid_iA4w0aRcMn9ciJCCkQe5Uiwrodread(id0);
	}
	goto LA10;
	LA12: ;
	{
		internalerror_MXmtqrCmYwtOPkDCFgUWKQ(info0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_14));
	}
	LA10: ;
	{
		NimStringDesc* LOC19;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(38))) goto LA17;
		(*r0).pos += ((NI) 1);
		LOC19 = (NimStringDesc*)0;
		LOC19 = decodestr_STVN8cb52NB3wWUNHppyDQ((*r0).s, (&(*r0).pos));
		ident0 = getident_Y4Yr5rKoaxkzPcN8rPP9bWA((*r0).cache, LOC19);
	}
	goto LA15;
	LA17: ;
	{
		internalerror_MXmtqrCmYwtOPkDCFgUWKQ(info0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_15));
	}
	LA15: ;
	result0 = getordefault_ShR0uE9bMwmPl0MR60kmH3g((*r0).syms, id0);
	{
		if (!(result0 == NIM_NIL)) goto LA23;
		result0 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*) newObj((&NTI_83n62yi1b9bgUtRR9axFWW9ag), sizeof(Tsym_AXG7xcvKqaxY6koRX1xkCw));
		(*result0).Sup.Sup.m_type = (&NTI_AXG7xcvKqaxY6koRX1xkCw);
		(*result0).Sup.id = id0;
		HEX5BHEX5DHEX3D_rmyyXMOU9cTYfzq59cG09cIIA((&(*r0).syms), (*result0).Sup.id, result0);
		{
			Tidobj_raN9cHVgzmvaXisezY9aGg9cg* LOC29;
			if (!NIM_FALSE) goto LA27;
			LOC29 = (Tidobj_raN9cHVgzmvaXisezY9aGg9cg*)0;
			LOC29 = &result0->Sup;
			registerid_ZN2j9cT9c6WdU9bRORys9cZIAg(LOC29);
		}
		LA27: ;
	}
	goto LA21;
	LA23: ;
	{
		if (!!(((*result0).Sup.id == id0))) goto LA31;
		internalerror_MXmtqrCmYwtOPkDCFgUWKQ(info0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_16));
	}
	goto LA21;
	LA31: ;
	{
		NIM_BOOL LOC34;
		LOC34 = (NIM_BOOL)0;
		LOC34 = !(((*result0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 22)));
		if (!(LOC34)) goto LA35;
		LOC34 = !((*r0).inviewmode);
		LA35: ;
		if (!LOC34) goto LA36;
		goto BeforeRet;
	}
	goto LA21;
	LA36: ;
	{
		genericReset((void*)(&(*result0)), (&NTI_AXG7xcvKqaxY6koRX1xkCw));
		(*result0).Sup.id = id0;
	}
	LA21: ;
	(*result0).kind = k0;
	asgnRefNoCycle((void**) (&(*result0).name), ident0);
	{
		NI LOC43;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(94))) goto LA41;
		(*r0).pos += ((NI) 1);
		LOC43 = (NI)0;
		LOC43 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		asgnRefNoCycle((void**) (&(*result0).typ), rrgettype_4NINkp2jYPkYd4N4uTT9amA(r0, LOC43, info0));
	}
	LA41: ;
	decodelineinfo_9aejGFhNdc8uJ9ck4Zv4GDJw(r0, (&(*result0).info));
	{
		NI LOC48;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(42))) goto LA46;
		(*r0).pos += ((NI) 1);
		LOC48 = (NI)0;
		LOC48 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		asgnRefNoCycle((void**) (&(*result0).owner), rrgetsym_LN0h5wUUibshttSu5iCq5g(r0, LOC48, (*result0).info));
	}
	LA46: ;
	{
		NI LOC53;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(36))) goto LA51;
		(*r0).pos += ((NI) 1);
		LOC53 = (NI)0;
		LOC53 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		(*result0).flags = ((Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw_Set) (((NI32) (LOC53))));
	}
	LA51: ;
	{
		NI LOC58;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(64))) goto LA56;
		(*r0).pos += ((NI) 1);
		LOC58 = (NI)0;
		LOC58 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		(*result0).magic = ((Tmagic_shZhZOdbVC5nnFvcXQAImg) (LOC58));
	}
	LA56: ;
	{
		NI LOC63;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(33))) goto LA61;
		(*r0).pos += ((NI) 1);
		LOC63 = (NI)0;
		LOC63 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
		(*result0).options = ((Toption_WspMeQySXNP2XoTWR5MTgg_Set) (((NI32) (LOC63))));
	}
	goto LA59;
	LA61: ;
	{
		(*result0).options = (*r0).options;
	}
	LA59: ;
	{
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(37))) goto LA67;
		(*r0).pos += ((NI) 1);
		(*result0).position = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
	}
	goto LA65;
	LA67: ;
	{
		if (!!(((258112 &(1U<<((NU)((*result0).kind)&31U)))!=0))) goto LA70;
		(*result0).position = ((NI) 0);
	}
	goto LA65;
	LA70: ;
	LA65: ;
	{
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(96))) goto LA74;
		(*r0).pos += ((NI) 1);
		(*result0).offset = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
	}
	goto LA72;
	LA74: ;
	{
		(*result0).offset = ((NI) -1);
	}
	LA72: ;
	decodeloc_8sUfYI2wxx8i9aM1poveVuQ(r0, (&(*result0).loc), (*result0).info);
	asgnRef((void**) (&(*result0).annex), decodelib_Kg7cOaRrIC442JmSu4RcVw(r0, info0));
	{
		Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw LOC81;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(35))) goto LA79;
		(*r0).pos += ((NI) 1);
		LOC81 = unknownlineinfo_Ad9ctQofZYxhKVXoXjdL0Fw();
		asgnRefNoCycle((void**) (&(*result0).constraint), decodenode_ZDhFn8mo57TbvAOtXK4b9cQ(r0, LOC81));
	}
	LA79: ;
	switch ((*result0).kind) {
	case ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 7):
	case ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 4):
	{
		{
			while (1) {
				NI LOC85;
				Ttype_LTUWCZolpovw9cWE3JBWSUw* LOC86;
				if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(14))) goto LA84;
				(*r0).pos += ((NI) 1);
				LOC85 = (NI)0;
				LOC85 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
				LOC86 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0;
				LOC86 = rrgettype_4NINkp2jYPkYd4N4uTT9amA(r0, LOC85, (*result0).info);
				safeadd_VD4SAHgDoDEHV5x9bi89cbwA((&(*result0).kindU.S1.typeinstcache), LOC86);
			} LA84: ;
		}
	}
	break;
	case ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 12):
	case ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 13):
	case ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 14):
	case ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 15):
	case ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 16):
	case ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 17):
	{
		decodeinstantiations_Ix6zQdI2iKmpaSjQnuakiQ(r0, (*result0).info, (&(*result0).kindU.S2.procinstcache));
		{
			NI LOC92;
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(16))) goto LA90;
			(*r0).pos += ((NI) 1);
			LOC92 = (NI)0;
			LOC92 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			asgnRefNoCycle((void**) (&(*result0).kindU.S2.gcunsafetyreason), rrgetsym_LN0h5wUUibshttSu5iCq5g(r0, LOC92, (*result0).info));
		}
		LA90: ;
	}
	break;
	case ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 6):
	case ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 23):
	{
		decodeinstantiations_Ix6zQdI2iKmpaSjQnuakiQ(r0, (*result0).info, (&(*result0).kindU.S3.usedgenerics));
	}
	break;
	case ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 9):
	case ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 8):
	case ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 18):
	case ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 20):
	{
		{
			NI LOC99;
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(18))) goto LA97;
			(*r0).pos += ((NI) 1);
			LOC99 = (NI)0;
			LOC99 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			asgnRefNoCycle((void**) (&(*result0).kindU.S4.guard), rrgetsym_LN0h5wUUibshttSu5iCq5g(r0, LOC99, (*result0).info));
		}
		LA97: ;
		{
			NI LOC104;
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(19))) goto LA102;
			(*r0).pos += ((NI) 1);
			LOC104 = (NI)0;
			LOC104 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			(*result0).kindU.S4.bitsize = ((NI) (((NI16) (LOC104))));
		}
		LA102: ;
	}
	break;
	default:
	{
	}
	break;
	}
	{
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(40))) goto LA108;
		{
			if (!((258048 &(1U<<((NU)((*result0).kind)&31U)))!=0)) goto LA112;
			asgnRefNoCycle((void**) (&(*result0).ast), decodenodelazybody_WprDv1mMNNCOcW7lB2ZCtw(r0, (*result0).info, result0));
			(*result0).position = (*r0).readerindex;
		}
		goto LA110;
		LA112: ;
		{
			asgnRefNoCycle((void**) (&(*result0).ast), decodenode_ZDhFn8mo57TbvAOtXK4b9cQ(r0, (*result0).info));
		}
		LA110: ;
	}
	LA108: ;
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, decodesymsafepos_9atJjb5xZ4KownKCOle5Dcw)(Trodreader_16TURXdqtpMMssNVfU5WqQ* rd0, NI offset0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0) {
	Tsym_AXG7xcvKqaxY6koRX1xkCw* result0;
	NI oldpos0;
	result0 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0;
	{
		if (!((*rd0).dataidx == ((NI) 0))) goto LA3;
		internalerror_MXmtqrCmYwtOPkDCFgUWKQ(info0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_13));
	}
	LA3: ;
	oldpos0 = (*rd0).pos;
	(*rd0).pos = (NI)(offset0 + (*rd0).dataidx);
	result0 = decodesym_xBDPIbwGR7xnDnCO21Sb1A(rd0, info0);
	(*rd0).pos = oldpos0;
	return result0;
}

N_NIMCALL(void, rawloadstub_8lqBRdz0Xc1mefqrmXA9ceg_2)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0) {
	Trodreader_16TURXdqtpMMssNVfU5WqQ* rd0;
	NI theid0;
	NI d0;
	Tsym_AXG7xcvKqaxY6koRX1xkCw* rs0;
	Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw LOC9;
	{
		if (!!(((*s0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 22)))) goto LA3;
		internalerror_5XY9cUy7hZmUusM38U9cYYdw(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_11));
	}
	LA3: ;
	rd0 = gmods_rI9ar5P1fR1UYngW7fmzETQ->data[(*s0).position].rd;
	theid0 = (*s0).Sup.id;
	d0 = iitableget_EgYHcx8etCrcLSUXIA9aoUw((*rd0).index.tab, (*s0).Sup.id);
	{
		if (!(d0 == ((NI) (-2147483647 -1)))) goto LA7;
		internalerror_5XY9cUy7hZmUusM38U9cYYdw(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_12));
	}
	LA7: ;
	LOC9 = unknownlineinfo_Ad9ctQofZYxhKVXoXjdL0Fw();
	rs0 = decodesymsafepos_9atJjb5xZ4KownKCOle5Dcw(rd0, d0, LOC9);
	{
		if (!!((rs0 == s0))) goto LA12;
		internalerror_MXmtqrCmYwtOPkDCFgUWKQ((*rs0).info, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_31));
	}
	goto LA10;
	LA12: ;
	{
		if (!!(((*rs0).Sup.id == theid0))) goto LA15;
		internalerror_MXmtqrCmYwtOPkDCFgUWKQ((*rs0).info, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_32));
	}
	goto LA10;
	LA15: ;
	LA10: ;
}

static N_INLINE(void, Gcenable_neD9cJp4S9clvdaq5qqNFZAQ_2rodread)(void) {
	{
		if (!(((NI) 0) < gch_IcYaEuuWivYAS86vFMTS3Q.recgclock)) goto LA3;
		gch_IcYaEuuWivYAS86vFMTS3Q.recgclock -= ((NI) 1);
	}
	LA3: ;
}

N_NIMCALL(void, loadstub_8lqBRdz0Xc1mefqrmXA9ceg)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0) {
	Gcdisable_neD9cJp4S9clvdaq5qqNFZAQrodread();
	rawloadstub_8lqBRdz0Xc1mefqrmXA9ceg_2(s0);
	Gcenable_neD9cJp4S9clvdaq5qqNFZAQ_2rodread();
}

static N_INLINE(NI, len_CdME9baJhvveuPEDZE9bXoxAlambdalifting)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0) {
	NI result0;
	result0 = (NI)0;
	{
		if (!((*n0).kindU.S6.sons == 0)) goto LA3;
		result0 = ((NI) 0);
	}
	goto LA1;
	LA3: ;
	{
		result0 = ((*n0).kindU.S6.sons ? (*n0).kindU.S6.sons->Sup.len : 0);
	}
	LA1: ;
	return result0;
}

N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, getbody_eMf5HLowckpW9cDxAV9bNIZw)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0) {
	Tnode_bROa11lyF5vxEN9aYNbHmhw* result0;
{	result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = (NIM_BOOL)0;
		LOC3 = ((*s0).ast == 0);
		if (LOC3) goto LA4;
		LOC5 = (NI)0;
		LOC5 = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting((*s0).ast);
		LOC3 = (LOC5 <= ((NI) 6));
		LA4: ;
		if (!LOC3) goto LA6;
		result0 = emptynode_69ccLGuQ2mITw7zylZYtWcA;
		goto BeforeRet;
	}
	LA6: ;
	result0 = (*(*s0).ast).kindU.S6.sons->data[((NI) 6)];
	{
		Trodreader_16TURXdqtpMMssNVfU5WqQ* r0;
		NI oldpos0;
		if (!(result0 == NIM_NIL)) goto LA10;
		r0 = gmods_rI9ar5P1fR1UYngW7fmzETQ->data[(*s0).position].rd;
		oldpos0 = (*r0).pos;
		(*r0).pos = (*s0).offset;
		result0 = decodenode_ZDhFn8mo57TbvAOtXK4b9cQ(r0, (*s0).info);
		(*r0).pos = oldpos0;
		asgnRefNoCycle((void**) (&(*(*s0).ast).kindU.S6.sons->data[((NI) 6)]), result0);
		(*s0).offset = ((NI) 0);
	}
	LA10: ;
	}BeforeRet: ;
	return result0;
}

static N_INLINE(NI, getid_2S0wtMB4mi8h75E9a7bA6mAast)(void) {
	NI result0;
	result0 = (NI)0;
	result0 = gfrontendid_gyRrMPnY7JyC6tAu9bCfGng;
	gfrontendid_gyRrMPnY7JyC6tAu9bCfGng += ((NI) 1);
	return result0;
}

N_NIMCALL(void, gethash_XlA8spTQdk2eCaGCzixyPg)(NI32 fileidx0, TY_YtcvxHNKV4YiecPE9ap1mcA Result) {
	NimStringDesc* LOC12;
{	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		LOC3 = (NIM_BOOL)0;
		LOC3 = (((NI32) 0) <= fileidx0);
		if (!(LOC3)) goto LA4;
		LOC3 = (((NI) (fileidx0)) < (gmods_rI9ar5P1fR1UYngW7fmzETQ ? gmods_rI9ar5P1fR1UYngW7fmzETQ->Sup.len : 0));
		LA4: ;
		if (!!(LOC3)) goto LA5;
		LOC7 = (NimStringDesc*)0;
		LOC7 = HEX24_k53Ge4e9cDjc7y9c5uML7sPQ(T_cQ0PrUjHdJJ4mT9bXnGeWmg_34);
		internalerror_5XY9cUy7hZmUusM38U9cYYdw(LOC7);
	}
	LA5: ;
	{
		if (!gmods_rI9ar5P1fR1UYngW7fmzETQ->data[fileidx0].hashdone) goto LA10;
		memcpy((void*)Result, (NIM_CONST void*)gmods_rI9ar5P1fR1UYngW7fmzETQ->data[fileidx0].hash, sizeof(TY_YtcvxHNKV4YiecPE9ap1mcA));
		goto BeforeRet;
	}
	LA10: ;
	LOC12 = (NimStringDesc*)0;
	LOC12 = tofullpath_7s19cb7WBgztz9aqEBzwwuqA(fileidx0);
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_YtcvxHNKV4YiecPE9ap1mcA));
	securehashfile_WH9bD1JrTXe4j39astgya4oA(LOC12, Result);
	memcpy((void*)gmods_rI9ar5P1fR1UYngW7fmzETQ->data[fileidx0].hash, (NIM_CONST void*)Result, sizeof(TY_YtcvxHNKV4YiecPE9ap1mcA));
	}BeforeRet: ;
}

static N_INLINE(void, pushSafePoint)(TSafePoint* s0) {
	(*s0).hasRaiseAction = NIM_FALSE;
	(*s0).prev = exchandler_rqLlY5bs9atDw2OXYqJEn5g;
	exchandler_rqLlY5bs9atDw2OXYqJEn5g = s0;
}

static N_INLINE(void, popSafePoint)(void) {
	exchandler_rqLlY5bs9atDw2OXYqJEn5g = (*exchandler_rqLlY5bs9atDw2OXYqJEn5g).prev;
}

static N_INLINE(Exception*, getCurrentException)(void) {
	Exception* result0;
	result0 = (Exception*)0;
	result0 = currexception_9bVPeDJlYTi9bQApZpfH8wjg;
	return result0;
}

static N_INLINE(void, popCurrentException)(void) {
	asgnRef((void**) (&currexception_9bVPeDJlYTi9bQApZpfH8wjg), NIM_NIL);
}

N_NIMCALL(NIM_BOOL, startswith_wWTy3eZ1Pbuw19cpCXJ4a9cg)(NCSTRING buf0, NimStringDesc* token0, NI pos0) {
	NIM_BOOL result0;
	NI s0;
	result0 = (NIM_BOOL)0;
	s0 = ((NI) 0);
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = (NIM_BOOL)0;
			LOC3 = (s0 < (token0 ? token0->Sup.len : 0));
			if (!(LOC3)) goto LA4;
			LOC3 = ((NU8)(buf0[(NI)(pos0 + s0)]) == (NU8)(token0->data[s0]));
			LA4: ;
			if (!LOC3) goto LA2;
			s0 += ((NI) 1);
		} LA2: ;
	}
	result0 = (s0 == (token0 ? token0->Sup.len : 0));
	return result0;
}

static N_INLINE(NIM_BOOL, equalmem_DCrUjdaMvFDHaR1hs7sQGwropes)(void* a0, void* b0, NI size0) {
	NIM_BOOL result0;
	int LOC1;
	result0 = (NIM_BOOL)0;
	LOC1 = (int)0;
	LOC1 = memcmp(a0, b0, ((size_t) (size0)));
	result0 = (LOC1 == ((NI32) 0));
	return result0;
}

static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a0, NimStringDesc* b0) {
	NIM_BOOL result0;
	NIM_BOOL LOC11;
{	result0 = (NIM_BOOL)0;
	{
		if (!(a0 == b0)) goto LA3;
		result0 = NIM_TRUE;
		goto BeforeRet;
	}
	LA3: ;
	{
		NIM_BOOL LOC7;
		LOC7 = (NIM_BOOL)0;
		LOC7 = (a0 == NIM_NIL);
		if (LOC7) goto LA8;
		LOC7 = (b0 == NIM_NIL);
		LA8: ;
		if (!LOC7) goto LA9;
		result0 = NIM_FALSE;
		goto BeforeRet;
	}
	LA9: ;
	LOC11 = (NIM_BOOL)0;
	LOC11 = ((*a0).Sup.len == (*b0).Sup.len);
	if (!(LOC11)) goto LA12;
	LOC11 = equalmem_DCrUjdaMvFDHaR1hs7sQGwropes(((void*) ((*a0).data)), ((void*) ((*b0).data)), ((NI) ((*a0).Sup.len)));
	LA12: ;
	result0 = LOC11;
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(Trodreader_16TURXdqtpMMssNVfU5WqQ*, newrodreader_kKrvFNyTyKr29bjL4vJHmag)(NimStringDesc* modfilename0, TY_YtcvxHNKV4YiecPE9ap1mcA hash0, NI readerindex0, IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* cache0) {
	Trodreader_16TURXdqtpMMssNVfU5WqQ* result0;
	TSafePoint T_cQ0PrUjHdJJ4mT9bXnGeWmg_37;
	Trodreader_16TURXdqtpMMssNVfU5WqQ* r0;
	NimStringDesc* LOC4;
{	result0 = (Trodreader_16TURXdqtpMMssNVfU5WqQ*)0;
	result0 = (Trodreader_16TURXdqtpMMssNVfU5WqQ*) newObj((&NTI_Eh4s09cJuhHxR86Hgdowx5Q), sizeof(Trodreader_16TURXdqtpMMssNVfU5WqQ));
	(*result0).Sup.m_type = (&NTI_16TURXdqtpMMssNVfU5WqQ);
	asgnRefNoCycle((void**) (&(*result0).cache), cache0);
	pushSafePoint(&T_cQ0PrUjHdJJ4mT9bXnGeWmg_37);
	T_cQ0PrUjHdJJ4mT9bXnGeWmg_37.status = setjmp(T_cQ0PrUjHdJJ4mT9bXnGeWmg_37.context);
	if (T_cQ0PrUjHdJJ4mT9bXnGeWmg_37.status == 0) {
		(*result0).memfile = open_ZMwdj9bPZN6r75n0Xmlofkg(modfilename0, ((Filemode_fVUBHvW79bXUw1j55Oo9avSQ) 0), ((NI) -1), ((NI) 0), ((NI) -1));
		popSafePoint();
	}
	else {
		popSafePoint();
		if (isObj(getCurrentException()->Sup.m_type, (&NTI_3XwRQvmzCEOC4QnT706q1g))) {
			T_cQ0PrUjHdJJ4mT9bXnGeWmg_37.status = 0;
			result0 = NIM_NIL;
			popCurrentException();
			goto BeforeRet;
			popCurrentException();
		}
	}
	if (T_cQ0PrUjHdJJ4mT9bXnGeWmg_37.status != 0) reraiseException();
	if ((*result0).files) nimGCunrefNoCycle((*result0).files);
	(*result0).files = (TY_48JTohSgTy339bRxHzUD8KA*) newSeqRC1((&NTI_48JTohSgTy339bRxHzUD8KA), 0);
	if ((*result0).moddeps) nimGCunrefNoCycle((*result0).moddeps);
	(*result0).moddeps = (TY_48JTohSgTy339bRxHzUD8KA*) newSeqRC1((&NTI_48JTohSgTy339bRxHzUD8KA), 0);
	if ((*result0).methods) nimGCunrefNoCycle((*result0).methods);
	(*result0).methods = (TY_sksVpmPRIkNR9axiwtD1Guw*) newSeqRC1((&NTI_sksVpmPRIkNR9axiwtD1Guw), 0);
	r0 = result0;
	(*r0).reason = ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 1);
	(*r0).pos = ((NI) 0);
	(*r0).line = ((NI) 1);
	(*r0).readerindex = readerindex0;
	LOC4 = (NimStringDesc*)0;
	LOC4 = (*r0).filename; (*r0).filename = copyStringRC1(modfilename0);
	if (LOC4) nimGCunrefNoCycle(LOC4);
	inittable_RWV8dDCL9bQLrrCYa5jJV9cg(((NI) 64), (&(*r0).syms));
	(*r0).s = ((NCSTRING) ((*r0).memfile.mem));
	{
		NIM_BOOL LOC7;
		NimStringDesc* version0;
		LOC7 = (NIM_BOOL)0;
		LOC7 = startswith_wWTy3eZ1Pbuw19cpCXJ4a9cg((*r0).s, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_38), ((NI) 0));
		if (!LOC7) goto LA8;
		initiitable_IfyJxQyI39a9aYH4RvM9cSJsg((&(*r0).index.tab));
		initiitable_IfyJxQyI39a9aYH4RvM9cSJsg((&(*r0).imports.tab));
		(*r0).pos += ((NI) 4);
		version0 = copyString(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_19));
		{
			while (1) {
				if (!!((((NU8)((*r0).s[(*r0).pos])) == ((NU8)(0)) || ((NU8)((*r0).s[(*r0).pos])) == ((NU8)(10))))) goto LA11;
				version0 = addChar(version0, (*r0).s[(*r0).pos]);
				(*r0).pos += ((NI) 1);
			} LA11: ;
		}
		{
			if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(10))) goto LA14;
			(*r0).pos += ((NI) 1);
		}
		LA14: ;
		{
			if (!!(eqStrings(version0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_39)))) goto LA18;
			close_nK8O9cRK8tfFl5he9bLSP9bNQ((&(*result0).memfile));
			result0 = NIM_NIL;
		}
		LA18: ;
	}
	goto LA5;
	LA8: ;
	{
		close_nK8O9cRK8tfFl5he9bLSP9bNQ((&(*result0).memfile));
		result0 = NIM_NIL;
	}
	LA5: ;
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(NimStringDesc*, rdword_vKTFYqB4WarZoWmf9aWf1Sw)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0) {
	NimStringDesc* result0;
	result0 = (NimStringDesc*)0;
	result0 = copyString(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_19));
	{
		while (1) {
			if (!(((NU8)((*r0).s[(*r0).pos])) >= ((NU8)(65)) && ((NU8)((*r0).s[(*r0).pos])) <= ((NU8)(90)) || ((NU8)((*r0).s[(*r0).pos])) == ((NU8)(95)) || ((NU8)((*r0).s[(*r0).pos])) >= ((NU8)(97)) && ((NU8)((*r0).s[(*r0).pos])) <= ((NU8)(122)) || ((NU8)((*r0).s[(*r0).pos])) >= ((NU8)(48)) && ((NU8)((*r0).s[(*r0).pos])) <= ((NU8)(57)))) goto LA2;
			result0 = addChar(result0, (*r0).s[(*r0).pos]);
			(*r0).pos += ((NI) 1);
		} LA2: ;
	}
	return result0;
}

N_NIMCALL(NIM_BOOL, cmdchangetriggersrecompilation_4QX9aRNhhaQx8NWl8hUhofA)(Tcommands_VH3ghgQVwLSg3krOAoXigw old0, Tcommands_VH3ghgQVwLSg3krOAoXigw new_ostC1gaH3oDbK9cpN3arH1Q) {
	NIM_BOOL result0;
{	result0 = (NIM_BOOL)0;
	{
		if (!(old0 == new_ostC1gaH3oDbK9cpN3arH1Q)) goto LA3;
		result0 = NIM_FALSE;
		goto BeforeRet;
	}
	LA3: ;
	switch (old0) {
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 1):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 2):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 3):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 4):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 5):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 6):
	{
		{
			if (!((627456 &(1U<<((NU)(new_ostC1gaH3oDbK9cpN3arH1Q)&31U)))!=0)) goto LA8;
			result0 = NIM_FALSE;
			goto BeforeRet;
		}
		LA8: ;
	}
	break;
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 0):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 9):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 7):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 8):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 10):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 11):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 12):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 13):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 14):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 15):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 16):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 17):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 18):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 19):
	case ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 20):
	{
	}
	break;
	}
	result0 = NIM_TRUE;
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(void, skipsection_U8pJ144ZdmRIS5PTdDiHtQ)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0) {
	{
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(58))) goto LA3;
		{
			while (1) {
				if (!((NU8)(10) < (NU8)((*r0).s[(*r0).pos]))) goto LA6;
				(*r0).pos += ((NI) 1);
			} LA6: ;
		}
	}
	goto LA1;
	LA3: ;
	{
		NI c0;
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(40))) goto LA8;
		c0 = ((NI) 0);
		(*r0).pos += ((NI) 1);
		{
			while (1) {
				switch (((NU8)((*r0).s[(*r0).pos]))) {
				case 10:
				{
					(*r0).line += ((NI) 1);
				}
				break;
				case 40:
				{
					c0 += ((NI) 1);
				}
				break;
				case 41:
				{
					{
						if (!(c0 == ((NI) 0))) goto LA17;
						(*r0).pos += ((NI) 1);
						goto LA10;
					}
					goto LA15;
					LA17: ;
					{
						if (!(((NI) 0) < c0)) goto LA20;
						c0 -= ((NI) 1);
					}
					goto LA15;
					LA20: ;
					LA15: ;
				}
				break;
				case 0:
				{
					goto LA10;
				}
				break;
				default:
				{
				}
				break;
				}
				(*r0).pos += ((NI) 1);
			}
		} LA10: ;
	}
	goto LA1;
	LA8: ;
	{
		NimStringDesc* LOC25;
		NimStringDesc* LOC26;
		LOC25 = (NimStringDesc*)0;
		LOC26 = (NimStringDesc*)0;
		LOC26 = nimIntToStr((*r0).line);
		LOC25 = rawNewString(LOC26->Sup.len + 12);
appendString(LOC25, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_58));
appendString(LOC25, LOC26);
		internalerror_5XY9cUy7hZmUusM38U9cYYdw(LOC25);
	}
	LA1: ;
}

N_NIMCALL(void, processindex_xlOVKUGaby4rs9a9btkSMoNg)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tindex_hUZsEw7f9bvoVPQYLWHrTDQ* idx0, FILE* outf0) {
	NI key0;
	NI val0;
	NI tmp0;
	key0 = (NI)0;
	val0 = (NI)0;
	tmp0 = (NI)0;
	(*r0).pos += ((NI) 2);
	(*r0).line += ((NI) 1);
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = (NIM_BOOL)0;
			LOC3 = ((NU8)(10) < (NU8)((*r0).s[(*r0).pos]));
			if (!(LOC3)) goto LA4;
			LOC3 = !(((NU8)((*r0).s[(*r0).pos]) == (NU8)(41)));
			LA4: ;
			if (!LOC3) goto LA2;
			tmp0 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			{
				NI LOC9;
				if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(32))) goto LA7;
				(*r0).pos += ((NI) 1);
				key0 = (NI)((*idx0).lastidxkey + tmp0);
				LOC9 = (NI)0;
				LOC9 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
				val0 = (NI)(LOC9 + (*idx0).lastidxval);
			}
			goto LA5;
			LA7: ;
			{
				key0 = (NI)((*idx0).lastidxkey + ((NI) 1));
				val0 = (NI)(tmp0 + (*idx0).lastidxval);
			}
			LA5: ;
			iitableput_i9ao9aBgb0oZrn7lQBCMTEZg((&(*idx0).tab), key0, val0);
			{
				TY_sMpvt1sOxOJ3LFGulnbeMQ LOC15;
				if (!!((outf0 == 0))) goto LA13;
				memset((void*)LOC15, 0, sizeof(LOC15));
				LOC15[0] = nimIntToStr(key0);
				LOC15[1] = copyString(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_59));
				LOC15[2] = nimIntToStr(val0);
				LOC15[3] = copyString(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_60));
				write_OG3BP9aaTiau0tBdonibGTg(outf0, LOC15, 4);
			}
			LA13: ;
			(*idx0).lastidxkey = key0;
			(*idx0).lastidxval = val0;
			setid_iA4w0aRcMn9ciJCCkQe5Uiwrodread(key0);
			{
				if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(10))) goto LA18;
				(*r0).pos += ((NI) 1);
				(*r0).line += ((NI) 1);
			}
			LA18: ;
		} LA2: ;
	}
	{
		if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(41))) goto LA22;
		(*r0).pos += ((NI) 1);
	}
	LA22: ;
}

N_NIMCALL(void, processrodfile_mVWixI8Vyvwk8S69ce9ahnAg)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, TY_YtcvxHNKV4YiecPE9ap1mcA hash0) {
	NimStringDesc* w0;
	NI d0;
	TY_YtcvxHNKV4YiecPE9ap1mcA inclhash0;
	w0 = (NimStringDesc*)0;
	d0 = (NI)0;
	memset((void*)inclhash0, 0, sizeof(inclhash0));
	{
		while (1) {
			NimStringDesc* section0;
			if (!!(((NU8)((*r0).s[(*r0).pos]) == (NU8)(0)))) goto LA2;
			section0 = rdword_vKTFYqB4WarZoWmf9aWf1Sw(r0);
			{
				if (!!(((*r0).reason == ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 1)))) goto LA5;
				goto LA1;
			}
			LA5: ;
			switch (hashString(section0) & 31) {
			case 0: 
if (eqStrings(section0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_41))) goto LA8;
if (eqStrings(section0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_48))) goto LA15;
break;
			case 9: 
if (eqStrings(section0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_42))) goto LA9;
if (eqStrings(section0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_52))) goto LA19;
break;
			case 10: 
if (eqStrings(section0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_43))) goto LA10;
if (eqStrings(section0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_45))) goto LA12;
if (eqStrings(section0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_55))) goto LA22;
break;
			case 12: 
if (eqStrings(section0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_57))) goto LA24;
break;
			case 13: 
if (eqStrings(section0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_46))) goto LA13;
if (eqStrings(section0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_56))) goto LA23;
break;
			case 14: 
if (eqStrings(section0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_40))) goto LA7;
break;
			case 17: 
if (eqStrings(section0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_47))) goto LA14;
break;
			case 25: 
if (eqStrings(section0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_44))) goto LA11;
if (eqStrings(section0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_54))) goto LA21;
break;
			case 26: 
if (eqStrings(section0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_50))) goto LA17;
break;
			case 28: 
if (eqStrings(section0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_49))) goto LA16;
break;
			case 29: 
if (eqStrings(section0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_53))) goto LA20;
break;
			case 30: 
if (eqStrings(section0, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_51))) goto LA18;
break;
			}
			goto LA25;
			LA7: ;
			{
				(*r0).pos += ((NI) 1);
				{
					NimStringDesc* LOC30;
					TY_YtcvxHNKV4YiecPE9ap1mcA LOC31;
					NIM_BOOL LOC32;
					LOC30 = (NimStringDesc*)0;
					LOC30 = decodestr_STVN8cb52NB3wWUNHppyDQ((*r0).s, (&(*r0).pos));
					memset((void*)LOC31, 0, sizeof(LOC31));
					parsesecurehash_z6ogq7oeMr7FogkL734yew(LOC30, LOC31);
					LOC32 = (NIM_BOOL)0;
					LOC32 = HEX3DHEX3D_D9cw7Ut67uVRyWe3YecX0SQ(hash0, LOC31);
					if (!!(LOC32)) goto LA33;
					(*r0).reason = ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 4);
				}
				LA33: ;
			}
			goto LA26;
			LA8: ;
			{
				(*r0).pos += ((NI) 1);
				(*r0).moduleid = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
				setid_iA4w0aRcMn9ciJCCkQe5Uiwrodread((*r0).moduleid);
			}
			goto LA26;
			LA9: ;
			{
				(*r0).pos += ((NI) 1);
				asgnRefNoCycle((void**) (&(*r0).origfile), decodestr_STVN8cb52NB3wWUNHppyDQ((*r0).s, (&(*r0).pos)));
			}
			goto LA26;
			LA10: ;
			{
				NI LOC38;
				(*r0).pos += ((NI) 1);
				LOC38 = (NI)0;
				LOC38 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
				(*r0).options = ((Toption_WspMeQySXNP2XoTWR5MTgg_Set) (((NI32) (LOC38))));
				{
					if (!!((goptions_KL5B8sF4szIsM2AXCWFsIw == (*r0).options))) goto LA41;
					(*r0).reason = ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 6);
				}
				LA41: ;
			}
			goto LA26;
			LA11: ;
			{
				Tglobaloption_RAfAEZqjnKMDumgyKKc1qw_Set dep0;
				NI LOC44;
				(*r0).pos += ((NI) 1);
				LOC44 = (NI)0;
				LOC44 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
				dep0 = ((Tglobaloption_RAfAEZqjnKMDumgyKKc1qw_Set) (((NI32) (LOC44))));
				{
					if (!!(((gglobaloptions_j042VVDC9cT5ENYoXnmhhVg & ~ 10494050) == (dep0 & ~ 10494050)))) goto LA47;
					(*r0).reason = ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 6);
				}
				LA47: ;
			}
			goto LA26;
			LA12: ;
			{
				Tcommands_VH3ghgQVwLSg3krOAoXigw dep0;
				NI LOC50;
				(*r0).pos += ((NI) 1);
				LOC50 = (NI)0;
				LOC50 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
				dep0 = ((Tcommands_VH3ghgQVwLSg3krOAoXigw) (((NI32) (LOC50))));
				{
					NIM_BOOL LOC53;
					LOC53 = (NIM_BOOL)0;
					LOC53 = cmdchangetriggersrecompilation_4QX9aRNhhaQx8NWl8hUhofA(dep0, gcmd_0oKScFtMiSKnjiHF9cU9c5GQ);
					if (!LOC53) goto LA54;
					(*r0).reason = ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 6);
				}
				LA54: ;
			}
			goto LA26;
			LA13: ;
			{
				(*r0).pos += ((NI) 1);
				d0 = ((NI) 0);
				{
					while (1) {
						if (!((NU8)(10) < (NU8)((*r0).s[(*r0).pos]))) goto LA58;
						w0 = decodestr_STVN8cb52NB3wWUNHppyDQ((*r0).s, (&(*r0).pos));
						d0 += ((NI) 1);
						{
							Tident_4umxGerWTHGPwUms7Yqu3g* LOC61;
							NIM_BOOL LOC62;
							LOC61 = (Tident_4umxGerWTHGPwUms7Yqu3g*)0;
							LOC61 = getident_Y4Yr5rKoaxkzPcN8rPP9bWA((*r0).cache, w0);
							LOC62 = (NIM_BOOL)0;
							LOC62 = isdefined_rrIlGPFUdgeaN36zhjolNA(LOC61);
							if (!!(LOC62)) goto LA63;
							(*r0).reason = ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 5);
						}
						LA63: ;
						{
							if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(32))) goto LA67;
							(*r0).pos += ((NI) 1);
						}
						LA67: ;
					} LA58: ;
				}
				{
					NI LOC71;
					LOC71 = (NI)0;
					LOC71 = countdefinedsymbols_0PZoTF9cuNqw59bHjttVR3uw();
					if (!!((d0 == LOC71))) goto LA72;
					(*r0).reason = ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 5);
				}
				LA72: ;
			}
			goto LA26;
			LA14: ;
			{
				(*r0).pos += ((NI) 2);
				(*r0).line += ((NI) 1);
				{
					while (1) {
						NimStringDesc* finalpath0;
						NI32 LOC77;
						if (!!(((NU8)((*r0).s[(*r0).pos]) == (NU8)(41)))) goto LA76;
						finalpath0 = decodestr_STVN8cb52NB3wWUNHppyDQ((*r0).s, (&(*r0).pos));
						LOC77 = (NI32)0;
						LOC77 = fileinfoidx_RXxXBoV2drjjVnQa9abo19cQ(finalpath0);
						(*r0).files = (TY_48JTohSgTy339bRxHzUD8KA*) incrSeqV2(&((*r0).files)->Sup, sizeof(NI32));
						(*r0).files->data[(*r0).files->Sup.len] = LOC77;
						++(*r0).files->Sup.len;
						(*r0).pos += ((NI) 1);
						(*r0).line += ((NI) 1);
					} LA76: ;
				}
				{
					if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(41))) goto LA80;
					(*r0).pos += ((NI) 1);
				}
				LA80: ;
			}
			goto LA26;
			LA15: ;
			{
				(*r0).pos += ((NI) 2);
				(*r0).line += ((NI) 1);
				{
					while (1) {
						NI LOC85;
						NimStringDesc* LOC86;
						if (!!(((NU8)((*r0).s[(*r0).pos]) == (NU8)(41)))) goto LA84;
						LOC85 = (NI)0;
						LOC85 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
						w0 = tofullpath_7s19cb7WBgztz9aqEBzwwuqA((*r0).files->data[LOC85]);
						(*r0).pos += ((NI) 1);
						LOC86 = (NimStringDesc*)0;
						LOC86 = decodestr_STVN8cb52NB3wWUNHppyDQ((*r0).s, (&(*r0).pos));
						chckNil((void*)inclhash0);
						memset((void*)inclhash0, 0, sizeof(inclhash0));
						parsesecurehash_z6ogq7oeMr7FogkL734yew(LOC86, inclhash0);
						{
							if (!((*r0).reason == ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 1))) goto LA89;
							{
								NIM_BOOL LOC93;
								NIM_BOOL LOC94;
								TY_YtcvxHNKV4YiecPE9ap1mcA LOC96;
								NIM_BOOL LOC97;
								LOC93 = (NIM_BOOL)0;
								LOC94 = (NIM_BOOL)0;
								LOC94 = nosexistsFile(w0);
								LOC93 = !(LOC94);
								if (LOC93) goto LA95;
								memset((void*)LOC96, 0, sizeof(LOC96));
								securehashfile_WH9bD1JrTXe4j39astgya4oA(w0, LOC96);
								LOC97 = (NIM_BOOL)0;
								LOC97 = HEX3DHEX3D_D9cw7Ut67uVRyWe3YecX0SQ(inclhash0, LOC96);
								LOC93 = !(LOC97);
								LA95: ;
								if (!LOC93) goto LA98;
								(*r0).reason = ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 7);
							}
							LA98: ;
						}
						LA89: ;
						{
							if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(10))) goto LA102;
							(*r0).pos += ((NI) 1);
							(*r0).line += ((NI) 1);
						}
						LA102: ;
					} LA84: ;
				}
				{
					if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(41))) goto LA106;
					(*r0).pos += ((NI) 1);
				}
				LA106: ;
			}
			goto LA26;
			LA16: ;
			{
				(*r0).pos += ((NI) 1);
				{
					while (1) {
						NI LOC111;
						if (!((NU8)(10) < (NU8)((*r0).s[(*r0).pos]))) goto LA110;
						LOC111 = (NI)0;
						LOC111 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
						(*r0).moddeps = (TY_48JTohSgTy339bRxHzUD8KA*) incrSeqV2(&((*r0).moddeps)->Sup, sizeof(NI32));
						(*r0).moddeps->data[(*r0).moddeps->Sup.len] = (*r0).files->data[((NI32) (LOC111))];
						++(*r0).moddeps->Sup.len;
						{
							if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(32))) goto LA114;
							(*r0).pos += ((NI) 1);
						}
						LA114: ;
					} LA110: ;
				}
			}
			goto LA26;
			LA17: ;
			{
				(*r0).interfidx = (NI)((*r0).pos + ((NI) 2));
				skipsection_U8pJ144ZdmRIS5PTdDiHtQ(r0);
			}
			goto LA26;
			LA18: ;
			{
				(*r0).compilerprocsidx = (NI)((*r0).pos + ((NI) 2));
				skipsection_U8pJ144ZdmRIS5PTdDiHtQ(r0);
			}
			goto LA26;
			LA19: ;
			{
				processindex_xlOVKUGaby4rs9a9btkSMoNg(r0, (&(*r0).index), NIM_NIL);
			}
			goto LA26;
			LA20: ;
			{
				processindex_xlOVKUGaby4rs9a9btkSMoNg(r0, (&(*r0).imports), NIM_NIL);
			}
			goto LA26;
			LA21: ;
			{
				(*r0).convertersidx = (NI)((*r0).pos + ((NI) 1));
				skipsection_U8pJ144ZdmRIS5PTdDiHtQ(r0);
			}
			goto LA26;
			LA22: ;
			{
				(*r0).methodsidx = (NI)((*r0).pos + ((NI) 1));
				skipsection_U8pJ144ZdmRIS5PTdDiHtQ(r0);
			}
			goto LA26;
			LA23: ;
			{
				(*r0).dataidx = (NI)((*r0).pos + ((NI) 2));
				goto LA1;
			}
			goto LA26;
			LA24: ;
			{
				(*r0).initidx = (NI)((*r0).pos + ((NI) 2));
				skipsection_U8pJ144ZdmRIS5PTdDiHtQ(r0);
			}
			goto LA26;
			LA25: ;
			{
				NimStringDesc* LOC125;
				NimStringDesc* LOC126;
				LOC125 = (NimStringDesc*)0;
				LOC126 = (NimStringDesc*)0;
				LOC126 = nimIntToStr((*r0).line);
				LOC125 = rawNewString(section0->Sup.len + LOC126->Sup.len + (*r0).filename->Sup.len + 27);
appendString(LOC125, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_61));
appendString(LOC125, section0);
appendString(LOC125, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_62));
appendString(LOC125, LOC126);
appendString(LOC125, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_63));
appendString(LOC125, (*r0).filename);
				internalerror_5XY9cUy7hZmUusM38U9cYYdw(LOC125);
				skipsection_U8pJ144ZdmRIS5PTdDiHtQ(r0);
			}
			LA26: ;
			{
				if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(10))) goto LA129;
				(*r0).pos += ((NI) 1);
				(*r0).line += ((NI) 1);
			}
			LA129: ;
		} LA2: ;
	} LA1: ;
}

N_NIMCALL(Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A, checkdep_FefUip39auHSLhzCJpLE4iw)(NI32 fileidx0, IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* cache0) {
	Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A result0;
	NimStringDesc* filename0;
	TY_YtcvxHNKV4YiecPE9ap1mcA hash0;
	NimStringDesc* rodfile0;
	NimStringDesc* LOC14;
	Trodreader_16TURXdqtpMMssNVfU5WqQ* r0;
{	result0 = (Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A)0;
	{
		if (!((gmods_rI9ar5P1fR1UYngW7fmzETQ ? gmods_rI9ar5P1fR1UYngW7fmzETQ->Sup.len : 0) <= ((NI) (fileidx0)))) goto LA3;
		gmods_rI9ar5P1fR1UYngW7fmzETQ = (TY_zYu2DlP9bQek7yl7KPjzfgA*) setLengthSeq(&(gmods_rI9ar5P1fR1UYngW7fmzETQ)->Sup, sizeof(Tfilemodulerec_hr9befsliGEJa9bKFOdnP87g), ((NI) ((NI32)(fileidx0 + ((NI32) 1)))));
	}
	LA3: ;
	{
		if (!!((gmods_rI9ar5P1fR1UYngW7fmzETQ->data[fileidx0].reason == ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 0)))) goto LA7;
		result0 = gmods_rI9ar5P1fR1UYngW7fmzETQ->data[fileidx0].reason;
		goto BeforeRet;
	}
	LA7: ;
	{
		if (!(fileidx0 < ((NI32) 0))) goto LA11;
		filename0 = copyString(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_33));
	}
	goto LA9;
	LA11: ;
	{
		filename0 = fileinfos_0nMtuXd9csTLLtuDok8ckXw->data[fileidx0].projpath;
	}
	LA9: ;
	memset((void*)hash0, 0, sizeof(hash0));
	chckNil((void*)hash0);
	memset((void*)hash0, 0, sizeof(hash0));
	gethash_XlA8spTQdk2eCaGCzixyPg(fileidx0, hash0);
	gmods_rI9ar5P1fR1UYngW7fmzETQ->data[fileidx0].reason = ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 1);
	result0 = ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 1);
	LOC14 = (NimStringDesc*)0;
	LOC14 = withpackagename_hXI3LWBWedZbdPyAYn0KOQ_2(filename0);
	rodfile0 = togeneratedfile_J4Y3N49axROg3CvCZ1jF3QQ(LOC14, ((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_36));
	r0 = newrodreader_kKrvFNyTyKr29bjL4vJHmag(rodfile0, hash0, ((NI) (fileidx0)), cache0);
	{
		if (!(r0 == NIM_NIL)) goto LA17;
		{
			NIM_BOOL LOC21;
			LOC21 = (NIM_BOOL)0;
			LOC21 = nosexistsFile(rodfile0);
			if (!LOC21) goto LA22;
			result0 = ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 3);
		}
		goto LA19;
		LA22: ;
		{
			result0 = ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 2);
		}
		LA19: ;
	}
	goto LA15;
	LA17: ;
	{
		processrodfile_mVWixI8Vyvwk8S69ce9ahnAg(r0, hash0);
		result0 = (*r0).reason;
		{
			Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A res0;
			if (!(result0 == ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 1))) goto LA28;
			res0 = checkdep_FefUip39auHSLhzCJpLE4iw(systemfileidx_q0u9cGGPPFNGrj9c5inL1WXQ, cache0);
			{
				if (!!((res0 == ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 1)))) goto LA32;
				result0 = ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 8);
			}
			LA32: ;
			{
				NI i_mjaN9bEhgG0WcQm9a9bWF1nkw;
				NI HEX3Atmp_e2GOg8oWS1JhM0G9bgAjFFg;
				NI res_mZpnUsYaYLWK5hCo9b7sfhA;
				i_mjaN9bEhgG0WcQm9a9bWF1nkw = (NI)0;
				HEX3Atmp_e2GOg8oWS1JhM0G9bgAjFFg = (NI)0;
				HEX3Atmp_e2GOg8oWS1JhM0G9bgAjFFg = ((*r0).moddeps ? ((*r0).moddeps->Sup.len-1) : -1);
				res_mZpnUsYaYLWK5hCo9b7sfhA = ((NI) 0);
				{
					while (1) {
						if (!(res_mZpnUsYaYLWK5hCo9b7sfhA <= HEX3Atmp_e2GOg8oWS1JhM0G9bgAjFFg)) goto LA36;
						i_mjaN9bEhgG0WcQm9a9bWF1nkw = res_mZpnUsYaYLWK5hCo9b7sfhA;
						res0 = checkdep_FefUip39auHSLhzCJpLE4iw((*r0).moddeps->data[i_mjaN9bEhgG0WcQm9a9bWF1nkw], cache0);
						{
							if (!!((res0 == ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 1)))) goto LA39;
							result0 = ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 8);
						}
						LA39: ;
						res_mZpnUsYaYLWK5hCo9b7sfhA += ((NI) 1);
					} LA36: ;
				}
			}
		}
		LA28: ;
	}
	LA15: ;
	{
		NimStringDesc* LOC45;
		if (!!((result0 == ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 1)))) goto LA43;
		LOC45 = (NimStringDesc*)0;
		LOC45 = nsuFormatSingleElem(reasontofrmt_vodk7sHrA9bELf39ahJ8NXEg[(result0)- 0], filename0);
		rawmessage_tBJ8mvo7MzzirsGkrHVc9cw(((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 275), LOC45);
	}
	LA43: ;
	{
		NIM_BOOL LOC48;
		LOC48 = (NIM_BOOL)0;
		LOC48 = !((result0 == ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 1)));
		if (LOC48) goto LA49;
		LOC48 = ((gglobaloptions_j042VVDC9cT5ENYoXnmhhVg &((NU64)1<<((NU)(((Tglobaloption_RAfAEZqjnKMDumgyKKc1qw) 1))&63U)))!=0);
		LA49: ;
		if (!LOC48) goto LA50;
		{
			if (!!((r0 == NIM_NIL))) goto LA54;
			close_nK8O9cRK8tfFl5he9bLSP9bNQ((&(*r0).memfile));
		}
		LA54: ;
		r0 = NIM_NIL;
	}
	LA50: ;
	asgnRef((void**) (&gmods_rI9ar5P1fR1UYngW7fmzETQ->data[fileidx0].rd), r0);
	gmods_rI9ar5P1fR1UYngW7fmzETQ->data[fileidx0].reason = result0;
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, newstub_PnID9cG5w2548BrH04lhfsg)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, NimStringDesc* name0, NI id0) {
	Tsym_AXG7xcvKqaxY6koRX1xkCw* result0;
	result0 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0;
	result0 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*) newObj((&NTI_83n62yi1b9bgUtRR9axFWW9ag), sizeof(Tsym_AXG7xcvKqaxY6koRX1xkCw));
	(*result0).Sup.Sup.m_type = (&NTI_AXG7xcvKqaxY6koRX1xkCw);
	(*result0).kind = ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 22);
	(*result0).Sup.id = id0;
	asgnRefNoCycle((void**) (&(*result0).name), getident_Y4Yr5rKoaxkzPcN8rPP9bWA((*r0).cache, name0));
	(*result0).position = (*r0).readerindex;
	setid_iA4w0aRcMn9ciJCCkQe5Uiwrodread(id0);
	{
		Tidobj_raN9cHVgzmvaXisezY9aGg9cg* LOC5;
		if (!NIM_FALSE) goto LA3;
		LOC5 = (Tidobj_raN9cHVgzmvaXisezY9aGg9cg*)0;
		LOC5 = &result0->Sup;
		registerid_ZN2j9cT9c6WdU9bRORys9cZIAg(LOC5);
	}
	LA3: ;
	return result0;
}

N_NIMCALL(void, processinterf_HHIdB6BSTmIdVvhHYIyF5A)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tsym_AXG7xcvKqaxY6koRX1xkCw* module0) {
	{
		if (!((*r0).interfidx == ((NI) 0))) goto LA3;
		internalerror_5XY9cUy7hZmUusM38U9cYYdw(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_73));
	}
	LA3: ;
	(*r0).pos = (*r0).interfidx;
	{
		while (1) {
			NIM_BOOL LOC7;
			NimStringDesc* w0;
			NI key0;
			Tsym_AXG7xcvKqaxY6koRX1xkCw* s0;
			LOC7 = (NIM_BOOL)0;
			LOC7 = ((NU8)(10) < (NU8)((*r0).s[(*r0).pos]));
			if (!(LOC7)) goto LA8;
			LOC7 = !(((NU8)((*r0).s[(*r0).pos]) == (NU8)(41)));
			LA8: ;
			if (!LOC7) goto LA6;
			w0 = decodestr_STVN8cb52NB3wWUNHppyDQ((*r0).s, (&(*r0).pos));
			(*r0).pos += ((NI) 1);
			key0 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			(*r0).pos += ((NI) 1);
			s0 = newstub_PnID9cG5w2548BrH04lhfsg(r0, w0, key0);
			asgnRefNoCycle((void**) (&(*s0).owner), module0);
			strtableadd_Tcb9aDxXz9ch8cAXKFCMrlbA((&(*module0).kindU.S3.tab), s0);
			HEX5BHEX5DHEX3D_rmyyXMOU9cTYfzq59cG09cIIA((&(*r0).syms), (*s0).Sup.id, s0);
		} LA6: ;
	}
}

N_NIMCALL(void, processcompilerprocs_HHIdB6BSTmIdVvhHYIyF5A_2)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0, Tsym_AXG7xcvKqaxY6koRX1xkCw* module0) {
	{
		if (!((*r0).compilerprocsidx == ((NI) 0))) goto LA3;
		internalerror_5XY9cUy7hZmUusM38U9cYYdw(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_74));
	}
	LA3: ;
	(*r0).pos = (*r0).compilerprocsidx;
	{
		while (1) {
			NIM_BOOL LOC7;
			NimStringDesc* w0;
			NI key0;
			Tsym_AXG7xcvKqaxY6koRX1xkCw* s0;
			LOC7 = (NIM_BOOL)0;
			LOC7 = ((NU8)(10) < (NU8)((*r0).s[(*r0).pos]));
			if (!(LOC7)) goto LA8;
			LOC7 = !(((NU8)((*r0).s[(*r0).pos]) == (NU8)(41)));
			LA8: ;
			if (!LOC7) goto LA6;
			w0 = decodestr_STVN8cb52NB3wWUNHppyDQ((*r0).s, (&(*r0).pos));
			(*r0).pos += ((NI) 1);
			key0 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			(*r0).pos += ((NI) 1);
			s0 = getordefault_ShR0uE9bMwmPl0MR60kmH3g((*r0).syms, key0);
			{
				if (!(s0 == NIM_NIL)) goto LA11;
				s0 = newstub_PnID9cG5w2548BrH04lhfsg(r0, w0, key0);
				asgnRefNoCycle((void**) (&(*s0).owner), module0);
				HEX5BHEX5DHEX3D_rmyyXMOU9cTYfzq59cG09cIIA((&(*r0).syms), (*s0).Sup.id, s0);
			}
			LA11: ;
			strtableadd_Tcb9aDxXz9ch8cAXKFCMrlbA((&rodcompilerprocs_9aNPIIbBunTbUYZKKDkxNkA), s0);
		} LA6: ;
	}
}

N_NIMCALL(void, loadconverters_U8pJ144ZdmRIS5PTdDiHtQ_2)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0) {
	{
		NIM_BOOL LOC3;
		LOC3 = (NIM_BOOL)0;
		LOC3 = ((*r0).convertersidx == ((NI) 0));
		if (LOC3) goto LA4;
		LOC3 = ((*r0).dataidx == ((NI) 0));
		LA4: ;
		if (!LOC3) goto LA5;
		internalerror_5XY9cUy7hZmUusM38U9cYYdw(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_75));
	}
	LA5: ;
	(*r0).pos = (*r0).convertersidx;
	{
		while (1) {
			NI d0;
			Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw LOC9;
			Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC10;
			if (!((NU8)(10) < (NU8)((*r0).s[(*r0).pos]))) goto LA8;
			d0 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			LOC9 = unknownlineinfo_Ad9ctQofZYxhKVXoXjdL0Fw();
			LOC10 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0;
			LOC10 = rrgetsym_LN0h5wUUibshttSu5iCq5g(r0, d0, LOC9);
			{
				if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(32))) goto LA13;
				(*r0).pos += ((NI) 1);
			}
			LA13: ;
		} LA8: ;
	}
}

N_NIMCALL(void, loadmethods_U8pJ144ZdmRIS5PTdDiHtQ_3)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0) {
	{
		NIM_BOOL LOC3;
		LOC3 = (NIM_BOOL)0;
		LOC3 = ((*r0).methodsidx == ((NI) 0));
		if (LOC3) goto LA4;
		LOC3 = ((*r0).dataidx == ((NI) 0));
		LA4: ;
		if (!LOC3) goto LA5;
		internalerror_5XY9cUy7hZmUusM38U9cYYdw(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_76));
	}
	LA5: ;
	(*r0).pos = (*r0).methodsidx;
	{
		while (1) {
			NI d0;
			Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw LOC9;
			Tsym_AXG7xcvKqaxY6koRX1xkCw* LOC10;
			if (!((NU8)(10) < (NU8)((*r0).s[(*r0).pos]))) goto LA8;
			d0 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			LOC9 = unknownlineinfo_Ad9ctQofZYxhKVXoXjdL0Fw();
			LOC10 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0;
			LOC10 = rrgetsym_LN0h5wUUibshttSu5iCq5g(r0, d0, LOC9);
			(*r0).methods = (TY_sksVpmPRIkNR9axiwtD1Guw*) incrSeqV2(&((*r0).methods)->Sup, sizeof(Tsym_AXG7xcvKqaxY6koRX1xkCw*));
			asgnRefNoCycle((void**) (&(*r0).methods->data[(*r0).methods->Sup.len]), LOC10);
			++(*r0).methods->Sup.len;
			{
				if (!((NU8)((*r0).s[(*r0).pos]) == (NU8)(32))) goto LA13;
				(*r0).pos += ((NI) 1);
			}
			LA13: ;
		} LA8: ;
	}
}

N_NIMCALL(Trodreader_16TURXdqtpMMssNVfU5WqQ*, handlesymbolfile_GdfZQXu9boYqDgDFA9bGeomg)(Tsym_AXG7xcvKqaxY6koRX1xkCw* module0, IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* cache0) {
	Trodreader_16TURXdqtpMMssNVfU5WqQ* result0;
	NI32 fileidx0;
	NimStringDesc* LOC5;
	Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A LOC6;
{	result0 = (Trodreader_16TURXdqtpMMssNVfU5WqQ*)0;
	fileidx0 = ((NI32) ((*module0).position));
	{
		if (!!(((gglobaloptions_j042VVDC9cT5ENYoXnmhhVg &((NU64)1<<((NU)(((Tglobaloption_RAfAEZqjnKMDumgyKKc1qw) 14))&63U)))!=0))) goto LA3;
		(*module0).Sup.id = getid_2S0wtMB4mi8h75E9a7bA6mAast();
		result0 = NIM_NIL;
		goto BeforeRet;
	}
	LA3: ;
	LOC5 = (NimStringDesc*)0;
	LOC5 = HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ(gprojectpath_RQlrqBW2RHkKfot9caCcOtQ, gprojectname_QOoHniL6MYtzlAjpv8zzdA);
	loadmaxids_NACtd4vcNteQFGls509aStA(LOC5);
	LOC6 = (Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A)0;
	LOC6 = checkdep_FefUip39auHSLhzCJpLE4iw(fileidx0, cache0);
	{
		if (!(gmods_rI9ar5P1fR1UYngW7fmzETQ->data[fileidx0].reason == ((Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A) 0))) goto LA9;
		internalerror_5XY9cUy7hZmUusM38U9cYYdw(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_72));
	}
	LA9: ;
	result0 = gmods_rI9ar5P1fR1UYngW7fmzETQ->data[fileidx0].rd;
	{
		if (!!((result0 == NIM_NIL))) goto LA13;
		(*module0).Sup.id = (*result0).moduleid;
		HEX5BHEX5DHEX3D_rmyyXMOU9cTYfzq59cG09cIIA((&(*result0).syms), (*module0).Sup.id, module0);
		processinterf_HHIdB6BSTmIdVvhHYIyF5A(result0, module0);
		processcompilerprocs_HHIdB6BSTmIdVvhHYIyF5A_2(result0, module0);
		loadconverters_U8pJ144ZdmRIS5PTdDiHtQ_2(result0);
		loadmethods_U8pJ144ZdmRIS5PTdDiHtQ_3(result0);
	}
	goto LA11;
	LA13: ;
	{
		(*module0).Sup.id = getid_2S0wtMB4mi8h75E9a7bA6mAast();
	}
	LA11: ;
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, loadinitsection_tp5rvpXDujpSph4dM4wQqQ)(Trodreader_16TURXdqtpMMssNVfU5WqQ* r0) {
	Tnode_bROa11lyF5vxEN9aYNbHmhw* result0;
	NI oldpos0;
	result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL LOC3;
		LOC3 = (NIM_BOOL)0;
		LOC3 = ((*r0).initidx == ((NI) 0));
		if (LOC3) goto LA4;
		LOC3 = ((*r0).dataidx == ((NI) 0));
		LA4: ;
		if (!LOC3) goto LA5;
		internalerror_5XY9cUy7hZmUusM38U9cYYdw(((NimStringDesc*) &T_cQ0PrUjHdJJ4mT9bXnGeWmg_77));
	}
	LA5: ;
	oldpos0 = (*r0).pos;
	(*r0).pos = (*r0).initidx;
	result0 = newnode_IgnRxkID5wXTWvTZf9ct0rA(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 115));
	{
		while (1) {
			NIM_BOOL LOC9;
			NI d0;
			NI p0;
			Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw LOC11;
			Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC12;
			LOC9 = (NIM_BOOL)0;
			LOC9 = ((NU8)(10) < (NU8)((*r0).s[(*r0).pos]));
			if (!(LOC9)) goto LA10;
			LOC9 = !(((NU8)((*r0).s[(*r0).pos]) == (NU8)(41)));
			LA10: ;
			if (!LOC9) goto LA8;
			d0 = decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ((*r0).s, (&(*r0).pos));
			(*r0).pos += ((NI) 1);
			p0 = (*r0).pos;
			(*r0).pos = (NI)(d0 + (*r0).dataidx);
			LOC11 = unknownlineinfo_Ad9ctQofZYxhKVXoXjdL0Fw();
			LOC12 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0;
			LOC12 = decodenode_ZDhFn8mo57TbvAOtXK4b9cQ(r0, LOC11);
			addson_gCCf68XrWL79bKes6htzFjQ(result0, LOC12);
			(*r0).pos = p0;
		} LA8: ;
	}
	(*r0).pos = oldpos0;
	return result0;
}
NIM_EXTERNC N_NOINLINE(void, compiler_rodreadInit000)(void) {
nimRegisterGlobalMarker(T_cQ0PrUjHdJJ4mT9bXnGeWmg_2);
nimRegisterGlobalMarker(T_cQ0PrUjHdJJ4mT9bXnGeWmg_3);
nimRegisterGlobalMarker(T_cQ0PrUjHdJJ4mT9bXnGeWmg_10);
	if (gmods_rI9ar5P1fR1UYngW7fmzETQ) nimGCunref(gmods_rI9ar5P1fR1UYngW7fmzETQ);
	gmods_rI9ar5P1fR1UYngW7fmzETQ = (TY_zYu2DlP9bQek7yl7KPjzfgA*) newSeqRC1((&NTI_zYu2DlP9bQek7yl7KPjzfgA), 0);
	initidtable_9cUS2oaKn1IFXKjLdglPZHQ((&gtypetable_Cu50R2OUCmZwEpVFTyCFpQ));
	initstrtable_dDG9ckEId9ai4WID9aLQcRYNg((&rodcompilerprocs_9aNPIIbBunTbUYZKKDkxNkA));
}

NIM_EXTERNC N_NOINLINE(void, compiler_rodreadDatInit000)(void) {
static TNimNode* T_cQ0PrUjHdJJ4mT9bXnGeWmg_4[5];
static TNimNode* T_cQ0PrUjHdJJ4mT9bXnGeWmg_5[9];
NI T_cQ0PrUjHdJJ4mT9bXnGeWmg_7;
static char* NIM_CONST T_cQ0PrUjHdJJ4mT9bXnGeWmg_6[9] = {
"rrEmpty", 
"rrNone", 
"rrRodDoesNotExist", 
"rrRodInvalid", 
"rrHashChange", 
"rrDefines", 
"rrOptions", 
"rrInclDeps", 
"rrModDeps"};
static TNimNode* T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[24];
static TNimNode* T_cQ0PrUjHdJJ4mT9bXnGeWmg_9[5];
static TNimNode T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[47];
NTI_hr9befsliGEJa9bKFOdnP87g.size = sizeof(Tfilemodulerec_hr9befsliGEJa9bKFOdnP87g);
NTI_hr9befsliGEJa9bKFOdnP87g.kind = 18;
NTI_hr9befsliGEJa9bKFOdnP87g.base = 0;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_4[0] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[1];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[1].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[1].offset = offsetof(Tfilemodulerec_hr9befsliGEJa9bKFOdnP87g, filename);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[1].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[1].name = "filename";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_4[1] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[2];
NTI_CESX1DWEXOC2bslyDO2n5A.size = sizeof(Treasonforrecompile_CESX1DWEXOC2bslyDO2n5A);
NTI_CESX1DWEXOC2bslyDO2n5A.kind = 14;
NTI_CESX1DWEXOC2bslyDO2n5A.base = 0;
NTI_CESX1DWEXOC2bslyDO2n5A.flags = 3;
for (T_cQ0PrUjHdJJ4mT9bXnGeWmg_7 = 0; T_cQ0PrUjHdJJ4mT9bXnGeWmg_7 < 9; T_cQ0PrUjHdJJ4mT9bXnGeWmg_7++) {
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[T_cQ0PrUjHdJJ4mT9bXnGeWmg_7+3].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[T_cQ0PrUjHdJJ4mT9bXnGeWmg_7+3].offset = T_cQ0PrUjHdJJ4mT9bXnGeWmg_7;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[T_cQ0PrUjHdJJ4mT9bXnGeWmg_7+3].name = T_cQ0PrUjHdJJ4mT9bXnGeWmg_6[T_cQ0PrUjHdJJ4mT9bXnGeWmg_7];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_5[T_cQ0PrUjHdJJ4mT9bXnGeWmg_7] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[T_cQ0PrUjHdJJ4mT9bXnGeWmg_7+3];
}
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[12].len = 9; T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[12].kind = 2; T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[12].sons = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_5[0];
NTI_CESX1DWEXOC2bslyDO2n5A.node = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[12];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[2].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[2].offset = offsetof(Tfilemodulerec_hr9befsliGEJa9bKFOdnP87g, reason);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[2].typ = (&NTI_CESX1DWEXOC2bslyDO2n5A);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[2].name = "reason";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_4[2] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[13];
NTI_16TURXdqtpMMssNVfU5WqQ.size = sizeof(Trodreader_16TURXdqtpMMssNVfU5WqQ);
NTI_16TURXdqtpMMssNVfU5WqQ.kind = 17;
NTI_16TURXdqtpMMssNVfU5WqQ.base = (&NTI_13RNkKqUOX1TtorOUlKtqA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[0] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[15];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[15].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[15].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, pos);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[15].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[15].name = "pos";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[1] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[16];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[16].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[16].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, s);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[16].typ = (&NTI_S9agCYBinaYZnGWcjTdxclg);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[16].name = "s";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[2] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[17];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[17].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[17].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, options);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[17].typ = (&NTI_7MnKRybmCNh5j9bDRLMkxLw);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[17].name = "options";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[3] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[18];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[18].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[18].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, reason);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[18].typ = (&NTI_CESX1DWEXOC2bslyDO2n5A);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[18].name = "reason";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[4] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[19];
NTI_48JTohSgTy339bRxHzUD8KA.size = sizeof(TY_48JTohSgTy339bRxHzUD8KA*);
NTI_48JTohSgTy339bRxHzUD8KA.kind = 24;
NTI_48JTohSgTy339bRxHzUD8KA.base = (&NTI_sVg18TP9cLifHyygRe9cro9aA);
NTI_48JTohSgTy339bRxHzUD8KA.flags = 2;
NTI_48JTohSgTy339bRxHzUD8KA.marker = Marker_TY_48JTohSgTy339bRxHzUD8KA;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[19].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[19].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, moddeps);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[19].typ = (&NTI_48JTohSgTy339bRxHzUD8KA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[19].name = "modDeps";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[5] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[20];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[20].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[20].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, files);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[20].typ = (&NTI_48JTohSgTy339bRxHzUD8KA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[20].name = "files";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[6] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[21];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[21].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[21].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, dataidx);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[21].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[21].name = "dataIdx";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[7] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[22];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[22].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[22].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, convertersidx);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[22].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[22].name = "convertersIdx";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[8] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[23];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[23].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[23].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, initidx);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[23].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[23].name = "initIdx";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[9] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[24];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[24].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[24].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, interfidx);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[24].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[24].name = "interfIdx";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[10] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[25];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[25].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[25].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, compilerprocsidx);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[25].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[25].name = "compilerProcsIdx";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[11] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[26];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[26].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[26].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, methodsidx);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[26].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[26].name = "methodsIdx";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[12] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[27];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[27].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[27].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, filename);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[27].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[27].name = "filename";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[13] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[28];
NTI_hUZsEw7f9bvoVPQYLWHrTDQ.size = sizeof(Tindex_hUZsEw7f9bvoVPQYLWHrTDQ);
NTI_hUZsEw7f9bvoVPQYLWHrTDQ.kind = 18;
NTI_hUZsEw7f9bvoVPQYLWHrTDQ.base = 0;
NTI_hUZsEw7f9bvoVPQYLWHrTDQ.flags = 2;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_9[0] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[30];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[30].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[30].offset = offsetof(Tindex_hUZsEw7f9bvoVPQYLWHrTDQ, lastidxkey);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[30].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[30].name = "lastIdxKey";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_9[1] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[31];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[31].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[31].offset = offsetof(Tindex_hUZsEw7f9bvoVPQYLWHrTDQ, lastidxval);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[31].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[31].name = "lastIdxVal";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_9[2] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[32];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[32].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[32].offset = offsetof(Tindex_hUZsEw7f9bvoVPQYLWHrTDQ, tab);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[32].typ = (&NTI_2ud26DHRGdy6LEqDPifSOA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[32].name = "tab";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_9[3] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[33];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[33].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[33].offset = offsetof(Tindex_hUZsEw7f9bvoVPQYLWHrTDQ, r);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[33].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[33].name = "r";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_9[4] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[34];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[34].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[34].offset = offsetof(Tindex_hUZsEw7f9bvoVPQYLWHrTDQ, offset);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[34].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[34].name = "offset";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[29].len = 5; T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[29].kind = 2; T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[29].sons = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_9[0];
NTI_hUZsEw7f9bvoVPQYLWHrTDQ.node = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[29];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[28].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[28].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, index);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[28].typ = (&NTI_hUZsEw7f9bvoVPQYLWHrTDQ);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[28].name = "index";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[14] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[35];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[35].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[35].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, imports);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[35].typ = (&NTI_hUZsEw7f9bvoVPQYLWHrTDQ);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[35].name = "imports";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[15] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[36];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[36].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[36].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, readerindex);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[36].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[36].name = "readerIndex";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[16] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[37];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[37].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[37].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, line);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[37].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[37].name = "line";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[17] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[38];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[38].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[38].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, moduleid);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[38].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[38].name = "moduleID";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[18] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[39];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[39].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[39].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, syms);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[39].typ = (&NTI_DYt7wxxRVZ9c5PDjh5cfgPA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[39].name = "syms";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[19] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[40];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[40].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[40].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, memfile);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[40].typ = (&NTI_j4SnXNrJDFBxAz4BlbM9aIQ);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[40].name = "memfile";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[20] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[41];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[41].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[41].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, methods);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[41].typ = (&NTI_sksVpmPRIkNR9axiwtD1Guw);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[41].name = "methods";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[21] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[42];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[42].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[42].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, origfile);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[42].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[42].name = "origFile";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[22] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[43];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[43].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[43].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, inviewmode);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[43].typ = (&NTI_VaVACK0bpYmqIQ0mKcHfQQ);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[43].name = "inViewMode";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[23] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[44];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[44].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[44].offset = offsetof(Trodreader_16TURXdqtpMMssNVfU5WqQ, cache);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[44].typ = (&NTI_lnkYNZP9asc88UfiEGjLrbA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[44].name = "cache";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[14].len = 24; T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[14].kind = 2; T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[14].sons = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_8[0];
NTI_16TURXdqtpMMssNVfU5WqQ.node = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[14];
NTI_Eh4s09cJuhHxR86Hgdowx5Q.size = sizeof(Trodreader_16TURXdqtpMMssNVfU5WqQ*);
NTI_Eh4s09cJuhHxR86Hgdowx5Q.kind = 22;
NTI_Eh4s09cJuhHxR86Hgdowx5Q.base = (&NTI_16TURXdqtpMMssNVfU5WqQ);
NTI_Eh4s09cJuhHxR86Hgdowx5Q.marker = Marker_TY_Eh4s09cJuhHxR86Hgdowx5Q;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[13].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[13].offset = offsetof(Tfilemodulerec_hr9befsliGEJa9bKFOdnP87g, rd);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[13].typ = (&NTI_Eh4s09cJuhHxR86Hgdowx5Q);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[13].name = "rd";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_4[3] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[45];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[45].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[45].offset = offsetof(Tfilemodulerec_hr9befsliGEJa9bKFOdnP87g, hash);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[45].typ = (&NTI_YtcvxHNKV4YiecPE9ap1mcA);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[45].name = "hash";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_4[4] = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[46];
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[46].kind = 1;
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[46].offset = offsetof(Tfilemodulerec_hr9befsliGEJa9bKFOdnP87g, hashdone);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[46].typ = (&NTI_VaVACK0bpYmqIQ0mKcHfQQ);
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[46].name = "hashDone";
T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[0].len = 5; T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[0].kind = 2; T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[0].sons = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_4[0];
NTI_hr9befsliGEJa9bKFOdnP87g.node = &T_cQ0PrUjHdJJ4mT9bXnGeWmg_0[0];
NTI_zYu2DlP9bQek7yl7KPjzfgA.size = sizeof(TY_zYu2DlP9bQek7yl7KPjzfgA*);
NTI_zYu2DlP9bQek7yl7KPjzfgA.kind = 24;
NTI_zYu2DlP9bQek7yl7KPjzfgA.base = (&NTI_hr9befsliGEJa9bKFOdnP87g);
NTI_zYu2DlP9bQek7yl7KPjzfgA.marker = Marker_TY_zYu2DlP9bQek7yl7KPjzfgA;
}

